Поиск и преобразование элементов линейного массива
Задача 1. В одномерном массиве найти наибольший элемент.
Решение:
Зададим и распечатаем случайный массив из 10 целых чисел:
Program z1;
Const N=10; {Константа N будет содержать количество элементов массива}
Var A : Array [1..N] Of Integer;
I : Integer;
Begin
Randomize;
For I:=1 To N Do
Begin
A[I]:= random(100)-50;
Write(A[I],' ')
End;
End.
Для нахождения наибольшего или наименьшего элемента в некой совокупности данных, нужно перебирая все элементы совокупности, сравнивать их и запоминать удовлетворяющий условию.
Обозначим наибольший элемент переменной max.
На первом шаг за наибольший нужно взять первый элемент линейного массива, затем сравнивать все последующие элементы массива со значением max и выполнять замену, если найдем больший.
…
max:=a[1];
For iI:=2 To N Do
Begin
If A[i]> max then max:=a[i];
End;
Writeln(‘max=’,max:10:3);
…
Задача 2. В одномерном массиве поменяйте местами максимальный и минимальный элементы.
Решение: Найдем минимальный и максимальный элементы массива. Для того чтобы выполнить обмен значениями нужно знать на каком месте в массивах находятся минимум и максимум. Поэтому, определяя минимум и максимум, будем запоминать их порядковый номер:
…
max:=a[1]; k:=1;
min:=a[1]; m:=1;
For i:=2 To N Do
Begin
If A[i]> max then begin max:=a[i];k:=i; end;
If A[i]< min then begin min:=a[i];m:=i; end;
End;
A[k]:=min;
A[m]:=max;
…
Затем выведем массив на экран:
For i:=1 To N Do
Write (a[i]:10:3);