вівторок, 13 березня 2018 р.

Програмування циклів мовою Pascal.









Практична робота 8.  Програмування циклів мовою Pascal.
Завдання 1. Скласти і реалізувати алгоритм підрахунку різних букв у слові мовою Pascal.
 program Wordlitera;                                  { оголошення назви алгоритму }
var   s:string;        r:real;      i,j,n:integer;  {оголошення змінних величин алгоритму: рядкові, дійсні, цілі}
begin                                                               {оголошення початку  алгоритму }
    r:=0;                                                            {оголошення присвоєння нуля дійсній змінній}
    readln(s);                                                  {оголошення про зчитування з екрану рядкової змінної }
    for i:=1 to length(s) do begin               {оголошення циклу з лічильником  i в алгоритмі}
       n:=0;                                                         { оголошення про присвоєвоння нуля }
       for j:=1 to length(s) do begin                {оголошення циклу з лічильником  j в алгоритмі}
          if s[i]=s[j] then inc(n);                   { оголошення про перевірку на однаковість букв}
       end;                                              { оголошення про кінець циклу }
       r:=r+1/n;                                    {оголошення   лічильника кількості  різних букв} 
  end;      writeln('кількість різних букв у слові  r = ', r:1:0);  end.       { оголошення про кінець циклу, алгоритму }
Протестувати правильність виконання алгоритму: Ввести: карта;  агов; математика; інформатика-а-а.
Завдання 2. Скласти і реалізувати алгоритм знаходження цілих дільників натурального числа мовою Pascal.
program Numer;                                  { оголошення назви алгоритму }
var   a,n,c,d: integer;                          {оголошення змінних величин  a,n,c,d в алгоритмі: цілі}
begin                                                      {початок алгоритму }
    readln(a);                                        {оголошення про зчитування з екрану змінної }
    n:=1;                                                  { оголошення про присвоєвоння  лічильнику  1 }          
    while ( n <= sqrt(a) ) do begin         {оголошення циклу з передумовою(допоки … виконати…)  в алгоритмі}
       c:=a mod n;                                            {оголошення про знаходження остачі від ділення a:n}
       d:=a div n;                                         {оголошення про знаходження цілої частини від ділення a:n}
       if c = 0 then begin  writeln(n);        {Перевірка подільності націло, якщо  остача =0, то написати дільник}
          if n <> d then writeln( d );    {Перевірка неоднаковості дільників, якщо  дільники різні, то написати дільник}
       end;         inc(n);      end;   end.                                            { оголошення про кінець циклу та алгоритму }
Протестувати правильність виконання алгоритму: Ввести чисел: 4;  6; 8; 94;  96; 80; 99; 100; 272; 558; 997
Завдання 3. Скласти і реалізувати алгоритм знаходження простих натуральних чисел мовою Pascal.
Program Prime;
const LIMIT = 50;             {оголошення постійної величини  в алгоритмі: цілі}
var i,j,lim: integer;             {оголошення змінних величин  i, j, lim в алгоритмі: цілі}
begin                                  {початок основної програми  алгоритму}
  writeln;              {початок з нового рядку}
  for i:=1 to LIMIT do begin   {оголошення про початок циклу з лічильником i}   
      j:=2; lim:=round(sqrt(i));                      { оголошення про присвоєвоння  лічильнику  2 }          
      while (i mod j <> 0) and (j <= lim) do inc(j);  {цикл з складеною передумовою}
      if (j > lim) then write( i,' ' );   end;  end.        { перевірка, вивід і оголошення про кінець}
Протестувати правильність виконання алгоритму: Замінити:  LIMIT = 50 на LIMIT = 100; LIMIT = 997.
Завдання 4. Скласти і реалізувати алгоритм знаходження суми цифр натурального числа мовою Pascal.
Program Summa;
var a,x, i,s: integer;
begin
     writeln('введіть ціле число');  readln(a); 
     x:=a;  s:=0;
     while ( x < > 0 ) do begin
       s := s + (x mod 10);
       x := x div 10;       end;
     writeln( 'Сума цифр числа ', a, '  s= ',  s);
end.
Протестувати правильність виконання алгоритму: Ввести чисел: 4;  6; 8; 94;  96; 80; 99; 100; 272; 558; 997
Завдання 5. Самостійно скласти і реалізувати алгоритм знаходження послідовності чисел, що утворюється сумою усіх цифр натурального числа та  додаванням  цієї суми до самого числа мовою Pascal.
Наприклад: А(15 )=1+5+15=26, А(20)=2+0+20=22, А(95 )=9+5+95=109, А(24)=2+4+24=30,   А(111)=1+1+1+111=114. 
Завдання 6. Самостійно скласти і реалізувати алгоритм знаходження послідовності чисел, що утворюється добутком усіх цифр натурального числа та  множенням  цього добутку на саме число мовою Pascal.
Наприклад: А(15 )=1*5*15=75,  А(20)=2*0*20=0,А(95 )=9*5*95=4275,   А(24)=2*4*24=192, А(111)=1*1*111=111. 


Циклічними називаються обчислювальні процеси, в яких неодноразово виконуються одні й ті ж дії, але з різними даними. Тіло циклу складається з операторів, що повторюються у програмі. Для організації циклу необхідно задати початкове значення змінної, яка буде змінюватися у циклі, її кінцевого значення та крок її зміни. Треба контролювати значення цієї змінної для перевірки умови виходу з циклу. Умовою може бути: перевищення параметром циклу кінцевого значення, виконання заданого числа повторень, досягнення заданої точності обчислення.
         Цикли бувають арифметичні та ітеративні. В арифметичних циклах число повторень визначається на основі зміни параметра циклу; в ітеративних циклах - цикл повторюється доти, доки не буде виконана умова виходу з циклу.
         В мові Паскаль є три спеціальні оператори організації циклів:   WHILE, REPEAT та FOR.
         Цикл WHILE є циклом з передумовою. Загальний вигляд:
Оператор циклу з передумовою - WhileWHILE    умова (виконання)  do    оператор;

де умова – це вираз, який після обчислення приймає значення True  або False;  
оператор – простий або складний оператор.
         Цикл REPEAT є циклом з післяумовою. Загальний вигляд:
Оператор циклу з післяумовою - RepeatREPEAT оператор UNTIL умова (завершення);
 де умова – це вираз, який після обчислення приймає значення True  або False;  
оператор – простий або складний оператор.
         Організацію циклу за допомогою оператора REPEAT розглянемо на прикладі типової задачі.
         Приклад. Скласти програму для обчислення значень функції.
         Програма рішення задачі має вигляд:
Програма - цикл з післяумовою
Var X, X1, X2, A, B, H, Y: Real;
Begin
   Write(‘Введіть X1, X2, A, B, H :’);
   ReadLn(X1,X2,A,B,H);
   X:=X1;
   REPEAT
       Y:=A*SQR(X)+B;
       WriteLn(‘X=’,X,’Y=’,Y);
       X:=X+H;
   UNTIL X>X2;
               End.

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

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