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

Материал из DRKB

Поиск минимального (максимального) элемента массива , статистика элементов массива[править | править код]

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

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

Диалоговое окно приложения поиска минимального элемента массива содержит соответствующим образом настроенный компонент 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. Поиск минимального элемента массива


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 := 2 to SIZE do
    if a[i] < a[min] then
      min := i;
  // вывод результата
  label2.caption := 'Минимальный элемент массива:'
    + IntToStr(a[min] + #13 + 'Номер элемента:' + IntToStr(min);
end;

end.


http://delphiworld.narod.ru/ DelphiWorld 6.0


Source: http://delphiworld.narod.ru
ID: 00806



Примечание от Vit: боюсь что код приведенный выше представляет интерес для студентов и тех кто изучает алгоритмы програмирования, для тех же кто занимается практической деятельностью изобретать велосипед нет смысла, всё уже сделано до нас, осталосьт заглянуть в модуль Math от Delphi и найти в нём функции нахождения требуемых величин:

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


Author: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
ID: 00807