Структура и синтаксис условного оператора

Одним из наиболее простых способов осуществить передачу управления в зависимости от выполнения некоторого логического условия является использование условного оператора if…then…else.

Имеется две основные формы этого оператора:

форма 1

if условие then оператор_да;

форма 2

if условие then оператор_да

else оператор_нет;

Выражение между if и then должно иметь тип boolean, т.е. это логическое выражение. Если значение выражения равно true, то выполняется оператор_да; в противном случае – оператор_нет или не выполняется никаких действий (при отсутствии альтернативы else).

В качестве примера рассмотрим программу, реализующую функцию определения знака:

Program Sign1;

Var

x : integer;

y : shortint;

Begin

Ввод x

If x > 0 then y := 1

Else

If x < 0 then y := -1

Else y := 0;

Печать y

End.

Задание логических выражений для передачи управления

В качестве формальных выражений, определяющих условия передачи управления по разным ветвям алгоритма, могут использоваться логические выражения, использующие операции сравнения. Например:

x > 0

y <= 0.25

Key != ‘q’

и т.п.

Составные условия с использованием логических операторов

Составные условия задаются при помощи логических операторов-связок AND, OR или XOR, а также здесь может использоваться унарный оператор NOT. Например:

if (x > 0) and (x < 5) then …

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

Раздел №11 (2 часа)

Операторы циклов с неопределённым числом повторений

План:

• Назначение операторов циклов. Циклы с пред- и постусловием

• Структура и синтаксис оператора while

• Структура и синтаксис оператора repeat … until

11. Операторы циклов с неопределённым числом повторений

Назначение операторов циклов. Циклы с пред- и постусловием

Работа многих алгоритмов предполагает многократное повторение некоторых их участков. Такие конструкции называются циклическими. Паскаль содержит три различных оператора для реализации циклов с пред- и постусловием. Рассмотрим подробнее работу этих операторов.

Структура и синтаксис оператора while

Оператор while имеет следующий синтаксис:

while условие_повторения do оператор;

Схема выполнения оператора While:

Структура и синтаксис условного оператора - student2.ru

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

Подобный процесс многократно повторяется и завершается лишь в том случае, если условие перестало выполняться (т.е. результатом его вычисления оказалось false).

Пример. Алгоритм Евклида (с использованием цикла с предусловием)

Var

m, n, d, r : word;

Begin
Write('Введите m: '); Read(m);

Write('Введите n: '); Read(n);

If m < n then
Begin

r := m; m := n; n := r;

End;

While n <> 0 do
Begin

r := m mod n;

m := n;

n := r;

End;

d := m;

Writeln('d=',d);
End.

11.3. Структура и синтаксис оператора repeat … until

Имеет следующий синтаксис:

repeat оператор until условие_завершения;

В отличие от рассмотренного выше оператора while, данный оператор является циклом с постусловием. Это означает, что проверка условия осуществляется не до выполнения тела, а после. Следствием этого является тот факт, что тело цикла с постусловием обязательно выполнится хотя бы один раз, тогда как в цикле с предусловием тело может не выполниться ни разу.

Другим отличием оператора repeat…until является то, что входящее в его состав условие рассматривается как условие завершения цикла. То есть, если на очередной итерации результат вычисления условия оказывается равным true, цикл завершается. В противном случае управление вновь передается на тело цикла.

Пример. Алгоритм Евклида (с использованием цикла с постусловием)

Var

m, n, d, r : word;

Begin
Write('Введите m: '); Read(m);

Write('Введите n: '); Read(n);

If m < n then
Begin

r := m; m := n; n := r;

End;

If n > 0 then
Repeat
r := m mod n;

m := n;

n := r;
Until n = 0;

d := m;

Writeln('d=',d);

End.

Раздел №12 (2 часа)

Оператор цикла с параметром

План:

• Цикл с параметром. Структура и синтаксис оператора for

• Примеры программирования итерационных алгоритмов

12. Оператор цикла с параметром

Наши рекомендации