Скачать презентацию Подготовка к ЕГЭ по информатике Задания высокого уровня Скачать презентацию Подготовка к ЕГЭ по информатике Задания высокого уровня

7898acfb15a088ba586ed0a58fa380c4.ppt

  • Количество слайдов: 40

Подготовка к ЕГЭ по информатике. Задания высокого уровня сложности частей В и С. Практичесоке Подготовка к ЕГЭ по информатике. Задания высокого уровня сложности частей В и С. Практичесоке занятие подготовила: Пушкова И. А. , учитель информатики МОУ Тимоновской СОШс. УИОП 2009/2010 учебный год

Скажи мне – и я забуду, Покажи мне – и я запомню, Вовлеки меня Скажи мне – и я забуду, Покажи мне – и я запомню, Вовлеки меня – и я пойму. (Древняя китайская мудрость)

Задания высокого уровня сложности частей В и С Проверяемые элементы содержания Макс время балл Задания высокого уровня сложности частей В и С Проверяемые элементы содержания Макс время балл (мин. ) В 4. Умение строить и преобразовывать логические выражения 1 10 С 2. Умение написать короткую простую программу обработки массива на языке программирования или записать алгоритм 2 30 С 3. Умение построить дерево игры по заданному алгоритму и обосновать выигрышную стратегию 3 30 С 4. Умение создавать собственные программы для решения задач средней сложности 4 60

Для выполнения В 4 надо знать: • ¬ A, • A B, не A Для выполнения В 4 надо знать: • ¬ A, • A B, не A (отрицание, инверсия) A и B (логическое умножение, конъюнкция) • A B, A или B (логическое сложение, дизъюнкция) • A → B импликация (следование) • A ↔ B эквиваленция (эквивалентность, равносильность) A → B = ¬ A B; A ↔ B = ¬ A ¬ B A B

Законы алгебры логики название Двойное отрицание Исключение третьего Операции с константами повторения поглощения переместительный Законы алгебры логики название Двойное отрицание Исключение третьего Операции с константами повторения поглощения переместительный сочетательный распределительный Законы де Моргана Для ИЛИ

Задание В 4 Перед началом Турнира Четырех болельщики высказали следующие предположения по поводу своих Задание В 4 Перед началом Турнира Четырех болельщики высказали следующие предположения по поводу своих кумиров: М 1 V B 2 А) Макс победит, Билл – второй; B 3 V N 1 В) Билл – третий, Ник – первый; M 4 V D 1 С) Макс – последний, а первый – Джон. Когда соревнования закончились, оказалось, что каждый из болельщиков был прав только в одном из своих прогнозов. Какое место на турнире заняли Джон, Ник, Билл, Макс? (В ответе перечислите подряд без пробелов места участников в указанном порядке имен. )

