РУҚА
16

Шешімі: Среднее чисел в системе 7

ОГЭ · Информатика · Тапсырма 16 · Санау жүйелері
КүрделіФИПИ1B108FТолық шешім≈ 10 минутТалдау 5 қадам
Условие

Напишите программу, которая в последовательности натуральных десятичных чисел определяет среднее арифметическое элементов, запись которых в системе счисления с основанием 7 оканчивается цифрой 4. Если среди входных данных таких элементов нет, программа должна вывести «NO».

Программа получает на вход натуральные десятичные числа, не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом 0 (0 — признак окончания ввода, в последовательность не входит).

Программа должна вывести одно число — среднее арифметическое десятичных чисел последовательности, запись которых в 7-ричной системе счисления оканчивается цифрой 4, или «NO», если среди входных данных таких элементов нет.

Пример работы программы: при вводе чисел 11, 25, 30, 14, 54, 0 программа должна вывести 18.

Тапсырманы ашып, өзіңіз шешіңіз
Дальше ответЕгер әлі шешіп жатсаңыз – кеңестерден бастаңыз: олар жауапқа жетелейді, бірақ оны ашпайды.
К подсказкам

Шешім по шагам

5 қадам
1

Считываем числа по одному до появления числа 0. Нулевое значение не кіреді в последовательность.

$$n = 0 \text{ — признак окончания ввода}$$
2

Последняя цифра записи натурального числа в системе счисления с основанием 7 равна остатку от деления этого числа на 7. Поэтому выбираем числа, для которых остаток равен 4.

$$n \bmod 7 = 4$$
3

Для выбранных чисел накапливаем сумму и увеличиваем количество. После завершения ввода вычисляем среднее арифметическое.

$$\overline{x} = \dfrac{\text{sum}}{\text{count}}$$
4

Если подходящих чисел нет, количество равно нулю, поэтому выводим `NO`. Иначе выводим среднее арифметическое.

Один из корректных нұсқа программы на Python:

$$summa = 0\ncount = 0\nwhile True:\n n = int(input())\n if n == 0:\n break\n if n % 7 == 4:\n summa += n\n count += 1\nif count == 0:\n print('NO')\nelse:\n print(summa / count)$$
Жауап

summa = 0
count = 0
while True:
n = int(input())
if n == 0:
break
if n % 7 == 4:
summa += n
count += 1
if count == 0:
print('NO')
else:
print(summa / count)

Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.

Где здесь ошибаются

Проверяют делимость на 7 вместо проверки остатка 4.

Включают число 0 в сумму или количество элементов.

Пытаются переводить каждое число в семеричную систему счисления вручную.

Делят сумму на общее количество введённых чисел, а не на количество подходящих.

Не обрабатывают случай отсутствия подходящих элементов.

Закрепить приёмВ теме «Санау жүйелері» ещё 230 тапсырма — жауабымен және дәл осындай талдауымен.
Жаттығу

Тапсырманы қалай шешу керек 16 ОГЭ, информатика

Бұл есептің талдауы келесіге бөлінген: 5 шагов: видно, откуда берётся каждое число и где теряется балл. Жауап есептеулердің жанында келтірілген, олардың орнына емес.

Задача из темы «Системы счисления»: в ней 231 задача, и у каждой есть такой же разбор. Тіркеу қажет емес.