Практична робота «Циклічні алгоритми на мові Pascal»
1.Скласти алгоритм знаходження всіх
дільників натурального числа А. Протестуйте
алгоритм для натуральних значень А: а)12;
б)32; в)60; г)41; д)100; е)20; є)81; ж)29.
program Dilnyk_1; {назва
алгоритму}
var a,n,c,d: integer; {оголошення
змінних величин: a,n,c,d - це цілі числа}
begin
{ початок
алгоритму}
readln(a); {оголошення
про введення числа a - це ціле число}
n:=1; {присвоєння
першого дільника - це число 1}
while (n <= sqrt(a) ) do begin {цикл
з передумовою ; поки n<= квадр. корінь з
а}
c:=a mod n; {с присвоємо остачу від а:n}
d:=a div n; {d
присвоємо цілу частину від а:n}
if c = 0 then begin {розгалуження при діленні а:n націло, то виводимо n}
writeln(n); {виведення
числа n – дількника числа А}
if n <> d then writeln(d ); {розгалуження якщо а:n націло і n ≠ d, то
виводимо d}
end; {закінчення неповного
розгалуження з умовою c = 0}
inc(n); {присвоєння цілій змінній n – наступного числа, тобто n+1}
end; {закінчення циклу
з передумовою при n>квадр. корінь з а }
end.
{закінчення
алгоритму}
2. Скласти алгоритм знаходження суми цифр натурального числа А. Протестуйте алгоритм для натуральних значень А: а)4444; г)1023456.
program SUMMA_2; {назва алгоритму}
var a, x, i, s: integer; {оголошення змінних величин: a, x, i, s - це цілі числа}
begin
{ початок алгоритму}
writeln('Введіть
ціле число'); {оголошення
про введення числа a - це ціле число}
readln(a);
x:=a; {залишку х від числа а спочатку присвоємо а}
s:=0;
{сумі цифр s у числі а
присвоємо 0}
while
(x <> 0) do begin {цикл з передумовою поки x ≠ 0, то виконати}
s := s + (x mod 10); {до
суми цифр s у числі а
присвоємо чергову цифру}
x := x div 10; {залишку х від числа а присвоємо число без останньої цифри}
end; {закінчення
циклу з передумовою, при x = 0}
writeln(
'Сумма цифр числа ',a,' = ', s ); {виводимона екран суму
цифр s}
end.
{закінчення алгоритму}.
3. Скласти алгоритм знаходження простих чисел, (це числа, що мають тільки два
дільники. Протестуйте
алгоритм: LIMIT
= 20; LIMIT = 500; LIMIT = 500.
program PRIME_2; {назва алгоритму}
const LIMIT = 20; {оголошення постійної величини: LIMIT}
var i, j, lim: integer; {оголошення змінних величин: a, x, i, s - це цілі числа}
begin {початок алгоритму}
writeln;
{друк
на екрані простих чисел з нового рядка}
for
i:=1 to LIMIT do begin {цикл з
лічильником від 1 до LIMIT та аналіз простоти}
j:=2; lim:=round(sqrt(i)); {перше просте число 2; і до lim
=квадр. корінь з і}
while
(i mod j <> 0) and (j <= lim) do
inc(j); {вкладений цикл з передумовою}
if (j > lim) then write( i,' ' );
{неповне розгалуження якщо j > lim, то виводимо i }
end; {закінчення циклу
з лічильником, вихід з
циклу при
і
= LIMIT}
end.
{закінчення
алгоритму}.
Немає коментарів:
Дописати коментар