Среда, 15.05.2024, 08:55
Приветствую Вас Гость | RSS
ЕГЭ ПО ИНФОРМАТИКЕ
Главная
Регистрация
Вход
Вход

Меню сайта

Категории раздела
Анализ ЕГЭ по информатике 2010 [7]
Демо варианты ЕГЭ по информатике [8]
Литература для подготовки к ЕГЭ по информатике [1]
Видиофайлы [4]
Подробный разбор заданий ЕГЭ по информатике [30]

Мини-чат

Наш опрос
Оцените мой сайт
Всего ответов: 39

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Файлы » Подробный разбор заданий ЕГЭ по информатике

С1
[ Скачать с сервера (288.5 Kb) ] 06.12.2010, 09:17

C1 (повышенный уровень, время – 10 мин)

Тема:  Исправление ошибок в простой программе с условными операторами.

Что нужно знать:

·    правила построения программы на Паскале, Бэйсике или Си

·    правила работы с переменными (объявление, ввод, вывод, оператор присваивания)

·    ветвление это выбор одного из двух возможных вариантов действий в зависимости от того, выполняется ли некоторое условие;

·    на блок-схеме алгоритма ветвление изображается в виде блока-ромба с одним входом и двумя выходами:

            

·    если условие, записанное внутри ромба, истинно (ответ «да» на вопрос «a=b?»), выполняются все команды, входящие в блок-1 (ветка «да»), иначе (если условие ложно) выполняются все команды в блоке-2 (ветка «нет»)

·    в неполной форме условного оператора блок-2 пустой (отсутствует); теоретически можно сделать наоборот – так, чтобы блок-1 оказался пустой, но это очень неграмотное решение, поскольку оно осложняет понимание алгоритма, запутывает его

·    одна команда ветвления может находиться внутри другой, например, так:


·    на этой схеме блок-10 выполняется, когда a=b; блок-11 – когда a=b=c, блок-21 – когда a=b, но a¹c и, наконец, блок-2 – когда a¹b

·    на этой схеме (Рисунок 3) одна команда ветвления (с условием «a=c») вложена в другую (с условием «a=b»), каждая из них – это ветвление в полной форме; если блок-12 будет пустой (отсутствует), внутреннее ветвление имеет неполную форму; аналогично, если блок-2 пустой, то внешнее ветвление имеет неполную форму

·    условный оператор ifelse служит для организации ветвления в программе на языке Паскаль

·    условный оператор может иметь полную или неполную форму; вот фрагменты программы, реализующие ветвления, показанные на рисунках 1 и 2:

полная форма:

неполная форма:

 if a = b then begin

   { блок-1 }

 end

 else begin

   { блок-2 }

 end;

if a = b then begin

  { блок-1 }

end;

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

·    обычно при записи программы операторы, находящиеся внутри обоих блоков, сдвигают вправо на 2-3 символа (запись «лесенкой»), это позволяет сразу видеть начало и конец блока (конечно, если «лесенка» сделана правильно)

·    после else не надо (нельзя!) ставить какое-то условие,  эта часть выполняется тогда, когда условие после if неверно (частая ошибка – после else пытаются написать условие, обратное тому, которое стоит после соответствующего ему if)

·    в Паскале перед else не ставится точка с запятой, поскольку это ключевое слово обозначает не начало нового оператора, а вторую часть условного оператора ifelse

·    слова begin и end (их называют также «операторные скобки») ограничивают блок-1 и блок-2; если внутри блока всего один оператор, эти «скобки» можно не писать, например, допустимы такие операторы

 if a = b then

      c:=1

 else c:=0;

 if a = b then begin

   c:=1;

 end

 else c:=0;

if a = b then c:=1;

·    а вот такие операторы недопустимы

if a = b then begin

      c:=1

 else c:=0;

 if a = b then

   c:=1;

 end

 else c:=0;

if a = b then

  c:=1;

  d:=1;

else x:=1;

o  в первом случае есть begin, но забыли про соответствующий ему  end;

o  во втором фрагменте наоборот, есть end, а begin отсутствует;

if a = b then begin

  c:=1;

  d:=1;

end

else x:=1;

o  третий случай более сложный: судя по записи «лесенкой», здесь внутри блока-1 находятся 2 оператора, а операторных скобок begin-end нет; в результате получилось, что оператор c:=1 находится внутри блока-1, он выполняется только при условии a=b;
оператор d:=1 выполняется всегда, после того, как условный оператор закончил работу; а else вообще «висит» непонятно как, тут транслятор выдаст ошибку; исправить эту программу можно так, как показано справа (добавив пару begin-end):

·    условный оператор может находиться внутри другого условного оператора, как в блоке-1, так и в блоке-2; например, схема на Рисунке 3 может быть записана на Паскале так

Категория: Подробный разбор заданий ЕГЭ по информатике | Добавил: M@RiShk@
Просмотров: 4493 | Загрузок: 281 | Рейтинг: 5.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Календарь
Шары летают вокруг курсора то удаляясь, то приближаясь.

Часы

Друзья сайта
//egeshka.ucoz.ru


Copyright MyCorp © 2024