Подготовка к ГИА по информатике. Решение задач по теме «Анализ программ с циклами и подпрограммами»
Учитель информатики
Шахова Е. А.
ГБОУ «Гимназия №1 имени А. С. Пушкина»
Севастополь, 2019
Спецификация задания №21
согласно КИМ в 2019 ( «ФИПИ»)
Характеристика
Значение
Что проверяется
Умение анализировать программу, использующую процедуры и функции
Требования к проверяемым элементам содержания
Основные конструкции языка программирования. Система программирования
Проверяемые требования к уровню подготовки
Читать и отлаживать программы на языке программирования
Уровень сложности
Повышенный
Максимальный балл
1
Примерное время выполнения
6 мин
Необходимые знания и умения
- Понятие функции в программировании;
- Цикл с параметром for;
- Особенности работы цикла с предусловием while;
- Поиск максимума и минимума в последовательности;
- Оператор ветвления.
Математический базис
- Поиск максимумов и минимумов с помощью производной или по свойствам функций;
- Нахождение наибольшего и наименьшего значений функции на интервале;
- Параметры параболы;
- Функции с модулем: графики;
- Уверенный аппарат решения систем неравенств, объединения решений;
- Умение отбирать целые корни на интервале, подсчет их количества.
Варианты формулировки задания
Определите, какое число будет напечатано в результате выполнения следующего алгоритма…
Напишите в ответе число, равное количеству различных значений входной переменной k (наименьшее значение, наибольшее значение), при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k = ….
Определите, какое значение H нужно ввести, чтобы число, напечатанное в результате выполнения следующего алгоритма, было наименьшим.
Поиск максимального и минимального значения функции
Определите, какое число будет напечатано в результате выполнения следующего алгоритма :
Var a, b, t, M, R : integer;
Function F(x:integer) : integer;
begin
F:=(x*x-9)*(x*x-9)+4;
end;
BEGIN
a:=-10; b:=10;
M:=a; R:=F(a);
for t:=a to b do begin
if (F(t)
M:=t;
R:=F(t);
end;
end;
write(M+6);
END.
Анализ программы
M:=a; R:=F(a);
for t:=a to b do
begin
if (F(t)
M:=t;
R:=F(t);
end;
end;
Function F(x:integer):integer;
begin
F:=(x*x-9)*(x*x-9)+4;
end;
Можно записать
M – значение аргумента функции, в котором достигается минимум на интервале [a, b],
R- значение минимума
Анализ функции
Поиск минимума с помощью производной:
=0
Критические точки
Fmin=F(-3)=4
M=4
Ответ: 10
-
-
+
+
0
-
3
M=-3
Ответ: -3+6=3
!
Знание свойств функций позволяет быстрее найти точки минимума.
Условие задачи
Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:= abs( abs(x-5) + abs(x+5) - 3) + 12;
end;
BEGIN
a:=20; b:=-20;
M:=a; R:=F(a);
for t:=a downto b do begin
if (F(t)
M:=t;
R:=F(t);
end;
end;
write(M+R);
END.
f ( x ) = | | x – 5 | + | x + 5 | – 3 | + 12
G(x) = | x – 5 | + | x + 5 | – 3
M=5 R=19
Ответ: 24
Общий алгоритм решения
- Анализ алгоритма поиска: поиск максимума или минимума?
- Поиск минимума или максимума аналитическим методом, нахождение точек и значения в них
- Выбор одной точки решения в зависимости от:
- направления поиска (цикл возрастания или убывания)
- строгого или нестрого неравенства при сравнении значений
4) Вычисление выражения, выводимого на экран
R)then begin M:=t; R:=F(t); end; end; write(R); END. Ответ: 16" width="640"
Закрепление
Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=(5-x)*(x+3);
end;
BEGIN
a:=-20; b:=20;
M:=a; R:=F(a);
for t:=a to b do begin
if (F(t)R)then begin
M:=t;
R:=F(t);
end;
end;
write(R);
END.
Ответ: 16
Условие задачи
Напишите в ответе число, равное количеству различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k = 25. Значение k = 25 также включается в подсчёт количества различных значений k.
var k, i : longint;
function f(n: longint) : longint;
begin
f := n * n * n;
end;
begin
readln(k);
i := 1;
while f(i)
i := i+1;
if f(i)-k
writeln(i)
else writeln(i-1)
end.
Что выведет программа?
Первый цикл
i := 1;
while f(i)
i := i+1;
i=3
Проверка условия
if f(i)-k
writeln(i)
else writeln(i-1);
)= истина
Программа выведет
3
Поиск других значений k
Программа выводит значение 3 в двух ситуациях:
Чтобы i принимало заданное значение, для цикла должны выполнятся условия
Итоговые системы
Ответ: 28
Закрепление
Напишите в ответе число, равное количеству различных значений входной
переменной k, при которых приведённая ниже программа выводит тот же
ответ, что и при входном значении k = 10. Значение
k = 10 также включается
в подсчёт различных значений k.
var k, i : longint;
function f(n: longint) : longint;
begin
f := n * n * n;
end;
begin
readln(k);
i := 1;
while f(i)
i:= i+1;
if f(i)-k
writeln(i)
else writeln(i-1);
end.
Ответ: 13
Задачи
Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F := abs(abs(x-4)+abs(x+4)-12) + 1
end;
begin
a := -20; b := 20;
M := a; R:= F(a);
for t := a to b do begin
if (F(t)
M := t;
R:= F(t)
end
end;
write(M);
end.
Напишите в ответе число, равное количеству различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k=9. Значение k=9 также включается в подсчёт различных значений k.
var k, i : longint;
function f(n: longint) : longint;
begin
f := n*n*n + 2*n;
end;
begin
readln(k);
i := 1;
while f(i)
i:= i+1;
if f(i)-k
writeln(i)
else writeln(i- 1);
end.
Список использованных источников
- Информатика и ИКТ. Подготовка к ЕГЭ-2016. 20 тренировочных вариантов по демоверсии на 2016 год: учебно-методическое пособие / Под ред. Л. Н. Евич, С.Ю. Кулабухова. – Ростов-на-Дону: Легион, 2015.
- Презентация Лимаренко Андрея Ивановича, учителя информатики гимназии 446 на тему «Мастер класс: Логические задачи. Подготовка к ЕГЭ, В15»
- Презентация Мирончик Ел. А., Мирончик Ек. А. на тему «Системы логических уравнений. Метод отображения.» г. Новокузнецк, 2012.
- Презентация Вишневской М.П., МАОУ «Гимназия №3» на тему «Решение задания В15 (системы логических уравнений)» 2013 г., г. Саратов .