ЕГЭ: возможные особенности заданий 2014 года О.Б. Богомолова, Д.Ю. Усенков.

Презентация:



Advertisements
Похожие презентации
Что нужно знать: динамическое программирование – это способ решения сложных задач путем сведения их к более простым задачам того же типа динамическое.
Advertisements

Анализ вычислительных алгоритмов в задачах части А и В Задачи повышенной сложности Рахманова М.Н. учитель информатики МАОУ «Физико-технический лицей 1»
АЛГОРИТМЫ, ВИДЫ АЛГОРИТМОВ, ОПИСАНИЕ АЛГОРИТМОВ. ФОРМАЛЬНОЕ ИСПОЛНЕНИЕ АЛГОРИТМА ( ЗАДАЧИ ЕГЭ ). АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ.
Программирование Задания В2, В5. Оператор присваивания в языке программирования Задание В2 – базовый уровень, время – 2 мин.
Исполнитель-вычислитель: сложная задача с простым решением О.Б. Богомолова, Д.Ю. Усенков, Москва.
Методика решения заданий типа «Робот в лабиринте» Жукова Т.В. МБОУ Заречнская СОШ.
Ключевая тема этого задания ЕГЭ – использование вложенных условных операторов, причем в тексте задания фрагмент программы обычно записан без отступов «лесенкой»
Циклы на языке Pascal повторение. Циклы позволяют многократно выполнять одну или группу команд, причем в тексте программы нет необходимости записывать.
В одном из буддийских монастырей монахи уже тысячу лет занимаются перекладыванием колец. Они располагают тремя пирамидами, на которых надеты кольца разных.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
К. Поляков, Программирование на алгоритмическом языке Тема 4. Циклы.
Задачи ЕГЭ, при решении которых используются знания о системах счисления.
Новый Робот в новых задачах О. Б. Богомолова, Д. Ю. Усенков.
Сайт для подготовки к ЕГЭ: kpolyakov.narod.ru Презентация будет выложена на сайте elschool11.ru ученикам – информатика –Подготовка к ЕГЭ (внизу странички)
Электронные таблицы. ФОРМУЛЫ Тольятти, 2003 гимназия 39 «Классическая» Осипова Светлана Леонидовна Помощь для учащихся Для показа во весь экран щелкните.
Сложные высказывания можно записывать в виде формул. Для этого простые логические высказывания нужно обозначить как логические переменные буквами и связать.
Копирование формул в ЭТ Примеры решения заданий А7 и В3.
1 Когда известно число повторений одного и того же действия, удобно использовать цикл с параметром Цикл с параметром (определенный цикл)
Системы счисления, используемые в компьютере. Борисов В.А. КАСК – филиал ФГБОУ ВПО РАНХ и ГС Красноармейск 2011 г.
Сжатие информации Алгоритм Хаффмана. Сжатие информации Сжатие данных – сокращение объема данных при сохранении закодированного в них содержания.
Транксрипт:

ЕГЭ: возможные особенности заданий 2014 года О.Б. Богомолова, Д.Ю. Усенков

1. «Старая знакомая» – двоичная арифметика Даны числа, записанные в разных системах счисления и в том числе в виде арифметических выражений. Укажите среди них то, в двоичной записи которого имеется ровно четыре единицы. Если таких чисел несколько, то укажите наибольшее из них. 1) B816 2) ) ) 2910 * 108 Решение вариант а Вариант ответа Десятичные вычисления Двоичное представление результата Кол-во единиц Десятичное представление результата 1B8 16 – – = * *8= Наибольшее из трех чисел – * 10 8

2. Родственники и прочие реляции: сериал, новый сезон В фрагменте базы данных представлены сведения о родственных связях. На основании этих данных определите фамилию и инициалы дяди Кусто М.И. IDФамилия_И.О.ПолID родителяID ребенка 101Кусто И.Ф.М Кусто Л.И.Ж Кусто М.И.М Лунина А.В.Ж Никитина К.Т.Ж Симонов З.Т.М Туринец И.Н.М Туринец К.И.М Туринец А.И.Ж Туринец И.И.Ж Янов Ю.К.М ) Кусто Л.И. 2) Туринец И.И. 3) Туринец К.И. 4) Туринец А.И.

2. Родственники и прочие реляции: сериал, новый сезон IDФамилия_И.О.ПолID родителяID ребенка 101Кусто И.Ф.М Кусто Л.И.Ж Кусто М.И.М Лунина А.В.Ж Никитина К.Т.Ж Симонов З.Т.М Туринец И.Н.М Туринец К.И.М Туринец А.И.Ж Туринец И.И.Ж Янов Ю.К.М Решение Дядя – это родной брат отца или матери. Но братьев и сестер данная БД «напрямую» искать не позволяет. Поэтому выстраиваем следующую цепь рассуждений: для заданного человека ищутся отец и мать; для них, в свою очередь, также ищутся родители (т.е. бабушка и дедушка заданного персонажа); для найденных бабушки и дедушки ищутся все другие их дети, кроме родителей заданного персонажа. Это и есть его дяди и тети. Исходное лицо Родители

2. Родственники и прочие реляции: сериал, новый сезон IDФамилия_И.О.ПолID родителяID ребенка 101Кусто И.Ф.М Кусто Л.И.Ж Кусто М.И.М Лунина А.В.Ж Никитина К.Т.Ж Симонов З.Т.М Туринец И.Н.М Туринец К.И.М Туринец А.И.Ж Туринец И.И.Ж Янов Ю.К.М Решение Дед/бабушка

2. Родственники и прочие реляции: сериал, новый сезон IDФамилия_И.О.ПолID родителяID ребенка 101Кусто И.Ф.М Кусто Л.И.Ж Кусто М.И.М Лунина А.В.Ж Никитина К.Т.Ж Симонов З.Т.М Туринец И.Н.М Туринец К.И.М Туринец А.И.Ж Туринец И.И.Ж Янов Ю.К.М Решение Другие дети тех же деда/бабушки (т.е. дяди и тети)

2. Родственники и прочие реляции: сериал, новый сезон IDФамилия_И.О.ПолID родителяID ребенка 101Кусто И.Ф.М Кусто Л.И.Ж Кусто М.И.М Лунина А.В.Ж Никитина К.Т.Ж Симонов З.Т.М Туринец И.Н.М Туринец К.И.М Туринец А.И.Ж Туринец И.И.Ж Янов Ю.К.М Решение Женщина (тётя) Мужчина (дядя) Ответ: Туринец К.И. – искомый дядя Кусто М.И.

2. Родственники и прочие реляции: сериал, новый сезон Решение Дедушка: Туринец И.Н. Бабушка: Никитина К.Т. Мать: Туринец А.И. Отец: Кусто И.Ф. Тетя: Туринец И.И. Дядя: Туринец К.И. Кусто М.И. Сестра: Кусто Л.И.

3. От БД – к ЭТ В ячейке K12 электронной таблицы была записана некая формула. Затем ее скопировали в ячейку H15. Тогда в соответствии с формулой в ячейке H15 ее значение стало равно произведению значений в ячейках С10 и F7. Укажите, сколько из приведенных ниже высказываний не противоречат сказанному. 1. Значение в ячейке K12 равно a*b, где a – значение ячейки С10, а b – значение ячейки F7. 2. Значение в ячейке K12 равно a*b, где a – значение ячейки С10, а b – значение ячейки I4. 3. Значение в ячейке K12 равно a*b, где a – значение ячейки F10, а b – значение ячейки F4. 4. Значение в ячейке K12 равно a2, где a – значение ячейки F7. 1) 1 2) 2 3) 3 4) 4

3. От БД – к ЭТ Решение Высказывание 1. При копировании формулы из одной ячейки в другую используемые в формуле ячейки не изменяются только в одном случае – если это абсолютные ссылки. Если формула в ячейке K12 имела вид =$С$10*$F$7, то в ячейке H15 формула такой и останется, – что нам и требовалось (произведение значений ячеек С10 и F7). Значит, первое высказывание условию задачи не противоречит. Высказывание 2. При копировании формулы первый сомножитель не изменился (значит, ссылка на данную ячейку – абсолютная), а второй сомножитель при переносе формулы из ячейки K12 в ячейку H15 должен был измениться с I4 на F7. Если второй сомножитель был выражен в формуле относительной ссылкой, то при таком копировании формулы буква должна «уменьшиться» на три позиции латинского алфавита, а цифра – наоборот, увеличиться на 3. Что мы и наблюдаем. Значит, формула в ячейке K12 имела вид =$С$10*I4, а в ячейке H15 стала такой: =$С$10*F7. Значит, второе высказывание условию задачи тоже не противоречит.

3. От БД – к ЭТ Решение Высказывание 3. После копирования формулы изменились оба сомножителя: первый в ячейке K12 соответствовал ячейке F10, а после копирования формулы в H15 предположительно изменился на C10. Второй сомножитель должен был измениться с F4 на F7. Может ли такое быть? Да, если в первом сомножителе было относительное имя столбца и абсолютный номер строки, а во втором – наоборот, относительный номер строки и абсолютное имя столбца. То есть, если формула в ячейке K12 была записана как =F$10*$F4, то в ячейке H15 она примет вид: =С$10*$F7 (в относительных частях этих смешанных ссылок буква «уменьшается» на три позиции латинского алфавита, а цифра увеличивается на 3). В любом случае третье высказывание тоже непротиворечиво.

3. От БД – к ЭТ Решение Высказывание 4. Наконец, может ли быть, что произведение до копирования формулы было квадратом? Возведение в квадрат – это умножение значения само на себя. Значит, в четвертом высказывании речь идет о следующем изменении ссылок на ячейки-сомножители при копировании формулы из K12 в H15: произведение F7 на F7 превратилось в произведение С10 на F7. В этом случае одна из «исходных» ссылок на F7 была абсолютной, а вторая – относительной: если формула в ячейке K12 имела вид, например, =&F$7*F7, то в ячейке H15 она станет такой: =$F$7*С10 (во второй ссылке буква «уменьшается» на три позиции латинского алфавита, а цифра увеличивается на 3). Поэтому четвертое высказывание тоже не содержит никаких противоречий с условием задачи. Вывод: не противоречащих высказываний в данном случае – четыре (т.е. все имеющиеся).

4. Пишем звук Четырехканальная (квадро) звукозапись производилась с частотой дискретизации 32 к Гц и с 16-битным разрешением. Длительность записанного звука составила 2 минуты. Сжатие данных при оцифровке не применялось. Какая из приведенных ниже величин ближе всего к размеру полученного файла? 1) 5 Мб 2) 15 Мб 3) 25 Мб 4) 35 Мб Решение Полученное значение (14,6484) округленно равно 15 Мб.

5. Кодирование Передаются сообщения, состоящие только из пяти возможных букв: А, Б, В, Е, И. При этом буквы кодируются следующими числовыми последовательностями: А – 000, Б – 001, В – 01, Е – 11, И – 1. Среди приведенных ниже слов укажите то, которое можно после кодирования декодировать однозначно (т.е. только одним-единственным способом). А если таких слов несколько, то укажите первое из них по алфавиту: 1) ВАБА 2) БИИБ 3) ВЕИА 4) ни одно из сообщений не декодируется однозначно

5. Кодирование Решение Правила (или условия) Фано Закодированное сообщение можно однозначно декодировать с начала, если выполняется условие Фано: никакое кодовое слово не является началом другого кодового слова. Закодированное сообщение можно однозначно декодировать с конца, если выполняется обратное условие Фано: никакое кодовое слово не является окончанием другого кодового слова. Обратное условие Фано обычно применяют, если не выполняется «прямое» условие Фано. 1) 2) 3) Декодируется однозначно Декодируется неоднозначно Ответ:ВАБА (вариант 1) Можно заметить: неоднозначно кодируются/декодируются слова, в которых рядом стоят две буквы с кодами, не удовлетворяющими условию Фано.

6. Игра с отрезками На числовой прямой даны два отрезка: X = [7,11] и Y = [9,13]. Выберите отрезок Z такой, что обе приведенные ниже формулы истинны при любом значении переменной t: Если таких отрезков окажется несколько, то выберите тот, который имеет наибольшую длину. 1) [8,10] 2) [6,12] 3) [6,14] 4) [8, 18]

6. Игра с отрезками Решение (способ 1) Сначала соединим обе формулы в одну через логическую операцию И, поскольку они по условию должны быть истинными одновременно: Далее проверяем каждый из отрезков Z, перечисленных в качестве вариантов ответа.

6. Игра с отрезками Решение (способ 1) 1) Z = [8,10] t X = [7,11] Y = [9,13] Z = [8,10] «Неизменные» отрезки: [–,7], [7,8], [8,9], [9,10], [10,11], [11,13], [13, ]

6. Игра с отрезками Решение (способ 1) 1) Z = [8,10] t X = [7,11] Y = [9,13] Z = [8,10] Логическое выражение: Интервал ФактыЗначение выражения T [ –,7] [7,8]011 0 [8,9]010 1 [9,10]000 1 [10,11]001 0 [11,13]101 0 [13, ] Есть отрезки, где логическое выражение обращается в нуль!

6. Игра с отрезками Решение (способ 1) 2) Z = [6,12] «Неизменные» отрезки: [–,6], [6,7], [7,9], [9,11], [11,12], [12,13], [13, ] t X = [7,11] Y = [9,13] Z = [6,12]

6. Игра с отрезками Решение (способ 1) 2) Z = [6,12] Логическое выражение: t X = [7,11] Y = [9,13] Z = [6,12] Интервал ФактыЗначение выражения T [ –,6] [6,7]110 1 [7,9]010 1 [9,11]000 1 [11,12]100 1 [12,13]101 0 [13, ] Есть отрезки, где логическое выражение обращается в нуль!

