Дистанційна освіта з інформатики в період травня 2021 року
24.05.2021 - 30.05.2021
Конспект уроку для
учнів
Тема: Повторення. Нелінійні алгоритми. Алгоритми опрацювання числових завдань. Розв’язування завдань з використання вказіки циклів.
Теоретична частина
Практична частина
Завдання 1. Реалізувати цикл з предумовою на Pascal, що знаходить
суму усіх цифр, з яких складаються усі цілі числа від 1до випадкового цілого
двоцифрового числа n.
Алгоритм
на Pascal( на основі циклу з передумовою):
Реалізація.
Program ZicL2;
{назва алгоритму Цикл2}
var a, b, d: integer; {змінні
величини a, b, d в алгоритмі будуть цілими числами}
begin a:=10+random(89); b:=a; d:=0; {присвоєння випадкого двоцифрового числа}
writeln('початкове
число в циклі з передумовою =', a); {друк
початкового числа}
while a>0 do begin d:=d+(a div
10)+(a mod 10); a:=a-1; end; {Цикл з умовою}
writeln('кінцеве
число в циклі з передумовою =', a);
{друк
кінцевого числа}
writeln('сума
цифр для усіх цілих чисел від 1 до ', b, '
= ', d); {друк суми цифр}
writeln('**************************'); end. {кінець
алгоритму}
Протестувати
цей алгоритм
Тест 1. Для 2-цифрових випадкових парних чисел: a:= 2*random(49);
Тест 2. Для 2-цифрових випадкових непарних чисел: a:= 2*random(49)+1;
Тест 3. Для 2-цифрових випадкових чисел, що діляться націло
на 6: a:= 6*random(16);
Завдання 2. Реалізувати цикл з післяумовою на Pascal, що знаходить
суму усіх цифр, з яких складаються усі непарні числа від 1до випадкового цілого 3-цифрового
числа n.
Алгоритм
на Pascal( на основі циклу з післяумовою):
Реалізація.
program ZicL3; {назва
алгоритму Цикл3}
var a,b,d:
integer; {змінні величини a,
b, d в алгоритмі будуть цілими
числами}
begin a:=101+2*random(444); b:=a; d:=0; {пошук випадкового непарного числа}
writeln('початкове
непарне число в циклі з післяумовою =', a);
repeat {початок
циклу з післяумовою для
сумування цифр усіх непарних чисел}
d:=d +(a div 100)+(a mod 100) div 10 +(a mod
10); {тіло
циклу, -
сумує цифри}
writeln('сума цифр для усіх непарних чисел
від 1 до ', a,' =', d); a:=a-2;
writeln('a=', a); {друк числа-лічильника в циклі з післяумовою}
until a<0; {кінець
циклу з післяумовою для
сумування цифр усіх непарних чисел}
writeln('кінцеве число в циклі з післяумовою
=', a);
writeln('сума
цифр для усіх непарних чисел від 1 до ', b,'
=', d); {друк суми
цифр}
writeln('*********');
writeln('************'); end.
Протестувати
цей алгоритм для випадку:
Тест
1. Для 3-цифрових парних чисел: a:=100+2*random(444);
Тест
2. Для 3-цифрових цілих
чисел, що діляться націло на 7:
a:= 98+7*random(127);
Тест
3. Для 3-цифрових
випадкових чисел, що при діленні на 6 мають остачу 1:
a:= 97+6*random(150);
Завдання 3. Реалізувати цикл з лічильником на Pascal, що знаходить
суму усіх цифр, з яких складаються усі парні числа від 1до випадкового цілого 4-цифрового
числа n.
Алгоритм
на Pascal( на основі циклу з лічильником):
Реалізація.
program ZycL4; {назва алгоритму Цикл4}
var a,b,d,n,i:
integer; {змінні
величини a, b, d в алгоритмі будуть цілими числами}
begin a:=1000+2*random(4499); b:=a; n:= a div 2; d:=0; {пошук парного
числа}
writeln('початкове
число в циклі з лічильником =', a);
for i:=1 to n do
begin {початок циклу з лічильником для
сумування цифр чисел}
d:=d+(a div
1000)+(a mod 1000) div 100 +(a mod 100) div 10+(a mod 10); {тіло циклу}
writeln(''сума
цифр для усіх парних чисел від 1 до ', a,'
=', d); {тіло циклу}
a:=a-2; writeln(' лічильник циклу i =',
i); end; {кінець циклу з лічильником }
writeln('кінцеве
число в циклі з лічильником =', a);
writeln('сума
цифр для усіх парних чисел від 1 до ', b,'
=', d); {друк суми
цифр}
writeln('********');
writeln('**************'); end.
Протестувати
цей алгоритм для випадку:
Тест
1. Для 4-цифрових непарних чисел вигляду 4m+3:
a:=1003+4*random(2499);
Тест
2. Для 4-цифрових цілих чисел вигляду 7k+6:
a:=1007+7*random(1428);
Тест
3. Для 4-цифрових цілих
випадкових чисел вигляду 13n+11: a:=1012+13*random(769).
Завдання 4. Реалізувати цикл з лічильником на Pascal, що знаходить
суму усіх 10 елементів масиву (або рядка чисел),при чому елементи масиву
являються випадковими 4-цифровими числами цілими.
Алгоритм
на Pascal( на основі циклу з лічильником):
Реалізація.
Program Masiv1;
{назва алгоритму Масив2}
var a:
array[1..10] of integer; {змінна
величина масив а[1..10]
з цілими числами}
i,s: integer; {змінні
величини i, s в
алгоритмі будуть цілими числами}
begin
writeln( 'Задаються
випадкові цілі 10 елементів масиву'); s:=0;
for i:=1 to 10 do begin a[i]:=1001+2*random(4499); writeln(i,
'-ий елемент =', a[i]);
s:=s+a[i];
end;
writeln( 'Сума усіх 10 елементів =', s);
writeln( '*******');
end.
Протестувати
цей алгоритм для випадку:
Тест
1. Для масиву із 4-цифрових парних чисел вигляду 4m+2:
a[i]:=1002+4*random(2499);
Тест
2. Для масиву із 4-цифрових цілих чисел вигляду 7k+5:
a[i]:=1006+7*random(1428);
Тест
3. Для масиву із 4-цифрових цілих випадкових чисел вигляду
13n+10: a[i]:=1011+13*random(769).
Завдання 5. Реалізувати цикл з післяумовою на Pascal, що знаходить
суму усіх 10 елементів масиву (або рядка чисел),при чому елементи масиву
являються випадковими 4-цифровими парними числами, що
діляться на 3.
Алгоритм
на Pascal( на основі циклу з післяумовою):
Реалізація.
Program Masiv2;
const m=6;
var a: array[1..m]
of integer;
i,s: integer;
begin
writeln( 'Задаються ',m,'
елементів масиву: '); s:=0; i:=1;
repeat { початок циклу з післяумовою}
a[i]:=996+6*random(1500);
writeln(i, '-ий елемент =', a[i]); s:=s+a[i]; i:=i+1;
until i=m+1; { кінець циклу з
післяумовою}
writeln( ' Cума усіх
',m,' елементів =', s);
writeln( '***********');
end.
Протестувати
цей алгоритм для випадку:
Тест
1. Для 4-цифрових непарних чисел вигляду 4m+1:
a[i]:=1001+4*random(2499);
Тест
2. Для 4-цифрових цілих чисел вигляду 7k+1:
a[i]:=1002+7*random(1428);
Тест
3. Для 4-цифрових цілих
випадкових чисел вигляду 13n+1 : a[i]:=1002+13*random(769).
Завдання 6. Реалізувати усі
три види цикл ів (з лічильником, з післяумовою, з передумовою) на Pascal, що знаходить
суму усіх елементів масиву 3А+2В
(або рядка чисел), при чому елементи масиву А - це випадкові 3-цифрові числа, що діляться на 9, а елементи
масиву В – це від’ємні парні числа менше 100.
Алгоритм
на Pascal( на основі циклів
з лічильником, з післяумовою, з
передумовою ):
Реалізація.
program
Massiv_3A_Massiv_2B;
const n=1;
m=5;
type Massiv =
array [n..m] of integer;
var a, b,s: Massiv;
i,t: integer; {оголошується
динамічні масиви в алгоритмі }
begin { початок циклу з
лічильником}
for i:=n to m do
begin a[i]:=99+9*random(100);
writeln(' a[',
i, ']=', a[i]); b[i]:=-2*random(100);
writeln(' b[',
i, ']=', b[i]);
end; { кінець циклу з лічильником}
i:=1; { початок циклу з
післяумовою}
repeat
s[i]:=3*a[i]+2*b[i];
writeln(' s[',
i, ']=', s[i]); i:=1+i;
until i=m+1; { кінець циклу
з післяумовою}
i:=1; t:=0; {
початок циклу з передумовою}
while i<m do begin t:=t+s[i]; i:=i+1;
end; { кінець циклу
з передумовою}
writeln('сума усіх елементів масиву 3А+2В=',
t); end.
Протестувати
цей алгоритм для випадку:
Тест
1.
Для масиву А з 4-цифрових
непарних чисел вигляду 4m+3: a[i]:=1003+4*random(2499);
Для
масиву В з 4-цифрових непарних чисел
вигляду -4m-3:
b[i]:=-1003-4*random(2499);
Тест
2.
Для
масиву А з 4-цифрових парних чисел
вигляду 7m+2: a[i]:=1003+7*random(2499);
Для
масиву В з 4-цифрових непарних чисел
вигляду -7m-2:
b[i]:=-1003-7*random(2499);
Тест
3.
Для
масиву А з 4-цифрових непарних чисел
вигляду 13n+11:
a[i]:=
1012+13*random(769).
Для
масиву В з 4-цифрових непарних чисел
вигляду -13n-11:
b[i]:=-11012-13*random(769).
Реалізація.
program
ZadachaMIN_MAX;
const n=10; k=14;
var
A, B : array [1..n]
of integer;
min, max: integer;
i: integer;
begin writeln
('Випадкові елементи масиву - це 4-цифрові числа ');
for
i:=1 to n do begin
A[i]:=99999+9*random(1111111);
writeln (i, 'A-eл. = ',
A[i]); end;
for
i:=1 to k do begin
B[i]:=-77777-7*random(1111111);
writeln (i, 'B-eл. = ', B[i]); end;
min:=A[1]; max:= B[1];
for
i:=2 to n do if A[i]<min
then
min:=A[i]; {в цикл вкладена команда галуження}
for
i:=2 to k do if B[i]>max then max:=B[i]; {в цикл вкладена команда галуження}
writeln ('мінімум із масиву A =' , min); writeln
('максимум із масиву В =' , max); end.
Протестувати
цей алгоритм для випадку:
Тест
1. Для випадку: const n=15; k=17;
Тест
2. Для випадку: const n=5; k=7;
Тест
3. Для випадку: const n=34; k=57;
Результат
виконаної практичної роботи це два файла( два скретч-проекти) надіслати вашому
учителю на електронну скриньку:
vinnser@gmail.com (Сергій Петрович)
ktdfz@i.ua (Юрій Васильович)
Немає коментарів:
Дописати коментар