Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПргЯВУ_ЛК_СтефановаИА.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
4.41 Mб
Скачать

Поиск максимального ( или минимального ) элемента массива

Алгоритм поиска. Делается предположение, что 1-й элемент массива max (min), затем все элементы массива сравниваются с ним. Если во время проверки обнаруживается, что очередной элемент больше (меньше) принятого за max (min), то этот элемент становится максимальным (минимальным).

Задача 1. В массиве X из 10 элементов вычислить наибольший элемент массива и его номер.

static void Main(string[] args)

{

int[] X = new int[10]{-5, 6, -8, 2, 4, 9, -7, 4, 1, 0};

// одномерный массив Х из 10 целых чисел

int Xmax; // максимальный элемент

int Imax; // номер максимального элемента

for (int i = 0; i < 10; i++)

Console.WriteLine("X[" + i + "]=" + X[i]);

Console.WriteLine(); // вывод элементов массива

Xmax = X[0]; // предположение

Imax = 0;

for (int i = 1; i < 10; i++)

if (X[i] > Xmax)

{

Xmax = X[i]; // выявление max

Imax = i;

}

Console.WriteLine("Максимальный элемент: {0} ", Xmax);

Console.WriteLine("Его номер: {0} ", Imax+1);

Console.ReadKey();

}

При выявлении минимального элемента условие > заменяется на < :

if (X[i] < Xmin)

{

Xmin = X[i]; // выявление min

Imin = i; // его номера

}

Поиск заданного элемента массива

Под поиском заданного элемента массива понимается необходимость определить, содержит ли массив определенную информацию или нет. Наиболее простой алгоритм поиска – простой перебор неупорядоченных элементов.

Поиск осуществляется последовательным сравнением элементов массива с образцом до тех пор, пока не будет найден элемент, равный образцу, или пока не будут проверены все элементы.

Для поиска элементов используют операторы цикла for, while или do ... while

Задача2. Найти заданный элемент в массиве и вывести его на экран дисплея.

s tatic void Main(string[] args)

{

int[] Mas = new int[10]{-5, 6, -8, 2, 4, 9, -7, 4, 1, 0};

// одномерный массив Mas из 10 целых чисел

int obr; // образец для поиска

bool Yes; // признак обнаружения

int i; //счетчик цикла

for (i = 0; i < 10; i++)

Console.WriteLine("Mas[" + i + "]=" + Mas[i]);

Console.WriteLine();

Console.WriteLine("Введите образец для поиска");

obr = Convert.ToInt16(Console.ReadLine());

Yes = false;

i=0;

do

{

if (Mas[ i ]==obr )

{

Yes=true;

break;

}

else i=i+1;

}

while ( i<10 | Yes == true);

if (Yes == true) Console.WriteLine("Имеется

совпадение с элементом {0}. Его индекс: {1}", Mas[i], i );

else Console.WriteLine("Совпадение с образцом отсутствует ");

Console.ReadKey();

}