Методика подготовки учащихся к выполнению заданий с развернутым ответом КИМ ЕГЭ по информатике и ИКТ
Методика подготовки учащихся к выполнению задания №24 КИМ ЕГЭ по информатике и ИКТ
Сравнительные результаты выполнения задания 24
Необходимый теоретический материал для выполнения задания
Необходимый теоретический материал для выполнения задания
Анализ формулировок задания №24 за последние три года
Пример выполнения задания 24 (2015 г.)
Пример выполнения задания 24 (2016 г.)
Критерии оценивания задания 24
Схема оценивания задания 24
Методика подготовки учащихся к выполнению задания №25 КИМ ЕГЭ по информатике и ИКТ
Сравнительные результаты выполнения задания 25
Методические подходы к подготовке учащихся к выполнению задания 25
Обобщенный вариант задания 25
Анализ формулировок задания №25 за последние три года
Структура программы задания 25
Теоретический материал, необходимый для выполнения задания
Теоретический материал, необходимый для выполнения задания
Примеры формализации некоторых условий, используемых при отборе элементов:
Необходимый теоретический материал для выполнения задания
Задачи для практических занятий по теме «Двумерные массивы»
Критерии оценивания задания 25
Перечень ошибок, наличие которых приводит к уменьшению баллов
Полный вид решения на естественном языке
Методика подготовки учащихся к выполнению задания №26 КИМ ЕГЭ по информатике и ИКТ
Сравнительные результаты выполнения задания 26
Игры и стратегии в курсе информатики
Игры и стратегии в курсе информатики
Игры и стратегии в курсе информатики
Пример игры с выигрышными позициями
Понятие выигрышной стратегии
Разработка правильной стратегии задания 26
Критерии оценивания задания 26
Пример задания №26 (2016 г., 407 вариант)
Пример задания №26 (2016 г., 407 вариант)
Пример задания №26 (2016 г., 407 вариант)
Пример задания №26 (2016 г., 407 вариант)
Пример задания №26 (2016 г., 407 вариант)
Пример задания №26 (2016 г., 407 вариант)
Пример задания №26 (2016 г., 407 вариант)
Пример задания №26 (2016 г., 407 вариант)
Критерии оценивания задания №26 (2016 г., 407 вариант)
Презентации с разбором других типов заданий 26
Задания на угадывание чисел (несколько вариантов из КИМ НИКО по информатике и ИКТ-2015)
Анализ ошибок, допущенных при выполнении задания №26 участниками ЕГЭ 2016 года и примеров решений данного задания.
Задача 26 (2016 г.)
Основные типы ошибок, допущенных при выполнении задания 26 в 2016 году
Содержание верного ответа
Содержание верного ответа
Содержание верного ответа
Критерии оценивания задания №26 (2016 г., 407 вариант)
Методика подготовки учащихся к выполнению задания №27 КИМ ЕГЭ по информатике и ИКТ
Сравнительные результаты выполнения задания 27
Методические подходы к обучению способам решения задания 27
Требования к подготовке учащихся:
Модули, которые должны присутствовать в решении задания 27
Примеры модулей организации ввода данных
Организация обработки данных
Задача 27 (2013 г.)
Задача 27 (2014 г.)
Задача 27 (2015 г.)
Задача 27 (2016 г.)
Примеры модулей организации вывода данных
Алгоритм решения задачи:
Критерии оценивания эффективности программы (задание 27)
Обобщенные критерии оценивания программы задания 27 (на основе критериев 2015 г.)
Синтаксические ошибки, не влияющие на оценивание задания 27
Содержательные ошибки, влияющие на оценивание задания 27 (2016 г.)
Методика проведения занятий при подготовке к выполнению заданий на обработку строк
Методика проведения занятий при подготовке к выполнению заданий на обработку строк
Обработка символьных строк
Функции работы с символами
Функции работы со строками
Процедуры работы со строками
Обработка записей в Pascal
Задачи, демонстрирующие функции и процедуры обработки символов и строк
Задача 1
Задача 2
Задача 3
Задача 4
Задача 5
Задача 6
Задача 7
Задача 8
Задача 9 (обработка латинских символов)
9-1.
9-2.
9-3.
9-4.
Обработка числовых последовательностей
Модули, которые должны присутствовать в решении задания 27
Пример программы, неэффективной по времени и по памяти
Сравнение формулировок задания 27
Формулировка задания 27 для участника ЕГЭ
Объявление переменных и ввод данных в массив
Обработка массива и вывод результата (2014 г.)
Обработка массива и вывод результата (2015 г.)
Программа эффективная по времени и неэффективная по памяти (2014 г.)
Программа эффективная по времени и неэффективная по памяти (2015 г.)
Программа эффективная по памяти и времени 2014 г.
Программа эффективная по памяти и времени 2015 г.
Анализ ошибок, допущенных при выполнении задания №27 участниками ЕГЭ 2016 года и примеров решений данного задания.
Задача 27 (2016 г.)
Основные типы ошибок, допущенных при выполнении задания 27 в 2016 году
Пример программы, верно решающей задание А
Пример программы, верно решающей задание Б
Пример программы, верно решающей задание Б
Пример решения №1
Пример решения №2
Пример решения №3
Пример решения №4
Пример решения №5
Дополнительные источники информации
Общие рекомендации по организации подготовки учащихся к ЕГЭ по информатике и ИКТ
Динамика решаемости заданий с развернутым ответом за два года
7.99M
Category: informaticsinformatics

Методика подготовки учащихся к выполнению заданий с развернутым ответом КИМ ЕГЭ по информатике и ИКТ

1. Методика подготовки учащихся к выполнению заданий с развернутым ответом КИМ ЕГЭ по информатике и ИКТ

Кафедра информационно-коммуникационных технологий
Методика подготовки учащихся к
выполнению заданий с развернутым
ответом КИМ ЕГЭ по информатике и
ИКТ
Лекция №2

2. Методика подготовки учащихся к выполнению задания №24 КИМ ЕГЭ по информатике и ИКТ

Филиппов Владимир Ильич,
старший преподаватель кафедры
информационно-коммуникационных
технологий

3. Сравнительные результаты выполнения задания 24

Полученные
баллы за задание
0
1
2
3
Процент от участников экзамена, получивших баллы в
2014 г.
2015 г.
2016 г.
48,9%
40,41%
43,88%
8,11%
14,35%
9,92%
15,56%
25,55%
11,88%
27,43%
19,70%
34,31%

4. Необходимый теоретический материал для выполнения задания

1. Арифметические операции и порядок их
выполнения в программах, записанных на
языках программирования.
2. Структуры ветвления и их реализация на
языках программирования.
3. Циклы с параметром, предусловием и
постусловием и их реализация на языках
программирования.
4. Трассировка программы, записанной на
языке программирования

5. Необходимый теоретический материал для выполнения задания

5. Алгоритмы:
• Нахождения минимума и максимума двух, трех, четырех
данных чисел без использования массивов и циклов.
• Нахождения всех корней заданного квадратного
уравнения.
• Записи натурального числа в позиционной системе с
основанием, меньшим или равным 10. Обработка и
преобразование такой записи числа.
• Нахождения сумм, произведений элементов данной
конечной числовой последовательности (или массива).
• Решения простых переборных задач (поиск наименьшего
простого делителя данного натурального числа, проверка
числа на простоту и т.д.).

6. Анализ формулировок задания №24 за последние три года

Год
Формулировка задания
Типовые алгоритмы
2014 г. На обработку поступает последовательность из Нахождения минимума
четырех неотрицательных целых чисел
и максимума двух,
(некоторые могут быть одинаковыми). Нужно трех, четырех данных
написать программу, которая выводит на
чисел без
экран количество нечетных чисел в исходной
использования
последовательности и максимальное нечетное
массивов и циклов.
число.
2015 г. На обработку поступает положительное целое
число, не превышающее 109 . Нужно написать
программу, выводящую на экран сумму цифр
этого числа, меньших 6.
2016 г. Дано целое положительное число N, не
превосходящее 1000. Необходимо определить,
является ли это число степенью числа 5. То
есть требуется определить, существует ли
такое целое число К, что 5К = N, и вывести это
число либо сообщение, что такого числа не
существует.
Записи натурального
числа в позиционной
системе с основанием,
меньшим или равным
10. Обработка и
преобразование такой
записи числа

7. Пример выполнения задания 24 (2015 г.)

8.

Выполним трассировку
программы для указанной
последовательности:
N
4
count
maximum
i
x

9.

N
count
4
0
maximum
999
i
x
1
2
Остаток от деления 2 на 2 равен 0,
следовательно условие ложно

10.

N
count
4
0
maximum
999
1
i
x
1
2
2
9
Остаток от деления 9 на 2 равен 1,
следовательно условие истинно
Условие 9 > 999 ложно

11.

N
count
4
0
1
maximum
999
i
x
1
2
2
9
3
4
Остаток от деления 4 на 2 равен 0,
следовательно условие ложно

12.

N
count
4
0
maximum
i
x
1
2
1
2
9
2
3
4
4
3
999
Остаток от деления 3 на 2 равен 1,
следовательно условие истинно
Условие 3 > 999 ложно

13.

Условие 2 > 0 истинно
Вывод 2
Вывод 999
Программа выведет два числа:
2 и 999

14.

Count = 2
Maximum = 999

15.

2.
5 999 4 1
Программа выведет 3 и 999

16.

3) Первая ошибка:
Строка с ошибкой Maximum : = 999
Верное исправление Maximum : = 0

17.

Рассмотри выполнение исправленной
программы на последовательности,
содержащей нечётныt числа,
например,
5 9 6 1
0;
N
count
4
0
maximum
0
i
x

18.

5 9 6 1
N
count
4
0
maximum
1
0
i
x
1
5
1
0;
Остаток от деления 5 на 2 равен 1,
следовательно условие истинно
Условие 5 > 0 истинно
Maximum := 1
1) Строка с ошибкой
Maximum := i
Верное исправление
Maximum := x

19. Пример выполнения задания 24 (2016 г.)

20.

Выполним трассировку
программы для указанного числа:
n
k
25
0

21.

Выполним трассировку
программы для указанного числа:
n
k
25
5
0
1
Условие в цикле истинно.
Переменная k увеличивается на 1.
Переменная n становится равной 5.

22.

Выполним трассировку
программы для указанного числа:
n
k
25
5
0
1
Условие в цикле ложно.
Цикл не выполняется.

23.

