Файл: Отчет по лабораторным работам оп. 04 Основы алгоритмизации и программирование ккоо. Оаип4211121. 000 Студент Самойлова К. А.docx
Добавлен: 06.11.2023
Просмотров: 178
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
numb = numb + 1;
sum = sum + mass[i, j];
}
}
}
}
int srarf = sum / numb;
Console.WriteLine($"4) среднее арифметическое над побочной диагональю = {srarf}");
}
static void SummDownAditional(int[,] mass)
{
int sum = 0;
int numb = 0;
int test = mass.GetLength(0) - 1;
for (int i = 0; i < mass.GetLength(0); i++)
{
for (int j = 0; j < mass.GetLength(1); j++)
{
if (test < i + j)
{
numb = numb + 1;
sum = sum + mass[i, j];
}
}
}
int srarf = sum / numb;
Console.WriteLine($"5) среднее арифметическое под побочной диагональю = {srarf}");
}
static void Transform(ref int[,] a)
{
int n = a.GetLength(0);
int buff;
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j <= a.GetLength(1) / 2; j++)
{
buff = a[i, j];
a[i, j] = a[i, n - j - 1];
a[i, n - j - 1] = buff;
}
}
}
static void Print(int[,] a)
{
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
Console.Write("{0,5} ", a[i, j]);
}
Console.WriteLine();
}
}
static void Transform2 (int[,] a) // 7 number
{
int row1;
int row2;
if (a.GetLength(0) % 2 == 0)
{
row1 = a.GetLength(0) / 2;
row2 = row1 - 1;
}
else
{
row1 = a.GetLength(0) / 2;
row2 = 0;
}
for (int i = 0; i < a.GetLength(1); i++)
{
int tmp = a[row1, i];
a[row1, i] = a[row2, i];
a[row2, i] = tmp;
}
}
static void Transform3(int[,] a) // 8 number
{
int col1;
int col2;
if (a.GetLength(0) % 2 == 0)
{
col1 = a.GetLength(1) / 2;
col2 = col1 - 1;
}
else
{
col1 = a.GetLength(1) / 2;
col2 = 0;
}
for (int i = 0; i < a.GetLength(0); i++)
{
int tmp = a[i , col1];
a[ i,col1] = a[ i,col2];
a[i, col2] = tmp;
}
}
static void Transform4(ref int[,] a) //9 не совсем
{
int n = a.GetLength(0);
int buff;
if (n%2 == 0)
{
for (int i = 0; i < a.GetLength(0)-1; i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
if (i != n-2)
{
buff = a[i, j];
a[i, j] = a[i + 1, j];
a[i + 1, j] = buff;
}
}
}
}
}
static void Main(string[] args)
{
Console.Write("Введите высоту массива: ");
int n = int.Parse(Console.ReadLine());
Console.Write("Введите длину массива: ");
int m = int.Parse(Console.ReadLine());
int[,] array1 = new int[n, m];
array1 = formirov2(array1, n, m);
Console.WriteLine("-------------------------------------------------------------------------------");
SRarf1(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
SRarf2(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
SummOnAditional(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
SummUpAditional(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
SummDownAditional(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
Transform(ref array1);
Console.WriteLine("6) Массив A - transform");
Print(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
Transform2(array1);
Console.WriteLine("7) Массив A - transform");
Print(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
Transform3(array1);
Console.WriteLine("8) Массив A - transform");
Print(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
Transform4(ref array1);
Console.WriteLine("9) Массив A - transform");
Print(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
Console.ReadKey();
}
}
}
internal class Program
{
static Random rand = new Random();
static int[,] formirov2(int[,] mass, int n, int m)
{
{
for (int i = 0; i < mass.GetLength(0); i++)
{
for (int j = 0; j < mass.GetLength(1); j++)
{
mass[i, j] = rand.Next(100);
Console.Write("{0,4}", mass[i, j]);
}
Console.WriteLine();
}
return mass;
}
}
static int[,] Max (int[,] mass)
{
{
int max = 0;
for (int i = 0; i < mass.GetLength(0); i++)
{
for (int j = 0; j < mass.GetLength(1); j++)
{
if (max < mass[i, j])
{
max = mass[i, j];
}
}
Console.WriteLine( max);
max = 0;
}
return mass;
}
}
static int[,] Min(int[,] mass)
{
{
int min = 9999;
for (int i = 0; i < mass.GetLength(0); i++)
{
for (int j = 0; j < mass.GetLength(1); j++)
{
if (min > mass[i, j])
{
min = mass[i, j];
}
}
Console.WriteLine(min);
min = 9999;
}
return mass;
}
}
static void Main(string[] args)
{
Console.Write("Введите размерность массива: ");
int n = int.Parse(Console.ReadLine());
int[,] array1 = new int[n, n];
array1 = formirov2(array1, n, n);
Console.WriteLine("");
Max(array1);
Console.WriteLine");
Min(array1);
Console.WriteLine("");
Console.ReadKey();
}
}
}
Контрольная работа. Двумерные массивы.
Критерии оценивания:
решено одно задание – «удовлетворительно»;
решено два задания – «хорошо»;
решено три задания – «отлично».
Задание 1.
Дан двумерный массив. Размерность массива вводится с
клавиатуры. Элементами массива являются целые числа. Для заданной
последовательности целых чисел:
1) заменить все положительные элементы противоположными им
числами;
internal class Program
{
static void Print(int[,] a)
{
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
Console.Write("{0,5} ", a[i, j]);
}
Console.WriteLine();
}
}
static void Input(out int[,] a)
{
Console.Write("n = ");
int n = int.Parse(Console.ReadLine());
Console.Write("m = ");
int m = int.Parse(Console.ReadLine());
Random rnd = new Random((int)DateTime.Now.Ticks);
a = new int[n, m];
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
a[i, j] = rnd.Next(-100, 100);
}
}
}
static void Pol(int[,] a)
{
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
if (a[i, j] > 0) a[i, j] *= -1;
}
}
Console.WriteLine("Изменённый массив: ");
Print(a);
}
static void Main(string[] args)
{
int[,] A;
Input(out A);
Console.WriteLine("Массив А:");
Print(A);
Console.WriteLine();
Pol(A);
Console.ReadKey();
}
}
Задание 2.
Дан двумерный массив. Размерность массива вводится с
клавиатуры. Элементами массива являются целые числа. Для заданного
массива n*n:
7) поменять местами две средних строки если количество строк четное
и первую со средней строкой, если количество строк четное и первую со
средней строкой, если количество строк нечетное;
Лабораторная работа №11. Методы сортировки массива
Постановка задачи. Для решения многих задач необходимо
упорядочить данные по определенному признаку. Процесс упорядочения
заданного множества объектов по заданному признаку называется
сортировкой. Для простоты изложения рассматривается одномерный массив
из целых чисел. Суть большинства алгоритмов сортировки от такого
упрощения не изменяется. Алгоритмы сортировки отличаются друг от друга
степенью эффективности, под которой понимается количество сравнений и
количество обменов, произведенных в процессе сортировки. В основном мы
будем оценивать эффективность количеством операций сравнения (порядком этого значения). Заметим, что элементы массива можно сортировать:
по возрастанию – каждый следующий элемент больше
предыдущего;
по неубыванию – каждый следующий элемент не меньше
предыдущего, то есть больше или равен;
по убыванию – каждый следующий элемент меньше
предыдущего;
по невозрастанию – каждый следующий элемент не больше
предыдущего, то есть меньше или равен.
Научившись выполнять одну сортировку, изменить ее, чтобы получить
другую, не составляет особого труда.
Задание 1.
Ознакомьтесь с алгоритмами сортировки простого выбора,
простого обмена, простой вставки.
Задание 2.
Запрограммируйте эти методы, стараясь не использовать
подсказки. Ниже приведены программные коды, реализующие эти методы.
Комментарий.
Класс предоставляет набор методов и свойств, которые можно
использовать для точного измерения затраченного времени.
Метод Start() запускает таймер, который измеряет время выполнения
Задание 3.
Проведите испытание. Задайте количество элементов в массиве 100,1000,10000,100000 и сравните время выполнения алгоритма. Какой алгоритм эффективнее? Для ответа на этот вопрос заполните таблицу (* заменить на полученные данные)
Задание 4. Как изменятся алгоритмы, если сортировать массив надо по убыванию.
static void Main(string[] args)
{
int n = 5;
int[] a = new int[n];
Random r = new Random();
for (int i = 0; i < n; i++)
{
a[i] = r.Next(0, 10);
Console.Write(a[i] + " ");
}
Stopwatch watch = new Stopwatch();
watch.Start();
for (int i = 1; i < n; i++)
{
int w = a[i];
int j = i - 1;
while (j >= 0 && w > a[j])
{
a[j + 1] = a[j];
j--;
}
a[j + 1] = w;
}
watch.Stop();
Console.WriteLine();
for (int i = 0; i < n; i++) Console.Write(a[i] + " ");
Console.WriteLine();
Console.WriteLine("Методпростогообмена");
Console.WriteLine("Сортировка массива из {0} элементов", n);
Console.WriteLine("Время выполнения программы в милисекундах:" + watch.ElapsedMilliseconds + "мс");
Console.WriteLine("Время выполнения программы в секундах:" + watch.Elapsed.Seconds + "сек");
Console.WriteLine("Время выполнения программы в тиках:" + watch.ElapsedTicks);
Console.ReadLine();
}
internalclassProgram
{
staticvoid Main(string[] args)
{
int n = 4;
int[] a = newint[n];
Random r = newRandom();
for (inti = 0; i< n; i++)
{
a[i] = r.Next(0,7);
Console.Write(a[i] + " ");
}
Stopwatch watch = newStopwatch();
watch.Start();
for (inti = 0; i< n - 1; i++)
{
int w;
for (int j = 0; j < n - i - 1; j++)
{
if (a[i] <= a[j+1])
{
w = a[j];
a[j] = a[j + 1]; a[j + 1] = w;
}
}
}
watch.Stop();
Console.WriteLine();
for (inti = 0; i< n; i++) Console.Write(a[i] + " ");
Console.WriteLine();
Console.WriteLine("Методпростоговыбора");
Console.WriteLine("Сортировка массива из {0} элементов", n);
Console.WriteLine("Время выполнения программы в миллесекундах: " + watch.ElapsedMilliseconds + "мс");
Console.WriteLine("Время выполненияпрограммы в секундах: " + watch.Elapsed.Seconds + "сек");
Console.WriteLine("Время выполнения программы в тиках: " + watch.ElapsedTicks);
Console.ReadLine();
}
}
}
Задание 5.
Известны значения роста 25 учащихся класса, заданные в
алфавитном порядке фамилий. Определить рост учащегося, который при
построении учащихся по росту в порядке возрастания занимал бы 10-е место
при счете от самого высокого ученика.
static void Print(int[] a)
{
for (int i = 0; i < a.Length; i++)
{
Console.Write(" {0,3} см |", a[i]);
}
}
static int[] Input()
{
Random rnd = new Random();
Console.Write("n=");
int n = int.Parse(Console.ReadLine());
int[] a = new int[n];
for (int i = 0; i < a.Length; i++)
{
a[i] = rnd.Next(150, 190);
}
return a;
}
static void Sort(int[] a)
{
int temp;
for (int i = 0; i < a.Length - 1; i++)
{
for (int j = a.Length - 1; j > i; j--)
{
if (a[j] < a[j - 1])
{
temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
}
}
}
}
static void Vibor(int[] a)
{
int temp1;
for (int i = 0; i < a.Length; i++)
{
for (int j = 0; j < a.Length; j++)
sum = sum + mass[i, j];
}
}
}
}
int srarf = sum / numb;
Console.WriteLine($"4) среднее арифметическое над побочной диагональю = {srarf}");
}
static void SummDownAditional(int[,] mass)
{
int sum = 0;
int numb = 0;
int test = mass.GetLength(0) - 1;
for (int i = 0; i < mass.GetLength(0); i++)
{
for (int j = 0; j < mass.GetLength(1); j++)
{
if (test < i + j)
{
numb = numb + 1;
sum = sum + mass[i, j];
}
}
}
int srarf = sum / numb;
Console.WriteLine($"5) среднее арифметическое под побочной диагональю = {srarf}");
}
static void Transform(ref int[,] a)
{
int n = a.GetLength(0);
int buff;
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j <= a.GetLength(1) / 2; j++)
{
buff = a[i, j];
a[i, j] = a[i, n - j - 1];
a[i, n - j - 1] = buff;
}
}
}
static void Print(int[,] a)
{
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
Console.Write("{0,5} ", a[i, j]);
}
Console.WriteLine();
}
}
static void Transform2 (int[,] a) // 7 number
{
int row1;
int row2;
if (a.GetLength(0) % 2 == 0)
{
row1 = a.GetLength(0) / 2;
row2 = row1 - 1;
}
else
{
row1 = a.GetLength(0) / 2;
row2 = 0;
}
for (int i = 0; i < a.GetLength(1); i++)
{
int tmp = a[row1, i];
a[row1, i] = a[row2, i];
a[row2, i] = tmp;
}
}
static void Transform3(int[,] a) // 8 number
{
int col1;
int col2;
if (a.GetLength(0) % 2 == 0)
{
col1 = a.GetLength(1) / 2;
col2 = col1 - 1;
}
else
{
col1 = a.GetLength(1) / 2;
col2 = 0;
}
for (int i = 0; i < a.GetLength(0); i++)
{
int tmp = a[i , col1];
a[ i,col1] = a[ i,col2];
a[i, col2] = tmp;
}
}
static void Transform4(ref int[,] a) //9 не совсем
{
int n = a.GetLength(0);
int buff;
if (n%2 == 0)
{
for (int i = 0; i < a.GetLength(0)-1; i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
if (i != n-2)
{
buff = a[i, j];
a[i, j] = a[i + 1, j];
a[i + 1, j] = buff;
}
}
}
}
}
static void Main(string[] args)
{
Console.Write("Введите высоту массива: ");
int n = int.Parse(Console.ReadLine());
Console.Write("Введите длину массива: ");
int m = int.Parse(Console.ReadLine());
int[,] array1 = new int[n, m];
array1 = formirov2(array1, n, m);
Console.WriteLine("-------------------------------------------------------------------------------");
SRarf1(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
SRarf2(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
SummOnAditional(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
SummUpAditional(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
SummDownAditional(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
Transform(ref array1);
Console.WriteLine("6) Массив A - transform");
Print(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
Transform2(array1);
Console.WriteLine("7) Массив A - transform");
Print(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
Transform3(array1);
Console.WriteLine("8) Массив A - transform");
Print(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
Transform4(ref array1);
Console.WriteLine("9) Массив A - transform");
Print(array1);
Console.WriteLine("-------------------------------------------------------------------------------");
Console.ReadKey();
}
}
}
internal class Program
{
static Random rand = new Random();
static int[,] formirov2(int[,] mass, int n, int m)
{
{
for (int i = 0; i < mass.GetLength(0); i++)
{
for (int j = 0; j < mass.GetLength(1); j++)
{
mass[i, j] = rand.Next(100);
Console.Write("{0,4}", mass[i, j]);
}
Console.WriteLine();
}
return mass;
}
}
static int[,] Max (int[,] mass)
{
{
int max = 0;
for (int i = 0; i < mass.GetLength(0); i++)
{
for (int j = 0; j < mass.GetLength(1); j++)
{
if (max < mass[i, j])
{
max = mass[i, j];
}
}
Console.WriteLine( max);
max = 0;
}
return mass;
}
}
static int[,] Min(int[,] mass)
{
{
int min = 9999;
for (int i = 0; i < mass.GetLength(0); i++)
{
for (int j = 0; j < mass.GetLength(1); j++)
{
if (min > mass[i, j])
{
min = mass[i, j];
}
}
Console.WriteLine(min);
min = 9999;
}
return mass;
}
}
static void Main(string[] args)
{
Console.Write("Введите размерность массива: ");
int n = int.Parse(Console.ReadLine());
int[,] array1 = new int[n, n];
array1 = formirov2(array1, n, n);
Console.WriteLine("");
Max(array1);
Console.WriteLine");
Min(array1);
Console.WriteLine("");
Console.ReadKey();
}
}
}
Контрольная работа. Двумерные массивы.
Критерии оценивания:
решено одно задание – «удовлетворительно»;
решено два задания – «хорошо»;
решено три задания – «отлично».
Задание 1.
Дан двумерный массив. Размерность массива вводится с
клавиатуры. Элементами массива являются целые числа. Для заданной
последовательности целых чисел:
1) заменить все положительные элементы противоположными им
числами;
internal class Program
{
static void Print(int[,] a)
{
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
Console.Write("{0,5} ", a[i, j]);
}
Console.WriteLine();
}
}
static void Input(out int[,] a)
{
Console.Write("n = ");
int n = int.Parse(Console.ReadLine());
Console.Write("m = ");
int m = int.Parse(Console.ReadLine());
Random rnd = new Random((int)DateTime.Now.Ticks);
a = new int[n, m];
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
a[i, j] = rnd.Next(-100, 100);
}
}
}
static void Pol(int[,] a)
{
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
if (a[i, j] > 0) a[i, j] *= -1;
}
}
Console.WriteLine("Изменённый массив: ");
Print(a);
}
static void Main(string[] args)
{
int[,] A;
Input(out A);
Console.WriteLine("Массив А:");
Print(A);
Console.WriteLine();
Pol(A);
Console.ReadKey();
}
}
Задание 2.
Дан двумерный массив. Размерность массива вводится с
клавиатуры. Элементами массива являются целые числа. Для заданного
массива n*n:
7) поменять местами две средних строки если количество строк четное
и первую со средней строкой, если количество строк четное и первую со
средней строкой, если количество строк нечетное;
Лабораторная работа №11. Методы сортировки массива
Постановка задачи. Для решения многих задач необходимо
упорядочить данные по определенному признаку. Процесс упорядочения
заданного множества объектов по заданному признаку называется
сортировкой. Для простоты изложения рассматривается одномерный массив
из целых чисел. Суть большинства алгоритмов сортировки от такого
упрощения не изменяется. Алгоритмы сортировки отличаются друг от друга
степенью эффективности, под которой понимается количество сравнений и
количество обменов, произведенных в процессе сортировки. В основном мы
будем оценивать эффективность количеством операций сравнения (порядком этого значения). Заметим, что элементы массива можно сортировать:
по возрастанию – каждый следующий элемент больше
предыдущего;
по неубыванию – каждый следующий элемент не меньше
предыдущего, то есть больше или равен;
по убыванию – каждый следующий элемент меньше
предыдущего;
по невозрастанию – каждый следующий элемент не больше
предыдущего, то есть меньше или равен.
Научившись выполнять одну сортировку, изменить ее, чтобы получить
другую, не составляет особого труда.
Задание 1.
Ознакомьтесь с алгоритмами сортировки простого выбора,
простого обмена, простой вставки.
Задание 2.
Запрограммируйте эти методы, стараясь не использовать
подсказки. Ниже приведены программные коды, реализующие эти методы.
Комментарий.
Класс предоставляет набор методов и свойств, которые можно
использовать для точного измерения затраченного времени.
Метод Start() запускает таймер, который измеряет время выполнения
Задание 3.
Проведите испытание. Задайте количество элементов в массиве 100,1000,10000,100000 и сравните время выполнения алгоритма. Какой алгоритм эффективнее? Для ответа на этот вопрос заполните таблицу (* заменить на полученные данные)
n метод | 100 | 1000 | 10000 | 100000 |
Метод простого выбора | 0мс 0 сек 243 тик | 1мс 0 сек 19971 тик | 201мс 0сек 2018233тик | 19256мс 19 сек 192566079тик |
Метод простых обменов | 0мс 0 сек 229 тик | 2мс 0 сек 28525 тик | 293мс 0 сек 2939699 тик | 27185мс 27 сек 271852247 тик |
Метод простых вставок | 0мс 0 сек 110 тик | 0мс 0 сек 7276 тик | 74мс 0 сек 741018 тик | 7561мс 7 сек 75613789 тик |
Задание 4. Как изменятся алгоритмы, если сортировать массив надо по убыванию.
static void Main(string[] args)
{
int n = 5;
int[] a = new int[n];
Random r = new Random();
for (int i = 0; i < n; i++)
{
a[i] = r.Next(0, 10);
Console.Write(a[i] + " ");
}
Stopwatch watch = new Stopwatch();
watch.Start();
for (int i = 1; i < n; i++)
{
int w = a[i];
int j = i - 1;
while (j >= 0 && w > a[j])
{
a[j + 1] = a[j];
j--;
}
a[j + 1] = w;
}
watch.Stop();
Console.WriteLine();
for (int i = 0; i < n; i++) Console.Write(a[i] + " ");
Console.WriteLine();
Console.WriteLine("Методпростогообмена");
Console.WriteLine("Сортировка массива из {0} элементов", n);
Console.WriteLine("Время выполнения программы в милисекундах:" + watch.ElapsedMilliseconds + "мс");
Console.WriteLine("Время выполнения программы в секундах:" + watch.Elapsed.Seconds + "сек");
Console.WriteLine("Время выполнения программы в тиках:" + watch.ElapsedTicks);
Console.ReadLine();
}
internalclassProgram
{
staticvoid Main(string[] args)
{
int n = 4;
int[] a = newint[n];
Random r = newRandom();
for (inti = 0; i< n; i++)
{
a[i] = r.Next(0,7);
Console.Write(a[i] + " ");
}
Stopwatch watch = newStopwatch();
watch.Start();
for (inti = 0; i< n - 1; i++)
{
int w;
for (int j = 0; j < n - i - 1; j++)
{
if (a[i] <= a[j+1])
{
w = a[j];
a[j] = a[j + 1]; a[j + 1] = w;
}
}
}
watch.Stop();
Console.WriteLine();
for (inti = 0; i< n; i++) Console.Write(a[i] + " ");
Console.WriteLine();
Console.WriteLine("Методпростоговыбора");
Console.WriteLine("Сортировка массива из {0} элементов", n);
Console.WriteLine("Время выполнения программы в миллесекундах: " + watch.ElapsedMilliseconds + "мс");
Console.WriteLine("Время выполненияпрограммы в секундах: " + watch.Elapsed.Seconds + "сек");
Console.WriteLine("Время выполнения программы в тиках: " + watch.ElapsedTicks);
Console.ReadLine();
}
}
}
Задание 5.
Известны значения роста 25 учащихся класса, заданные в
алфавитном порядке фамилий. Определить рост учащегося, который при
построении учащихся по росту в порядке возрастания занимал бы 10-е место
при счете от самого высокого ученика.
static void Print(int[] a)
{
for (int i = 0; i < a.Length; i++)
{
Console.Write(" {0,3} см |", a[i]);
}
}
static int[] Input()
{
Random rnd = new Random();
Console.Write("n=");
int n = int.Parse(Console.ReadLine());
int[] a = new int[n];
for (int i = 0; i < a.Length; i++)
{
a[i] = rnd.Next(150, 190);
}
return a;
}
static void Sort(int[] a)
{
int temp;
for (int i = 0; i < a.Length - 1; i++)
{
for (int j = a.Length - 1; j > i; j--)
{
if (a[j] < a[j - 1])
{
temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
}
}
}
}
static void Vibor(int[] a)
{
int temp1;
for (int i = 0; i < a.Length; i++)
{
for (int j = 0; j < a.Length; j++)