Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР №№123.doc
Скачиваний:
28
Добавлен:
07.06.2015
Размер:
188.42 Кб
Скачать

Условный оператор

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

Структура условного оператора имеет следующий вид:

IF <условие> THEN <оператор1> ELSE <оператор2>

где IF,THEN,ELSE– зарезервированные слова (если, то, иначе);

<условие> – произвольное выражение логического типа;

<оператор1>, <оператор2> – любые операторы Турбо Паскаля.

Алгоритм работы условного оператора:

  1. Вычисляется выражение <условие>,

  2. Если результат есть TRUE, то выполняется <оператор1>, а <оператор2> пропускается;

  3. Если результат есть FALSE, то выполняется <оператор2>, а <оператор1> пропускается.

Пример:

var

x, y, max: real;

begin

... {ввод значений x, y, max}

if x>max then

y := max

else

y := x;

...

end.

Часть ELSE<оператор2> может быть опущена. Тогда при значении логического выраженияTRUEвыполняется <оператор1>. В противном случае этот оператор опускается.

Пример:

var

x, y, max: real;

begin

... {ввод значений x, y, max}

y := x;

if y>max then

y := max;

...

end.

<Оператор1> и <оператор2> могут быть условными операторами. В этом случае может возникнуть неоднозначность трактовки условий. В Турбо Паскале любая встретившаяся часть ELSEсвязывается с ближайшей к ней «сверху» частиTHEN.

Пример. Отыскание наибольшего числа.

var

a, b, c, max: integer;

begin

...

if a>b then

if b>c then

max := a

else

if a>c then

max := a

else

max := c

else {b>a}

if b>c then

max := b

else

max := c;

wirteln(‘Max = ‘, max);

end.

Разумная альтернатива:

var

a, b, c, max: integer;

begin

...

max := a;

if b>max then

max := b;

if c>max then

max := c;

wirteln(‘Max = ‘, max);

end.

Операторы цикла

В языке Турбо Паскаль имеются три различных оператора, с помощью которых можно запрограммировать повторяющиеся фрагменты программ.

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

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

FOR <парам. цикла> := <нач. знач.> TO <кон. знач.> DO <оператор>;

Здесь FOR,TO,DO– зарезервированные слова (для, до, выполнить)

<парам. цикла> – переменная целого типа (например, INTEGER);

<нач. знач.> и <кон. знач.> – выражения целого типа;

<оператор> – произвольный оператор Турбо Паскаля.

При выполнении оператора FORсначала вычисляется выражение <нач. знач.> и осуществляется присваивание

<парам. цикла> := <нач. знач.>.

После этого циклически повторяется последовательность действий:

  1. Проверка условия <парам. цикла> <= <кон. знач.>. Если условие не выполняется, оператор FORзавершает работу.

  2. Выполнение оператора <оператор>.

  3. Наращивание переменной <парам. цикла> на единицу.

По завершению оператора FORпеременная <парам. цикла> принимает значение <кон. знач.>.

Пример. Расчёт факториала числа n с помощью оператора цикла с параметром

var

i, N, fact: integer;

begin

write(‘ВведитеN:’);

readln(N);

fact := 1;

for i := 1 to N do

fact := fact*i;

writeln(‘N!=’,fact);

end.

Шаг наращивания параметра цикла строго постоянен и равен +1. Существует другая форма оператора

FOR <парам. цикла> := <нач. знач.> DOWNTO <кон. знач.> DO <оператор>;

Замена зарезервированного слова TOнаDOWNTOозначает, что шаг наращивания параметра цикла равен –1, а управляющее условие принимает вид <парам. цикла> >= <кон. знач.>.

Для предыдущего примера можем записать:

for i := N downto 1 do

fact := fact*i;