Страница 1 из 1

Кажись смешно,а заклинило...MAX,MIN

Добавлено: 15 май 2006, 09:16
Dr_Grizzly
Всем привет, вот те и программист, элементарное не могу сообразить, зато что-то посложнее легко, короче, есть двумерный массив, заполненный цифрами, нужно найти максимальное и минимальное число в нем. Тоже самое надо сделать с одномерным :) ) Меня прям клинит на этом ;)

Добавлено: 15 май 2006, 11:01
Dr_Grizzly
Ну вот, кажись отпустило, наверное рано встал :)

Код: Выделить всё

procedure TForm1.Button2Click(Sender: TObject);
var
Mas:Array[1..5,1..5] of Integer;
Max,x,y:Integer;
begin
Randomize;

 For x:=1 to 5 do
  For y:=1 to 5 do
  mas[x,y]:=Random(50);

  Label2.Caption:='';

 For x:=1 to 5 do
   For y:=1 to 5 do
    Label2.Caption:=Label2.Caption+IntToStr(mas[x,y])+' ';

Max:=Mas[1,1];
 For x:=1 to 5 do
  For y:=1 to 5 do
  If Mas[x,y]>Max then
   Max:=Mas[x,y];

Edit2.Text:=IntToStr(Max);

end;
А это одномерный

Код: Выделить всё


procedure TForm1.Button1Click(Sender: TObject);
var
max,min,s,i:Integer;
Edit: Array[1..5] of Integer;
begin
Randomize;

 For i:=1 to 5 do
  Edit[i]:=Random(10);

  Label1.Caption:='';

 For i:=1 to 5 do
  Label1.Caption:=Label1.Caption+' '+IntToStr(Edit[i]);

Max:=Edit[1];
 For i:=1 to 5 do
  If Edit[i]>Max then
   Max:=Edit[i];

Min:=Edit[1];
 For i:=1 to 5 do
  If Edit[i]<Min then
   Min:=Edit[i];


Edit1.Text:=IntToStr(Max)+' '+IntToStr(Min);

end;

Добавлено: 15 май 2006, 16:32
Blood_Magic
а в одном цикле слабо?

Добавлено: 15 май 2006, 22:29
Dr_Grizzly
Да ну чего тут сложно, меня клинило ваще на принципе поиска и сравнения числа :)

Код: Выделить всё

Max:=Edit[1]; 
Min:=Edit[1]; 
 For i:=1 to 5 do 
 Begin
  If Edit[i]>Max then 
   Max:=Edit[i]; 
  If Edit[i]<Min then 
   Min:=Edit[i]; 
 end;
Дальше та дорабатывать фигня ;)

Добавлено: 10 июл 2006, 11:25
Хыиуду
А если элементов массива мало, можно ввести функции max и min для двух элементов, а потом написать:
max1:=max(a[1], max(a[2], max(a[3], max(a[4], a[5]))));
аналогично минимум