Поиск максимального (минимального) элемента в массиве Вариант 1.В самом простом варианте эта задача решается очень легко: 1. Заполняем массив одним из возможных способов (с клавиатуры, с помощью датчика случайных чисел); 2. За максимальный элемент берем первый; 3. Начиная со второго элемента, просматриваем все элементы, сравнивая их с максимальным; 4. Если находится элемент более максимального, меняем значение максимального на найденный элемент; 5. Выводим на экран максимальный элемент. 6. Текст программы : Program Maxim1; Const n=10; Var a: array [1..n] of unteger; Max, i:integer; Begin For i:=1 to n do readln(a[i]); Max:=a[1]; For i:=2 to n do If a[i]>max then max:=a[i]; Writeln(max); End. Т.о. будет найден первый максимальный элемент в массиве целых чисел, если их там несколько, или просто максимальный элемент, если он там один. Если использовать в сравнении операцию >=, то в случае, когда максимальных элементов несколько, буде найден последний из них. Подумайте, почему? Очевидно, что поиск минимального элемента осуществляется точно так же, с заменой на операцию сравнения < или <=. Вариант 2. На поиск максимального элемента накладывается дополнительное условие. Например, найти максимальный элемент среди четных элементов массива. В этом случае нельзя просто в качестве максимального взять первый элемент, т.к. он может оказаться нечетным и очень большим по значению. Тогда никакой более элемент этого массива не будет больше него, в том числе и четный. В этом случае за максимальный элемент надо взять первый встретившийся вам четный и от него вести поиск максимального четного. Текст программы: Program Maxim2; Const n=10; Var a: array [1..n] of unteger; Max, i,j:integer; Begin For i:=1 to n do readln(a[i]); I:=1; While (i<=n) and (a[i] mod 2<>0) do i:=i+1; {пока мы находимся внутри массива и встречаем нечетный элемент, просто продвигаемся вперед} If i<=n then Begin Max:=a[i]; {мы не вышли за границы массива и нашли первый четный, запоминаем его в max} for j:=i+1 to n do {просматриваем элементы со следующего номера, для этого используем другую переменную – j, и ищем среди них четный максимальный } if (a[j]mod 2=0) and (a[j]>max) then max:=a[j]; writeln (max); end else writeln (‘dostignut konec massiva’); End. Вариант 3. В условии задачи задан диапазон представления элементов массива. Например, задан массив натуральных чисел, которые не превосходят 10000. Найти среди них минимальный элемент нечетный элемент. Очевидно, что числа в массиве лежат в диапазоне от 1 до 10000. В этом случае за минимальный элемент мы возьмем максимальное невозможное значение, т.е. 100001 (Нечетное! Если бы требовалось искать максимум среди четных, взяли 10002). Текст программы: Program Maxim3; Const n=10; Var a: array [1..n] of unteger; Min, i:integer; Begin For i:=1 to n do readln(a[i]); Min:=10001; For i:=1 to n do If (a[i]mod 2<>0) and (a[i]<min) then min:=a[i]; Writeln(min); End. Искать максиму надо от минимального невозможного значения.