Домашние задания: Информатика

СРОЧНО!!! ИНФОРМАТИКА 8 КЛАСС!!! ПОЖАЛУЙСТА!!!

Запишите на языке Паскаль программу, которая для произвольного (введённого с клавиатуры) натурального трёхзначного числа определяет:
Произведение всех цифр числа.
Семён Усов
Семён Усов
125
Кстати, Ваша задача может быть решена двумя способами:
✓ арифметически,
✓ через преобразование в строку и обратно.

Замечание по первому способу: хотя цифр всего три, но красиво реализовать алгоритм в цикле. Хотя бы так:
Program Multy3;
Type Nat3dig=0..999;
var
x,x1:Nat3dig; // переменная x1 — формальная, используется только при выводе, можно исключить...
i:byte;
P:word; // максимум = 729
Begin
write('Введите трехзначное натуральное число. X: ');
readln(x);x1:=x;
P:=x mod 10; // «отделяем» младшую цифру и временно присваиваем её переменной результата
for i:=1 to 2 do
begin
x:=x div 10; // «вычеркиваем» младшую цифру из исходного данного
P:=P*(x mod 10) // получаем частичное произведение
end;
writeln('Произведение всех цифр числа ', x1, ' равно ', P);
write('Для выхода из программы просто нажмите клавишу Enter'); readln
End.
Валерий Васильковский
Валерий Васильковский
16 172
Лучший ответ
Валерий Васильковский Если что, комментарии добавлены в программу исключительно для живых рецензентов. Компьютер без них прекрасно обойдётся.
°√°
Валерий Васильковский Мне нравится рекуррентное решение.
function P(X:word):word;
begin if X<10 then P:=X else P:=(X mod 10)*P(X div 10) end;

Оцените, пожалуйста, лаконичность и универсальность такой записи (мысленно, конечно; ставить оценки на страницу не надо).
Валерий Васильковский P.S. С Первым апреля всех!
1 Не "запишите", а напишите. "Слышь, Дюма, запиши-ка ты "Трёх мушкетёров".
2. Смотрим что нам Скарабей советует.
Ольга Демидова
Ольга Демидова
92 705
программы писать не научили? а алгоритм составлять хоть научились? или вообще думать нечем?
например берем число введенное с клавиатуры, делаем целочисленное деление на 100 и запоминаем цифру, потом делим также на 10 и перемножаем полученные числа, потом произведение перемножаем на оставшееся число
Lakutin Nikolay
Lakutin Nikolay
68 814
program sm;
uses crt;
var x,a,b,c,s,s1:integer;
begin
clrscr;
write('':5,' 3-х знач числ x = '); read(x);
a:=x div 100;
writeln('':5,' сто ) a = ',a);
b:=(x mod 100) div 10;
writeln('':5,' десят b =',b);
c:= (x mod 100) mod 10;
writeln('':5,' йединиц c = ',c);
{s:=a+b+c; }
s1:=a*b*c;
{writeln('':5,' summ = ',a,'+',b,'+',c,' = ',s);}
writeln('':5,' proizweden s = ',a,'*',b,'*',c,' = ',s1);
end.