Выполним трассировку
программы для указанного числа:
n
k
25
5
0
1
Условие истинно.
Программа выведет число 1.

24.

Результат трассировки программы
для указанного числа:
n
k
25
5
0
1
Получен ответ: 1.
Правильный ответ: 2

25.

Результат трассировки программы
для числа 5:
n
k
5
1
0
1
В данной программе цикл с предусловием выполняется всегда один
раз и не зависит от введенного значения n.
Следовательно, программа выводит всегда ответ 1.
Если ввести число 5, то будет получен верный ответ.

26.

3) Первая ошибка:
Строка с ошибкой While k mod 5 = 0
Верное исправление While n mod 5 = 0
В данной программе цикл с предусловием выполняется всегда один
раз и не зависит от введенного значения n.

27.

Выполним трассировку
программы для указанного числа
с учетом сделанного исправления:
n
n
k
25
5
0
1
2
Программа выведет не существует.

28.

3) Вторая ошибка:
Строка с ошибкой If k=1 then
Верное исправление If n = 1 then

29. Критерии оценивания задания 24

Критерии оценивания
Выполнены все четыре необходимых действия, и ни одна
верная строка не указана в качестве ошибочной.
Имеет место одна из следующих ситуаций:
а) выполнены три из четырёх необходимых действий. Ни
одна верная строка не указана в качестве ошибочной;
б) выполнены все четыре необходимых действия. Указано
в качестве ошибочной не более одной верной строки
Выполнены два необходимых действия из четырёх
Не выполнены условия, позволяющие поставить 1, 2 или 3
балла
Баллы
3
2
1
0

30. Схема оценивания задания 24

Верно
выполненных
действий
Нет ложных
указаний на
ошибки
1 ложное
указание на
ошибку
2 и более
ложных
указаний на
ошибки
4
3
2
1
3
2
1
1
2
1
1
1
1
0
0
0
При выставлении 1 балла количество отрицательных
первичных баллов не учитывается.
Если приведено исправление, но не указано где должна
быть строка, то исправление не засчитывается.

31. Методика подготовки учащихся к выполнению задания №25 КИМ ЕГЭ по информатике и ИКТ

Филиппов Владимир Ильич,
старший преподаватель кафедры
информационно-коммуникационных
технологий

32. Сравнительные результаты выполнения задания 25

Полученные
баллы за
задание
Процент от участников экзамена,
получивших баллы в
2014 г.
2015 г.
2016 г.
0
56,51%
58,39%
56,72%
1
13,98%
11,32%
11,37%
2
29,51%
30,28%
31,91%

33. Методические подходы к подготовке учащихся к выполнению задания 25

• выявить специфику задания 25 (что именно и при
каких «стартовых» условиях должен сделать
учащийся);
• предложить краткое и простое описание
последовательности этапов решения задачи;
• определить требования к подготовке учащегося,
необходимые для решения задания 25;
• рассмотреть и проанализировать критерии
проверки задания 25;
• рассмотреть подходы к выполнению учащимся
каждого этапа решения задания.
33

34. Обобщенный вариант задания 25

Дано: одномерный целочисленный массив из N
элементов.
Найти:
сумму ИЛИ среднее арифметическое ИЛИ
произведение
элементов / пары элементов / тройки элементов
удовлетворяющим условию / условиям.

35. Анализ формулировок задания №25 за последние три года

Год
Формулировка задания
Типовые алгортмы
2014 г. Дан целочисленный массив из 20 элементов. Элементы массива могут Нахождение
принимать целые значения от 0 до 10000 включительно. Опишите на
естественном языке или на одном из языков программирования
алгоритм, позволяющий найти и вывести максимальное значение среди
элементов массива, которые имеют чётное значение и являются
трёхзначными. Если в исходном массиве нет элемента, значение которого
является чётным трёхзначным числом, то вывести сообщение «Не
найдено».
максимального
значения в данном
массиве
Проверка
соответствия
элементов
массива
некоторому условию
2015 г. Дан целочисленный массив из 20 элементов. Элементы массива могут Проверка
принимать целые значения от -10000 до 10000 включительно. Опишите соответствия
массива
на естественном языке или на одном из языков программирования элементов
алгоритм, позволяющий найти и вывести количество пар элементов некоторому условию.
массива, в которых хотя бы одно число больше 5. В данной задаче под
парой подразумевается два подряд идущих элемента массива.
2016 г. Дан целочисленный массив из 40 элементов. Элементы массива могут Проверка
принимать целые значения от 0 до 10000 включительно. Опишите на соответствия
естественном языке или на одном из языков программирования элементов массива
алгоритм, позволяющий найти и вывести количество пар элементов некоторому
массива, в которых десятичная запись хотя бы одного числа оканчивается условию.
на 4. В данной задаче под парой подразумевается два подряд идущих
элемента массива.

36. Структура программы задания 25

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

37. Теоретический материал, необходимый для выполнения задания

1. Массив как структура данных;
2. Объявление и заполнение одномерных и
двумерных массивов;
3. Указание на (обращение к) определенному
элементу одномерного или двумерного
массива;
4. Просмотр необходимых элементов в цикле (с
параметром или предусловием);
5. Алгоритм поиска минимальных /
максимальных элементов.
6. Алгоритмы сортировки.

38. Теоретический материал, необходимый для выполнения задания

5. Структура ветвления, сложные условия в
ветвлении.
6. Вывод ответа с условием / без условия.
7. Отбор элементов по условию:
• четности/нечетности;
• кратности/некратности;
• оканчивающейся на определенную цифру;
• являющимися N-значными.

39. Примеры формализации некоторых условий, используемых при отборе элементов:

Признак
Пример его формального описания для
некоторого элемента массива А
принадлежность к положительным
/отрицательным числам
четность/нечетность
наличие указанного числа знаков в числе
A[i]>0/ A[i]<0
наличие указанной цифры в конце (начале)
числа
A[i] div 10 =4 (вторая цифра числа – 4)
делимость на некоторое число
A[i] mod 7=0 (делится на 7 нацело)
окончание числа на указанные цифры
(оканчивается на 5)
A[i] mod 10=5
соответствие указанному значению
абсолютного значения элементов массива
(самих по себе, разности соседних
элементов, …)
(последующий элемент массива
больше предыдущего более чем в
три раза)
39
A[i+1] > A[i]*3
A[i] mod 2 =0
(A[i]>=100) and (A[i]<=999)
(трехзначное положительное число )

40. Необходимый теоретический материал для выполнения задания

8. Алгоритмы:
• Нахождения сумм, произведений элементов данной конечной
числовой последовательности (или массива).
• Заполнения элементов одномерного и двумерного массивов по
заданным правилам.
• Операции с элементами массива: линейный поиск элемента, вставка
и удаление элементов в массиве, перестановка элементов данного
массива в обратном порядке.
• Суммирования элементов массива.
• Проверки соответствия элементов массива некоторому условию.
• Нахождения второго по величине (второго максимального или
второго минимального) значения в данном массиве за однократный
просмотр массива.

41. Задачи для практических занятий по теме «Двумерные массивы»

1. Написать программу, которая вводит по строкам с клавиатуры
двумерный массив и вычисляет сумму его элементов по столбцам.
2. Написать программу, которая вводит по строкам с клавиатуры
двумерный массив и вычисляет сумму его элементов по строкам.
3. Написать программу, которая вычисляет сумму диагональных
элементов квадратной матрицы.
4. Написать программу, которая вводит с клавиатуры двумерный
массив по строкам и вычисляет среднее арифметическое его
элементов.
5. Написать программу, которая проверяет, является ли введенная с
клавиатуры квадратная матрица магическим квадратом.
Магическим квадратом называется матрица, сумма элементов
которой в каждой строке, в каждом столбце и по каждой диагонали
одинакова.

42. Критерии оценивания задания 25

Критерии оценивания
Баллы
Предложен правильный алгоритм, выдающий верное значение.
Допускается запись алгоритма на другом языке, использующая
аналогичные переменные. В случае, если язык программирования
использует типизированные переменные, описания переменных должны
быть аналогичны описаниям переменных на естественном языке.
Использование нетипизированных или необъявленных переменных 2
возможно только в случае, если это допускается языком
программирования, при этом количество переменных и их
идентификаторы должны соответствовать условию задачи. В алгоритме,
записанном на языке программирования, допускается наличие отдельных
синтаксических ошибок, не искажающих замысла автора программы.
Не выполнены условия, позволяющие поставить 2 балла. Предложено в
целом верное решение, содержащее не более одной ошибки.
1
Допускается наличие отдельных синтаксических ошибок, не искажающих
замысла автора программы
Задание не выполнялось или ошибок, перечисленных в п. 1–10, две или
больше, или алгоритм сформулирован неверно (в том числе при отсутствии
0
цикла в явном или неявном виде)

43. Перечень ошибок, наличие которых приводит к уменьшению баллов

1) в цикле происходит выход за границу массива слева или справа (например,
используется цикл от 1 до N);
2) не инициализируется или неверно инициализируется счётчик искомых
элементов;
3) счётчик в цикле не изменяется или изменяется неверно;
4) неверно выделяется последняя цифра числа;
5) при проверке выполнения условия для пары элементов используются
неверные индексы;
6) последняя цифра выделяется не у самих элементов массива, а у их индексов;
7) в сложном логическом условии простые проверки верны, но условие в целом
построено неверно (например, перепутаны операции «И» и «ИЛИ», неверно
расставлены скобки в логическом выражении);
8) отсутствует вывод ответа;
9) используется переменная, не объявленная в разделе описания переменных;
10) не указано или неверно указано условие завершения цикла;
11) индексная переменная в цикле не меняется (например, в цикле while) или
меняется неверно;
12) неверно расставлены операторные скобки.

44.

const
N=20;
var
a:array[1..N] of integer;
i,j,max: integer;
begin
for i:=1 to N do
readln(a[i]);

end.
Дан целочисленный массив из 20
элементов. Элементы массива
могут принимать целые значения от
0 до 10000 включительно. Опишите
на естественном языке или на
одном из языков
программирования алгоритм,
позволяющий найти и вывести
максимальное значение среди
элементов массива, которые имеют
чётное значение и являются
трёхзначными. Если в исходном
массиве нет элемента, значение
которого является чётным
трёхзначным числом, то вывести
сообщение «Не найдено».
44

45.

const
N=20;
var
a:array[1..N] of integer;
i,j,max: integer;
begin
for i:=1 to N do
readln(a[i]);

