Полезная статья? Пожалуйста, поставьте "+"
Алгоритмизация и программирование - Содержание Задачу поиска минимального элемента массива рассмотрим на примере массива целых чисел.
Алгоритм
поиска минимального (максимального) элемента массива довольно
очевиден: сначала делается предположение, что первый элемент массива
является минимальным (максимальным), затем остальные элементы массива
последовательно сравниваются с этим элементом. Если во время очередной
проверки обнаруживается, что проверяемый элемент меньше (больше)
принятого за минимальный (максимальный), то этот элемент становится
минимальным (максимальным) и продолжается проверка оставшихся
элементов.
Диалоговое
окно приложения поиска минимального элемента массива содержит
соответствующим образом настроенный компонент stringGridi, который
применяется для ввода элементов массива, два поля меток (Label1 и
Labeia), использующиеся для вывода информационного сообщения и
результата работы программы, и командную кнопку (Buttonl), при щелчке
на которой выполняется поиск минимального элемента массива. В табл. 5.4
приведены значения свойств компонента stringGridi.
Таблица 5.4. Значения свойств компонента stringGridi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Options . AlwaysShowEditing
|
|
|
|
|
|
|
|
|
|
|
В
листинге 5.6 приведена процедура обработки события Onclick для
командной кнопки Button1, которая вводит массив, выполняет поиск
мини-мального элемента и выводит результат — номер и значение
минимального элемента массива.
Листинг 5.6. Поиск минимального элемента массива
unit lookmin_;
interface
Windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Label2: TLabel;
StringGridl: TStringGrid;
procedure ButtonlClick(Sender: TObject); private
{Private declarations )
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.ButtonlClick(Sender: TObject);
const
SIZE=5;
var
a:array[l..SIZE]of integer; // массив целых
min:integer; // номер минимального элемента массива
i:integer; // номер элемента, сравниваемого с минимальным
begin
// ввод массива for i:=1 to SIZE do
a[i]:=StrToInt(StringGridl.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;
end.
|