6. Игра с отрезками Решение (способ 1) 3) Z = [6,14] «Неизменные» отрезки: [–,6], [6,7], [7,9], [9,11], [11,13], [13,14], [14, ] t X = [7,11] Y = [9,13] Z = [6,12]

6. Игра с отрезками Решение (способ 1) 3) Z = [6,14] Логическое выражение: t X = [7,11] Y = [9,13] Z = [6,12] Интервал ФактыЗначение выражения T [ –,6] [6,7]110 1 [7,9]010 1 [9,11]000 1 [11,13]100 1 [13,14]110 1 [14, ] Логическое выражение везде равно единице

6. Игра с отрезками Решение (способ 1) 4) Z = [8,18] «Неизменные» отрезки: [–,7], [7,8], [8,9], [9,11], [11,13], [13,18], [18, ] t X = [7,11] Y = [9,13] Z = [6,12]

6. Игра с отрезками Решение (способ 1) 4) Z = [8,18] Логическое выражение: t X = [7,11] Y = [9,13] Z = [6,12] Интервал ФактыЗначение выражения T [ –,7] [7,8]011 0 [8,9]0101 [9,11]0001 [11,13]100 1 [13,18]110 1 [18, ] Есть отрезки, где логическое выражение обращается в нуль!

6. Игра с отрезками Решение (способ 2) Преобразуем заданные формулы, чтобы избавиться от логической операции НЕ: нужно заменить знак принадлежности отрезку на «обратный» знак непринадлежности и наоборот: Далее порассуждаем, что означает такая запись, учитывая, что по условию оба заданных логических выражения должны быть истинными одновременно.

6. Игра с отрезками Решение (способ 2) Первое выражение:, если вспомнить таблицу истинности операции следования, можно понимать так: если t принадлежит отрезку X, то t обязательно должно принадлежать и отрезку Z (1 1 = 1, а 1 0 = 0); если же t не принадлежит отрезку X, то принадлежность t отрезку Z нам совершенно безразлична (независимо ни от чего результатом операции следования будет 1: 0 0 = 1 и 0 1 = 1). Второе выражение: можно понимать так: если t не принадлежит отрезку Z, то t обязательно не должно принадлежать и отрезку Y (1 1 = 1, а 1 0 = 0); если же t принадлежит отрезку Z, то принадлежность t отрезку Y нам тоже безразлична (0 0 = 1 и 0 1 = 1).

6. Игра с отрезками Решение (способ 2) Из этих рассуждений можно выделить два «ключевых» критерия, которые определяют возможность для того или иного отрезка быть правильным ответом: если t принадлежит отрезку X, то t обязательно должно принадлежать и отрезку Z; если t не принадлежит отрезку Z, то t обязательно не должно принадлежать и отрезку Y. Достаточно по полученным словесным описаниям проверить: есть ли в получившейся картине расположения отрезков на числовой прямой такие участки, где нарушаются указанные выше «ключевые» правила, т.е.: если t принадлежит отрезку X и t не принадлежит отрезку Z; или если t не принадлежит отрезку Z и t принадлежит отрезку Y. В нашей «цветовой гамме» это означает, что мы ищем участки, где зеленая штриховка не пересекается с красной или где синяя штриховка не пересекается с красной.

6. Игра с отрезками Решение (способ 2) 1) Z = [8,10] t X = [7,11] Y = [9,13] Z = [8,10] По крайней мере, интервалы [7,8] и [11,13] нарушают правила; кроме того, нарушение правил есть и на интервалах [10,11] и [10,13]. Значит, отрезок Z = [8,10] не является правильным ответом.

6. Игра с отрезками Решение (способ 2) 2) Z = [6,12] Второе правило нарушено для интервала [12,13], и этого уже достаточно, чтобы отрезок Z = [6,12] не мог быть правильным ответом. t X = [7,11] Y = [9,13] Z = [6,12]

6. Игра с отрезками Решение (способ 2) 3) Z = [6,14] Нарушений правил нигде нет: красная штриховка везде «с лихвой» закрывает собой и синюю, и зеленую. Значит, отрезок Z = [6,14] – это правильный ответ. t X = [7,11] Y = [9,13] Z = [6,12]

6. Игра с отрезками Решение (способ 2) 4) Z = [8,18] Первое правило нарушено для интервала [7,8], и этого достаточно, чтобы отрезок Z = [8,18] не был правильным ответом. t X = [7,11] Y = [9,13] Z = [6,12] Ответ: [6,14]

