GotoXY в Pascal.

Процедура GotoXY используется в Pascal для перевода курсора в нужную позицию на экране. Для этой процедуры указываются координаты. После указания процедуры GotoXY в коде программы сообщение будет выводиться на экран в тех координатах, которые мы ...

Строки в Паскаль.

Тип данных String (строковый тип) используется в Паскаль для обработки текстов. Если в одну переменную типа Char можно записать лишь один символ, то в переменную типа String можно записать до 255 символов.

Константы в Pascal.

Иногда, бывает так, что у нас в программе встречаются величины, которые не меняются в процессе выполнения программы (т.е. фактически они противоположность переменных). Такие величины называются константами. Константы указываются в специальном ...

Циклы и массивы

Вычисление предела последовательности.

Вычисление предела последовательности является типичной задачей на использование итерационного цикла.

Программирование циклов. Оператор безусловного перехода.

Цикл — это последовательность операторов, которая может выполняться более одного раза. В языке Паскаль разработано три механизма для конструирования циклов, использующих операторы FOR, WHILE, REPEAT.

...

Иногда его называют также оператором выбора. Это оператор CASE, который является обобщением оператора IF и позволяет сделать выбор из произвольного числа имеющихся вариантов.

 Формат оператора варианта:
CASE <Выражение-селектор> OF
           < Список 1>: <Оператор 1 >;
           <Список 2>: <Оператор 2 >;
           …
           <Список N>: <Оператор N >
           [ ELSE <Оператор N+1> ];
END;
В этой конструкции <Выражение селектор> может быть любого перечисляемого типа: стандартного (INTEGER, BOOLEAN, CHAR и т.д.) или пользовательского. <Список i> представляет собой подмножество значений, разделенных через запятую, выражения-селектора при которых следует выполнить <оператор i>. Оператор ELSE может отсутствовать. Если выражение-селектор принимает значение, которое не входит ни в один из списков 1,2,N, то в этом случае выполняется оператор N+1, стоящий за ELSE. Когда оператор ELSE отсутствует, вместо оператора N+1 выполняется пустой оператор. Далее приведен алгоритм оператора CASE ... OF:

case

Вариант, помеченный словом 'Иначе', соответствует ветке ELSE оператора CASE. Если ELSE отсутствует, то в блок-схеме нет этой ветви. Оператор CASE ... OF работает следующим образом:

  • Вычисляется значение выражения селектора – G.
  • Значение G сравнивается с множеством значений, представленных в списке 1. Если в списке есть такое значение, то выполняется оператор 1.
  • Если в списке 1 нет значения G, то проверяется список 2. Если найдено в списке 2 значение G, то выполняется оператор 2 и т.д.
  • Если значение G не найдено ни в одном из списков с номерами 1, 2, 3,..., N, то выполняется оператор N + 1.
  • Если в операторе CASE нет ветки ELSE и значение G не найдено ни в одном из списков 1, 2, 3,..., N, то выполняется пустой оператор.

Пример 12. Составить программу для вычисления площади одной из пяти геометрических фигур (прямоугольника, треугольника, трапеции, круга и сектора).
PROGRAM PR12;
VAR
S, А, В, Н, R, FI: REAL; N: INTEGER;
BEGIN  
WRITELN('l - прямоугольник');
WRITELN('2 — треугольник');
WRITELN('3 - трапеция');
WRITELN('4 - круг');
WRITELN('5 - сектор');
READLN(N);
S:=0;
CASE N OF
1: BEGIN    
      WRITELN('Введите стороны - А, В');
      READ(A, В);
      S:= A*B;
    END;
2: BEGIN   
      WRITELN('Введите основание и высоту - А, Н');
      READ(A, Н);
      S:=A*H/2;
    END;
3: BEGIN    
      WRITELN('Введите основания и высоту - А, В, Н');
      READ(A, В, Н);
      S:= (А + В)*Н/2;
    END;
4: BEGIN    
      WRITELN('Введите радиус – R');
      READ(R);
      S:= PI*R*R;
    END;
5: BEGIN    
      WRITELN('Введите радиус и угол, град - R, FI');
      READ(R, FI);
      S:=PI*R*R*FI/360;
    END;
END; {CASE}
WRITELN(фигуры = ', S:8:2)
END.
В этой программе оператор CASE используется для организации простейшего меню для выбора фигуры по предлагаемому номеру из списка номеров. Оператор указывает номер фигуры, и управление передается соответствующей ветви вычислительного процесса.
Пример 13. Для заданного целого положительного K и значения вещественного числа X вычислить Y = F(X) по формуле:

case.

PROGRAM PR13;
VAR    X, Y: REAL; К: INTEGER;
BEGIN   WRITELN('Введите X и К');
READLN(X, K);
CASE К OF
  2, 3 : Y := EXP(K *LN(X)) + X + 1;    { Список 1}
  4 .. 6: Y:= 1/ABS(X+1);    {Список 2}
  ELSE Y:= SQRT(ABS(X +K))+SQRT(ABS(X-K)) { В противном случае}
END; { CASE}
WRITELN('Y = ',Y:5:1)
END.
В примерах 12, и 13 не следует путать метки — значения выражения селектора CASE с метками, используемыми оператором GOTO. Попытка войти в метку оператора CASE оператором безусловного перехода приведет к ошибке.


Предыдущая статья: Организация условного перехода. Оператор IF.
Оглавление: Лекции по Pascal.
Следующая статья: Программирование циклов. Оператор безусловного перехода.


Комментарии  

 
-6 # bori 11.03.2014 06:32
:D :lol: :-) ;-) 8) :-| :-* :oops: :sad: :cry: :o :-? :-x :eek: :zzz :P :roll: :sigh:
 
 
+3 # спс 17.01.2016 09:14
Спасибо, очень помогло при составлении блок-схемы)
 
 
+2 # Афродита 29.11.2017 05:56
Не очень помогло:-|
 
 
+2 # Миха 15.10.2021 05:39
Ура я програмист !!! :lol: :lol: :lol:
 
   ГлавнаяПаскальЛекции по ПаскальОператор варианта CASE.