В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
1qq
1qq
31.05.2021 18:16 •  Информатика

Написать по дороге s.информатика.9класс​

Показать ответ
Ответ:
Colaps
Colaps
28.03.2021 22:39

Без проверок код был бы намного меньше, но сделал с проверками на всякий случай. Если нужно проще - пишите. По сути достаточно функции calculate_cost. И я ещё другую функцию сделал calculate_cost_old, она не используется, но в ней дифференцированный подход вычислений используется, то есть до нижней границы вычисляется по ставке 1,1, дальше вычисляется по тарифу, а больше верхней границы по тарифу 0,9. Мне кажется, так логичнее:

def calculate_cost(N:int,A:int,B:int,T:float):

   s = 0

   if N <= A: s = 1.1*N

   elif A < N <= B: s = N

   else: s = 0.9*N

   return round(T*s,2)

def calculate_cost_old(N:int,A:int,B:int,T:float):

   """Данная функция вычисляет стоимость услуг и возвращает значение"""

   s1 = 0

   s2 = 0

   s3 = 0

   # вычислим стоимость до нижней границы включительно

   if N <= A: s1 = 1.1*N

   else: s1 = 1.1*A

   # вычислим стоимость между нижней (исключительно) и верхней (включительно) границами

   if A < N <= B: s2 = N-A

   elif N > B: s2 = B-A

   # вычислим стоимость от верхней границы (исключительно)

   if N > B: s3 = 0.9*(N-B)

   

   return round(T*(s1+s2+s3),2)

def calculator():

   """основная функция"""

   names = ['Количество минут', 'Нижняя граница тарифа', 'Верхняя граница тарифа', 'Стоимость тарифа']

   while True:

       chk = True

       a = list(map(str, input('Начните ввод: ').split()))

       if len(a) != 4:

           print('Ошибка ввода: введите четыре параметра через пробел')

           continue

       for i in range(len(a)):

           if i != 3:

               try:

                   a[i] = int(a[i])

                   if a[i] < 0: raise ValueError

                   if i == 2 and a[i-1] > a[i]: raise ValueError

               except ValueError:

                   print(f'Ошибка ввода: значение "{names[i]}" ({i+1}-й параметр) должно быть целым не отрицательным числом', '> нижней границы' if i == 2 else '')

                   chk = False

           else:

               try:

                   a[i] = float(a[i])

                   if a[i] <= 0: raise ValueError

               except ValueError:

                   print(f'Ошибка ввода: значение "{names[i]}" ({i+1}-й параметр) должно быть целым положительным числом')

                   chk = False

       if chk: break

   print()

   print('--- Рассчёт окончен ---')

   print('Стоимость учлуг составляет: {:.2f}'.format(calculate_cost(a[0],a[1],a[2],a[3])))

   print()

print('--- Рассчёт стоимости услуг связи ---')

print()

print('Введите через пробел: \n  - количество потраченных за месяц минут (целое число >= 0)\n  - нижнюю границу тарифа (целое число >= 0)\n  - верхнюю границу тарифа (целое число >= нижней границы)\n  - стоимость (вещественное число > 0)')

print()

while True:

   calculator()

   if input('Повторить вычисления? (y/n): ') == 'n': break

0,0(0 оценок)
Ответ:
dizi17
dizi17
29.01.2023 22:46
Приведенная программа принимает целые числа и выводит два значения: a - количество цифр в числе и b - произведение цифр, составляющих число. При вводе нуля программа завершает работу.  Ввод отрицательных чисел игнорируется.
1) При исполнении этой программы на экран было сначала выведено число 2, затем число 15. НАИМЕНЬШЕЕ значение переменной x, для которого это возможно, равно С) 35
Здесь количество цифр равно двум, а их произведение равно 15. Число 15 представимо в виде произведения двух однозначных чисел только в виде 3х5 или 5х3. Следовательно, наименьшим числом могло быть только 35.
2) При исполнении этой программы на экран было сначала выведено число 2, затем число 15. НАИБОЛЬШЕЕ значение переменной x, для которого это возможно, равно B) 53
Решение аналогично предыдущему, но выбирается наибольшее число, т.е. 53.
3) НАИМЕНЬШЕЕ значение переменной b, которое может быть выведено на экран этой программой, равно Е) 0
Минимальное значение произведения n однозначных чисел будет равно нулю, если среди этих чисел встретить хотя бы один ноль.
4) При исполнении этой программы на экран было сначала выведено число 2. НАИБОЛЬШЕЕ значение переменной b, которое может быть выведено на экран, равно А) 81
Максимальное произведение двух однозначных чисел равно 9х9=81.
5) НАИМЕНЬШЕЕ значение переменной a, которое может быть выведено на экран этой программой, равно D) 1
Понятно, что чисел с количеством знаков, меньшим единицы, быть не может.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота