Содержание материала

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

 

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

 

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

 

Свойство Значение

 

ColCount 005

FixedCols 000

RowCount 001

DefaultRowHeight 024

Height 024

DefaultColWidth 064

Width 328

Options.goEditing True

Options.AlwaysShowEditing True

Options.goTabs True

 

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

 

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

Code:

unit lookmin_;

 

interface

 

uses

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 := 2to SIZE do

if a[i] < a[min] then

min := i;

// вывод результата

label2.caption := 'Минимальный элемент массива:'

+ IntToStr(a[min] + #13 + 'Номер элемента:' + IntToStr(min);

end;

 

end.

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить