a=2
b=8
цикл произошел два раза из-за a:=a+1
значит x равен от 100 до 9999(при прохождении получаются числа от 0,01 до 0,9999)
теперь остался b:
b в начале был равен и получил 8 при цикле. mod узнаёт остаток деления на 100 которое прошло 2 раза. посмотрим если выберем 9999
9999(остаток 99) -> 99,99(остаток 99+99). вывод: программа под буквой b вычислила сумма всех двузначных чисел. значит самое максимальное 800( 8 и 0) т.к. если выбрать больше 999 то 1000 это сумма 10 и 0 что не подходит. а нам надо самое максимальное.
Ответ:800
Var
n, a, b, c, d, s, p: integer;
begin
Write('Введите натуральное четырехзначное число: ');
Readln(n);
if (n > 9999) or (n < 1000) then Writeln('Число должно быть четырехзначным')
else begin
a := n div 1000; d := n mod 10; n := (n div 10) mod 100;
b := n div 10; c := n mod 10;
s := a + b + c + d;
p := a * b * c * d;
Writeln('Сумма цифр равна ', s, ', а их произведение равно ', p)
end
end.
<em><u>Тестовое решение:</u></em>
Введите натуральное четырехзначное число: 2345
Сумма цифр равна 14, а их произведение равно 120