Опишите на естественном языке или
на
одном
из
языков
программирования
алгоритм,
позволяющий найти и вывести
максимальное
значение
среди
элементов массива, которые имеют
чётное
значение
и
являются
трёхзначными.
Определение начальных
значений переменных.
max:=0;
end.
45

46.

const
N=20;
var
a:array[1..N] of integer;
i,j,max: integer;
begin
for i:=1 to N do
readln(a[i]);

max:=0;
Опишите на естественном языке или на
одном из языков программирования
алгоритм, позволяющий найти и вывести
максимальное значение среди элементов
массива, которые имеют чётное значение
и являются трёхзначными.
Обработка элементов массива в
цикле
for i:=1 to N do
begin
If (a[i]> max) and (a[i] mod 2 =0)
(a[i]>=100 ) and (a[i]<=999) then
max:=a[i];
end;
and
end.
46

47.

const
N=20;
var
a:array[1..N] of integer;
i,j,max: integer;
begin
for i:=1 to N do
readln(a[i]);
…max:=0;
for i:=1 to N do
begin
If (a[i]> max) and (a[i] mod 2 =0)
and (a[i]>=100 ) and (a[i]<=999) then
max:=a[i];
end;
Если в исходном массиве нет
элемента, значение которого
является чётным трёхзначным
числом, то вывести сообщение
«Не найдено».
Вывод ответа
If max=0 then writeln(‘не найдено’)
else writeln(max);
end.
47

48.

Полный вид решения на
const
языке Паскаль АВС 3.0.1
N=20;
var
a:array[1..N] of integer;
i,j,max: integer;
begin
max:=0;
for i:=1 to N do
for i:=1 to N do
begin
readln(a[i]);
If (a[i]> max) and (a[i] mod 2 =0)
and

end.
(a[i]>=100 ) and (a[i]<=999) then
max:=a[i];
end;
If max=0 then writeln(‘не найдено’)
else writeln(max);
48

49. Полный вид решения на естественном языке

Объявляем массив
A из 20 элементов.
Объявляем
целочисленные
переменные I, J,
MAX.
В цикле от 1 до 20
вводим элементы
массива A с 1-го по
20-й.

Записываем в переменную max начальное
значение, равное 0.
В цикле от 1-го элемента до 20-го выполняем
проверку каждого элемента массива с
соответствующим индексом по следующему
условию:
Если элемент массива больше или равен 100 и
меньше или равен 999 и в остатке от деления на 2
дает ноль и больше значения переменной max, то
переменной max присваиваем значение этого
элемента массива. Переходим к следующему
элементу.
После завершения цикла проверяем значение
переменной max. Если оно равно нулю, то выводим
«не найдено», иначе выводим значение
переменной max.
49

50. Методика подготовки учащихся к выполнению задания №26 КИМ ЕГЭ по информатике и ИКТ

Филиппов Владимир Ильич,
старший преподаватель кафедры
информационно-коммуникационных
технологий

51. Сравнительные результаты выполнения задания 26

Полученные
баллы за
задание
0
1
2
3
Процент от участников экзамена,
получивших баллы в
2014 г.
2015 г.
2016 г.
32,44%
40,24%
28,29%
12%
17,07%
16,14%
13,91%
16,47%
21,93%
41,64%
26,22%
33,64%

52. Игры и стратегии в курсе информатики

Игра-шутка – игра в которой исход не
зависит от того, как играют соперники.
Есть шоколадка 5*6. Два игрока по очереди
ломают шоколадку. За один ход разрешается
сделать один прямолинейный разлом.
Проигрывает тот, кто не сможет сделать
очередной ход.

53. Игры и стратегии в курсе информатики

Игры с симметричными стратегиями – игра в
которой необходимо найти симметрию, при
которой только что сделанный противником ход
не препятствует осуществлению плана игры.
Имеются две кучи по N камней в каждой. За ход
разрешается любое количество камней, но
только в одной из куч.
Проигрывает тот, кому нечего брать.

54. Игры и стратегии в курсе информатики

• Игры с выигрышными позициями – игры в
которых можно определить позиции,
удовлетворяющие следующим условиям:
1. Завершающая позиция, является
выигрышной;
2. За один ход нельзя из одной выигрышной
позиции попасть в другую выигрышную
стратегию;
3. Из любой невыигрышной позиции за один
ход можно попасть в выигрышную позицию.

55. Пример игры с выигрышными позициями

Два игрока Петя и Вася играют в следующую
игру:
Дано: число 0.
Ход: прибавить число от 1 до 9.
Условие победы: получить число N.
Варианты заданий для учащихся:
1. Кто победит при N=… ?
2. Какое число должен предложить Вася, чтобы
гарантированно победить?

56. Понятие выигрышной стратегии

Это такая стратегия при которой игрок
может выиграть при любых ходах
противника.
Описание стратегии
– указание хода
выигрывающего игрока в любой ситуации,
которая ему может встретиться при
различной игре противника.

57. Разработка правильной стратегии задания 26

При решении заданий 26
обязательным условием является
создание дерева решений, а также
умение сделать правильный вывод по
полученным результатам.

58.

59.

Формулировка задания в дем. вар. ЕГЭ 2016
Решение
(6,33)
(+1,)
Петя
(•2,)
(,+1)
(,•2)
(7,33)
(12,33)
(6,34)
(6,66)
40
45
40
72

60.

Формулировка задания в дем. вар. ЕГЭ 2016
(6,33)
Решение
(+1,)
Петя
(7,33)
(,•2)
Ваня
(•2,)
(12,33)
(,+1)
(6,34)
(,•2)
(,•2)
(,•2)
(6,66)
(,•2)
(7,66)
(12,66)
(6,68)
(6,132)
73
78
74
138

61.

Формулировка задания в дем. вар. ЕГЭ 2016
(8,32)
Решение
(+1,)
Петя
(9,32)
(,•2)
Ваня
(•2,)
(16,32)
(,+1)
(8,33)
(,•2)
(,•2)
(,•2)
(8,64)
(,•2)
(9,64)
(16,64)
(9,66)
(8,128)
73
78
74
138

62.

Согласно решению задания 1 имеем:
Для начальной позиции (6,32) выигрывает
первый игрок своим вторым ходом
(6,32)
Петя
(,+1)
(6,33)
(+1,)
Вася
(7,33)
(,•2)
Петя
(•2,)
(12,33)
(,+1)
(6,34)
(,•2)
(,•2)
(,•2)
(6,66)
(,•2)
(7,66)
(12,66)
(6,68)
(6,132)
73
78
74
138
Петя выигрывает своим вторым ходом.

63.

Согласно решению задания 1 имеем:
для начальной позиции (8,31) выигрывает
первый игрок своим вторым ходом
(8,31)
Петя
(,+1)
(8,32)
(+1,)
Вася
(9,32)
(,•2)
Петя
(•2,)
(16,32)
(,+1)
(8,33)
(,•2)
(,•2)
(,•2)
(8,64)
(,•2)
(9,64)
(16,64)
(9,66)
(8,128)
73
78
74
138
Петя выигрывает своим вторым ходом.

64.

(7,32)
(+1,)
Петя
(•2,)
(,+1)
(,•2)
(8,32)
(14,32)
(7,33)
(7,64)
40
46
40
71
<73
<73
<73
<73
Во всех ситуациях сумма камней меньше 73,
значит Петя не может выиграть
своим первым ходом.

65.

(7,32)
(+1,)
Петя
(8,32)
(,•2)
Ваня
(•2,)
(14,32)
(,+1)
(7,33)
(,•2)
(,•2)
(,•2)
(7,64)
(,•2)
(8,64)
(14,64)
(7,66)
(7,128)
72
78
73
138
≥73
≥73
≥73
Так как среди полученных позиций нашлась такая, при которой
сумма камней <73, то Ваня не может выиграть своим первым ходом.

66.

(7,32)
(+1,)
Петя
(8,32)
(•2,)
(14,32)
(,+1)
(7,33)
(,•2)
(7,64)
(,•2)
Ваня
(8,64)
72
Для проверки возможности выигрыша Вани, достаточно было
проверить только позицию с наименьшим числом камней.

67.

(7,32)
(+1,)
Петя
(8,32)
(,•2)
Ваня
(•2,)
(14,32)
(,+1)
(7,33)
(,•2)
(,•2)
(,•2)
(7,64)
(,•2)
(8,64)
(14,64)
(7,66)
(7,128)
72
78
73
138
≥73
≥73
≥73
Проверим, может ли Петя выиграть своим вторым ходом.
выделенные ходы не могут привести Петю к выигрышу.
Проверим, может ли Петю привести к выигрышу ход (+1,)
приводящий к позиции (8,32).

68.

(7,32)
(+1,)
Петя
(8,32)
(•2,)
(14,32)
(,+1)
(7,33)
(,•2)
(7,64)
Позиция (8,32) была рассмотрена в задании 1.
Мы показали, что при такой начальной позиции выигрывает
второй игрок своим первым ходом.

69.

(7,32)
(•2,)
(+1,)
(14,32)
(8,32)
(+1,)
(9,32)
(,•2)
(•2,)
(16,32)
(,+1)
(,+1)
(8,33)
(,•2)
(,•2)
(7,33)
(,•2)
(7,64)
Петя
(,•2)
(8,64)
Ваня
(,•2)
(9,64)
(16,64)
(9,66)
(8,128)
73
78
74
138
Петя
Мы показали, что при начальной позиции (8,32) выигрывает
второй игрок своим первым ходом.
Следовательно, при начальной позиции (7,32), если Петя увеличит
число камней в первой куче на 1, то выиграет своим вторым ходом.

70.

(7,31)
(+1,)
Петя
(•2,)
(,+1)
(,•2)
(8,31)
(14,31)
(7,32)
(7,62)
39
45
39
69
<73
<73
<73
<73
Петя не может выиграть своим первым ходом.

71.

(7,31)
(+1,)
Петя
(•2,)
(,+1)
(,•2)
(8,31)
(14,31)
(7,32)
(7,62)
39
45
39
69

72.

(7,31)
(+1,)
Петя
(•2,)
(,+1)
(,•2)
(8,31)
(14,31)
(7,32)
(7,62)
39
45
39
69
При решении задания 2 мы показали, что при начальных позициях
(8,32) и (7,32) выигрывает первый игрок своим вторым ходом.
Следовательно, при начальной позиции (7,31), если Петя увеличит
число камней на 1,в любой из куч, то Ваня выиграет своим вторым ходом.

73.

