Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2012, 22:37   #1
apelsun
Пользователь
 
Регистрация: 03.05.2012
Сообщений: 24
По умолчанию поиск минимального и максимального элемента

Задача Найти минимальный и максимальный элемент в массиве.

Массив сгенерировала, а вот с поиском что-то не так. совсем запуталась уже.
Код:
unit Unit1;

interface

uses
  SysUtils, Types, Classes, Variants, QTypes, QGraphics, QControls, QForms, 
  QDialogs, QStdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Button4: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
   s, ss: string;
   a: array [1..15] of integer;
   I, j, k, max, min, p, code : integer;
implementation

{$R *.xfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:= '';
Edit2.Text:= '';
Edit3.Text:= '';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:= '';
Edit2.Text:= '';
Edit3.Text:= '';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button3Click(Sender: TObject); // минимальное и максимальное число
begin
s:=Edit1.Text;
s:= concat (s, #32);
i:= 0;
while Length(s)>0 do
begin
i:= i+1;
p:= pos (#32,s);
ss:= copy (s,1,p-1);
Val (ss,k,code);
a[i]:= k;
delete(s,1,p);
end;
max:= a[1];
For j:= 1 to i do
if max< a[j] then max:= a[j];
min:= a[1];
For j := 1 to i do
if min> a[j] then min:= a[j];
Edit3.Text:= IntToStr (max);
Edit2.Text:= IntToStr (min);
end;

procedure TForm1.Button4Click(Sender: TObject); // генерация массива
begin
randomize;
s:= '';
For i:= 1 to 15 do
begin
a[i]:= random (26);
s:= concat (s, IntToStr (a[i]), #32);
end;
Edit1.Text := s;

end;

end.

Последний раз редактировалось Stilet; 09.11.2012 в 23:08.
apelsun вне форума Ответить с цитированием
Старый 09.11.2012, 23:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
procedure TForm1.Button3Click(Sender: TObject); // минимальное и максимальное число
Выкинь этот обработчик.

Вот смотри:
Код:
procedure TForm1.Button4Click(Sender: TObject); // генерация массива
begin
randomize; max:=-MaxInt; min:=MaxInt;
s:= '';
For i:= 1 to 15 do begin
 a[i]:= random (26);
 if max< a[i] then max:= a[i];
 if min> a[i] then min:= a[i];
 s:= concat (s, IntToStr (a[i]), #32);
end;
Edit1.Text := s;
Edit3.Text:= IntToStr (max);
Edit2.Text:= IntToStr (min);
end;
И все, не нужно лишнего городить.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2012, 23:46   #3
apelsun
Пользователь
 
Регистрация: 03.05.2012
Сообщений: 24
По умолчанию

а если все же, необходима кнопка генерации массива, можно разделить поиск и генерацию?
apelsun вне форума Ответить с цитированием
Старый 10.11.2012, 00:09   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Можно но зачем парсить Эдит?
Код:
procedure TForm1.Button4Click(Sender: TObject); // генерация массива
begin
randomize; 
For i:= 1 to 15 do begin
 a[i]:= random (26);
end;
end;
Код:
procedure TForm1.Button3Click(Sender: TObject); // минимальное и максимальное число 
begin
randomize; max:=-MaxInt; min:=MaxInt;
s:= '';
For i:= 1 to 15 do begin
 if max< a[i] then max:= a[i];
 if min> a[i] then min:= a[i];
end;
Edit3.Text:= IntToStr (max);
Edit2.Text:= IntToStr (min);
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск максимального и минимального элемента в одномерном динамическом массиве GMeloman Общие вопросы C/C++ 7 11.06.2012 10:09
Поиск максимального (минимального) элемента массива в Delphi ICE1589 Помощь студентам 0 08.04.2011 13:32
Поиск минимального и максимального элемента в двухмерном массиве. Dem6 Общие вопросы Delphi 10 30.11.2009 20:22
Поиск максимального и минимального элемента массива(с существенным дополнением) Dayterius Паскаль, Turbo Pascal, PascalABC.NET 6 20.05.2009 11:37
Поиск минимального (максимального) элемента массива Radamant Помощь студентам 10 24.12.2008 17:44