Практична робота 18 «Алгоритми властивостей цілих чисел на мові Pascal»
Завдання 1. Скласти і
реалізувати алгоритм для знаходження кількості цифр, суми цифр натурального числа,
подільності на цифри, якщо ціле число задане випадковим чином.
program SummaNumer;
{назва алгоритму підрахунку суми цифр цілого числа}
var m, n, i, m1, k, s: integer; {оголошення змінних величин: цілі числа}
begin {початок виконання алгоритму і введення випадкових натуральних чисел}
m:=(10+random(5))*(20+random(7)) *(random(20)) + 1+random(3) ;
writeln( ' Якщо натуральне число m=', m); writeln; m1:=m; k:=0;
s:=0; n:=0;
repeat n:=m mod 10;
k:=k+1; s:=s+n; m:=m div 10; until m=0;
{виконання циклу з післяумовою
для обчислення}
writeln('Сума
цифр числа ', m1, ' дорівнює числу: ', s); writeln;
writeln('Кількість
цифр числа ', m1, ' дорівнює числу: ', n); writeln;
if (m1 mod 2) =0 then writeln(m1, ' - це
парне число '); writeln;
if (m1 mod 2) =1 then writeln(m1, ' - це непарне число '); writeln;
if (s mod 3) =0 then writeln(m1, ' - це число має вигляд 3k, ділиться на 3 націло'); writeln;
if (s mod 3) =1 then writeln(m1, ' - це
число має вигляд 3k+1'); writeln;
if (s mod 3) =2 then writeln(m1, ' - це число
має вигляд 3k+2'); writeln; m:= m1 mod 100;
if (m mod 4) =0 then writeln(m1, ' - це
число має вигляд 4k, ділиться на 4 націло'); writeln;
if (m mod 4) =1 then writeln(m1, ' - це
число має вигляд 4k+1'); writeln;
if (m mod 4) =2 then writeln(m1, ' - це
число має вигляд 4k+2'); writeln;
if (m mod 4) =3 then writeln(m1, ' - це
число має вигляд 4k+3'); writeln; m:= m1 mod 10;
if (m mod 5) =0 then writeln(m1, ' - це
число має вигляд 5k, ділиться на 5 націло'); writeln;
if ( (s mod 3) =0) and ((m mod
2)=0) then writeln(m1, ' - це
число має вигляд 6k, ділиться на 6 націло'); writeln;
if (m mod 7) =0 then writeln(m1, ' - це
число має вигляд 7k, ділиться на 7 націло'); writeln;
m:=m1; m:= m mod 1000;
if (m mod 8) =0 then writeln(m1, ' - це число
має вигляд 8k, ділиться на 8 націло'); writeln;
if (s mod 9) =0 then writeln(m1, ' - це
число має вигляд 9k, ділиться на 9 націло'); writeln;
if (m mod 10) =0 then writeln(m1, ' - це
число має вигляд 10k, ділиться на 10
націло'); writeln;
end. {закінчення алгоритму}
Протестуйте алгоритм чотири рази та
перевірте правильність результатів.
Завдання 2. Скласти і
реалізувати алгоритм знаходження кількості першої цифри від початку у цілому числа, що задане
випадковим чином.
Program Cifr1; {оголошення назви алгоритму}
var n, x,c,c1,k:
integer; {оголошення
змінних величин: цілі
числа}
begin n:=(10+random(5)) *(20+random(7)) *(random(20)) + 1+random(3); {випадкове число}
begin n:=(10+random(5)) *(20+random(7)) *(random(20)) + 1+random(3); {випадкове число}
writeln( ' Якщо
натуральне число n=', n); writeln; {виведення на екран випадкового числа}
x:=n; while
n>9 do
n:=n div 10; c1:=n; k:=0; {цикл з передумовою}
repeat c:= x mod 10; if c=c1 then k:=k+1; x:=x div 10; until x=0; {цикл з післяумовю}
writeln(' Кількість першої цифри дорівнює: ' , k); end.
repeat c:= x mod 10; if c=c1 then k:=k+1; x:=x div 10; until x=0; {цикл з післяумовю}
writeln(' Кількість першої цифри дорівнює: ' , k); end.
Протестуйте алгоритм чотири рази та
перевірте правильність результатів.
Завдання 3. Скласти і реалізувати
алгоритм знаходження кількості другої від початку цифри у цілому
числа, що задане випадковим чином.
Program
Cifr2;
{оголошення назви алгоритму}
var n, x,c,c1,k:
integer; {оголошення змінних величин: цілі числа}
begin n:=(10+random(5)) *(20+random(7)) *(random(20)) + 1+random(3); {випадкове число}
begin n:=(10+random(5)) *(20+random(7)) *(random(20)) + 1+random(3); {випадкове число}
writeln( ' Якщо
натуральне число n=', n); writeln; {виведення на екран випадкового числа}
x:=n; while
n>100 do n:=n div 10; c1:=n div 10; {цикл з передумовою}
writeln('n=', n); end; c1:=n mod 10; writeln('c1=',c1); writeln('n=',n); k:=0;
writeln('n=', n); end; c1:=n mod 10; writeln('c1=',c1); writeln('n=',n); k:=0;
repeat
c:= x mod 10; if c=c1 then
k:=k+1; x:=x div 10; until x=0;
{цикл з післяумовoю}
writeln('Кількість другої цифри дорівнює:' , k); end.
writeln('Кількість другої цифри дорівнює:' , k); end.
Протестуйте алгоритм чотири рази та
перевірте правильність результатів.
Немає коментарів:
Дописати коментар