![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Read(x);Стр 1 из 27Следующая ⇒
End Else begin { блок-12 } End; End Else begin { блок-2 } End; |
· ключевая тема этого задания ЕГЭ – использование вложенных условных операторов, причем в тексте задания фрагмент программы обычно записан без отступов «лесенкой» или с неправильными отступами, например, так:
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 («ИЛИ»)
Пример задания:
На обработку поступает последовательность из четырёх неотрицательных целых чисел (некоторые числа могут быть одинаковыми). Нужно написать программу, которая выводит на экран количество нечётных чисел в исходной последовательности и максимальное нечётное число. Если нечётных чисел нет, требуется на экран вывести «NO». Известно, что вводимые числа не превышают 1000. Программист написал программу неправильно. Вот она:
const n = 4;
var i, x: integer;
var maximum, count: integer;
Begin
count: = 0;
maximum: = 999;
for i: = 1 to n do begin
read(x);
if x mod 2 < > 0 then begin
count: = count + 1;
if x > maximum then maximum: = i
End
End;
if count > 0 then begin