Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится сумма чётных цифр в десятичной записи этого числа или 0, если чётных цифр в записи нет. Ученик написал такую программу:
| Бейсик | Паскаль |
|---|---|
DIM N AS LONG INPUT N S = 0 WHILE N > 1 IF N MOD 2 = 0 S = N MOD 10 END IF N = N \ 10 WEND PRINT S END | var N: longint; s: integer; begin readln(N); s := 0; while N > 1 do begin if N mod 2 = 0 then begin s := N mod 10; end; N := N div 10; end; write(s); end. |
| Си++ | Алгоритмический язык |
#include <iostream> using namespace std; int main() { long int N; int s; cin >> N; s = 0; while (N > 1) { if (N%2 == 0) { s = N % 10; } N = N / 10; } cout « s « endl; } | алг нач цел N, s ввод N s := 0 нц пока N > 1 если mod(N,2) = 0 то s := mod(N,10) все N := div(N,10) кц вывод s кон |
| Python | |
N = int(input()) s = 0 while N > 1: if N % 2 == 0: s = N % 10 N //= 10 print(s) | |
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 1984.
2.Приведите пример числа, при вводе которого программа выдаст верный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Обратите внимание: вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.
PDF-версии: 