Показать сообщение отдельно
Старый 01.12.2009, 22:02   #17 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Dram Посмотреть сообщение
вот кажись узнал полностью условия. дан квадрат 1000на1000 в нем. нужно вырезать прямоугольники. определенного размера,определенное количество раз. размер прямоугольников(лев нижний и правый верхний угол) и их количество задается с клафиатуры. и прога далжна выдовать пелучится вырезать или нет. А можно сразу прогу? а то уже сроки поджимают.
Можно. Хотя, по-моему, проще самому написать, чем в чужой разбираться. Ну как угодно:

Код:
CONST
 Nmax=10; {Max number of rectangles}
VAR
 i,j,N:INTEGER;
 b:BOOLEAN;
 X1,Y1,X2,Y2:ARRAY[1..Nmax] of INTEGER;
BEGIN
 Write('Number of rectangles = ');
 ReadLn(N);
 b:=TRUE;
 i:=0;
 REPEAT
  INC(i);
  REPEAT
   Write('Right Top X of rectangle N',i,' = ');
   ReadLn(X1[i]);
   Write('Right Top Y of rectangle N',i,' = ');
   ReadLn(Y1[i]);
   Write('Left Bottom X of rectangle N',i,' = ');
   ReadLn(X2[i]);
   Write('Left Bottom Y of rectangle N',i,' = ');
   ReadLn(Y2[i]);
   IF (X1[i]<=X2[i]) OR (Y1[i]<=Y2[i]) THEN
    Writeln ('Wrong values!');
  UNTIL (X1[i]>X2[i]) AND (Y1[i]>Y2[i]);
  IF (X1[i]>1000) OR (Y1[i]>1000) OR (X2[i]<0) OR (Y2[i]<0)
   THEN
    BEGIN
     b:=FALSE;
     WriteLn('Figure N',i,' is out of range!');
    END;
  IF b THEN
   BEGIN
    FOR j:=1 TO i-1 DO
     IF ((X1[i]>X2[j]) AND (X2[i]<X1[j]))
        AND
        (((Y1[i]>Y2[j]) AND (Y2[i]<Y1[j])) OR
         ((Y2[i]<Y1[j]) AND (Y1[i]>Y2[j]))) THEN
      BEGIN
       b:=FALSE;
       WriteLn('Figure N',i,' overlaps figure N',j);
      END;
   END;
 UNTIL (b=FALSE) OR (i=N);
 IF b AND (i=N) THEN WriteLn('Everything is OK!');
 ReadLn;
END.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070