Завдання 12 Слідування проходження - ну терміни пішли. Збірник точно з бодуна писався! yanasklyar, згоден з Вами!
Завдання 21 Program Dobutok3; Var n,err:integer; t:string[3]; a,b,c:byte; Begin Writeln('Введіть n'); Readln(n); While (n<100) or (n>999) do begin Writeln('Дані не коректні'); Readln(n); end; str(n,t); val(t[1],a,err); val(t[2],b,err); val(t[3],c,err); writeln('D=',a*b*c); Readln End.
Program Dobutok3_v6; Var n,p:integer; Begin Writeln('Введіть n'); Readln(n); p:=1; while n<>0 do begin p:=p*(n mod 10); n:=n div 10; end; writeln(p) end.
Program V6_21; Var Ch,Res:integer; Begin Readln(Ch);{читаємо число} Res:=1; {ініціалізуємо результат} while Ch<>0 do {поки число не 0} begin Res:=Res*(Ch mod 10); {остання цифора поточного числа - множимо на результат} Ch:=Ch div 10; {отримуємо нове поточне - без останньої цифри} end; writeln(Res) {виводимо результат} end.
Практично аналогічно попередньому. тут краще не придумати. Не варто перейматися інтерфейсом. дітям не до цього буде.
Якщо повикидати всі деталі описані вище, цей спосіб розв`язку теж стає лаконічним:
Program Dobutok3a; Var n,err:integer; t:string[3]; a,b,c:byte; Begin Readln(n); {читаємо число} str(n,t); {перетворюємо число на рядок} val(t[1],a,err); {перетворюємо перший символ рядка у число} val(t[2],b,err); {перетворюємо другий символ рядка у число} val(t[3],c,err); {перетворюємо третій символ рядка у число} writeln(a*b*c); {виводимо результат} End.