Построим и преобразуем логическое выражение: (М 1 VB 2)&(B 3 VN 1)&(M 4 VD Построим и преобразуем логическое выражение: (М 1 VB 2)&(B 3 VN 1)&(M 4 VD 1)= M 1&B 3&M 4 V B 2&B 3&M 4 V M 1&N 1&M 4 V B 2&N 1&M 4 V M 1&B 3&D 1 V B 2&B 3&D 1 V M 1&N 1&D 1 V B 2&N 1&D 1= B 2&N 1&M 4 (Билл -2, Ник -1, Макс – 4) Ответ: 3124

Задание В 4 Каково наибольшее целое число X, при котором истинно высказывание (50<X·X) → Задание В 4 Каково наибольшее целое число X, при котором истинно высказывание (50(X+1) ·(X+1))?

Преобразуем логическое выражение: Логические выражения А → В и (¬А) / В равносильны, поэтому: Преобразуем логическое выражение: Логические выражения А → В и (¬А) / В равносильны, поэтому: (50(X+1) ·(X+1)) = ¬ (50(X+1) ·(X+1)) = (50>=X·X) V (50>(X+1) ·(X+1)) = I Ответ: 7 наибольшее целое число X, при котором истинно высказывание

Задание В 4 Сколько различных решений имеет уравнение J / ¬K / L / Задание В 4 Сколько различных решений имеет уравнение J / ¬K / L / ¬M / (N / ¬N) = 0 где J, K, L, M, N – логические переменные? В ответе не нужно перечислять все различные наборы значений J, K, L, M и N, при которых выполнено данное равенство. В качестве ответа Вам нужно указать количество таких наборов. Ответ: 30

Задание С 2 Умение написать короткую простую программу обработки массива на языке программирования или Задание С 2 Умение написать короткую простую программу обработки массива на языке программирования или записать алгоритм на естественном языке

Критерии оценки задания С 2: • • 2 балла – предложен правильный алгоритм, возможно Критерии оценки задания С 2: • • 2 балла – предложен правильный алгоритм, возможно наличие отдельных синтаксических ошибок; 1 балл – имеется не более 2 -х ошибок: 1. не объявлен массив; 2. не указано или неверно указано условие завершения цикла; 3. не меняется индексная переменная; 4. неверно расставлены операторные скобки

Задание С 2 • Опишите на русском языке или одном из языков программирования алгоритм Задание С 2 • Опишите на русском языке или одном из языков программирования алгоритм получения из заданного целочисленного массива размером 30 элементов другого массива, который будет содержать модули значений элементов первого массива.

Содержание верного ответа • Заводим новый целочисленный массив той же длины. В цикле от Содержание верного ответа • Заводим новый целочисленный массив той же длины. В цикле от первого элемента до последнего сравниваем элементы исходного массива с 0. Отрицательным элементам меняем знак. Записываем значения во второй массив с теми же номерами.

Пример правильной эффективной программы на Pascal и Basic const N = 30; var a: Пример правильной эффективной программы на Pascal и Basic const N = 30; var a: array[1. . N] of integer; i: integer; begin for i : = 1 to N do if a[i] <0 then b[i]: =-a[i] else b[i]: =a[i] end. N = 30 DIM I, A(N), B(N) AS INTEGER FOR I = 1 TO N IF A(i) <0 THEN B(I)=-A(I) ELSE B(I)=A(I) END IF NEXT I END

Задание С 2 • Опишите на русском языке или одном из языков программирования алгоритм Задание С 2 • Опишите на русском языке или одном из языков программирования алгоритм подсчета числа элементов, равных максимальному, в числовом массиве из 30 элементов.

Содержание верного ответа • Введем целочисленную переменную Max, в которую будем заносить максимальный из Содержание верного ответа • Введем целочисленную переменную Max, в которую будем заносить максимальный из просмотренных элементов массива, и целочисленную переменную Num, в которой будем подсчитывать число повторений максимального элемента в просмотренной части массива. Занесем в Маx значение первого элемента массива, в Num занесем 1. • В цикле до конца массива: сравниваем очередной элемент массива с текущим значением переменной Max, если он больше, то заносим его значение в Max и устанавливаем счетчик Num в 1, если они равны, то увеличиваем счетчик Num на 1. По окончании цикла переменная Num содержит число повторений максимального элемента массива.

Пример правильной эффективной программы на Pascal и Basic const N = 30; var a: Пример правильной эффективной программы на Pascal и Basic const N = 30; var a: array[1. . N] of integer; Max, Num, i: integer; begin Max : = a[1]; Num : = 1; for i : = 2 to N do if a[i] > Max then begin Max : = a[i]; Num : = 1 end else if a[i] = Max then Num : = Num + 1; writeln(Num) end. N = 30 DIM i, Max, Num, a(N) AS INTEGER Max = a(1) Num = 1 FOR i = 2 TO N IF a(i) > Max THEN Max = a(i) : Num = 1 ELSE IF a(i) = Max THEN Num = Num + 1 END IF NEXT i PRINT Num END

Пример 1 решения экзаменуемого: 2 балла Пример 1 решения экзаменуемого: 2 балла

Пример 2 решения экзаменуемого: 0 баллов Пример 2 решения экзаменуемого: 0 баллов

Пример 3 решения экзаменуемого: • Заведем переменную для максимума. Будем сравнивать ее со всеми Пример 3 решения экзаменуемого: • Заведем переменную для максимума. Будем сравнивать ее со всеми элементами массива. Если её значение будет меньше элемента массива, то присваиваем ей значение этого элемента. • После этого, заводим еще одну переменнуюсчетчик, обнуляем её, последовательно просматриваем весь массив и увеличиваем счетчик по числу элементов, равных значению максимума. 1 балл В ответе не описана инициализация переменной для поиска максимума

Задание С 3 Умение построить дерево игры по заданному алгоритму и обосновать выигрышную стратегию Задание С 3 Умение построить дерево игры по заданному алгоритму и обосновать выигрышную стратегию

Критерии оценки задания С 3: • 3 балла - правильное указание выигрывающего игрока и Критерии оценки задания С 3: • 3 балла - правильное указание выигрывающего игрока и его ходов со строгим доказательством правильности (с помощью или без помощи дерева игры); • 2 балла - правильное указание выигрывающего игрока, стратегии игры, приводящей к победе, но при отсутствии доказательства ее правильности.

Критерии оценки задания С 3: 1 балл - при наличии одного из пунктов: 1. Критерии оценки задания С 3: 1 балл - при наличии одного из пунктов: 1. Правильно указан единственно верный ход первого игрока и возможные ответы второго игрока, но неверно (или не полностью) определены дальнейшие действия и неправильно указан победитель. 2. Правильно указан выигрывающий игрок, указан его единственно верный первый ход, но описание выигрышной стратегии неполно 3. Имеется полный анализ всех возможных первых ходов обоих играющих, но нет указания на единственно правильный ход первого игрока, и имеются ошибки в определении дальнейшей стратегии игры.

Задание С 3 • Два игрока играют в следующую игру. Перед ними лежат две Задание С 3 • Два игрока играют в следующую игру. Перед ними лежат две кучки камней, в первой из которых 5, а во второй – 3 камня. У каждого игрока неограниченно много камней. Игроки ходят по очереди. Ход состоит в том, что игрок или удваивает число камней в какой-то куче, или добавляет 4 камня в какую-то кучу. Выигрывает игрок, после хода которого в одной из куч становится не менее 22 камней. Кто выигрывает при безошибочной игре обоих игроков – игрок, делающий первый ход, или игрок, делающий второй ход? Как должен ходить выигрывающий игрок? Ответ обоснуйте.

Содержание верного ответа • Выигрывает первый игрок. Своим первым ходом он должен удвоить количество Содержание верного ответа • Выигрывает первый игрок. Своим первым ходом он должен удвоить количество камней во второй куче. • Для доказательства рассмотрим неполное дерево игры, оформленное в виде таблицы, где в каждой ячейке записаны пары чисел, разделенные запятой. Эти числа соответствуют количеству камней на каждом этапе игры, в первой и второй кучах соответственно.

Неполное дерево игры 1 ход Старто I игрок вая (выигры позици шный я ход) Неполное дерево игры 1 ход Старто I игрок вая (выигры позици шный я ход) 5, 3 5, 6 2 ход II игрок (все ходы) 10, 6 9, 6 5, 10 5, 12 3 ход I игрок (выигрышные ходы) 10, 10 9, 10 или 10, 10 5, 24 Первые ходы (5, 7); (9, 3); (10, 3) можно не рассматривать, т. к. все они приводят к победе второго игрока при его правильной игре

Пример 1 решения экзаменуемого: 0 баллов Пример 1 решения экзаменуемого: 0 баллов

Пример 2 решения экзаменуемого: 2 балла Пример 2 решения экзаменуемого: 2 балла

Пример 3 решения экзаменуемого: 3 балла Пример 3 решения экзаменуемого: 3 балла

Задание С 4 Умение создавать собственные программы для решения задач средней сложности Задание С 4 Умение создавать собственные программы для решения задач средней сложности

Задание С 4 На вход программе подаются сведения о сдаче экзаменов участниками 9 классов Задание С 4 На вход программе подаются сведения о сдаче экзаменов участниками 9 классов некоторой школы. <Фамилия> <Имя> <Оценки> Иванов Петр 4 5 4 Вывести фамилии и имена 3 лучших по среднему баллу учеников. Если среди остальных есть ученики, набравшие тот же средний балл, что 1 из лучших, вывести и их фамилии и имена.

Содержание верного ответа • Программа верно читает исходные данные, запоминая фамилии, имена и сумму Содержание верного ответа • Программа верно читает исходные данные, запоминая фамилии, имена и сумму баллов в массиве записей. Подсчитывает 3 лучшие по величине суммы баллов. Затем за дополнительный просмотр выводит фамилии и имена учащихся, набравших в сумме баллов не меньше третьей по величине сумме баллов.

Пример правильной и эффективной программы на языке Паскаль: Var p: array[1. . 100] of Пример правильной и эффективной программы на языке Паскаль: Var p: array[1. . 100] of record name: string; sum : integer; End; C: char; i, j, N, s 1, s 2, s 3, m: integer; Begin Readln(N); for i: =1 to N do p[i]. name: =‘’; repeat read (c); p[i]. name: =p[i]. name+c; until c=‘ ‘; {фамилия} repeat read (c); p[i]. name: =p[i]. name+c; until c=‘ ‘; {имя} p[i]. sum: =0; For j: =1 to 3 do begin read(m); p[i ]. sum: =p[i ]. sum+m; end; {сумма баллов} readln; end; s 1: =0; s 2: =0; s 3: =0; for i: =1 to n begin If p[i]. sum>s 1 then Begin s 3: =s 2; s 2: =s 1; s 1: =p[i]. sum; end; else if p[i]. sum>s 2 then Begin s 3: =s 2; s 2: =p[i]. sum; end else if p[i]. sum>s 3 then s 3: =p[i]. sum; end;

Критерии оценки задания С 4 • 4 балла - программа работает верно, корректно выделяет Критерии оценки задания С 4 • 4 балла - программа работает верно, корректно выделяет из входных данных оценки, ищет 3 лучшие суммы баллов. Допускается 1 синтаксическая ошибка. • 3 балла – программа в целом работает верно, сохраняются не суммы баллов (или средние значения), а сами баллы. Суммы баллов несколько раз перевычисляются. Допускается от 1 до 3 синтаксических ошибок.

Критерии оценки задания С 4 • 2 балла - программа работает в целом верно, Критерии оценки задания С 4 • 2 балла - программа работает в целом верно, но выводит только 3 лучших учеников. Возможно некорректно организовано считывание данных. Не описана или неверно описана переменная, применяется операция, не соответствующая типу данных. Не более 5 синтаксических ошибок. • 1 балл – программа неверно работает при некоторых входных данных. Допускается до 4 ошибок в ходе решения задачи. Не более 7 синтаксических ошибок.

Задание С 4 На вход программе подаются 366 строк, которые содержат информацию о среднесуточной Задание С 4 На вход программе подаются 366 строк, которые содержат информацию о среднесуточной температуре всех дней 2004 года. Формат каждой из строк следующий: <Дата> <Температура> dd. mm +17 Данная информация отсортирована по значению температуры, то есть хронологический порядок нарушен. Найти информацию о месяце (месяцах) среднемесячная температура у которого (которых) наименее отклоняется от среднегодовой. Найденные значения для каждого из месяцев следует выводить в отдельной строке в виде: номер месяца, значение среднемесячной температуры, отклонение от среднегодовой температуры.

Пример правильной и эффективной программы на языке Паскаль: Const d: array[1. . 12] of Пример правильной и эффективной программы на языке Паскаль: Const d: array[1. . 12] of integer = (31, 29, 31, 30, 31, 3 0, 31); var tm: array[1. . 12] of real; m: 1. . 12; data: string[5]; min, ty, t: real; i: integer; begin for i: =1 to 12 do tm[i]: =0; ty: =0; {среднегодовая температура} for i: =1 to 366 do begin readln(data, t); {вычисляем номер месяца} m: =(ord(data[4])-ord('0'))*10 +ord(data[5])-ord('0'); tm[m]: =tm[m]+t; ty: =ty+t; end; for i: =1 to 12 do tm[i]: =tm[i]/d[i]; ty: =ty/366; min: =100; for i: =1 to 12 do if abs(tm[i]-ty)

Критерии оценки задания С 4 • 4 балла - программа работает верно, определяет все Критерии оценки задания С 4 • 4 балла - программа работает верно, определяет все месяцы, в которых температура минимально отклоняется от среднегодовой, не содержит вложенных циклов. Допускается 1 синтаксическая ошибка. • 3 балла – программа работает верно, но содержит вложенные циклы, возможно, запоминает значение всех температур в массиве. Допускается от 1 до 3 синтаксических ошибок.

Критерии оценки задания С 4 • 2 балла - программа работает в целом верно Критерии оценки задания С 4 • 2 балла - программа работает в целом верно с вложенными циклами или без них или обрабатывает каждый месяц явным образом. Допускается не более 5 синтаксических ошибок. • 1 балл – программа некорректно определяет номер месяца или неверно вводит или выводит данные. Может содержать ошибку поиска средней температуры. Допускается не более 7 синтаксических ошибок.