Показать сообщение отдельно
  #1  
Старый 11.08.2015, 13:25
dimavit dimavit вне форума
Прохожий
 
Регистрация: 09.05.2012
Сообщения: 3
Репутация: 10
По умолчанию Использование оператора Case - Basic vs Pascal

Столкнулся с проблемой, которая очень просто решается на любом другом языке. Нужно написать код, использующий координаты двух точек A(x1; y1) и B(x2; y2). Например, на бейсико подобном языке все выглядит логично и просто:
Код:
x1 = Random(500)
y1 = Random(500)
x2 = Random(500)
y2 = Random(500)
DeltaX = x2 - x1
DeltaY = y2 - y1
x =0
y = 0
STEP = 10

Select
  Case (DeltaX = 0) And (DeltaY = 0)
      x := x1;
      y := y1;
  Case DeltaX = 0
      x = x1
      y = y1 + STEP
  Case DeltaY = 0
      y = y1
      x = x1 + STEP
  Case else
      //Здесь размещается основной код
EndSelect

Неужели, для того, чтобы сделать то же самое на Паскале необходимо написать такого монстра:

Код:
begin
  Randomize;
  x1 := Random(500);
  y1 := Random(500);
  x2 := Random(500);
  y2 := Random(500);
  DeltaX := x2 - x1;
  DeltaY := y2 - y1;
  x :=0;
  y := 0;

  If (DeltaX = 0) And (DeltaY = 0) then  //3
  begin
    x := x1;
    y := y1;
  end
  else
  begin
    If DeltaX = 0 then                   //2
    begin
      x := x1;
      y := y1 + STEP;
    end
    else
    begin
      If DeltaY = 0 Then                 //1
      begin
        y := y1;
        x := x1 + STEP;
      end
      else
      begin
        //Здесь размещается основной код
      end                                //1
    end                                  //2
  end;                                   //3

end;

end.
Ответить с цитированием