Дистанційна освіта з інформатики в період  травня 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 (Юрій Васильович)
 
Немає коментарів:
Дописати коментар