1) 7 2) 15 3) 29 4) Еще один Робот Система команд Робота состоит из восьми команд: вверх, вниз, влево, вправо – перемещение на одну клетку в соответствующем направлении; сверху свободно, снизу свободно, слева свободно, справа свободно – проверка наличия стенки у клетки, в которой находится Робот. Если Робот будет двигаться на находящуюся рядом с ним стенку, то он разрушится, и программа прервется. Сколько клеток лабиринта соответствуют требованию, что, начав движение из данной клетки и выполнив предложенную программу, Робот уцелеет и остановится в заштрихованной клетке F6? НАЧАЛО ПОКА снизу свободно ИЛИ справа свободно ПОКА справа свободно вправо КОНЕЦ ПОКА вниз КОНЕЦ ПОКА КОНЕЦ ABСDEF

7. Еще один Робот Решение Перемещение Робота состоит из ряда одинаковых «этапов», соответствующих проходам внешнего цикла ПОКА. Каждый такой «этап» начинается с проверки отсутствия стенок снизу ИЛИ справа, – значит, Робот корректно остановится в клетке, имеющей две стенки – И внизу, И справа. Внутрь внешнего цикла ПОКА вложены: еще один цикл ПОКА, в котором Робот двигается вправо, пока не встретит справа стенку; единственную команду вниз, выполняемую один раз без каких-либо проверок (т.е. если снизу есть стенка, то Робот может разбиться!). Вывод: Робот «ходит буквой Г» – от текущей клетки, если в ней нет стенок снизу и справа, Робот идет вправо до первой встреченной стенки, а потом пытается сделать шаг на одну клетку вниз. Если Робот при этом не разбился, то он повторяет «букву Г» снова, и т.д. При этом все клетки, в которых Робот останавливается после очередного хода «буквой Г», имеют одинаковый «статус»: если хотя бы одна удовлетворяет условию задачи, то удовлетворяют ему и все остальные такие клетки, и наоборот. Будем называть такие клетки «опорными».

7. Еще один Робот Решение ABСDEF

7. Еще один Робот Решение ABСDEF

7. Еще один Робот Решение ABСDEF

7. Еще один Робот Решение ABСDEF

7. Еще один Робот Решение ABСDEF

7. Еще один Робот Решение ABСDEF

7. Еще один Робот Решение ABСDEF Ответ: 29 клеток.

8. «Отнять и поделить» У исполнителя есть две команды, которые кодируются своими номерами: 1. вычесть 3 2. делить на 2 Требуется записать программу, состоящую из номеров соответствующих команд, содержащую не более 5 команд и преобразующую число 186 в число 39. Если возможно несколько таких программ, то запишите любую из них.

8. «Отнять и поделить» Решение РЕКОМЕНДАЦИЯ: Если среди команд исполнителя есть команды, которые могут быть выполнены только при определенных условиях (деление – делимость нацело, корень квадратный – возможность извлечения целого корня), то задачу нужно решать напрямую (с теми командами, которые даны). Если среди команд есть команды умножения или возведения в квадрат, то нужно сначала решать задачу с обратными командами: умножение деление, возведение в квадрат корень квадратный.

8. «Отнять и поделить» Решение 186 делить на 2(число делится нацело) 93 вычесть 3(не делится нацело на 2) 90 делить на 2(число делится нацело) 45 вычесть 3(не делится нацело на 2) 42 вычесть 3(а тут уже нетрудно догадаться, что нужно не делить на 2, а вычесть 3) 39 Выбираем команду деления всегда, когда текущее число делится нацело на 2. Иначе – выбираем команду вычитания. Ответ: 21211

9. «Тарабарский язык» Все 6-буквенные слова, составленные из букв А, Б, В и Г, записаны в алфавитном порядке и пронумерованы. Вот начало такого списка: 1. АААААА 2. АААААБ 3. АААААВ 4. АААААГ 5. ААААБА … Под каким номером в этом списке располагается первое слово, начинающееся с буквы Г?

9. «Тарабарский язык» Решение 1. АААААА 2. АААААБ 3. АААААВ 4. АААААГ 5. ААААБА … … где А 0, Б 1, В 2, Г 3.

9. «Тарабарский язык» Решение 1) Какое первое по возрастанию шестизначное четверичное число будет начинаться с тройки (с аналога буквы Г)? Очевидно, ) В приведенном списке под номером 1 идет число , т.е. 0 10, под номером 2 – число , т.е и т.д. Значит, номер в списке искомого числа (первого слова, начинающегося с Г), надо преобразовать его в десятичную систему счисления и к полученному десятичному числу прибавить 1: = = ; = Ответ: 3073.

10. Шаг за шагом Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(1) = 2; F(2) = 3; F(n) = F(n–1) + F(n–2) при n > 2. Чему равно значение функции F(5)?

