![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр.
Код:
function check (n:integer):boolean;
var
x:integer;
begin
x:=n;
check:=true;
while x<>0 do begin
if ((x mod 10)=0) or (n mod (x mod 10)<>0) then
check:=false;
x:=x div 10;
end;
end;
var
n,i:integer;
begin
write('n=');
readln(n);
for i:=1 to n do
if check(i) then writeln(i);
end.Как правильно сделать объяснение, построчно. Больше интересует функциональный блок Последний раз редактировалось Admin, 23.04.2011 в 12:25. |
|
#2
|
||||
|
||||
|
Код:
function check (n: integer): boolean; // функция с булевым результатом
var // вар
x: integer; // переменная
begin // начало ф-ии
x := n; // кешируем число из агрумента
check := true; // устанавливаем по дефлту результат функции в тру
while x <> 0 do // бегаем в цикле до тех пор, пока число делится на 10
begin
if ((x mod 10) = 0) or (n mod (x mod 10) <> 0) then
check:=false; // если делится нацело или n не делится нацело на результат деления нацело x на 10, то возвращаем фолс
x := x div 10;
end; // конец цикла
end; // конец ф-иине забываем про форматирование! Последний раз редактировалось M.A.D.M.A.N., 23.04.2011 в 13:02. |
|
#3
|
|||
|
|||
|
Цитата:
Спасибо большое )))) |
|
#4
|
|||
|
|||
|
А как здесь правильно рисовать блок-схему?
Куда вставлять этот функциональный блок? |
|
#5
|
||||
|
||||
|
"Здесь" - это где?
|