Функции trunc, round в Pascal.

Для того чтобы в Паскаль можно было оперировать не только целыми числами, но и дробными существуют вещественные типы данных. Один из таких типов называется Real. В этом уроке мы рассмотрим 2 функции, которые производятся над дробными числами. Это ...

Функции Sqr, Abs, Sqrt, Sin, Cos, Arctan, Ln, Exp, Pi в Pascal.

Мы уже знаем, какие существуют функции для целых переменных. Это – нахождение модуля числа (Функция Abc), а также возведение числа в квадрат (Функция Sqr). В этом уроке мы рассмотрим функции, применяемые к дробным числам. Это функции Sqr - квадрат ...

GotoXY в Pascal.

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

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

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

Цикл — это последовательность операторов, которая может выполняться более одного раза. В языке Паскаль разработано три механизма для конструирования циклов, использующих операторы 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.