Приклад 6.3.


Приклад 6.2.

Приклад 6.1.

Цикл з передумовою WHILE

Синтаксис інструкції

WHILE <умова > DO <інструкція>

WHILE <умова продовження циклу> DO є заголовком циклу;

<інструкція>—тіло циклу.

Тіло циклу - будь-які інструкції мови Паскаль ( привласнення , вибору, циклу ).

Умова продовження циклу повинна бути виразом логічного типу (boolean).

Цикл із передумовою WHILE

У циклі з передумовою перша перевірка умови продовження циклу відбувається ще до першого виконання його тіла.

Це означає, що за деяких значень параметрів циклу його тіло може не виконатися жодного разу.

Це є перевагою циклу з передумовою над циклом із постумовою.

Рис. 6.1. Блок-схема циклу з передумовою


Цикл із постумовою REPEAT

Синтаксис інструкції циклу з постумовою :

REPEAT < інструкція 1 >;

...

< інструкція N>;

UNTIL <умова >;

REPEAT, UNTIL — зарезервовані слова;

< інструкція 1>;...< інструкція N >; — тіло циклу;

<умова > - логічний вираз завершення чи продовження циклу.

Цикл із постумовою застосовують тоді, коли кількість ітерацій циклу є невідомою до початку його виконання.

 

Умова завершення циклу з постумовою записується після тіла циклу та вперше перевіряється після виконання інструкцій тіла циклу .

 

Цикл з постумовою за будь-яких обставин буде виконано принаймні один раз — в цьому і полягає його головна відмінність від циклу з передумовою.

 

Рис. 6.2. Блок-схема циклу з постумовою

Визначити суму ряду з точністю

тобто вести підсумок доти, поки

Схему алгоритму прикладу 6.1. представлено на рис. 6.3.

Рис. 6.3. Схема алгоритму прикладу 6.1

Програмна реалізація схеми алгоритму прикладу 6.1.

Program summa1;

uses crt;

var k: integer; s,eps:real;

Begin clrscr;

k:=1; s:=0; eps:=1e-4;

while 1/sqr(k)>=eps do

begin s:=s+1/sqr(k);

k:=k+1;

end; writeln('s=',s); End.

Тіло циклу, що складається з двох інструкцій, виконується поки значення умови є TRUE

Визначити скільки членів ряду

складають суму, що не перевершує заданого значення суми SL.

Схему алгоритму прикладу 6.2. представлено на рис. 6.4.

Рис. 6.4 Схема алгоритму прикладу 6.2

Програмна реалізація схеми алгоритму прикладу 6.2.

Program summa2; {sl=1.34}

var k:integer; s,sl:real;

Begin read(sl); writeln(sl);

k:=0; s:=0;

repeat k:=k+1; s:=s+1/sqr(k);

until s>sl ;

writeln('s=',s,' sl=',sl,' k=',k-1); End.

Визначити суму факторіалів числа n, тобто y=1!+2!+…+n!. Схему алгоритму прикладу 6.3. представлено на рис.6.5.

 

Рис. 6.5. Схема алгоритму прикладу 6.3.

program Fact_sum;

var y:real; i,n:integer;

f:longint;

begin read(n); writeln('n=',n);

i:=1;f:=1; y:=0;

while i<=n do begin

f:=f*i; writeln('i=',i,' f=',f); y:=y+f; i:=i+1; end; writeln('y=',y:6:2);

end.

Лекція 7

Файловий та символьний типи

Використання файлів у мові PASCAL

У алгоритмічній мові PASCAL існують засоби забезпечення збереження інформації на зовнішніх носіях та організації доступу до цієї інформації.
А саме можливість збереження текстів програм та даних у файлах, а також можливість обробки інформації з файлів.

Змінні файлового типу

Для організації роботи з файлами у програмі, необхідно визначити спеціальні змінні файлового типу.

Зробити це можна одним з трьох наступних способів.

Способи об'яви файлового типу

< iм'я > = File of <тип>;
< iм'я > = Text;
< iм'я > = File;

 

де < iм'я > - iм'я файлового типу;
<тип> - будь-який тип алгоритмічної мови PASCAL, крім файлового.