10. Шаг за шагом Решение Нужно поочередно расписывать значения F для каждого очередного n и при этом подставлять в формулу известные или ранее вычисленные значения: F(3) = F(3–1) + F(3–2) = F(2) + F(1) = = 5; F(4) = F(4–1) + F(4–2) = F(3) + F(2) = = 8; F(5) = F(5–1) + F(5–2) = F(4) + F(3) = = 13. Ответ: 13.

10. Шаг за шагом Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(1) = 3; F(2) = 3; F(n) = 8*F(n–1) – 7*F(n–2) при n > 2. Чему равно значение функции F(2014)?

10. Шаг за шагом Решение На первый взгляд кажется, что на решение этой задачки придется потратить чуть ли не всю свою жизнь. Но так ли это сложно на самом деле? Проверим! F(3) = 8*F(3–1) – 7*F(3–2) = 8*F(2) –7*F(1) = 8*3 – 7*3 = 3; F(4) = 8*F(4–1) – 7*F(4–2) = 8*F(3) –7*F(2) = 8*3 – 7*3 = 3; … Можно легко догадаться, что формула для вычисления очередного члена последовательности составлена так, что при одинаковых значениях F(1) и F(2) по этой формуле всегда будет получаться число 3. Значит, задача очень-очень простая. И ответ к ней можно дать сразу же: это (независимо от того, про F от какого n в ней спрашивается) всегда будет число 3. Ответ: 3.

11. Что печатает программа Ниже записан алгоритм. После выполнения алгоритма было напечатано 3 числа. Первые два напечатанных числа – это числа 7 и 35. Какое наибольшее число может быть напечатано третьим? var x, у, z: integer; var r, a, b: integer; begin readln(x, y); if у>x then begin z := x; x ;= y; end; a:=x; b;=y; while b>0 do begin r := a mod b; a := b; b := r; end; writeln(a); writeln(x); write(y); end.

11. Что печатает программа Решение Первый ключевой момент – условный оператор: if у>x then begin z := x; x ;= y; end; Он сортирует заданные числа x и y по убыванию: какие бы два числа не вводились, после выполнения этого оператора всегда в x будет большее из двух введенных чисел, а в y –меньшее. Далее числа x и y дублируются в переменные a и b. Благодаря этому можно затем произвольно изменять значения a и b, но сохранить их исходные значения (в x и y), которые нужны в конце программы для их вывода на экран. И наконец, самое интересное – цикл while: while b>0 do begin r := a mod b; a := b; b := r; end;

11. Что печатает программа Решение Попробуем записать запрограммированный здесь алгоритм словесно: вычисляется остаток от деления большего числа (a) на меньшее (b), этот остаток запоминается в r; большее из бывших двух чисел заменяется на меньшее, а бывшее меньшее – на вычисленный остаток от деления; и так – до тех пор, пока получаемое при этом меньшее из двух чисел (т.е., по сути, последний вычисленный остаток от деления большего числа на меньшее) не станет равным нулю (меньше нуля остаток от деления, очевидно, быть не может). По завершении цикла выводится значение a, которое равно бывшему на предыдущем шаге цикла меньшему числу.

11. Что печатает программа Решение

11. Что печатает программа Решение Это знаменитый алгоритм вычисления НОД (наибольшего общего делителя) двух чисел – алгоритм Евклида, описанный этим греческим ученым в его книгах «Начала». Как он работает? Берутся два числа, для которых требуется вычислить НОД. Если они равны, то любое из них – и есть НОД. Иначе из большего числа вычитается меньшее. Такое вычитание будет производиться до тех пор, пока полученная разность не окажется меньше, чем меньшее из имевшихся чисел, тогда далее эти числа меняются местами: бывшее меньшее становится новым большим, а полученная разность становится меньшим числом. И так, пока числа не сравняются. Это – «классический» алгоритм Евклида для нахождения НОД, основанный на вычитаниях. Но можно его и ускорить, реализовав на основе делений с остатком.

11. Что печатает программа Решение Целую цепочку вычитаний из большего числа меньшего до тех пор, пока разность не станет меньше меньшего из чисел, можно заменить делением большего числа на меньшее с остатком. Например, цепочка вычитаний: 14 – 3 = 11; 11 – 3 = 8; 8 – 3 = 5; 5 – 3 = 2 дает тот же результат, что и деление с остатком: 14 mod 3 = 2. А сравнение двух обрабатываемых чисел между собой вполне можно заменить на проверку равенства нулю остатка от их деления друг на друга. На этих рассуждениях можно сформулировать следующий вариант алгоритма Евклида для нахождения НОД двух чисел: берется два натуральных числа A и B, где A > B; вычисляется остаток от их деления друг на друга; большее число заменяется остатком; эти действия повторяются, пока не получится нулевой остаток; тогда предыдущий ненулевой остаток и будет являться НОД исходных двух чисел.

