Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2014, 23:23   #1
22hope22
Пользователь
 
Регистрация: 31.03.2013
Сообщений: 52
По умолчанию Массив и методы

подскажите пожалуйста, как сделать так, чтобы массив из метода Metod использовался в обоих методах сортировки и не изменял своего значения. Вот так почему-то не работает.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication1
{
class Sorty
{
public int[] MatrixRand(int[] Arr)
{
int a = 0;
Random r = new Random();
Console.WriteLine("Первоначальная матрица");
using (StreamWriter textFile = new StreamWriter("D:/test.txt"))
{
for (int i = 0; i < Arr.Length; i++)
{
Arr[i] = r.Next(11);
a = Arr[0];
Console.Write(Arr[i] + " ");
textFile.Write(Arr[i] + " ");
}
textFile.Close();
}
return Arr;
}
public int[] Metod(int[] Ar)
{
int[] arr = System.IO.File.ReadAllText("D:/test.txt").Split(' ').Select(n => int.Parse(n)).ToArray();
return arr;
}

public void Out(int[] arr)
{

Console.WriteLine();
Console.WriteLine();
Console.WriteLine("Сортировка пузырьком");
int b = 0;
using (StreamWriter textFile = new StreamWriter("D:/sort.txt"))
{
for (int i = arr.Length - 1; i >= 1; i--)
{
for (int j = 0; j<i; j++)
{
if (arr[j] > arr[j + 1])
{
b = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = b;

}
}
textFile.Write(arr[i] + " ");
}
textFile.Close();
}
for (int i = 0; i < arr.Length; i++)
Console.Write(" " + arr[i]);
}

public void Sort2 (int[] arr)
{
Console.WriteLine ("Шейкерная сортировка");
int b = 0;
int left = 0;//Левая граница
int right = arr.Length - 1;//Правая граница
while(left<right)
{
for (int i = left; i < right; i++)//Слева направо...
{
if (arr[i] > arr[i + 1])
{
b = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = b;
b= i;
}
}
right = b;//Сохраним последнюю перестановку как границу
if (left >= right) break;//Если границы сошлись выходим
for (int i = right; i > left; i--)//Справа налево...
{
if (arr[i-1] > arr[i])
{
b = arr[i];
arr[i] = arr[i-1];
arr[i -1] = b;
b = i;
}
}
left = b;//Сохраним последнюю перестановку как границу
}
for (int i = 0; i < arr.Length; i++)
Console.Write(" " + arr[i]);
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Методы сортировки");
Sorty op1 = new Sorty();
int[] Ar = new int[10];
int[] result = op1.MatrixRand(Ar);
op1.Out(result);


}
}
}
22hope22 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методы сбора и анализа экспертных данных(методы: Ранжирование, непосредственная оценка), C# Desired Помощь студентам 6 22.03.2014 13:33
Java!В программе создать одиночные объекты и массив объектов класса и вызвать методы. Andros96 Помощь студентам 0 17.11.2013 15:41
С# задан массив 5х5. сформировать массивы А и В. в массив А поместить элементы с четными индексами, в массив В с нечетны Koksa Помощь студентам 0 10.10.2011 11:26
массив указателей на методы класса? cout Общие вопросы C/C++ 2 08.05.2008 09:43