субота, 23 лютого 2019 р.

Програмування циклічних алгоритмів


Теоретичний матеріал:
 https://inf8klas.blogspot.com/2018/03/a-pascal.html

Практична робота 003.  
Програмування  циклічних алгоритмів мовою Pascal.

Завдання 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-цифрових парних  чисел; 2) 2-цифрових непарних чисел;  3) 2-цифрових випадкових чисел, що діляться націло на 6.

Завдання 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-цифрових парних  чисел; 2) 3-цифрових цілих чисел;  3) 3-цифрових випадкових чисел, що діляться націло на 6.

Завдання 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-цифрових непарних  чисел; 2) 4-цифрових цілих чисел;  3) 4-цифрових випадкових чисел, що діляться націло на 6.




***************************************



Практична робота 004.  
Програмування  циклів мовою Pascal на лінійних масивах.

Завдання 1. Реалізувати цикл з лічильником на 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.

Завдання 2. Реалізувати цикл з післяумовою на 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.
Завдання 3. Реалізувати усі три види цикл ів (з лічильником, з післяумовою, з передумовою) на 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.

Завдання 4. Реалізувати  цикли (з лічильником) на 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.


Сайти для навчання програмуванню

Code.orgсередовища навчання програмуванню  для початківців
Code School  -  Практичні завдання для навчання програмуванню.
Codecacademy – інтерактивне навчання програмуванню.
Stuk.io - Навчання з нуля для майбутніх програмістів.
Udaccityкурси від  Google, Facebook та інших великих компаній.
Platzi курси по дизайну, маркетингу, програмуванню.
Learnableкурси веб-розробці.
Code School  -  Практичні завдання для навчання програмуванню.
Code.orgсередовища навчання програмуванню  для початківців
BasePails - Навчання Рубі та Раілз та іншим веб-технологіям
Treehouse - Розробка на   HTML, CSS, та додатків на ІОS.
One Month – навчання основам створення веб-додатків за місяць.

Dash – створення веб-сайтів.




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

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