страница 1 Лекция 10. Программирование ветвящихся вычислительных процессов.
Структурные операторы: условный оператор if, составной оператор begin – end. Простые операторы: пустой оператор, оператор перехода. Оператор case. Операции целочисленной арифметики.
Структурные операторы
Структурные операторы представляют собой структуры, построенные из других операторов по строго определенным правилам. Все структурные операторы подразделяются на 3 группы: составные, условные и повтора.
Условные операторы обеспечивают выполнение или невыполнение некоторого оператора, группы операторов или блока в зависимости от заданных условий. Паскаль допускает использование двух условных оператор: If и Case.
Оператор условия If.
Может принимать одну из форм:
-
If условие Then оператор1
Else оператор 2;
-
If условие Then оператор;
В первом случае говорят о полном операторе If, а во втором – о неполном операторе If. Условие – это выражение булевского типа. Оно может быть простым или сложным. Сложные условия образуются с помощью логических операций. При записи условия могут использоваться все возможные операции отношения.
В первом случае если условие истинно, то выполняется оператор1, если условие ложно – оператор2. Во втором случае если условие истинно, выполняется оператор, если ложно – оператор, следующий за оператором If.
Оператор If может входить в состав другого оператора If. В этом случае говорят о вложенности операторов:
If условие Then
If условие Then оператор1
Else оператор2;
При вложенности операторов каждое Else соответствует тому Then, которое непосредственно ему предшествует.
Пример:
If ((A>B) And (CThen
If (Z>=X) Then Writeln (‘Норма’)
Else Writeln (‘Превышение нормы’)
Else
WriteLn (‘Недобор’);
Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой и ограниченную операторными скобками Begin и End. Составной оператор воспринимается как единое целое и может находиться в любом месте программы, где синтаксис языка допускает наличие оператора.
Формат оператора:
Begin
Оператор 1;
…
Оператор N;
End;
Оператор безусловного перехода GOTO.
Служит для передачи управления оператору, помеченному меткой. Метка отделяется от оператора двоеточием. Оператора GOTO применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой, отмеченный меткой оператор.
Формат оператора:
GOTO метка;
Формат описания меток:
LABEL
имя метки;
При записи оператора GOTO необходимо помнить следующее:
-
Метка, на которую передается управление, должна быть описана в разделе описания меток того блока процедуры, функции, основной программы, в котором эта метка используется.
-
Областью действия метки является тот блок, в котором она описана.
-
Попытка выйти за пределы блока или передать управление внутрь другого блока вызывает программное прерывание.
Пример:
Goto met1;
…
met1: оператор;
Пустой оператор не содержит ни оного символа и не выполняет никаких действий. Он может быть использован там, где синтаксис языка требует наличие оператора, но никакие действия выполнять не нужно. Пустой оператор — это лишняя точка с запятой (;). Чаще всего пустой оператор встречается с меткой и ставится в конце оператора или программы.
Оператор выбора Case
Является обобщением оператора If и позволяет сделать выбор из произвольного числа имеющихся вариантов. Он состоит из выражения, называемого селектором, и списка параметров, каждому их которых предшествует список констант выбора (список может состоять и из одной константы). Как и в операторе If, здесь может присутствовать слово Else, имеющее тот же смысл.
Формат оператора:
Сase выражение-селектор of
Список 1: оператор1;
Список 2: оператор2;
...
Список N: операторN
Else оператор N+1
End;
Оператор Case передает управление тому оператору, с одним из значений списка которого совпало значение выражения-селектора. Если ни одно из значений списков не совпадает со значением селектора, то либо такой оператор Case эквиваленте пустому оператору и затем выполняется оператор, следующий за словом Еnd, либо выполняется оператор, следующий за словом Else.
Выражение-селектор может иметь любой порядковый тип. Список констант выбора состоит из произвольного числа значений или диапазонов, отделенных друг от друга запятыми. Тип меток должен совпадать с типом селектора.
Примеры:
Case X of {выражение-селектор целого типа}
1,2,3 : A:=B+C;
-
: A:=B-C;
5..9 : A:=B*C
Else A:=B/C
End;
Case CH of {выражение-селектор литерного типа}
‘A’..’Z’: WriteLn (‘Введена латинская буква’);
‘0’..’9’ : WriteLn (‘Введена цифра’)
End;
Операции целочисленной арифметики
Целочисленное деление (Div) – возвращает целую часть частного, дробная часть отбрасывается. Результат целочисленного деления всегда равен нулю, если делимое меньше делителя.
Деление по модулю (Mod) – возвращает остаток, полученный в результате целочисленного деления.
Пример:
11 div 5 = 2; 2 div 3=0
11 mod 5 = 1; 14 mod 5=4
Функции преобразования типов
-
Round (X) – возвращает значение X, округленное до ближайшего целого числа, результат имеет целочисленный тип.
-
Trunc (X) – возвращает ближайшее целое число меньшее или равное X, если X0, большее или равное X, если X<0. Результат имеет целочисленный тип.
Пример:
Round (3.7); результат 4
Round (-46.317) результат -46
Trunc (3.7); результат 3
Trunc (-10.78); результат -10
Обычно оператор Goto применяется для преждевременного выхода из цикла или при обработке ошибок. В других случаях его использовать не рекомендуется.
страница 1
|