Предмет: Информатика, автор: Imperatormatvey

Ответ представьте на языке Python.
По каналу связи передается последовательность положительных целых чисел, все чис-ла не превышают 1000, их количество заранее неизвестно. Каждое число передается отдельно. Признаком конца передаваемой последовательности является число 0. После числа 0 передается контрольное значение – наибольшее число из последовательности, которое делится на 10.
Напишите эффективную программу, которая получает последовательность чисел и следующие за ней признак конца и контрольное значение, а также проверяет правильность контрольного значения. Программа должна напечатать отчет следующего вида:
Получено .. чисел
Полученное контрольное значение: ….
Вычисленное контрольное значение:…
Контроль пройден (или – контроль не пройден)


pinguinbird: Пользователь числа вводит вручную с клавиатуры?
Imperatormatvey: Da
pinguinbird: все чис-ла не превышают 1000 - не совсем понятно, имеется в виду количество чисел не превышает 1000 или величина чисел не превышает 100
pinguinbird: 1000
pinguinbird: наверное всё таки значения не превышают 1000, сейчас поправлю в коде...
pinguinbird: готово )

Ответы

Автор ответа: pinguinbird
2

Ответ:

cnt = 0

a = [-1, -1]

chk = 0

while True:

   cnt+=1

   a[0] = a[1]

   try:

       a[1] = int(input(f'Введите {cnt}-е число: ' if a[0] != 0 else 'Введите контрольное число: '))

       if a[1] < 0 or a[1] > 1000: raise ValueError

   except ValueError:

       print('Ошибка ввода: Вводите натуральное число не превышающее 1000!')

   if a[0] == 0: break

   if a[1] % 10 == 0 and (a[1] > chk or (chk == 0)): chk = a[1]

print()

print(f'Получено {cnt-1} чисел')

print('Полученное контрольное значение:', a[1])

print('Вычисленное контрольное значение:', chk)

print('Контроль пройден' if a[1] == chk else 'Контроль не пройден')


mirageKZ: контрольное значение chk не считается, следовательно проверка не выполняется!
pinguinbird: эм, не очень понял...все работает корректно, что вы имеете в виду?
pinguinbird: приглядитесь к строчке над print(), там как раз переменной chk присваивается максимальное число кратное 10
pinguinbird: а затем в самом конце chk сравнивается с a[1], где, собственно, и лежит контрольное число
mirageKZ: ок, chk не заметил
pinguinbird: класс, если эта ваша двойка, то не могли бы вы ее исправить, а то как-то нечестно получается
mirageKZ: нет, я на 5 оценивал
pinguinbird: ок спасибо!
Автор ответа: marinasa2332
0
1 max_1 = 0
2 max_2 = 0
3 number = int(input())
4
5 while number != 0:
6  if number > max_1:
7      max_1 = number
8    elif number > max_2:
9        max_2 = number
10   number = int(input())
11   
12 control_num = int(input())
13 print('Контроль пройден' if max_1+max_2
== control_num else 'контроль не пройден')

mirageKZ: условие задания читайте!
Похожие вопросы
Предмет: Қазақ тiлi, автор: asemnaimbaeva2006