11. Что печатает программа Решение Очевидно, что получаемый остаток будет меньше, чем меньшее из двух делящихся чисел (делитель), так что каждый раз надо сравнивать числа и менять их местами, чтобы первое (делимое) было больше, чем второе (делитель). То есть, эту операцию проверки и обмена чисел местами надо включать в цикл. А можно ли обойтись без этого? Будем после вычисления остатка от деления большего числа на меньшее записывать бывшее меньшее взамен большего, а остаток – взамен бывшего меньшего. Смысла алгоритма это, очевидно, не изменит: все равно на очередном шаге цикла будет выполняться деление оставшегося меньшего числа предыдущей пары на вычисленный остаток. Но зато мы будем уверены, что у нас всегда первое число будет больше второго!

11. Что печатает программа Решение Получаем следующий «модифицированный» алгоритм Евклида с делением. Берется два натуральных числа A и B, где A > B. Затем в цикле: вычисляется остаток от деления A на B; большее число заменяется меньшим; меньшее число заменяется остатком; эти действия повторяются, пока не получится нулевой остаток; тогда предыдущий ненулевой остаток и будет являться НОД исходных двух чисел.

11. Что печатает программа Решение Аналогия с ранее проанализированным алгоритмом очевидна. Таким образом, в заданном тексте программы фрагмент: while b>0 do begin r := a mod b; a := b; b := r; end; это вычисление НОД двух чисел a и b (т.е. по сути – чисел x и y), а в конце программы сначала выводится найденное значение НОД, а потом – сами исходные числа.

11. Что печатает программа Решение Программа, согласно условию, выводила числа 7 и 35 плюс какое-то неизвестное третье число, которое предлагается определить. Значит, в данном случае НОД равен 7, а одно из чисел равно 35: НОД(35,x) = 7. Тогда искомое второе число x тоже должно делиться на 7, причем это должен быть наибольший из существующих делителей. Таких чисел много (например, то же число 7). Но нам по условию требуется наибольшее из таких чисел. Очевидно, это число 14. Ответ: 14.

12. Мы едем, едем, едем На рисунке изображена схема дорог между городами. По каждой дороге можно двигаться только по стрелке. Сколько существует различных путей из города А в город G? A B C D E F G

12. Мы едем, едем, едем Решение Подобные задачи проще всего решать, выстраивая «дерево путей». 1. Из А можно попасть в В или в D: A BD

12. Мы едем, едем, едем Решение 2. Из B можно попасть в D или в С, а из С, в свою очередь, опять-таки в D: A BD DC D

12. Мы едем, едем, едем Решение 3. Дальше из каждой вершины D надо вычертить три пути – к Е, F и G, потом везде прочертить от Е пути к F, а затем от F везде прочертить пути к G. Тогда останется только подсчитать в полученном дереве количество отмеченных вершин G, и это количество как раз и дает нам искомое количество различных путей из А в G. Недостаток такого способа – дерево получается довольно «раскидистым», рисовать его неудобно. Легко заметить, что для каждой вершины D в дереве, построенном на шаге 2, мы далее строим совершенно одинаковые продолжения. А значит, можно существенно сократить затраты времени и сил, вычертив поддерево путей от D к G только один раз, подсчитав в нем количество вхождений вершины G, а потом умножив это количество на количество вхождений в ранее построенную часть дерева путей вершины D.

12. Мы едем, едем, едем Решение A BD DC D D EFG F G G D EFG F G G D EFG F G G D EFG F G G В первом поддереве вершина D повторяется 3 раза, а во втором поддереве вершина G повторяется тоже 3 раза. Значит, общее количество путей из А в G равно 3 3 = 9.

13. Плотно? Еще плотнее! Документ объемом 50 Мб можно передать с одного компьютера на другой двумя способами: А) сжать архиватором, передать по каналу связи архив, распаковать его; Б) сжать суперархиватором, передать суперархив по каналу связи, распаковать его. При этом: скорость передачи данных по каналу связи составляет 222 бит/с; объем архива составляет 75% от исходного файла; объем суперархива составляет 50% от исходного файла; сжатие документа архиватором занимает 15 с, а распаковка – 10 с; сжатие документа суперархиватором занимает 30 с, а распаковка – 15 с. Какой способ быстрее и насколько? В ответе надо записать сначала букву, обозначающую соответствующий способ, а затем сразу после нее записать количество секунд, на сколько этот способ быстрее другого.

