Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие для учеников .doc
Скачиваний:
12
Добавлен:
18.12.2018
Размер:
2.27 Mб
Скачать

Пример 1

Вывести на экран большее из двух данных чисел.

Program Example_17;

Var x,y: Integer;

Begin

Writeln('введите 2 числа');

{вводим два целых числа через пробел}

Readln(x,у) ;

If x>y Then Writeln(x)

{если (If) x больше у, то (Then)

выводим x,}

Else Writeln(у);

{иначе (Else) выводим у}

Readln;

End.

Введем два числа − 5 и 7. Переменная х получит значение 5, а переменная у − значение 7 (х=5, у=7). Условие х>у не выполняется, так как 5 не больше 7. Управление передается на оператор, стоящий после Else, то есть Writeln(y), а следовательно, на экране появится 7.

Примечание. Обратите внимание на то, что перед служебным словом Else разделитель − точка с запятой − не ставится.

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

If <условие> Then <оператор>;

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

If x<0 Then x:=-x;

Если в условном операторе имеется ветка Else, он называется полным, в противном случае − неполным.

Пример 2

Написать программу, проверяющую, принадлежит ли число, введенное с клавиатуры, интервалу (0;5) .

Решение

Обозначим через х число, вводимое с клавиатуры пользователем (это переменная целого типа). х принадлежит заданному интервалу лишь в том случае, если одновременно выполняются оба условия: (х>0) и (х<5).

Prugram Example_18;

Var x: Integer;

Begin

Writeln('Введите число х');

Readln(х);

If (x>0) and (x<5) Then

Writeln (х,' принадлежит (0,5)')

Else

Writeln(x,' не принадлежит (0,5)');

Readln;

End.

§12. Оператор безусловного перехода. Раздел описания меток

Общий вид оператора

Goto <метка>

где Goto (итди к) − служебное слово, метка − целое число без знака, определяемое в разделе Label как метка оператора. Раздел описания меток (Label) следует после заголовка программы. Любой оператор в программе можно выделить, поставив перед ним метку − целое число без знака, содержащая не более четырех цифр. Метка от оператора отделяется двоеточием. Появление меток в программе дает возможность сослаться на эти метки для изменения хода выполнения программы. Все метки должны быть перечислены в разделе описания меток, например:

Label 1,12, 999;

Раздел Label может отсутствовать, если в программе меток нет.

Оператор перехода Goto производит передачу управления к оператору, помеченному указанной меткой.

Применение оператора безусловного перехода является необязательным и нежелательным, так как присутствие этого оператора в программе нарушает ее структурную целостность и наглядность, такую программу становится трудно читать, отлаживать и модифицировать. Используют операторы Goto лишь в исключительных случаях, например, для выхода из структурного (составного) оператора при возникновении особой ситуации в программе.

Пример

Найти количество целых четных чисел, вводимых с клавиатуры. Выход из программы по вводу 0.

Program Example_19;

Label 1;

var a,k: integer;

begin

k:=0;

1: Writeln('Введите число');

Readln(a);

If a<>0 then

Begin

If a mod 2=0 then k:=k+1;

Goto 1;

End;

Writeln('количество четных чисел= ',k);

Readln;

End.

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

Halt − прерывание программы, независимо от того, в каком месте программы стоит эта процедура;

Exit − завершение выполнения текущего блока, переход в его конец.