procedure Summa(x: integer);
begin
WriteLn('Сумма чисел ', x, ' : ', x mod 10 + (x div 10) mod 10 + (x div 100) mod 10 + x div 1000);
end;
procedure Concat(x: integer);
begin
WriteLn('Произведение чисел ', x, ' : ', x mod 10 * (x div 10) mod 10 * (x div 100) mod 10 * x div 1000);
end;
Следующий вариант
procedure DigSum(x: longint);
var r, n : longint ;
begin
n := x;
r := 0;
while n > 0
do begin
r := r + n mod 10;
n := n div 10;
end;
WriteLn('Сумма цифр числа ', x, ' = ', r);
end;
procedure DigMult(x: longint);
var r, n : longint ;
begin
n := x;
if n <> 0
then r := 1
else r := 0 ;
while n > 0
do begin
r := r * (n mod 10);
n := n div 10;
end;
WriteLn('Произведение цифр числа ', x, ' = ', r);
end;