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

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Всем привет, вот те и программист, элементарное не могу сообразить, зато что-то посложнее легко, короче, есть двумерный массив, заполненный цифрами, нужно найти максимальное и минимальное число в нем. Тоже самое надо сделать с одномерным :) ) Меня прям клинит на этом ;)
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Ну вот, кажись отпустило, наверное рано встал :)

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

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;
Blood_Magic
Сообщения: 273
Зарегистрирован: 30 июн 2005, 14:53

а в одном цикле слабо?
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Да ну чего тут сложно, меня клинило ваще на принципе поиска и сравнения числа :)

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

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;
Дальше та дорабатывать фигня ;)
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

А если элементов массива мало, можно ввести функции max и min для двух элементов, а потом написать:
max1:=max(a[1], max(a[2], max(a[3], max(a[4], a[5]))));
аналогично минимум
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить