неділя, 23 травня 2021 р.

Дистанційна освіта з інформатики 24.05.2021 - 30.05.2021

 

Дистанційна освіта з інформатики в період  травня 2021 року

24.05.2021 - 30.05.2021

Конспект уроку для учнів

Тема: Повторення. Нелінійні алгоритми.  Алгоритми  опрацювання числових завдань. Розвязування завдань з використання вказіки циклів.

Теоретична частина

https://ppt-online.org/637319

 












Практична частина

 

Завдання 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).

 

 Завдання 7. Реалізувати  цикли (з лічильником) на Pascal, що, знаходять найбільший елемент із масиву B[1..14] та найменший елемент із масиву: А [1..10], при чому елементи масиву А - це випадкові 7-цифрові  числа, що діляться на 9, а елементи масиву В – це від’ємні парні випадкові числа, що діляться на 7,і менше 1000000.

Реалізація.

 

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 (Юрій Васильович)

 

 

 

 

 

 

 

 

 

Немає коментарів:

Дописати коментар