Текст задания. Напишите программу, которая в последовательности натуральных чисел определяет сумму всех чисел, кратных 6 и оканчивающихся на 4. Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число: сумму всех чисел, кратных 6 и оканчивающихся на 4. |
Решение: Перед написанием программы необходимо разобрать все этапы. Рассмотрим переменные, которые принимают участие в программе: натуральное число, вводимое пользователем (обозначим за n) и сумма этих чисел, найденная по определенным критериям (обозначим за s). В самой программе необходимо организовать цикл (while) введения последовательности произвольных натуральных чисел. Цикл должен работать пока не будет введено число 0, значит условие цикла - число a не равное нулю. Кроме того в самом цикле организуем условный оператор, который будет выбирать из введенных натуральных чисел, те числа, которые кратные 6 и оканчиваются на 4. Рассмотрим условия: - кратное 6: означает, что число нацело делится на 6 (остаток от деления числа на 6 равен 0, оператор n mod 6 = 0). - оканчивается на 4: любое натуральное число оканчивающееся на 4 при деление на 10 дает остаток 4 (например, 24 : 10 = 2 - остаток 4 или 614 : 10 = 61 - остаток 4), значит - оператор n mod 10 = 4. Т.к. в условном операторе принимают участие два условия и программа требует выполнение обоих условий, то эти условия должны соединяться логическим И (and). Программа на языке Pascal с описанием: PROGRAM A1; (- наименование программы) VAR n, s: INTEGER; (- описание переменных целого типа) BEGIN (- начало программы) WRITELN ('Введите числа'); (- вывод пояснения (можно не печатать)) READLN (n); (- ввод переменной n) s := 0; (- присваивание первоначального значение суммы) WHILE n < > 0 DO (- организация цикла ПОКА) BEGIN (- начало цикла) IF (n mod 6 = 0) and (n mod 10 = 4) THEN s := s + n; (- условный оператор) READLN (n); (- ввод переменной n в цикле) END; (- конец цикла) WRITELN ('Сумма', s); (- вывод суммы) END. (- конец программы) Переменная n в программе вводится на двух этапах: перед циклом - один раз (необходима для начала работы цикла, учитывается в последовательности) и в самом цикле неоднократно (пока не введется 0). |
вернуться |