Тема: Массивы
Показать сообщение отдельно
  #15  
Старый 25.12.2010, 02:28
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

По координатам отрезков вы можете определить их длину. А зная длину каждого из отрезком можно найти наиболее длинный, а это как я уже говорил задача на поиск максимума:
Код:
program Project12;

{$APPTYPE CONSOLE}

uses
  SysUtils;

Const
  Count = 100;
Type
  TColor = (White, Black);
Var
  i,Max: Integer;
  Coords: Array[1..Count] of record X1,X2: Integer; Color: TColor; end;
begin
 Randomize;
 for i := 1 to Count
 do begin
    if i = 1
    then Coords[i].X1 := Random(1000)
    else Coords[i].X1 := Coords[i-1].X2 + Random(1000);
    Coords[i].X2 := Coords[i].X1 + Random(1000);
    Coords[i].Color := TColor(Random(2));
    WriteLn(Coords[i].X2 - Coords[i].X1:10,Ord(Coords[i].Color):2);
    end;

 for i := 1 to Count
 do if Coords[i].Color = White
    then begin
         Max := i;
         Break;
         end;

 for i := Max to Count
 do if (Coords[i].Color = White) and ((Coords[i].X2 - Coords[i].X1) > (Coords[Max].X2 - Coords[Max].X1))
    then Max := i;

 WriteLn;
 WriteLn(Coords[Max].X1,Coords[Max].X2:10,Coords[Max].X2 - Coords[Max].X1:10,Ord(Coords[Max].Color):2);
 ReadLn;
end.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием