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

End.

Begin

Var

Const

Implementation

Var

Public

Private

Type

Uses

Interface

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms, Dialogs, Menus, StdCtrls;

 

TForm1 = class(TForm)

Memo1: TMemo;

Button1: TButton;

Label1: TLabel;

 

procedure ButtonlClick(Sender: TObject);

 

{ Private declarations }

 

{ Public declarations }

end;

 

Forml: TForm1;

 

($R *.DFM}

procedure TForml .ButtonlClick(Sender: TObject);

SIZE=5; // размер массива

 

a:array[l..SIZE]of string[30]; //массив

n: integer; // количество строк, введенных в поле Memo

i:integer; // индекс элемента массива

st:string;

 

n:=Memo1.Lines.Count;

if n = 0 then begin

ShowMessage('Исходные данные не введены!');

Exit; // выход из процедуры обработки события

end;

 

// в поле Memo есть текст

if n > SIZE then begin

ShowMessage('Количество строк превышает размер массива.');

n:=SIZE; // будем вводить только первые SIZE строк

end;

 

for i:=1 to n do

a[i]:=Form1.Memol.Lines[i-1]; // строки Memo пронумерованы с нуля

 

// вывод массива в окно сообщения

if n > 0 then begin

st:='Введенный массив:'+#13;

 

for i: =1 to n do

st:=st+IntToStr(i)+' '+ a[i]+f13;

ShowMessage(st);

end;

end;

 

 

Основную работу выполняет процедура TForm1.Button1Click, которая сначала проверяет, есть ли в поле Memo1 текст. Если текст есть (в этом случае значение свойства Lines.Count больше нуля), то процедура сравнивает количество введенных строк и размер массива. Если это количество превышает размер массива, то программа изменяет значение п, тем самым подготавливает ввод только первых SIZE строк.

 

На Рисунок 19.5 приведен вид диалогового окна приложения Ввод массива. После щелчка на командной кнопке Ввод появляется окно (Рисунок 19.6), которое содержит значения элементов массива, полученные из Memo-поля.

 

Рисунок 19.5 - Окно приложения Ввод массива

 

Рисунок 19.6 - Массив, введенный из Memo-поля

 

 

Задачу поиска минимального элемента массива рассмотрим на примере массива целых чисел.

Алгоритм поиска минимального (максимального) элемента массива довольно очевиден: сначала делается предположение, что первый элемент массива является минимальным (максимальным), затем остальные элементы массива последовательно сравниваются с этим элементом. Если во время очередной проверки обнаруживается, что проверяемый элемент меньше (больше) принятого за минимальный (максимальный), то этот элемент становится минимальным (максимальным) и продолжается проверка оставшихся элементов.

Диалоговое окно приложения поиска минимального элемента массива содержит соответствующим образом настроенный компонент stringGridi, который применяется для ввода элементов массива, два поля меток (Label1 и Label2), использующиеся для вывода информационного сообщения и результата работы программы, и командную кнопку (Buttonl), при щелчке на которой выполняется поиск минимального элемента массива.

В листинге 6 приведена процедура обработки события OnClick для командной кнопки Button1, которая вводит массив, выполняет поиск минимального элемента и выводит результат — номер и значение минимального элемента массива.

 

Листинг 6. Поиск минимального элемента массива

 

unit lookmin_;