Операции с массивами.
Типичными операциями при работе с массивами
является:
ü Ввод массива
ü Вывод массива
ü Поиск минимального и максимального элемента массива
ü Поиск заданного элемента массива
ü Сортировка массива
Задача 1. Используя в качестве примера приложение
«Массивы 2» из папки «Задание», составить проект, в котором идёт поиск
минимального(максимального) элемента заданного
массива.
Код программы:
procedure TForm1.Button1Click(Sender: TObject);
const
SIZE=5;
var
a:array[1..SIZE]of integer; // массив целых
min:integer;
// номер минимального эл-та массива
i:integer; //
номер эл-та, сравниваемого с
минимальным
begin // ввод массива
for
i:=1 to SIZE do
a[i]:=StrToInt(StringGrid1.Cells[i-1,0]); // поиск минимального элемента
min:=1; // пусть первый элемент минимальный
for i:=2 to SIZE do
if a[i]< a[min]then min:=i;
// вывод результата
label2.caption:='Минимальный элемент массива:'+IntToStr(a[min])
+#13+'Номер элемента:'+ IntToStr(min);
end;
Задача 2. Используя в качестве примера приложение
«Массивы 3» из папки «Задание», составить проект, в котором идёт
сортировка массива по возрастанию
методом «пузырька»(сравнения и обмена элементов
массива).
Код программы:
procedure TForm1.Button1Click(Sender: TObject);
const
SIZE=5;
var a:array[1..SIZE]
of integer;
k:integer; // текущий элемент массива
i:integer; // индекс для ввода и вывода массива
changed:boolean; // TRUE, если в текущем цикле были обмены
buf:integer; // буфер для обмена элементов массива
begin
// ввод массива
for i:=1 to SIZE do a[i] := StrToInt(StringGrid1.Cells[i-1,0]);
label2.caption:=''; // сортирвка
массива
repeat
changed:=FALSE; // пусть в текущем цикле нет обменов
for k:=1 to SIZE-1 do
if
a[k] > a[k+1] then
begin // обменяем k-ый и k+1-ый элементы
buf := a[k];
a[k] := a[k+1];
a[k+1] := buf;
changed
:= TRUE;
end; // вывод массива
for i:=1 to SIZE do
Label2.caption:=label2.caption+' '+IntTostr(a[i]);
Label2.caption:=label2.caption+#13;
until not changed; // если не было обменов, значит массив отсортирован
Label2.caption:=label2.caption+#13+'Массив отсортирован.';
end;