(7,31)
(+1,)
Петя
(•2,)
(,+1)
(,•2)
(8,31)
(14,31)
(7,32)
(7,62)
39
45
39
69
Для позиций (8,31) и (7,32) Ваня выигрывает своим вторым ходом.
Покажем, что для позиций (14,31) и (7,62)
также выигрывает Ваня .

74.

(7,31)
(+1,)
Петя
(8,31)
(•2,)
(14,31)
Рассмотрим позицию (14,31).
(,+1)
(7,32)
(,•2)
(7,62)

75.

Рассмотрим позицию (14,31).
(+1,)
Петя
(8,31)
(7,31)
(•2,)
(,+1)
(14,31)
(, *2)
Ваня
(14,62)
76
≥73
(7,32)
(,•2)
(7,62)
Если после хода Пети
возникает позиция
(14, 31), то выигрывает
Ваня своим первым
ходом.

76.

Рассмотрим позицию (14,31).
(+1,)
Петя
(8,31)
(7,31)
(•2,)
(,+1)
(14,31)
(, *2)
Ваня
Если после хода Пети
возникает позиция
(7, 62), то выигрывает
Ваня своим первым
ходом.
(14,62)
(7,32)
(,•2)
(7,62)
(,•2)
(7,124)
76
131
≥73
≥73

77. Критерии оценивания задания 26

Критерии оценивания
Выполнены все три задания.
Здесь и далее в решениях допускаются арифметические ошибки, которые не
искажают сути решения и не приводят к неправильному ответу
Не выполнены условия, позволяющие поставить 3 балла,
и выполнено хотя бы одно из следующих условий.
Выполнено задание 3.
Выполнены задания 1 и 2
Не выполнены условия, позволяющие поставить 2 или 3 балла, и выполнено
хотя бы одно из следующих условий.
Выполнено задание 1.
Выполнено задание 2
Задание не выполнялось или невыполнено ни одно из условий,
позволяющих поставить 3, 2 или 1 балл
Баллы
3
2
1
0

78. Пример задания №26 (2016 г., 407 вариант)

79. Пример задания №26 (2016 г., 407 вариант)

1 а) Паша может выиграть за один ход, если S будет в интервале от 12 до 23.
12
19
х2
24
38
+1
23
24

80. Пример задания №26 (2016 г., 407 вариант)

1 б) Удваивать количество камней не выгодно ни одному из игроков, Так как сразу
после этого выигрывает соперник. Рассмотрим стратегии игроков с использованием
хода +1. При S=20 выигрывает Валя на втором ходу.
П1, +1
20
21
В1, +1
П2, +1
22
В2, +1
23
24

81. Пример задания №26 (2016 г., 407 вариант)

1 б) Удваивать количество камней не выгодно ни одному из игроков, Так как сразу
после этого выигрывает соперник. Рассмотрим стратегии игроков с использованием
хода +1. При S=21 выигрывает Паша на втором ходу.
П1, +1
21
22
В1, +1
П2, +1
23
24

82. Пример задания №26 (2016 г., 407 вариант)

1 б) Удваивать количество камней не выгодно ни одному из игроков, Так как сразу
после этого выигрывает соперник. Рассмотрим стратегии игроков с использованием
хода +1. При S=22 выигрывает Валя на первом ходе.
П1, +1
22
23
В1, +1
24

83. Пример задания №26 (2016 г., 407 вариант)

2) Выигрышная стратегия есть у Паши. Для выигрыша ему необходимо удвоить
количество камней в исходных кучах: При S=11 выигрывает Паша на втором ходу.
11
П1, *2
В1, +1
22
23
П2, +1
24

84. Пример задания №26 (2016 г., 407 вариант)

2) Выигрышная стратегия есть у Паши. Для выигрыша ему необходимо удвоить
количество камней в исходных кучах: При S=10 выигрывает Паша на третьем ходу.
10
П1, *2
В1, +1
20
21
П2, +1
22
В2, +1
23
П3, +1
24

85. Пример задания №26 (2016 г., 407 вариант)

3) Выигрышная стратегия есть у Вали.

86. Критерии оценивания задания №26 (2016 г., 407 вариант)

Критерии оценивания
Баллы
Выполнены второе и третье задания. Для первого задания правильно перечислены позиции, в
которых Паша выигрывает первым ходом (п. 1а) и правильно указано, кто из игроков имеет
выигрышную стратегию при указанных значениях S (п. 1б).
При этом допускаются недочёты следующих типов:
3
– в п. 1а не указано, каким ходом выигрывает Паша;
– в п. 1б не указано, что игрокам нет смысла удваивать количество камней в куче.
Здесь и далее в решениях допускаются арифметические ошибки, которые не искажают сути
решения и не приводят к неправильному ответу.
Не выполнены условия, позволяющие поставить 3 балла, и выполнено одно из следующих
условий.
• Выполнено третье задание.
• Выполнены первое и второе задания.
• Первое задание выполнено, возможно, при наличии недочётов, указанных в критериях на 3 2
балла; для второго задания (i) правильно указано, кто из игроков имеет выигрышную стратегию в
каждой из указанных позиций и (ii) правильно указан первый ход Паши при выигрышной
стратегии, однако не указано, что после выбранного хода Паши получается позиция, выигрышная
для Вали; для третьего задания правильно указан игрок, имеющий выигрышную стратегию.
Не выполнены условия, позволяющие поставить 3 или 2 балла, и выполнено одно из следующих
условий.
• Первое задание выполнено, возможно, с недочётами, указанными в критериях на 3 балла.
1
• Второе задание выполнено, возможно, с недочётами, указанными в критериях на 2 балла.
• Для второго и третьего заданий во всех случаях правильно указан игрок, имеющий выигрышную
стратегию
Задание не выполнялось или невыполнено ни одно из условий, позволяющих поставить 3, 2 или 1
0
балл

87. Презентации с разбором других типов заданий 26

88. Задания на угадывание чисел (несколько вариантов из КИМ НИКО по информатике и ИКТ-2015)

89. Анализ ошибок, допущенных при выполнении задания №26 участниками ЕГЭ 2016 года и примеров решений данного задания.

Филиппов Владимир Ильич,
старший преподаватель кафедры
информационно-коммуникационных
технологий

90. Задача 26 (2016 г.)

Формулировка задачи
Два игрока, Паша и Валя, играют в следующую игру. Перед игроками лежит куча
камней. Игроки ходят по очереди, первый ход делает Паша. За один ход игрок
может добавить в кучу один камень или увеличить количество камней в куче в два
раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16
или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное
количество камней. Игра завершается в тот момент, когда количество камней в
куче становится не менее 24. Если при этом в куче оказалось не более 38 камней,
то победителем считается игрок, сделавший последний ход. В противном случае
победителем становится его противник. Например, если в куче был 21 камень и
Паша удвоит количество камней в куче, то игра закончится и победителем будет
Валя. В начальный момент в куче было S камней, 1 ≤ S ≤ 23.
Выполните следующие задания. 1. а) При каких значениях числа S Паша может
выиграть в один ход? Укажите все такие значения и соответствующие ходы Паши.
б) У кого из игроков есть выигрышная стратегия при S = 22, 21, 20? Опишите
выигрышные стратегии для этих случаев. 2. У кого из игроков есть выигрышная
стратегия при S = 11, 10? Опишите соответствующие выигрышные стратегии. 3. У
кого из игроков есть выигрышная стратегия при S = 9? Постройте дерево всех
партий, возможных при этой выигрышной стратегии (в виде рисунка или
таблицы). На рёбрах дерева указывайте, кто делает ход; в узлах – количество

91. Основные типы ошибок, допущенных при выполнении задания 26 в 2016 году

• непонимание сути разработки выигрышной
стратегии для игрока 1: при любом ходе
игрока 2 из заданной позиции, указать
только ходы, приводящие к выигрышу
игрока 1;
• неумение строго обосновывать
возможность выигрыша;
• невнимательность при прочтении условия
задачи.

92. Содержание верного ответа

1. а) Паша может выиграть, если S= 23 или S = 12, 13, 14, 15, 16, 17, 18, 19. При S = 23
первым ходом нужно добавить в кучу один камень, при остальных указанных значениях 5
нужно удвоить количество камней,
б) При S = 20, 21 или 22 удваивать количество камней не имеет смысла, так как после такого
хода выигрывает противник. Поэтому можно считать, что единственный возможный ход это добавление в кучу одного камня.
При S = 22 после такого хода Паши в куче станет 23 камня. В этой позиции ходящий (т.е.
Валя) выигрывает (см. п. а)): т.е. при S=22 Паша (игрок, который должен ходить первым)
проигрывает. Выигрышная стратегия есть у Вали.
При S = 21 после того, как Паша своим первым ходом добавит один камень, в куче станет 22
камня. В этой позиции ходящий (т.е. Валя) проигрывает (см. выше): т.е. при S = 21 Паша
(игрок, который должен ходить первым) выигрывает. Выигрышная стратегия есть у Паши.
При S = 20 выигрышная стратегия есть у Вали. Действительно, если Паша первым ходом
удваивает количество камней, то в куче становится 40 камней и игра сразу заканчивается
выигрышем Вали. Если Паша добавляет один камень, то в куче становится 21 камень. Как
мы уже знаем, в этой позиции игрок, который должен ходить (т.е. Валя), выигрывает.
Во всех случаях выигрыш достигается тем. что при своём ходе игрок, имеющий
выигрышную стратегию, должен добавить в кучу один камень.
Источник: Критерии оценивания, вариант 407

93. Содержание верного ответа

2. При S = 11 или 10 выигрышная стратегия есть у Паши. Она
состоит в том, чтобы удвоить количество камней в куче и
получить кучу, в которой будет соответственно 22 или 20
камней. В обоих случаях игрок, который будет делать ход
(теперь это Валя), проигрывает (п. 1б).
3. При S=9 выигрышная стратегия есть у Вали. После первого
хода Паши в куче может стать либо 10, либо 18 камней. В
обеих этих позициях выигрывает игрок, который будет
делать ход (теперь это Валя). Случай S=10 рассмотрен в п. 2.
случай S=18 рассмотрен в п. 1а.
Источник: Критерии оценивания, вариант 407

94. Содержание верного ответа

3. В таблице изображено дерево возможных партий при
описанной стратегии Вали. Заключительные позиции (в них
выигрывает Валя) подчёркнуты.
Источник: Критерии оценивания, вариант 407

95. Критерии оценивания задания №26 (2016 г., 407 вариант)

