М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
alinaaaa9
alinaaaa9
03.04.2020 02:15 •  Информатика

Створити блок схему алгоритму та програму мовою програмування для такої задачі: Знайти НСД двох введених з клавіатури чисел , будь ласка

👇
Открыть все ответы
Ответ:
zhuckovanatali1
zhuckovanatali1
03.04.2020

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

4,8(45 оценок)
Ответ:
varyuska
varyuska
03.04.2020

В программе есть 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 и там производятся вычисления.

Итак

Цикл 1

t = 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

Цикл 2

t = 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

4,5(74 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