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 строк.
|
|
На рис. 10 приведен вид диалогового окна приложения Ввод массива. После щелчка на командной кнопке Ввод появляется окно, которое содержит значения элементов массива, полученные из Memo-поля.
Рисунок 10 - Окно приложения Ввод массива
Рисунок 11 - Массив, введенный из Memo-поля
Задачу поиска минимального элемента массива рассмотрим на примере массива целых чисел.
Алгоритм поиска минимального (максимального) элемента массива довольно очевиден: сначала делается предположение, что первый элемент массива является минимальным (максимальным), затем остальные элементы массива последовательно сравниваются с этим элементом. Если во время очередной проверки обнаруживается, что проверяемый элемент меньше (больше) принятого за минимальный (максимальный), то этот элемент становится минимальным (максимальным) и продолжается проверка оставшихся элементов.
Диалоговое окно приложения поиска минимального элемента массива содержит соответствующим образом настроенный компонент stringGridi, который применяется для ввода элементов массива, два поля меток (Label1 и Label2), использующиеся для вывода информационного сообщения и результата работы программы, и командную кнопку (Buttonl), при щелчке на которой выполняется поиск минимального элемента массива.
В листинге 6 приведена процедура обработки события OnClick для командной кнопки Button1, которая вводит массив, выполняет поиск минимального элемента и выводит результат — номер и значение минимального элемента массива.
|
|
Листинг 6. Поиск минимального элемента массива
unit lookmin_;