Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Delphi_Ч2.doc
Скачиваний:
15
Добавлен:
02.11.2018
Размер:
1.7 Mб
Скачать

Процедура вывода массива в компонент tMemo

В эту процедуру передается ссылка на массив, количество элементов массива, и ссылка на компонент типа TMemo, в котором в виде последовательности строк будут записаны элементы массива. В результате массив расположится вертикально.

//Вывод массива в MEMO

procedure showArrayInMemo(const a:TArray100; count:integer; mem:TMemo);

var i:integer;

begin

mem.clear;

for i := 1 to count do

begin

mem.Lines.Append(intToStr(a[i]));

end;

end;

      1. Обработка массивов

Операции с массивами также целесообразно оформить в виде процедур и функций. Эти подпрограммы добавлены в модуль UnitArrayDop.

Функция вычисления суммы элементов массива

В функцию передается ссылка на массив и его размер. Возвращает функция сумму элементов массива.

//Вычисление суммы элементов

function sumArray(const a:TArray100; count:integer):integer;

var i:integer;

begin

result:=0;

for i:=1 to count do result := result + a[i];

end;

Процедура определения минимального, максимального, и их индексов в массиве

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

//Вычисление максимального и минимального и их индексов

procedure minMax(const a:TArray100; count:integer;

var min, max, iMax, iMin: integer);

var i: integer;

begin

min := a[1]; max := a[1];

for i := 1 to count do

if a[i] > max

then begin

max := a[i];

iMax := i;

end

else if a[i] < min

then begin

min := a[i];

iMin := i;

end;

end;

Функция определения позиции элемента в массиве

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

//Определение позиции элемента

function posInArray(element: integer; const a: TArray100; count: integer): integer;

var i: integer;

begin

Result := 0;

For i := 1 to count do

if a[i] = element

then begin

result := i;

exit;

end;

end;

Процедура удаления элементов из массива

В этой процедуре элементы массива перебираются, пока не будет найден заданный элемент. После этого все оставшиеся элементы сдвигаются влево на одну позицию, занимая место удаляемого, а размер массива уменьшается на 1. После этого поиск продолжается, пока не будет достигнут конец массива.

//Удаление элемента из массива

procedure delElem(element: integer; var a: TArray100; var count: integer);

var i, j: integer;

begin

i := 1;

while i <= count do

begin

if a[i] = element then

begin

count := count - 1;

for j := i to count do a[j] := a[j+1];

end

else i := i + 1;

end;

end;