В программе есть 3 переменные n=20, a=0 и t (участвует в цикле от 1 до 20).
Запускается цикл (for ..) и в нем будет выполнятся это действие:
if (F(n) >= G(t)) then
a:=a+1;
В функцию F передается постоянно только одна переменная (n = 20)
Можно сразу посчитать чему будет равно значение в этой функции:
F:= 2*(x-7)*(x-7)+7*x+7 = F:= 2*(20-7)*(20-7)+7*20+7 = 485
F(n) = 485 постоянно
Дальше запускаем цикл for (t = от 1 до 20) и каждое значение t передается в функцию G и там производятся вычисления.
Итак
Цикл 1t = 1
G(t) = G(1) = 3*x*x - 107 = 3*1*1 - 107 = -104
Проверка (if):
(F(n) = 485) >= (G(t) = -104)
так как 485 > -104, то к a прибавляется единица, так как a = 0, то a = 1 (a = a + 1 = 0 + 1 = 1)
a = 1
Цикл 2t = 2
G(t) = G(1) = 3*x*x - 107 = 3*2*2 - 107 = -95
Проверка (if):
(F(n) = 485) >= (G(t) = --95)
так как 485 > -95, то к a прибавляется единица, так как a = 0, то a = 1 (a = a + 1 = 0 + 1 = 1)
a = 2
И так проделывать пока t не станет равной 20 (в каждом следующем цикле к t прибавлять 1 и в функции G высчитывать по формуле и сравнивать с функцией F)
В итоге a = 14
ответ: a = 14
1: Объект set не реализует __getitem__, соответственно, доступ к элементам set по индексу невозможен. Приведите set к list для получения доступа к элементу по индексу
2: Функция elem не осуществляет проверку правильности вводимых данных, в следствии чего неверные параметры при вызове функции elem могут поднять исключение IndexError: string/list index out of range.
Пояснения:
Используйте Type Hints для указания принимаемого и возвращаемого типа для функции, а так же добавьте проверку получаемых функцией параметров:
import typing
from typing import List
from typing import Any
def elem(data: List[Any], index: int) -> bool :
try:
print(data[index]); return True
except: return False
elem(list(set('string')), 3)
В предложенном примере кода функция возвращает True или False. в зависимости от результата выполнения. Вы можете добавить декоратор, который будет выводить в консоль сообщение об ошибке вызова без прерывания выполнения программы:
import typing
from typing import List
from typing import Any
from typing import Callable
def Status(func: Callable[[Any], bool]):
def _wrap(*a, **kw):
res = func(*a, **kw)
if not res:
print('error occurred during call function')
return _wrap
@Status
def elem(data: List[Any], index: int) -> bool :
try:
print(data[index]); return True
except: return False
elem(list(set('string')), 3) # -> 'r'
elem(list(set('string')), 32) # -> 'Error occurred during call function'
Все примеры кода написаны для языка Python 3.8.3