Задания с развернутым ответом в структуре контрольных измерительных материалов для ЕГЭ по информатике и ИКТ
Фрагменты спецификации экзаменационной работы по информатике 2019 года, относящиеся к заданиям части 2
Задания части 2 направлены на проверку сформированности важнейших умений записи и анализа алгоритмов, предусмотренных требованиями к обязательному уровню подготовки по информатике учащихся средних общеобразовательных учреждений. Эти умения проверяются на повышенном и высоком уровне сложности. Также на высоком уровне сложности проверяются умения по теме «Технология программирования».
Распределение заданий с развернутым ответом по уровню сложности
В части 2 всего четыре задания, относящиеся к повышенному и высокому уровню сложности.
Если для заданий базового уровня предполагаемый процент выполнения 60%–80%, то для заданиий повышенного и высокого уровня сложности требования более высокие. Для задания 24 повышенного уровня предполагаемый процент выполнения от 40 % до 60%, а для остальных заданий части 2 предполагаемый процент выполнения от 10% до 30%.
Система оценивания выполнения заданий с развернутым ответом и экзаменационной работы в целом
Ответы на задания части 2 проверяются и оцениваются экспертами (устанавливается соответствие ответов определенному перечню критериев).
Максимальное количество баллов, которое можно получить за выполнение заданий части 2, – 12 баллов.
Фрагмент обобщенного плана экзаменационной работы по информатике и ИКТ 2019 г.
|
|
№ п/п | Обозначение задания | Проверяемые элементы содержания и виды деятельности | Коды проверяемых элементов содержания по кодифика-тору | Коды требований к уровню подготовки выпускников по кодифика-тору | Уровень сложности задания | Максимальный балл за задание | Примерное время выполнения (мин) |
… | … | … | … | … | ... | ... | |
Часть 3 | |||||||
24 | 24 | Умение прочесть фрагмент программы на языке программирования и исправить допущенные ошибки | 1.7.2 | 1.1.4 | П | 3 | 30 |
25 | 25 | Умения написать короткую (10–15 строк) простую программу обработки массива на языке программирования | 1.6.3 | 1.1.5 | В | 2 | 30 |
26 | 26 | Умение построить дерево игры по заданному алгоритму и обосновать выигрышную стратегию | 1.5.2 | 1.1.3 | В | 3 | 30 |
27 | 27 | Умения создавать собственные программы (30–50 строк) для решения задач средней сложности | 1.7.3 | 1.1.5 | В | 4 | 55 |
Варианты заданий части 2 и критерии оценивания
Варианты задания 24 и критерии оценивания
Задание 24. Вариант 1.
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится количество цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
|
|
Бейсик | Паскаль |
DIM N AS LONG INPUT N sum = 0 WHILE N >= 9 N = N \ 10 sum = sum + 1 WEND PRINT sum END | var N: longint; sum: integer; begin readln(N); sum := 0; while N >= 9 do begin N := N div 10; sum := sum + 1; end; writeln(sum); end. |
Си | Алгоритмический язык |
#include<stdio.h> int main() { long int N; int sum; scanf("%ld", &N); sum = 0; while (N >= 9) { N = N / 10; sum = sum + 1; } printf("%d", sum); } | алг нач цел N, sum ввод N sum := 0 нцпока N >= 9 N := div(N, 10) sum := sum + 1 кц вывод sum кон |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 584.
2. Укажите число, для которого программа будет работать верно.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Укажите все строки (одну или более), содержащие ошибки, и для каждой такой строки приведите правильный вариант.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
|
|
Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла) | |
1. Программа выведет число 2. 2. Программа работает верно для всех чисел, начинающихся на 9, в том числе для числа 9. [Достаточно указать любое такое число.] 3. В качестве ответа для остальных чисел программа выдаёт число на 1 меньшее, чем нужно. Возможные (не все) варианты исправления для языка Паскаль: 1) исправление условия продолжения цикла на while (N >= 0) do корректной не является. 2) исправление инициализации на а условие продолжения цикла на while (N > 9) do или while (N >= 10) do | |
Указания по оцениванию | Баллы |
Обратите внимание! В задаче требовалось выполнить три действия. Баллы за данное задание начисляются как сумма баллов за верное выполнение каждого действия. 1. Верно указано, что именно выведет программа при указанных в условии входных данных. 2. Указано число, при котором программа работает верно. 3. Указаны все строки (одна или более), в которые нужно внести исправления, и эти исправления внесены; при этом получена верно работающая программа. При выполнении действия 3 верное указание на ошибку при неверном её исправлении не засчитывается. Обратите внимание! Выбор ошибочных строк может быть выполнен не единственным способом. В работе (во фрагментах программ) допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора решения | |
Правильно выполнены все три действия | 3 |
Правильно выполнены два действия из трёх | 2 |
Не выполнены условия, позволяющие поставить 2 или 3 балла, однако выполнено одно из следующих условий. 1. Выполнено одно действие из трёх. 2. Представлен новый верный текст программы, возможно, совершенно не похожий на исходный | 1 |
Все пункты задания выполнены неверно или отсутствуют | 0 |
Максимальный балл | 3 |
|
|
Задание 24. Вариант 2
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится количество цифр этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках.)
Бейсик | Паскаль |
DIM N AS LONG INPUT N sum = 1 WHILE N > 1 N = N \ 10 sum = sum + 1 WEND PRINT sum END | var N: longint; sum: integer; begin readln(N); sum := 1; while N > 1 do begin N := N div 10; sum := sum + 1; end; writeln(sum); end. |
Си | Алгоритмический язык |
#include<stdio.h> int main() { long int N; int sum; scanf("%ld", &N); sum = 1; while (N > 1) { N = N /10; sum = sum + 1; } printf("%d", sum); } | алг нач цел N, sum ввод N sum := 1 нцпока N > 1 N := div(N, 10) sum := sum + 1 кц вывод sum кон |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 938?
2. Укажите одно число, для которого программа будет работать верно.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Укажите все строки (одну или более), содержащие ошибки, и для каждой такой строки приведите правильный вариант.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла) | |
1. Программа выведет число 4. 2. Программа работает верно для любого числа, начинающегося с 1, в том числе для 1. [Достаточно указать любое такое число.] 3. В качестве ответа для остальных чисел программа выдаёт число на 1 большее, чем нужно. Возможные варианты исправления для языка Паскаль: 1) исправление условия продолжения цикла на 2) исправление инициализации на а условие продолжения цикла на while (N >= 1) do или while (N > 0) do При этом замена на while (N >= 0) do корректной не является. 3) исправление условия продолжения цикла на | |
Указания по оцениванию | Баллы |
Обратите внимание! В задаче требовалось выполнить три действия. Баллы за данное задание начисляются как сумма баллов за верное выполнение каждого действия. 1. Верно указано, что именно выведет программа при указанных в условии входных данных. 2. Указано число, при котором программа работает верно. 3. Указаны все строки (одна или более), в которые нужно внести исправления, и эти исправления внесены; при этом получена верно работающая программа. При выполнении действия 3 верное указание на ошибку при неверном её исправлении не засчитывается. Обратите внимание! Выбор ошибочных строк может быть выполнен не единственным способом. В работе (во фрагментах программ) допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора решения | |
Правильно выполнены все три действия | 3 |
Правильно выполнены два действия из трёх | 2 |
Не выполнены условия, позволяющие поставить 2 или 3 балла, однако выполнено одно из следующих условий. 1. Выполнено одно действие из трёх. 2. Представлен новый верный текст программы, возможно, совершенно не похожий на исходный | 1 |
Все пункты задания выполнены неверно или отсутствуют | 0 |
Максимальный балл | 3 |
Задание 24. Вариант 1a.
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится минимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бейсик | Паскаль |
DIM N AS LONG INPUT N min_digit = 9 WHILE N >= 10 digit = N MOD 10 IF digit < min_digit THEN min_digit = digit END IF N = N \ 10 WEND PRINT digit END | var N: longint; digit, min_digit: integer; begin readln(N); min_digit := 9; while N >= 10 do begin digit := N mod 10; if digit < min_digit then min_digit := digit; N := N div 10; end; writeln(digit); end. |
Си | Алгоритмический язык |
#include<stdio.h> int main() { long int N; int digit, min_digit; scanf("%ld", &N); min_digit = 9; while (N >= 10) { digit = N % 10; if (digit < min_digit) min_digit = digit; N = N / 10; } printf("%d", digit); } | алг нач цел N, digit, min_digit ввод N min_digit := 9 нцпока N >= 10 digit := mod(N, 10) если digit < min_digit то min_digit := digit все N := div(N, 10) кц вывод digit кон |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 547.
2. Приведите пример числа, при вводе которого программа работает правильно, несмотря на содержащиеся в ней ошибки.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, – приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла) | ||
Решение использует запись программы на Паскале. Допускается использование программы на трёх других языках. 1. Программа выведет число 4. 2. Верным ответом является любое число 10<=N<=109, минимальной цифрой которого является вторая цифра слева. Например, число 11 или 9899. 3. В программе есть две ошибки. Первая ошибка. Неверное условие окончания цикла. Программа не будет рассматривать старшую цифру числа. Строка с ошибкой: while N >= 10 do Возможные варианты исправления: while (N >= 1) или while (N > 0) При этом замены на while (N > 1) или while (N >= 0) корректными не являются 3. Вторая ошибка. Программа выводит значение переменной digit, а не min_digit. Строка с ошибкой: writeln(digit); Необходимо в строке с выводом результата заменить digit на min_digit | ||
Указания по оцениванию | Баллы | |
Обратите внимание! В задаче требовалось выполнить четыре действия: 1) указать, что выведет программа при конкретных входных данных; 2) указать пример подаваеиого на вход числа, для которого программа выведет верный результат; 3) исправить первую ошибку; 4) исправить вторую ошибку. Для проверки правильности выполнения п. 2) нужно формально выполнить исходную (ошибочную) программу с входными данными, которые указал экзаменуемый, и убедиться в том, что результат, выданный программой, будем таким же, как и для правильной программы. Для действий 3) и 4) ошибка считается исправленной, если выполнены оба следующих условия: а) правильно указана строка с ошибкой; б) указан такой новый вариант строки, что при исправлении другой ошибки получается правильная программа. |
| |
Выполнены все четыре необходимых действия, и ни одна верная строка не указана в качестве ошибочной | 3 | |
Не выполнены условия, позволяющие поставить 3 балла. Имеет место одна из следующих ситуаций: а) выполнены три из четырёх необходимых действий. Ни одна верная строка не указана в качестве ошибочной; б) выполнены все четыре необходимых действия. Указано в качестве ошибочной не более одной верной строки | 2 | |
Не выполнены условия, позволяющие поставить 2 или 3 балла. Выполнены два необходимых действия из четырёх | 1 | |
Не выполнены условия, позволяющие поставить 1, 2 или 3 балла. | 0 | |
Максимальный балл | 3 | |
Задание 24. Вариант 2a.
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится минимальная цифра этого числа. Программист торопился и написал программу неправильно. (Ниже для Вашего удобства программа представлена на четырёх языках программирования.)
Бейсик | Паскаль |
DIM N AS LONG INPUT N min_digit = 0 WHILE N > 0 digit = N MOD 10 IF digit < min_digit THEN min_digit = digit END IF N = N \ 10 WEND PRINT digit END | var N: longint; digit, min_digit: integer; begin readln(N); min_digit := 0; while N > 0 do begin digit := N mod 10; if digit < min_digit then min_digit := digit; N := N div 10; end; writeln(digit); end. |
Си | Алгоритмический язык |
#include<stdio.h> int main() { long int N; int digit, min_digit; scanf("%ld", &N); min_digit = 0; while (N > 0) { digit = N % 10; if (digit < min_digit) min_digit = digit; N = N / 10; } printf("%d", digit); } | алг нач цел N, digit, min_digit ввод N min_digit := 0 нцпока N > 0 digit := mod(N, 10) если digit < min_digit то min_digit := digit все N := div(N, 10) кц вывод digit кон |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 862.
2. Приведите пример числа, при вводе которого программа работает правильно, несмотря на содержащиеся в ней ошибки.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, – приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла) | ||
Решение использует запись программы на Паскале. Допускается использование программы на трёх других языках. 1. Программа выведет число 8. 2. Верным ответом является любое число 1<=N<=109, минимальной цифрой которого является самая левая цифра. Например, числа 1, 22 или 789. 3. В программе есть две ошибки Первая ошибка. Неверная инициализация ответа (переменная min_digit). Строка с ошибкой: min_digit := 0; Возможные варианты исправления: min_digit := 9; Возможны и другие исправления инициализации на любое число, большее 9. Вторая ошибка. Программа выводит значение переменной digit, а не min_digit. Строка с ошибкой: writeln(digit); Необходимо в строке с выводом результата заменить digit на min_digit | ||
Указания по оцениванию | Баллы | |
Обратите внимание! В задаче требовалось выполнить четыре действия: 1) указать, что выведет программа при конкретных входных данных; 2) указать пример подаваемого на вход числа, для которого программа выведет верный результат; 3) исправить первую ошибку; 4) исправить вторую ошибку. Для проверки правильности выполнения п. 2) нужно формально выполнить исходную (ошибочную) программу с входными данными, которые указал экзаменуемый, и убедиться в том, что результат, выданный программой, будем таким же, как и для правильной программы. Для действий 3) и 4) ошибка считается исправленной, если выполнены оба следующих условия: а) правильно указана строка с ошибкой; б) указан такой новый вариант строки, что при исправлении другой ошибки получается правильная программа. |
| |
Выполнены все четыре необходимых действия, и ни одна верная строка не указана в качестве ошибочной | 3 | |
Не выполнены условия, позволяющие поставить 3 балла. Имеет место одна из следующих ситуаций: а) выполнены три из четырёх необходимых действий. Ни одна верная строка не указана в качестве ошибочной; б) выполнены все четыре необходимых действия. Указано в качестве ошибочной не более одной верной строки | 2 | |
Не выполнены условия, позволяющие поставить 2 или 3 балла. Выполнены два необходимых действия из четырёх | 1 | |
Не выполнены условия, позволяющие поставить 1, 2 или 3 балла. | 0 | |
Максимальный балл | 3 | |
Дата добавления: 2020-04-08; просмотров: 201; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!