Критерии оценивания
Баллы
Выполнены второе и третье задания. Для первого задания правильно перечислены позиции, в
которых Паша выигрывает первым ходом (п. 1а) и правильно указано, кто из игроков имеет
выигрышную стратегию при указанных значениях S (п. 1б).
При этом допускаются недочёты следующих типов:
3
– в п. 1а не указано, каким ходом выигрывает Паша;
– в п. 1б не указано, что игрокам нет смысла удваивать количество камней в куче.
Здесь и далее в решениях допускаются арифметические ошибки, которые не искажают сути
решения и не приводят к неправильному ответу.
Не выполнены условия, позволяющие поставить 3 балла, и выполнено одно из следующих
условий.
• Выполнено третье задание.
• Выполнены первое и второе задания.
• Первое задание выполнено, возможно, при наличии недочётов, указанных в критериях на 3 2
балла; для второго задания (i) правильно указано, кто из игроков имеет выигрышную стратегию в
каждой из указанных позиций и (ii) правильно указан первый ход Паши при выигрышной
стратегии, однако не указано, что после выбранного хода Паши получается позиция, выигрышная
для Вали; для третьего задания правильно указан игрок, имеющий выигрышную стратегию.
Не выполнены условия, позволяющие поставить 3 или 2 балла, и выполнено одно из следующих
условий.
• Первое задание выполнено, возможно, с недочётами, указанными в критериях на 3 балла.
1
• Второе задание выполнено, возможно, с недочётами, указанными в критериях на 2 балла.
• Для второго и третьего заданий во всех случаях правильно указан игрок, имеющий выигрышную
стратегию
Задание не выполнялось или невыполнено ни одно из условий, позволяющих поставить 3, 2 или 1
0
балл

96. Методика подготовки учащихся к выполнению задания №27 КИМ ЕГЭ по информатике и ИКТ

Филиппов Владимир Ильич,
старший преподаватель кафедры
информационно-коммуникационных
технологий

97. Сравнительные результаты выполнения задания 27

Полученные
баллы за задание
Процент от участников экзамена, получивших баллы в
2014 г.
2015 г.
2016 г.
0
81,97
76,59%
83,55%
1
8,08%
2
7,29%
9,11%
3,45%
3
2,21%
3,72%
2,03%
4
0,46%
3,19%
3,15%
7,4%
7,82%

98. Методические подходы к обучению способам решения задания 27

выявить специфику задания 27 (что именно и при
каких «стартовых» условиях должен сделать
учащийся);
предложить краткое описание последовательности
этапов решения задания 27;
определить требования к подготовке учащегося,
необходимые для решения задания 27;
рассмотреть и проанализировать критерии проверки
задания 27;
рассмотреть подходы к выполнению учащимся
каждого этапа решения задания 27.
98

99. Требования к подготовке учащихся:

1. уметь анализировать «накрученное» условие и представлять метод
решения в виде формальной записи на языке программирования;
2. хорошо знать способы описания и обработки переменных целого,
вещественно, строкового, логического типов данных.
3. обладать знаниями и умениями из уже рассмотренного в С2 перечня
плюс следующими:
A. Слияние двух упорядоченных массивов в один без использования
сортировки.
B. Обработка отдельных символов данной строки. Подсчет частоты
появления символа в строке.
C. Работа с подстроками данной строки с разбиением на слова по
пробельным символам. Поиск подстроки внутри данной строки,
замена найденной подстроки на другую строку.
4. Иметь достаточный опыт написания программ, чтобы «чувствовать» и
исправлять возможные ошибки без использования компьютера.
99

100. Модули, которые должны присутствовать в решении задания 27

Описание используемых переменных
Инициализация
Организация ввода
Организация обработки
Организация вывода
100

101. Примеры модулей организации ввода данных

Фрагмент программы
Пояснение
For I:=1 to 6 do
read (a[i]);
Ввод указанного количества чисел с
сохранением в массив
Readln (N)
For I:=1 to N do
readln (a[i]);
Ввод неизвестного заранее количества
чисел с сохранением в массив
Readln (a)
While a<>0 do
begin
….
…..
readln (a);
end;
Ввод неизвестного заранее количества
чисел с последующей обработкой без
массива.
const K = 6;
….
begin
readln(N);
for i:=1 to K do
readln(data[i]);
for i:=K+1 to N do begin
Ввод минимально необходимого
количества чисел с сохранением в
массив и последующей обработкой

102. Организация обработки данных

Основана на использовании
стандартных алгоритмов

103. Задача 27 (2013 г.)

Формулировка задачи
Перечень стандартных
алгоритмов
По каналу связи передаётся последовательность
положительных целых чисел, все числа не превышают
1000. Количество чисел известно, но может быть
очень велико. Затем передаётся контрольное
значение последовательности – наибольшее число R,
удовлетворяющее следующим условиям:
1) R – произведение двух различных переданных
элементов
последовательности
(«различные»
означает, что не рассматриваются квадраты
переданных чисел; допускаются произведения
различных элементов последовательности, равных по
величине);
2) R делится на 21.
Если такого числа R нет, то контрольное значение
полагается равным 0.
В результате помех при передаче как сами числа, так и
контрольное значение могут быть искажены.
Запись
натурального
числа в позиционной
системе с основанием,
меньшим или равным
10.
Обработка
и
преобразование такой
записи числа.
Нахождение
сумм,
произведений
элементов
данной
конечной
числовой
последовательности
(или массива).

104. Задача 27 (2014 г.)

Формулировка задачи
Перечень стандартных
алгоритмов
На
спутнике
«Фотон»
установлен
прибор,
предназначенный
для
измерения
энергии
космических лучей. Каждую минуту прибор передаёт
по каналу связи неотрицательное вещественное число
– количество энергии, полученной за последнюю
минуту, измеренное в условных единицах. Временем,
в течение которого происходит передача, можно
пренебречь.
Необходимо найти в заданной серии показаний
прибора минимальное произведение двух
показаний, между моментами передачи которых
прошло не менее 6 минут. Количество энергии,
получаемое прибором за минуту, не превышает 1000
условных единиц. Общее количество показаний
прибора в серии не превышает 10 000.
Операции с элементами
массива или числовой
последовательности,
отобранных
по
некоторому
условию
(например, нахождение
минимального
элемента)
Нахождение
сумм,
произведений
элементов
данной
конечной
числовой
последовательности
(или массива).

105. Задача 27 (2015 г.)

Формулировка задачи
Перечень стандартных
алгоритмов
На
спутнике
«Фотон»
установлен
прибор,
предназначенный
для
измерения
энергии
космических лучей. Каждую минуту прибор передаёт
по каналу связи неотрицательное вещественное число
– количество энергии, полученной за последнюю
минуту, измеренное в условных единицах. Временем,
в течение которого происходит передача, можно
пренебречь.
Необходимо вычислить «бета-значение» серии
показаний прибора – минимальное чётное
произведение двух показаний, между моментами
передачи которых прошло не менее 6 минут. Если
получить такое произведение не удаётся, ответ
считается равным –1.
Операции с элементами
массива или числовой
последовательности,
отобранных
по
некоторому
условию
(например, нахождение
минимального четного
элемента)
Нахождение
сумм,
произведений
элементов
данной
конечной
числовой
последовательности
(или массива).

106. Задача 27 (2016 г.)

Формулировка задачи
Перечень стандартных
алгоритмов
Задание А. Имеется набор данных, состоящий из 6 пар
положительных целых чисел. Необходимо выбрать из
каждой пары ровно одно число так, чтобы сумма всех
выбранных чисел не делилась на 4 и при этом была
максимально возможной. Если получить требуемую
сумму невозможно, в качестве ответа нужно выдать 0.
Напишите программу для решения этой задачи. В
этом варианте задания оценивается только
правильность программы, время работы и размер
использованной памяти не имеют значения.
Максимальная оценка за правильную программу - 2
балла.
Задание Б. Имеется набор данных, состоящий из пар
положительных целых чисел. Необходимо выбрать из
каждой пары ровно одно число так, чтобы сумма всех
выбранных чисел не делилась на 4 и при этом была
максимально возможной. Если получить требуемую
сумму невозможно, в качестве ответа нужно выдать 0.
Нахождение минимума и
максимума двух, трех,
четырех данных чисел без
использования массивов и
циклов.
Нахождение
сумм,
произведений
элементов
данной
конечной
числовой
последовательности.

107. Примеры модулей организации вывода данных

Фрагмент программы
Пояснение
Writeln (Result)
Безусловный вывод на экран значения
переменной
If (Result значение) then writeln (Result)
else writeln (Действие или сообщение)
Вывод ответа в зависимости от
значения переменной Result.

108. Алгоритм решения задачи:

Анализ условия, определение цели.
Выявление связей между искомым и вводимыми данными.
Запись описания алгоритма решения задачи на естественном
языке.
Оформление программы на языке программирования,
включающее в себя: описание переменных и их типов,
инициализацию нужных переменных, организацию ввода и
обработки, организацию вывода.
Анализ программы, выявление ошибок на 2-3 подобранных
самостоятельно тестах (кроме данного в задаче), коррекция.
108

109. Критерии оценивания эффективности программы (задание 27)

Критерий
Эффективность
по памяти
Эффективность
по времени
Количество
ошибок
Описание
M=const
и
не
превышает
необходимого числа элементов
Синтаксические и содержательные
ошибки. Если одна и та же
синтаксическая ошибка встречается
несколько раз, она считается за одну
ошибку
РаботоспособПрограмма
ность программы некоторых
некоторых
работает
работает: всегда, для
входных
данных,
в
частных
случаях;
не

110. Обобщенные критерии оценивания программы задания 27 (на основе критериев 2015 г.)

Балл
4
3
2
1
Эффективность
по
памяти
Да
Да\Нет
Нет
Нет
по
времени
Да
Нет\Да
Нет
Нет
Кол-во ошибок
Синтаксические Содержательные
Работает
(да\нет)
Не более трёх
Нет
Не более пяти
Не более одной
До семи
До двух
Без ограничений на количество
синтаксических и содержательных
ошибок
Да
Да
Да
Для
некоторых
данных

111. Синтаксические ошибки, не влияющие на оценивание задания 27

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

112. Содержательные ошибки, влияющие на оценивание задания 27 (2016 г.)

• ошибка инициализации, в том числе отсутствие
инициализации;
• не выводится результат, равный 0, или вместо 0
выводится неверное значение;
• допущен выход за границу массива;
• используется знак “<” вместо “<=”, “or” вместо “and” и
т.п.
Допускается ошибка при вводе и выводе данных, не
влияющая на содержание решения.
Если участник экзамена допускает ошибку, не
приведенную в Критериях оценивания, то его
решение оценивается не более чем в один балл, вне
зависимости от эффективности программы.

113. Методика проведения занятий при подготовке к выполнению заданий на обработку строк

МЕТОДИКА ПРОВЕДЕНИЯ ЗАНЯТИЙ
ПРИ ПОДГОТОВКЕ К ВЫПОЛНЕНИЮ
ЗАДАНИЙ НА ОБРАБОТКУ СТРОК

114. Методика проведения занятий при подготовке к выполнению заданий на обработку строк

• Определение минимального теоретического
материала, включающего функции и процедуры,
используемые при обработке строк.
• Повторение основных моментов, связанных с
массивами, включая алгоритмы сортировки.
• Определение задачи для рассмотрения.
• Выделение и формулировка вспомогательных
задач.
• Разработка алгоритма и кодирование
вспомогательных задач.
• Разработка алгоритма решения основной задачи с
учетом полученных ранее решений.

115. Обработка символьных строк

• символьная строка – это цепочка символов, которая
может обрабатываться как единое целое
• для обращения к символу с номером i строки s
используется запись s[i], это говорит о том, что
строка – особый вариант массива, в котором
хранятся символы
• знак сложения при работе с символьными строками
означает сцепку, объединение двух строк в одну
(добавление второй строки в конец первой),
например: s := '123' + '456'; { получили '123456' }

116. Функции работы с символами

Функция
1. Возвращающая
код символа
2. Возвращающая
символ по его коду
Язык
Язык
Паскаль Бейсик
Язык
Кумир
Ord
Asc
код
Chr
Chr$
Символ

117. Функции работы со строками

n := Length(s);
s1 := Copy(s, 2, 5);
записать длину строки s в целую переменную n
записать в символьную строку s1 подстроку
строки s, которая начинается с символа с
номером 2 и состоит из 5 символов (важно – не
со 2-го по 5-ый символ!)
n := Pos('Вася', s);
записать в целую переменную n номер
символа, с которого в строке s начинается
подстрока 'Вася' (если ее нет, в переменную n
записывается 0); так же можно искать
отдельные символы
(важно: сначала указываем, что ищем, а потом
– где)
преобразовать строку s в целое число и
записать результат в переменную n (PascalABC,
Delphi)
n := StrToInt(s);

118. Процедуры работы со строками

Delete(s, 2, 5);
удалить из строки s 5
символов, начиная со второго
Insert('Ва', s, 3);
вставить в строку s фрагмент
'Ва', начиная с третьего
символа (между 3-м и 4-м)
Val(s, n, r);
преобразовать строку s в целое
число и записать результат в
переменную n; если при этом
произошла ошибка, в
переменной r будет номер
ошибочного символа, если все
нормально – ноль

119. Обработка записей в Pascal


Cложный тип данных, который может включать в себя несколько элементов – полей;
поля могут иметь различный тип
• Записи в Паскале объявляются с помощью ключевого слова record; в простейшем
случае можно выделить память под одну запись так:
var x: record
name: string;
code: integer;
end;
• эта запись состоит из двух полей: символьной строки name и целого числа code
• для обращения к полям записи используют точку, например x.name означает «поле
name записи x»
• можно сразу объявить массив записей:
var Info: array[1..100] of record
name: string;
code: integer;
end;
• это 100 одинаковых записей, имеющих общее имя Info и расположенных в памяти
рядом; в каждой структуре есть поля nаme и code; чтобы работать с полями записи с
номером k используют обращения вида Info[k].name и Info[k].code

120. Задачи, демонстрирующие функции и процедуры обработки символов и строк

ЗАДАЧИ, ДЕМОНСТРИРУЮЩИЕ
ФУНКЦИИ И ПРОЦЕДУРЫ ОБРАБОТКИ
СИМВОЛОВ И СТРОК

121. Задача 1

Вводится
строка. Строка
выводится в
«телеграфном»
стиле.
program symbol1;
uses CRT;
var
a:string;
b,c,d:char;
i,k:longint;
begin
writeln (‘Введите текст’);
readln (a);
for i:=1 to length(a) do
begin
write (a[i]);
for k:=1 to 1000000 do
begin
end;
end;
end.

122. Задача 2

Вводится
строка.
Выводятся
цифры,
содержащиеся
в строке
Program symbol2;
uses CRT;
var
a:string;
b,c,d:char;
i,k:integer;
begin
writeln ('Введите строку');
readln (a);
for i:=1 to length(a) do
if
((ord(a[i]))>=(ord('0')))and((ord(a[i]))<
=(ord('9'))) then
write (a[i]);
end.

123. Задача 3

program symbol3;
uses CRT;
var
Вводится слово. a, b:string;
i,k:integer;
Выводится
begin
словоwriteln ('Введите слово');
перевертыш. readln (a);
b:='' ;
for i:=length(a) downto 1 do
b:=b+a[i];
writeln (b);
end.
Задача 3

124. Задача 4

Вводится число.
Выводится
сообщение
является ли оно
шестнадцатеричным
program symbol4;
uses CRT;
var
a,x:string;
b,c,d:char;
i,k,h:integer;
begin
k:=0;
read (a);
for i:=1 to length(a) do
if (a[i] in ['A'..'F','a'..'f']) or (a[i] in
['0'..'9']) then k:=k+1;
if (k=length(a)) then writeln
('Число шестнадцатеричное') else
writeln ('Число не
шестнадцатеричное');
end.

125. Задача 5

Вводится
строка. Строка
преобразуется в
число
program symbol5;
uses CRT;
var
a,x:string;
b,c,d:char;
i,k,h:integer;
begin
x:=('');
read (a);
for i:=1 to length (a) do
if
((ord(a[i]))>=(ord('0')))and((ord(a[i]))<
=(ord('9'))) then
x:=x+a[i];
val(x,k,h);
write(k);
end.

126. Задача 6

Вводится
строка.
Выводится
строка без
пробелов.
program symbol6;
uses CRT;
var
a:string;
b:char;
i:integer;
begin
writeln (‘Введите фразу');
readln (a);
b:=' ' ;
for i:=1 to length(a) do
if a[i]=b then Delete(a, i, 1);
writeln (a);
end.

127. Задача 7

Ввести
символьную
строку и
проверить,
является ли она
палиндромом
(палиндром
читается
одинаково в
обоих
направлениях).
program symbol7;
uses CRT;
var
a,s:string;
b:char;
i:integer;
begin
writeln (‘Введите фразу');
readln (a);
b:=' ' ;
for i:=1 to length(a) do
if a[i]=b then Delete(a, i, 1);
s:='' ;
for i:=length(a) downto 1 do
s:=s+a[i];
if a=s then writeln (‘фраза палиндром')
else writeln (‘фраза не палиндром');
end.

128. Задача 8

На вход программе подаются
сведения о сдаче экзаменов
учениками 9-х классов некоторой
средней школы. В первой строке
сообщается количество учеников
N, которое не меньше 10, но не
превосходит 100, каждая из
следующих N строк имеет
следующий формат:
<Фамилия> <Имя> <оценка>,
где <Фамилия> – строка,
состоящая не более чем из 20
символов, <Имя> – строка,
состоящая не более чем из 15
символов, <оценка> – через пробел
целое число, соответствующее
оценке по пятибалльной системе.
<Фамилия> и <Имя>, а также
<Имя> и <оценки> разделены одним
пробелом. Пример входной строки:
Иванов Петр 4
program symbol8;
const LIM=100;
var Info: array[1..LIM] of record
name: string;
ball: integer;
end;
i, k, N, mark: integer;
c: char;
begin
readln(N);
{ ввод исходных данных }
for i:=1 to N do begin
{ ввод имени и фамилии }
Info[i].name := '';
for k:=1 to 2 do
repeat
read(c);
Info[i].name := Info[i].name + c;
until c = ' ';
{ ввод и суммирование оценок }
Info[i].ball:= 0;
read(mark);
Info[i].sum := Info[i].sum + mark;
end;
end.

129. Задача 9 (обработка латинских символов)

• На вход программе сначала подаются строчные английские
буквы. Ввод символов заканчивается точкой (другие символы,
отличные от “a”..“z”, во входных данных отсутствуют). Требуется
написать как можно более эффективную программу, которая
будет печатать буквы, встречающиеся во входной
последовательности, в порядке увеличения их встречаемости.
Каждая буква должна быть напечатана один раз. Точка при этом
не учитывается.
• Если какие-то символы встречаются одинаковое количество раз,
то они выводятся в алфавитном порядке.
• Например, пусть на вход подаются следующие символы:
baobaba,
• В данном случае программа должна вывести: oab

130. 9-1.

Объявление и
определение
начальных
значений
переменных.
program symbol9;
var a:array[0..25] of integer;
m:array[0..25] of 'a'..'z';
c: char;
i, j, k:integer;
begin
for i:= 0 to 25 do
begin
a[i]:=0;
m[i]:=chr(ord('a')+i);
end;

131. 9-2.

Ввод строки
read(c);
символов и
while c<>'.' do
заполнение
begin
- ord('a')] := a[ord(c) - ord('a')] + 1;
исходного массива. a[ord(c)
read(c);
end;

132. 9-3.

Сортировка
символов по
возрастанию
количества
встреченных букв.
for i:= 1 to 25 do
for j:= 0 to 24 do
if a[j]>a[j+1] then
begin
k:=a[j]; c:=m[j];
a[j]:=a[j+1]; m[j]:=m[j+1];
a[j+1]:=k; m[j+1]:=c
end;
end.

133. 9-4.

Вывод элементов
массива в порядке
возрастания
количества
символов с
пропуском
символов, которые
отсутствуют в
введенной строке.
i:=0;
while a[i]=0 do
i:=i+1;
for j:=i to 25 do
write(m[j]);
writeln
end.

134. Обработка числовых последовательностей

ОБРАБОТКА ЧИСЛОВЫХ
ПОСЛЕДОВАТЕЛЬНОСТЕЙ

135.

По каналу связи передаётся последовательность положительных целых чисел, все
числа не превышают 1000. Количество чисел известно, но может быть очень велико.
Затем передаётся контрольное значение последовательности – наибольшее число R,
удовлетворяющее следующим условиям:
1) R – произведение двух различных переданных элементов последовательности
(«различные» означает, что не рассматриваются квадраты переданных чисел;
допускаются произведения различных элементов последовательности, равных по
величине);
2) R делится на 21.
Если такого числа R нет, то контрольное значение полагается равным 0.
В результате помех при передаче как сами числа, так и контрольное значение могут
быть искажены.
Напишите эффективную, в том числе по используемой памяти, программу (укажите
используемую версию языка программирования, например, Borland Pascal 7.0),
которая будет проверять правильность контрольного значения. Программа должна
напечатать отчёт по следующей форме:
Вычисленное контрольное значение: …
Контроль пройден (или – Контроль не пройден)
Перед текстом программы кратко опишите используемый Вами алгоритм решения. На
вход программе в первой строке подаётся количество чисел N. В каждой из
последующих N строк записано одно натуральное число, не превышающее 1000.
135 В
последней строке записано контрольное значение.

136.

По
каналу
связи
передаётся
Напишите эффективную, в том
последовательность положительных
числе по используемой памяти,
целых чисел, все числа не превышают
программу , которая будет
1000. Количество чисел известно, но
проверять правильность
может быть очень велико. Затем
контрольного значения.
передаётся контрольное значение
последовательности – наибольшее
Пример входных данных:
число
R,
удовлетворяющее
6
На вход программе в первой
следующим условиям:
70
строке подаётся количество
21
1) R – произведение двух различных
чисел N. В каждой из
997
элементов
последующих N строк записано переданных
7
последовательности
(«различные»
одно натуральное число, не
9
означает, что не рассматриваются
превышающее 1000. В
300
квадраты
переданных
чисел;
последней строке записано
21000
контрольное значение.
допускаются произведения различных
элементов
последовательности,
Пример выходных данных для
равных по величине);
приведённого выше примера
2) R делится на 21.
входных данных:
Вычисленное контрольное
Если такого числа R нет, то
значение: 21000
контрольное значение полагается
Контроль пройден
136
равным 0.

137. Модули, которые должны присутствовать в решении задания 27

Описание используемых переменных
Инициализация
Организация ввода
Организация обработки
Организация вывода
137

138.

Словесное описание алгоритма решения
задания 27
Произведение двух чисел делится на 21, если:
один из сомножителей делится на 21 (второй может быть любым)
либо
ни один из сомножителей не делится на 21, причём один из
сомножителей делится на 7, а другой – на 3.
Поэтому программа, вычисляющая кодовое число, может работать так.
Программа читает все входные данные один раз, не запоминая все
данные в массиве. Программа для прочитанного фрагмента входной
последовательности хранит значения четырёх величин:
М7 – самое большое число, кратное 7, но не кратное 3;
M3 – самое большое число, кратное 3, но не кратное 7;
M21 – самое большое число, кратное 21;
МAX – самое большое число среди всех элементов последовательности,
отличное от М21 (если число М21 встретилось более одного раза и оно
же является максимальным, то MAX = M21).
После того как все данные прочитаны, искомое контрольное значение
вычисляется как максимум из произведений М21*MAX и М7*М3.
138

139.

var M7,M3,M21,R,MAX,dat,res,i,N: longint; Количество чисел N
известно, но может
begin
быть очень велико.
M7 := 0;
все числа не превышают 1000
M3 := 0;

M21 := 0;
MAX := 0;
R – произведение двух
различных переданных
readln(N);
элементов последовательности
for i := 1 to N do
Begin

end;
end.
139

140.

var M7,M3,M21,R,MAX,dat,res,i,N: longint;
begin
контрольное значение
M7 := 0;
последовательности –
M3 := 0;
наибольшее число R,
удовлетворяющее следующим
M21 := 0;
условиям:
MAX := 0;
1) R – произведение двух
readln(N);
различных переданных
элементов последовательности
for i := 1 to N do
2) R делится на 21
Begin

