Задание ЕГЭ 21 по информатике

Подписи к слайдам:
ЕГЭ 21 Умение анализировать программу, использующую процедуры и функции Типы задач
  • Напишите в ответе количество различных значений входной переменной k, при которых программа выдаёт тот же ответ, что и при входном значении k = …
  • Определите, какое число будет напечатано в результате выполнения следующего алгоритма.
Задача 1.1. Условие
  • Определите, количество чисел K, для которых следующая программа выведет такой же результат, что и для K = 120:
  • def F(x): if x < 1: return 1 else: return F(x-1) + 3*F(x-2)   i = 0 k = int(input()) while F(i) < k: i += 1 print(i)
Задача 1.1. Что выведет программа при k = 120? def F(x): if x < 1: return 1 else: return F(x-1) + 3*F(x-2)   i = 0 k = int(input()) while F(i) < k: i += 1 print(i)

i F(i)

-1 1

0 1

1 4

2 7

3 19

4 40

5 97

6 217

Задача 1.1. Определяем возможные значения k def F(x): if x < 1: return 1 else: return F(x-1) + 3*F(x-2)   i = 0 k = int(input()) while F(i) < k: i += 1 print(i)

F(6) >= k

F(5) < k

def F(x):

if x < 1:

return 1

else:

return F(x-1) + 3*F(x-2)

 

i = 0

k = int(input())

while F(i) < k:

i += 1

print(i)

Задача 1.1. Определяем возможные значения k
  •  
Задача 1.2. Условие Напишите в ответе число, равное количеству различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k=14. Значение k=14 также включается в подсчёт различных значений k. def f(n):     return 2*n*n + 5   k = int(input()) i = 1 while f(i) < k:     i += 1 if f(i)-k <= k-f(i-1):     print(i) else:     print(i-1) Задача 1.2. Что выведет программа? def f(n):     return 2*n*n + 5   k = int(input()) i = 1 while f(i) < k:     i += 1 if f(i)-k <= k-f(i-1):     print(i) else:     print(i-1)

i F(i)

1 7

2 13

3 23

23 – 14 v 14 - 13

23 – 14 > 14 - 13

2

Задача 1.2. Вывод программы: 2. Определяем возможные значения k def f(n):     return 2*n*n + 5   k = int(input()) i = 1 while f(i) < k:     i += 1 if f(i)-k <= k-f(i-1):     print(i) else:     print(i-1)

def f(n):

    return 2*n*n + 5

 

k = int(input())

i = 1

while f(i) < k:

    i += 1

if f(i)-k <= k-f(i-1):

    print(i)

else:

    print(i-1)

 

 

Задача 1.2. Определяем возможные значения k

 

 

def f(n):

    return 2*n*n + 5

 

 

 

 

 

 

 

 

4

4

8

Задача 2.1. Условие Определите, какое число будет напечатано в результате выполнения следующего алгоритма: def F(x): return (x+7)*(1-x)   a = -5 b = 5 M = a R = F(a) for t in range(a,b+1): if F(t) < R: M = t R = F(t) print(M)

Примечание

F(t) < R

Первый минимум

F(t) <= R

Последний минимум

F(t) > R

Первый максимум

F(t) >= R

Последний максимум

Задача 2.1. График def F(x): return (x+7)*(1-x)   a = -5 b = 5 M = a R = F(a) for t in range(a,b+1): if F(t) < R: M = t R = F(t) print(M) Графики y = ax2+bx+c, a>0 y = ax2+bx+c, a<0 Графики y=(x2 - 4)2+5 y=|x-5| Задача 2.2. Условие Определите, какое число будет напечатано в результате выполнения следующего алгоритма: def F(x): return (x*x-9)*(x*x-9)+5   a = -13 b = 13 M = a R = F(a) for t in range(a,b+1): if F(t) < R: M = t R = F(t) print(M+7) Задача 2.2. График Определите, какое число будет напечатано в результате выполнения следующего алгоритма: def F(x): return (x*x-9)*(x*x-9)+5   a = -13 b = 13 M = a R = F(a) for t in range(a,b+1): if F(t) < R: M = t R = F(t) print(M+7) Задача 2.2. Трассировка def F(x): return (x*x-9)*(x*x-9)+5   a = -13 b = 13 M = a R = F(a) for t in range(a,b+1): if F(t) < R: M = t R = F(t) print(M+7)

t F(t)

-13 (132-9)2+5

-12 (122-9)2+5

-11 (112-9)2+5

-10 (102-9)2+5

-9 (92-9)2+5

-8 (82-9)2+5

-7 (72-9)2+5

-6 (62-9)2+5

-5 (52-9)2+5

-4 (42-9)2+5

-3 (32-9)2+5

-2 (22-9)2+5

-1 (12-9)2+5

0 (02-9)2+5

t F(t)

1 (12-9)2+5

2 (22-9)2+5

3 (32-9)2+5

4 (42-9)2+5

5 (52-9)2+5

6 (62-9)2+5

7 (72-9)2+5

8 (82-9)2+5

9 (92-9)2+5

10 (102-9)2+5

11 (112-9)2+5

12 (122-9)2+5

13 (132-9)2+5

Задача 2.3. Определите, какое число будет напечатано в результате выполнения следующего алгоритма: def F(x): return (2*x*x – 36)*(2*x*x – 36)+5 a = -10; b = 10 M = a; R = F(a) for t in range(a,b+1): if F(t) < R: M = t; R = F(t) print(M+R) Задача 2.4. Определите, какое число будет напечатано в результате выполнения следующего алгоритма: def F(x): return 2*x*x-3*x-20 def G(x): return -11*x+4   a = -20; b = 20 R = 0 for t in range(a, b+1): if (F(t) <= G(t)): R += 1 print(R)