Ветвления в Pascal.

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

Логические и символьные константы.

В данном уроке будет рассмотрено применение логических и символных констант. Логическая константа может принимать только 2 значения, либо True, либо False. В качестве значения символьной константы могут использоваться любые символы, которые есть в ...

Использование Var, Integer, Readln.

Процедура Readln используется не только для задержки экрана. Ее основная задача - ввод данных с клавиатуры. В этой статье мы научимся вводить числа с клавиатуры, и потом выводить их на экран. Для этого нам будет необходимо познакомиться с разделом ...

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

Инициализация одномерного массива.

Отличительной особенностью Паскаля от большинства процедурных языков является то, что все переменные должны быть инициализированы. То есть в разделе VAR переменным отводится место, а начальное ...

Отображение на экране значений двумерного массива.

Если в результате работы вашей программы необходимо значения каждого элемента двумерного массива отобразить на экране монитора, то можно воспользоваться любым из двух способов, описанных ниже.

Иногда его называют также оператором выбора. Это оператор 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.
Следующая статья: Программирование циклов. Оператор безусловного перехода.


Комментарии  

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

Добавить комментарий

   ГлавнаяПаскальЛекции по ПаскальТип данных Integer.