13. Плотно? Еще плотнее! Решение А) Тратим 25 секунд на сжатие/распаковку, а затем передаем 75% от 50 Мб со скоростью 2 22 бит/с: Б) Тратим 45 секунд на сжатие/распаковку, а затем передаем 50% от 50 Мб со скоростью 2 22 бит/с: Сравнивая способы А и Б, получаем, что быстрее способ Б на 5 секунд. Ответ: Б5.

16. Опять В15 Сколько существует различных наборов значений логических переменных x1 … x6, которые удовлетворяют перечисленным ниже условиям: (x1 x2) (x3 x4) = 1 (x3 x4) (x5 x6) = 1 В ответе не требуется перечислять сами наборы значений переменных, а нужно указать только количество таких наборов.

16. Опять В15 Решение 1. Для упрощения решения выполним подстановку: a1 = x1 x2; a2 = x3 x4; a3 = x5 x6. Тогда исходная система уравнений примет вид: a1 a2 = 1 a2 a3 = 1 2. Рассмотрим первое уравнение: a1 a2 = 1. Вспомним, что логическая операция следования дает единицу в трех случаях: 0 0, 0 1 и 1 1 и только в одном случае дает нуль: 1 0. Поэтому данное логическое уравнение дает нам три варианта решения: (a1a2) = (00), (01), (11).

16. Опять В15 Решение 3. Рассмотрим теперь второе уравнение: a2 a3 = 1. Обратим внимание, что здесь первый операнд – тот же самый, который был вторым операндом в предыдущем уравнении. А значит, он нам уже известен (в трех вариантах) и теперь мы должны к нему добавить возможные значения второго операнда. Если операнд a2 равен 0, то для него возможно два значения второго операнда a3, дающих в результате следования единицу, – это может быть как 0, так и 1. Если a2 равно 1, то для него возможно только одно-единственное значение a3, равное 1, – только тогда результат следования будет тоже равен 1. Какой из этого можно сделать вывод? При формировании наборов значений переменных a мы должны к последней единице дописывать только единицу, а если последней цифрой был нуль, то писать взамен два варианта, в одном из которых дописывается 0, а в другом 1.

16. Опять В15 Решение В нашем случае это можно выразить схемой: и т.д. Эту схему можно расширять на любое количество уравнений и переменных a. В нашем случае мы получаем следующие наборы значений переменных a: (a1a2a3) = (000), (001), (011), (111).

16. Опять В15 Решение 4. А теперь вспомним, что каждая переменная a – это тоже операция следования: a1 = x1 x2; a2 = x3 x4; a3 = x5 x6. Как теперь перейти от значений a к значениям x? Это нетрудно, если вспомнить, в каких случаях операция следования дает 0, а в каких 1. Причем сейчас даже не важны сами получающиеся при этом значения переменных x1, x2, x3, x4, x5 и x6. Важно лишь то, что для каждого нуля в полученных ранее вариантах значений (a1a2a3) будет только один вариант значений соответствующих переменных x, а для каждой единицы получается по три разных набора «иксов». И если единиц в наборе (a1a2a3) несколько, то тройки наборов «иксов» для каждой такой единицы перемножаются.

16. Опять В15 Решение Понять, почему это так, достаточно легко. Предположим, что единиц – две. (1 1) Тогда первой соответствует 3 варианта «иксов» и в каждом из них будет еще оставаться по одной «нераспакованной» в «иксы» единице: А далее в каждом из полученных трех вариантов оставшаяся единица тоже дает по три варианта: Итого действительно получается 3 3 = 9 вариантов.

16. Опять В15 Решение А если в исходном наборе переменных a есть и единицы, и нули? Тогда надо для каждой единицы выполнять умножение количества вариантов на 3, а для нулей такое умножение не требуется (разве что надо учесть, что для варианта из одних нулей будет один-единственный набор «иксов»). Можно вывести следующее формальное правило, позволяющее вычислить окончательное количество вариантов «иксов» для того или иного набора значений переменных a: берем набор значений переменных a (например: (0011) ); заменяем в нем каждую цифру 0 на 1, а каждую цифру 1 – на 3 (например: (0011) заменяется на (1133) ); вставляем между каждыми двумя полученными цифрами знак умножения (пример: ( ) ); выполняем все получившиеся перемножения (и в приведенном примере получаем 9).

16. Опять В15 Решение Для нашей задачи можно подсчитать, что: (a1a2a3) = (000) дает 1 набор «иксов»; (a1a2a3) = (001) дает 3 набора «иксов»; (a1a2a3) = (011) дает 9 наборов «иксов»; (a1a2a3) = (111) дает 27 наборов «иксов». Всего получается = 40 наборов переменных x1,x2,x3,x4,x5 и x6. Ответ: 40.