- Теория:
- Алгоритмы:
- Числа:
|
ГЛАВА I
ОБЩИЕ ЗАДАЧИ
Алгоритм разделения числа на цифры и действия
с ними
|
1. Проверить утверждение. Сумма цифр числа – двузначное число .
2. Найти количество двузначных чисел, сумма цифр каждого из которых меньше 10.
3. Проверить утверждение: число, вводимое с клавиатуры, нечетное и начинается на 5.
4. Найти первое натуральное число (отличное от нуля),
произведение цифр которого равна удвоенной сумме его цифр.
|
1. Проверить утверждение. Сумма цифр числа – двузначное число .
Ответ:
ch=123
Сумма цифр числа – трехзначное число: False.
program block1_01;
uses crt;
var c, ch, S: integer;
p:boolean;
begin
clrscr;
S:=0;
write('ch='); readln(ch) ;
while ch< >0 do
begin
c:=ch mod 10;
ch:=ch div 10 ;
S:=S+c;
end;
p:=(S>99) and (S<1000);
write('Сумма цифр числа – трехзначное число: ', p);
end.
|
2. Найти количество двузначных чисел, сумма цифр каждого из которых меньше 10.
Ответ:
kol=45
program block1_02;
uses crt;
var ch, ch1, c, S, kol: integer;
{ch - число;
ch1 - дубликат числа ch;
c - цифра;
kol - количество чисел}
begin
clrscr;
kol:=0; {количество чисел сначала равно 0}
for ch:=10 to 99 do {проверяем двузначные числа}
begin
ch1:=ch; {создаем дубликат проверяемого числа}
S:=0;
while ch1 < >0 do
begin
c:=ch1 mod 10;
ch1:=ch1 div 10;
S:=S+c;
end;
If S<10 then inc(kol);
end;
writeln('kol=', kol);
end.
|
3.
Проверить утверждение: число, вводимое с клавиатуры, нечетное и начинается на 5.
Ответ:
51
Число, вводимое с клавиатуры, нечетное и начинается на 5: True
program block1_03;
uses crt;
var ch, ch1, c: integer; p: boolean;
{ch - число;
ch1 - дубликат числа ch;
c - цифра;
p - проверка утверждения}
begin
clrscr;
readln(ch);
ch1:=ch; {создаем дубликат проверяемого числа}
while ch< >0 do {алгоритм для нахождения цифр числа}
begin
c:=ch mod 10;
ch:=ch div 10
end;
p:= (ch1 mod 2=1) and (c=5) ;
writeln( 'Число, вводимое с клавиатуры, нечетное и начинается на 5: ', p);
end.
|
4. Найти первое натуральное число (отличное от нуля),
произведение цифр которого равна удвоенной сумме его цифр.
Ответ: ch=36.
program block1_04;
uses crt;
var ch, ch1, S, P: integer;
{ch - число;
сh1 - дубликат числа;
S - сумма цифр;
P - произведение цифр}
begin
clrscr;
ch:= 0;
repeat
inc(ch); {начинаем проверять числа с единицы}
ch1:=ch; {создали дубликат числа ch}
s:=0; p:=1; {начальные значения суммы и произведения}
while ch1< >0 do
begin
S:=S+(ch1 mod 10);
P:=P*(ch1 mod 10);
ch1:=ch1 div 10;
end;
until P=S*2;
writeln;
writeln ('ch=',ch);
end.
|
|
|
|
|
|
|
|
|
|
|
|