Умовний оператор

Алгоритми, в яких пропонується виконання ті чи інші послідовності дій в залежності від деяких умов, називаються алгоритмами з розгалуженням.

Для реалізації таких алгоритмів в мовах програмування існують спеціальні засоби. В Pascal такими засобами є умовний оператор і оператор варіанту. Кожен умовний оператор передбачає виконання однієї з двох дій в залежності від істинності деякої умови.

Умовний оператор може використовуватися в повній або скороченій формі.

Схема умовного оператора.

  • if (умова)
    • then
      • оператор_А
    • else
      • оператор_B;

A та B – деякі оператори.

Скорочена схема умовного оператора.

  • if (умова)
    • then
      • оператор_А;

Ключові слова, які використовуються в умовному операторі, мають наступний сенс:

if – якщо, then – то, else – інакше.

Умовою в умовному операторі може бути будь-який вираз логічного типу, тобто вираз, який може приймати одне з двох значень: True, False.

Найпростішими логічними виразами є вирази відносин, в Pascal використовуються наступні позначення відносин:

  • = – дорівнює;
  • <> – не дорівнює
  • > – більше;
  • < – меньше;
  • >= – більше або дорівнює;
  • <= – меньше або дорівнює.

Приклад: скласти програму обчислення значення функції:

у =
{
x, при x < 0
x2, при x = 0
  • program First_Function;
  • var
    • x, y: real;
  • begin
    • wrile (' ввести значення x: ');
    • read (x);
    • if (x < 0)
      • then
        • y := x
      • else
        • y := Sqr(x);
    • writeln ('y = ', y);
  • end.

Логічні операції.

Логічні вирази (умови) можуть складатися з декількох частин. При цьому різні їх частини, також є логічними виразами (простими або складеними), які з’єднуються один з одним за допомоги наступних логічних операцій:

  • not – заперечення (не);
  • and – кон’юнкція або логічне множення (і);
  • or – диз’юнкція або логічне додавання (або).

Приклад:

  • not(Odd(x));
  • (a > 10) and (a < 20);
  • (y = 2) or (y = 3);

При обчисленні значень логічних виразів дотримуються наступного порядку дій:

  1. Обчислюються значення логічних функцій;
  2. Обчислюються результати операцій порівняння;
  3. Обчислюються логічні операції в послідовності:

not ———–> and ———–> or

  1. not (не)
    • not False = True
    • not True = False

  2. and (і)
    • True and True = True
    • True and False = False
    • False and True = False
    • False and False = False

  3. or (або)
    • True or True = True
    • True or False = True
    • False or True = True
    • False or False = False

Составний оператор.

В умовному операторі після ключових слів then та else може стояти лише один оператор. Щоб обійти це обмеження, використовують составний оператор.

Составний оператор має наступну структуру:

  • begin
    • оператор_1;
    • оператор_n;
  • end;

Ключові слова begin і end виконують роль операторних дужок. Тіло будь-якої програми є один складений оператор. Составний оператор можна поміщати в будь-якому місці програми, де за правилами мови Pascal можна використовувати тільки один оператор, а за умовою задачі потрібно кілька.

Умовний оператор, при використанні його в структурі складеного оператора, виглядає наступним чином:

  • if (умова)
    • then
      • begin
        • оператор_1;
        • оператор_n;
      • end
    • else
      • begin
        • оператор_n+1;
        • оператор_n+m;
      • end;

Вкладені умови.

В умовному операторі, в якості оператора_А і оператора_В в Pascal дозволяється використовувати будь-які оператори, в тому числі і умовні.

Таким чином, в Паскалі можливо вкладення умовних операторів по одній з наступних схем:

    • if (умова_1)
      • then
        • if (умова_2)
          • then
            • оператор_1
          • else
            • оператор_2
      • else
        • оператор_3;
    • if (умова_1)
      • then
        • оператор_1
      • else
        • if (умова_2)
          • then
            • оператор_2
          • else
            • оператор_3;
    • if (умова_1)
      • then
        • if (умова_2)
          • then
            • оператор_1
          • else
            • оператор_2
      • else
        • if (умова_3)
          • then
            • оператор_3
          • else
            • оператор_4;

Приклад: скласти програму обчислення значення функції:

у =
{
x, при x < 0
0, при 0 <= x < 1
x2, при x = 0
  • program Next_Function;
  • var
    • x, y: real;
  • begin
    • wrile ('ввести значення x:');
    • read (x);
    • if (x < 0)
      • then
        • y := x
      • else
        • if (x < 1)
          • then
            • y := 0
          • else
            • y := 2 * x;
    • writeln ('y = ', y);
  • end.