· ключевая тема этого задания ЕГЭ – использование вложенных условных операторов, причем в тексте задания фрагмент программы обычно записан без отступов «лесенкой» или с неправильными отступами, например, так:
if a = b then begin if a = c then c:=1; end else c:=0; | if a = b then if a = c then c:=1 else c:=0; |
Чтобы разобраться с работой этих программ, нужно определить, к какому из условных операторов if относится часть else; для этого используют такое правило: «любой else относится к ближайшему if».
Рассмотрим фрагмент слева, в нем перед else стоит end, поэтому для него нужно найти соответствующий ему begin; таким образом определяем, что else относится к первому (внешнему) условному оператору.
В правом фрагменте перед else нет end, поэтому он относится к ближайшему по тексту внутреннему условному оператору.
Блок-схемы для двух фрагментов показаны ниже, желтым цветом выделен «переехавший» блок:
· в условных операторах можно использовать сложные условия, которые строятся из простых отношений (<, <=, >, >=, =, <>) с помощью логических операций not («НЕ», отрицание), and («И», одновременное выполнение двух условий) и or («ИЛИ», выполнение хотя бы одного из двух условий)
· в сложном условии сначала выполняются действия в скобках, потом – not, затем – and, затем – or и, наконец, отношения;
операции равного уровня (приоритета) выполняются последовательно слева направо
· поскольку отношения в Паскале имеют низший приоритет, в сложном условии их приходится брать в скобки:
if (a = b) or (b < c) and (c <> d) then begin ... end; |
· в приведенном выше примере сначала определяются результаты сравнения (выражения в скобках), затем выполняется операция and («И»), а затем – or («ИЛИ»)
Пример задания:
Требовалось написать программу, которая вводит с клавиатуры натуральное число N, не превышающее 109, и выводит сумму чётных цифр в десятичной записи этого числа или 0, если чётных цифр нет. Программист торопился и написал программу неправильно. Вот она:
var N: longint;
s: integer;
|
|
|
Дата добавления: 2014-11-07; Просмотров: 364; Нарушение авторских прав?; Мы поможем в написании вашей работы!
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет