Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число 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. Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:а) выпишите строку, в которой сделана ошибка;б) укажите, как исправить ошибку: приведите правильный вариант строки.Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Ошибки в программе а) pr := 0; - ошибка в том, что переменная pr инициализируется значением 0, что приведет к тому, что произведение цифр будет всегда равно 0 б) исправление: pr := 1; // присвоить начальное значение 1, а не 0
Правильный вариант исправления ошибки:
va A, pr: longint begi readln(A) pr := 1 while A >= 1 d begi pr := pr * (A mod 10) A := A div 10 end writeln(pr) end.
Эта программа при вводе числа 123 выведет 0.
Ошибки в программе
а) pr := 0; - ошибка в том, что переменная pr инициализируется значением 0, что приведет к тому, что произведение цифр будет всегда равно 0
б) исправление: pr := 1; // присвоить начальное значение 1, а не 0
Правильный вариант исправления ошибки:
vaA, pr: longint
begi
readln(A)
pr := 1
while A >= 1 d
begi
pr := pr * (A mod 10)
A := A div 10
end
writeln(pr)
end.