previous arrow
next arrow
Slider

Решение. Задание 24. Досрочный ЕГЭ 2020 года, Информатика

Условие задачи

Требовалось написать программу, которая получает на вход натуральное число N, не превосходящее \(10^9\), и выводит число, равное количеству цифр 4 в десятичной записи числа N. Программист написал программу неправильно. Ниже эта написанная им программа для Вашего удобства приведена на пяти языках программирования.

Бейсик Python
DIM N AS LONG
DIM R, d AS INTEGER
INPUT N 
R = 0 
WHILE N > 0
   d = N MOD 10
   IF d <> 4 THEN
     R = R + d
    END IF
   N = N \ 10 
WEND 
PRINT R 
EN
N = int(input()) 
R = 0 
while N > 0:
     d = N % 10 
    if d != 4:
        R = R + d
     N = N // 10 
print(R)
Алгоритмический язык Паскаль
алг 
нач
   цел N, R, d
   ввод N
   R := 0
   нц пока N > 0
     d := mod(N, 10)
     если d <> 4 то
       R := R + d
     все
     N := div(N, 10)
   кц
   вывод R 
кон
var N: longint;
   R, d: integer; 
begin
   readln(N);
   R := 0;
   while N > 0 do begin
     d := N mod 10;
     if d <> 4 then
        R := R + d;
     N := N div 10;
   end;   writeln(R); 
end
С++
#include <iostream> 
using namespace std; 
 
int main() 
{
   long int N;
   int R, d;
   cin >> N;
   R = 0;
   while (N > 0) {
     d = N % 10;
     if (d != 4) {
       R = R + d;
     }
     N = N / 10;
   }
   cout << R << endl;
   return 0; 
}

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 241.

2. Приведите пример входного числа N, при котором приведённая программа, несмотря на ошибки, выдаёт верный ответ.

3. Найдите допущенные программистом ошибки и исправьте их.

Исправление ошибки должно затрагивать только строку, в которой находится ошибка. Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

Известно, что в тексте программы нужно исправить не более двух строк так, чтобы она стала работать правильно.

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

Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения

Решение

1. 3
2. 401 (подойдет любое число, у которого сумма цифр, не равных 4, равна количеству четверок)
3.

Строка с ошибкой
if d<>4 then
R:=R+d;
Исправленная строка
if d=4 then
R:=R+1;

Назад