end;
readln(R);
if (M7*M3 < M21*MAX) then res := M21*MAX else res := M7*M3;
writeln('Вычисленное контрольное значение: ',res);
if R = res then writeln('Контроль пройден')
else writeln('Контроль не пройден');
end.
140

141.

var M7,M3,M21,R,MAX,dat,res,i,N: longint;
begin
readln(dat);
if ((dat mod 7) = 0) and ((dat mod 3) > 0) and (dat > M7)
M7 := 0;
then M7 := dat;
M3 := 0;
M21 := 0;
if ((dat mod 3) = 0) and ((dat mod 7) > 0) and (dat > M3)
MAX := 0;
then M3 := dat;
readln(N);
if (dat mod 21 = 0) and (dat > M21) then
for i := 1 to N do
begin
Begin
if M21 > MAX then MAX := M21;

M21 := dat
end
end;
else
if dat > MAX then MAX := dat;
readln(R);
if (M7*M3 < M21*MAX) then res := M21*MAX else res := M7*M3;
writeln('Вычисленное контрольное значение: ',res);
if R = res then writeln('Контроль пройден')
else writeln('Контроль не пройден');
141
end.

142. Пример программы, неэффективной по времени и по памяти

Var R,MAX,dat,res,i,N: longint;
a[i]:array of integer;
begin
readln(N);
for i := 1 to N do
Readln (a[i]);
max := 0;
for i := 1 to n - 1 do
for j := i + 1 to n do
if ((a[i]*a[j]) mod 21 = 0) and
((a[i]*a[j]) > max) then
max := a[i]*a[j];
readln(R);
if R = max then writeln('Контроль пройден')
else writeln('Контроль не пройден');
142

143. Сравнение формулировок задания 27

Демонстрационный вариант 2015 г.
Демонстрационный вариант 2016 г.
На спутнике «Фотон» установлен прибор, предназначенный для измерения энергии
космических лучей. Каждую минуту прибор передаёт по каналу связи
неотрицательное вещественное число – количество энергии, полученной за
последнюю минуту, измеренное в условных единицах. Временем, в течение
которого происходит передача, можно пренебречь.
Необходимо найти в заданной серии
показаний прибора минимальное
произведение двух показаний, между
моментами передачи которых прошло
не менее 6 минут. Количество энергии,
получаемое прибором за минуту, не
превышает 1000 условных единиц. Общее
количество показаний прибора в серии не
превышает 10 000.
Необходимо вычислить «бета-значение»
серии показаний прибора –
минимальное чётное произведение
двух показаний, между моментами
передачи которых прошло не менее 6
минут. Если получить такое
произведение не удаётся, ответ
считается равным –1.
В первой строке задаётся число N – общее количество показаний прибора.
Гарантируется, что N > 6. В каждой из следующих N строк задаётся одно
неотрицательное вещественное число – очередное показание прибора.

144. Формулировка задания 27 для участника ЕГЭ

Вам предлагается два задания, связанные с этой задачей: задание А и задание
Б. Вы можете решать оба задания А и Б или одно из них по своему выбору.
Задание Б является усложненным вариантом задания А, оно содержит
дополнительные требования к программе.
А. Напишите на любом языке программирования программу для решения
поставленной задачи, в которой входные данные будут запоминаться в массиве,
после чего будут проверены все возможные пары элементов. Перед
программой укажите версию языка программирования. ОБЯЗАТЕЛЬНО укажите,
что программа является решением ЗАДАНИЯ А. Максимальная оценка за
выполнение задания А равна 2 баллам.
Б. Напишите программу для решения поставленной задачи, которая будет
эффективна как по времени, так и по памяти (или хотя бы по одной из этих
характеристик). Максимальная оценка за выполнение задания Б равна 4
баллам.
Итоговая оценка выставляется как максимальная из оценок за задания А и Б.
Если решение одного из заданий не представлено, то считается, что оценка
за это задание составляет 0 баллов.

145. Объявление переменных и ввод данных в массив

const K = 6; //расстояние между измерениями
var
N, i, j:integer;
data: array[1..10000] of real;
min: real;
begin
readln(N); //ввод количества элементов
for i:=1 to N do readln(data[i]); //все элементы
сохранены в массив

146. Обработка массива и вывод результата (2014 г.)

data
min := 1000001; // любое число, большее
1000*1000
for i:=1 to N-K do
for j:=i+K to N do
if data[i]*data[j] < min then
min := data[i]*data[j];
writeln (min);
end.
1
11
2
12
3
45
4
5
5
4
6
25
7
23
8
21
9
20
10
10
11
12
12
26
Min
1000001

147. Обработка массива и вывод результата (2015 г.)

data
min := 1000001; // любое число, большее 1000*1000
for i:=1 to N-K do
for j:=i+K to N do
if (data[i]*data[j] mod 2 = 0) and
(data[i]*data[j] < min) then
min := data[i]*data[j];
If (min =10000001) then writeln (‘-1’)
else writeln (min);
end.
1
11
2
12
3
45
4
5
5
4
6
25
7
23
8
21
9
20
10
10
11
12
12
26
Min
1000001

148. Программа эффективная по времени и неэффективная по памяти (2014 г.)

const K = 6;
var data: array[1..10000] of real;
min, minPrev: real;
N, i: integer;
begin
readln(N);
for i:=1 to N do readln(data[i]); //все элементы сохранены
в массив
min := 1000001; // любое число, большее 1000*1000
minPrev := 1001; //начальное значение предыдущего
минимума
for i:=K+1 to N do begin
if data[i-K] < minPrev then minPrev := data[i-K];
//минимум из предыдущих эл-тов
if minPrev*data[i] < min then min := minPrev*data[i]; //
поиск минимума
end;
writeln(min);
end.
data
1
11
2
12
3
45
4
5
5
4
6
25
7
23
8
21
9
20
10
10
11
12
12
26
Min
minprev
1000001
1001

149. Программа эффективная по времени и неэффективная по памяти (2015 г.)

const
s = 6; {требуемое расстояние между показаниями}
amax = 1001; {больше максимально возможного показания}
var
N, p, i: integer;
a: array[1..10000] of integer; {все показания прибора}
ma: integer; {минимальное число без s последних}
me: integer; {минимальное чётное число без s последних}
mp: integer; {минимальное значение произведения}
begin
readln(N);
for i:=1 to N do readln(a[i]); {Ввод всех показаний прибора}
ma := amax; me := amax; mp := amax*amax;
for i := s + 1 to N do
begin
if a[i-s] < ma then ma := a[i-s];
if (a[i-s] mod 2 = 0) and (a[i-s] < me) then me := a[i-s];
if a[i] mod 2 = 0 then p := a[i] * ma
else if me < amax then p := a[i] * me
else p := amax * amax;
if (p < mp) then mp := p
end;
if mp = amax*amax then mp := -1;
writeln(mp)
end.

