Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число A, не превосходящее 109, и выводится произведение его цифр. Программист торопился и написал программу неправильно. Паскаль:var A, pr : longint;beginreadln(A);pr := 0;while A >= 10 dobeginpr := pr * (A mod 10);A := A div 10;end;writeln (pr);end.Последовательно выполните следующее.1. Напишите, что выведет эта программа при вводе числа 123.2. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:а) выпишите строку, в которой сделана ошибка;б) укажите, как исправить ошибку: приведите правильный вариант строки.Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

13 Окт 2020 в 19:43
158 +1
0
Ответы
1

Эта программа при вводе числа 123 выведет 0.

Ошибки в программе:
а) pr := 0; - ошибка в том, что переменная pr инициализируется значением 0, что приведет к тому, что произведение цифр будет всегда равно 0.
б) исправление: pr := 1; // присвоить начальное значение 1, а не 0

Правильный вариант исправления ошибки:

var
A, pr: longint;
begin
readln(A);
pr := 1;
while A >= 1 do
begin
pr := pr * (A mod 10);
A := A div 10;
end;
writeln(pr);
end.
17 Апр 2024 в 22:53
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир