Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка для ИГА.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.58 Mб
Скачать

Вопрос 4 Условные операторы в языке программирования Паскаль.

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

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

Заметим, что ветка иначе (else) может отсутствовать. Точка с запятой перед else не ставится. Если оператор состоит не из одного оператора, а из нескольких то обязательно нужны операторные скобки(begin end). В Паскале любая последовательность операторов заключенная в операторные скобки считается одним оператором.

Пример: если два числа больше нуля вычислить корень этих двух чисел

Var x, y : integer;

Begin

Writeln(‘ введите x и y’);

Readln( x, y);

(*) If (x>0) and (y>0) then

Begin

X := sqrt(x);

Y := sqrt(y);

End;

Write(‘x=’, x,’y=’,y);

Readln;

End.

Наличие скобок в выражение (*) обусловлено тем, что операции отношения имеют приоритет ниже, чем логическая операция, но должны быть выполнены раньше ее. Поэтому выражения x>0 y>0 находятся в круглых скобках.

В частях then и else могут находиться любые операторы, в том числе и условный оператор. При программировании возникают затруднения, к какому именно оператору относится оператор else. Здесь действует следующее правило: компилятор связывает часть else с ближайшим, еще не имеющим часть else оператором if. Исключение составляет ситуация, когда в части then стоит блок операторов. Например

If x>0 then begin

If y> 0 then y:=sqrt(y);

End

Else y:=y+x;

В данном примере часть else относится к первому оператору if.

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

Выр.

альтернатива

Else ветвь

альтернатива

конст

конст

оператор

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

Оператор произвольный оператор Паскаля (м. б. снова case)

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

Else-ветвь имеет вид: else-оператор.

Семантика (определяем смысл оператора case)

  1. вычисляем значения выражения;

  2. вычесленное значение выражение ищется в качестве метки одной из альтернатив. Эта метка может явно присутствовать в альтернативе, или же может быть часть отрезка. Если метка найдена, то выполняется оператор соответствующей альтернативе. Если же метка не найдена не в одной альтернативе и при этом отсутствует ветка else, то выполнение оператора case завершается, но если else присутствует в последнем случае, то выполняется соответствующий ей оператор. В любом случае после выполнения оператора либо альтернативы, либо ветки-else выполнение данного оператора прекращается.

Пример: Составить график работы магазина по дням недели. Решить

задачу с помощью условного оператора и оператора выбора.

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