150. Программа эффективная по памяти и времени 2014 г.

const K = 6;
data
var data: array[1..K] of real;
min, minPrev, x: real;
N, i, j: integer;
begin
readln(N); //считано количество элементов
for i:=1 to K do readln(data[i]); //считаны первые шесть элементов
min := 1000001; // начальное значение искомого произведения
minPrev := 1001; //начальное значение предыдущего минимума
for i:=K+1 to N do begin
if data[1] < minPrev then minPrev := data[1]; //сравниваем minPrev с
первым элементов массива
readln(x);// считан очередной элемент
if minPrev*x < min then min := minPrev*x; // ищем минимум
for j:=1 to K-1 do data[j] := data[j+1]; // сдвигаем массив данных так,
чтобы первый элемент «ушёл»
data[K] := x; //записываем в последний элемент массива последнее
прочитанное значение
end;
writeln(min);
end.
1
11
2
12
3
45
4
5
5
4
6
25
x
23
Min
1000001
minprev
1001

151. Программа эффективная по памяти и времени 2015 г.

Программа эффективная по памяти и времени
const K = 6;
2015 г.
var data: array[1..K] of real;
min, minPrev, x: real;
N, i, j: integer;
begin
readln(N); //считано количество элементов
for i:=1 to K do readln(data[i]); //считаны первые шесть элементов
{Ввод остальных значений, поиск минимального произведения}
ma := 1001; me := 1001; mp :=1001*1001;
for i := K + 1 to N do begin
readln(a_);
if a[1] < ma then ma := a[1];
if (a[1] mod 2 = 0) and (a[1] < me) then me := a[1];
if a_ mod 2 = 0 then p := a_ * ma
else if me < 1001 then p := a_ * me
else p := 1001* 1001;
if (p < mp) then mp := p;
{сдвигаем элементы вспомогательного массива влево}
for j := 1 to s - 1 do
a[j] := a[j + 1];
a[s] := a_
end;
if mp = 1001*1001 then mp:=-1;
writeln(mp)
data
1
11
2
12
3
45
4
5
5
4
6
25
x
23
ma
1001
me
1001
mp
1000001
minprev
1001

152. Анализ ошибок, допущенных при выполнении задания №27 участниками ЕГЭ 2016 года и примеров решений данного задания.

Филиппов Владимир Ильич,
старший преподаватель кафедры
информационно-коммуникационных
технологий

153. Задача 27 (2016 г.)

Формулировка задачи
Задание А. Имеется набор данных, состоящий из 6 пар положительных
целых чисел. Необходимо выбрать из каждой пары ровно одно число так,
чтобы сумма всех выбранных чисел не делилась на 4 и при этом была
максимально возможной. Если получить требуемую сумму невозможно, в
качестве ответа нужно выдать 0.
Напишите программу для решения этой задачи. В этом варианте
задания оценивается только правильность программы, время работы
и размер использованной памяти не имеют значения.
Максимальная оценка за правильную программу - 2 балла.
Задание Б. Имеется набор данных, состоящий из пар положительных
целых чисел. Необходимо выбрать из каждой пары ровно одно число так,
чтобы сумма всех выбранных чисел не делилась на 4 и при этом была
максимально возможной. Если получить требуемую сумму невозможно, в
качестве ответа нужно выдать 0.

154. Основные типы ошибок, допущенных при выполнении задания 27 в 2016 году

• алгоритмические (содержательные)
ошибки, возникшие вследствие того, что
учащиеся не поняли условия задачи;
• неправильное выделение этапов работы
программы (подзадач), пропуск некоторых
этапов;
• отдельные синтаксические ошибки.

155. Пример программы, верно решающей задание А

var
a: array [1..6, 1..2] of longint;
il, i2, i3, i4, i5, i6: longint;
s, sMax: longint;
begin
for i 1: = 1 to 6 do readln(a [il, 1] , a[il,2]);
sMax := 0;
for i1:=1 to 2 do
for i2:=1 to 2 do
for i3:=1 to 2 do
for i4:=1 to 2 do
for i5:=l to 2 do
for i6:=l to 2 do
begin
S:=a[l,il]+a[2,i2]+a[3,i3]+a[4,i4]+a[5,i5]+a[6,i6];
if (s mod 4 <> 0) and (s > sMax) then sMax := s
end;
writeln(sMax)
end.
Источник: Критерии оценивания, вариант 407

156. Пример программы, верно решающей задание Б

Const аМах = 10000; {наибольшее возможное число в исходных данных}
var
N: longint; {количество пар}
a, b: longint; {пара чисел}
Max: longint; {максимум в паре}
Min: longint; {минимум в паре}
s: longint; {сумма выбранных чисел}
D_min: longint; {минимальная разница Max-Min не кратная 4}
i: longint;
begin
s : = 0 ;
D_min := аМах + 1;
readln(N);
for i := 1 to N do
begin
readln(a, b);
if a>b then begin
Max:=a;
Min:=b
end
else
begin
Max:=b;
Min:=a
end;
s: = s + Max;
if ((Max - Min) mod 4>0) and (Max - Min<D_min) then D_min := Max-Min
end;
if s mod 4=0 then
if D_min > aMax then s := 0 else s := s - D_min
writeln(s);
end.
Источник: Критерии оценивания, вариант 407

157. Пример программы, верно решающей задание Б

Источник: Критерии оценивания, вариант 407

158. Пример решения №1

var n,x,y,d,s,i: longint;
begin
s:=0;
d:=10001;
readln(n);
for i:=1 to n do
begin
readln(x,y);
if x>y then
begin
s:=s+x;
if ((x-y)>0) and ((x-y) mod 4 >0) and ((x-y)<d) then d:=x-y;
end
else
begin
s:=s+y;
if ((y-x)>0) and ((y-x) mod 4 >0) and ((y-x)<d) then d:=y-x;
end;
end;
if s mod 4 =0 then
begin
if d=10001 then writeln(0) else writeln(s-d)
end
else writeln(s);
end.

159. Пример решения №2

var sum, n, i:longint;
x,a,b,minr,r:integer;
begin
readln(n);
minr:=10001;
sum:=0;
for i:=1 to n do begin
readln(a,b);
if a<b then begin x:=a; a:=b; b:=x; end;
sum:=sum+a;
r:=a-b;
if (r mod 4<>0) and (r<minr)
then minr:=r;
end;
if sum mod 4<>0
then writeln(sum)
else if minr=10001
then writeln(0)
else writeln(sum-minr);
end.

160. Пример решения №3

var a,b,count,n,sum:integer;
function maximum(a,b:integer):integer;
begin
maximum:=0;
if (a mod 4<>0) and (a>b)
then maximum:=a
else if (b mod 4<>0) then maximum:=b;
end;
begin
readln(n);
count:=1;
repeat
count:=count+1;
readln(a,b);
sum:=sum+f(a,b);
until n=count;
writeln (sum);
end.

161. Пример решения №4

const amax=10000;
var a,b,dmax,s,i:integer;
n:longint;
begin
s:=0;
if (amax+1) mod 4=0 then dmin:=amax+1
else dmin:=amax+2;
for i:=1 to n do begin
readln(a,b);
if a>b then s:=s+a else s:=s+b;
if ((a-b) mod 4<>0) and (abs(a-b) <dmin)
then dmin:=abs(a-b);
end;
if s mod 4 =0 then
if dmin>amax then s:=0 else s:=s-dmin;
writeln(s);
end.

162. Пример решения №5

var n,a,b,c,i,s,k:intger;
begin
readln(n);
s:=0; k:=10000;
for i:=1 to n do
begin
writeln(a,b);
if a>b then begin s:=s+a; c:=a-b end
else begin s:=s+b; c:=b-a; end;
if (c<k) and (с mod 4<>0) then k:=c;
end;
if s mod 4<>0 then writeln(s);
if k<>10000 then writeln(s-k)
else writeln(0);
end.

163. Дополнительные источники информации

Ресурсы сети Интернет
• http://kpolyakov.spb.ru/
• http://inf.reshuege.ru/
Учебные пособия:
• Информатика и ИКТ. Подготовка к ЕГЭ. Экспресс-курс. Под ред. Евич Л.Н.,
Кулабухова С.Ю. (Р.н.Д, Феникс, 2015, 496с.)
• Богомолова О.Б. «Информатика. Полный справочник для подготовки к ЕГЭ»
(М., АСТ, Астрель, 2014, 416с.)
• Вовк Е.Т., Глинка Н.В., Грацианова Т.Ю. и др. «Информатика. Пособие для
подготовки к ЕГЭ» (М., Бином, 2013, 322с.)
• А. Шень. Игры и стратегии с точки зрения математики. (М., МЦНМО, 2008 г.)
Электронная версия книги являет ся свободно распространяемой и доступна
по адресу ftp://ftp.mccme.ru/users/shen/games.zip
Публикации в журнале «Информатика»
• Златопольский Д.М. Задачи на обработку строк в ЕГЭ по информатике. /
“Информатика” № 9/2011.
• Златопольский Д.М. Методика решения задач С4 из ЕГЭ по информатике. /
“Информатика” № 17/2011.
• Златопольский Д.М. Обработка латинских букв, или Еще раз о задачах С4 из
ЕГЭ по информатике / “Информатика” № 5/2012.

164. Общие рекомендации по организации подготовки учащихся к ЕГЭ по информатике и ИКТ

• Познакомиться с требованиями к оформлению
заданий с развернутым ответом и четко следовать
им.
• При оформлении решения задания 25 обязательно
объявлять начальные значения переменных.
• При оформлении решения задания 26 использовать
таблицу или ориентированный граф. Не
использовать «необрубленное» дерево!
• С целью экономии времени выбрать одну из двух
задач задания 27.
• Познакомиться с критериями оценивания заданий с
развернутым ответом.

165. Динамика решаемости заданий с развернутым ответом за два года

Задание
Процент
решаемости в
2015 году
Процент
решаемости
в 2016 году
Изменение
(в %)
Уровень
задания
Ожидаемые
результаты
выполнения
задания
24
45,54%
41,76%
-3,78%
Повышенный
40%-60%
25
35,94%
38,75%
+2,81%
Высокий
0%-40%
26
42,89%
53,73%
+10,84%
Высокий
0%-40%
27
12,38%
8,2%
-4,18%
Высокий
0%-40%
English     Русский Rules