Операции с массивами.

  Типичными операциями при работе с массивами является:

ü      Ввод массива

ü      Вывод массива

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

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

ü      Сортировка массива

 

Задача 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;

Сайт создан в системе uCoz