Алгоритми-процедури та їх використання. Формальні та фактичні параметри алгоритму. Локальні і глобальні величини. Опис підпрограм-процедур та звернення до них конкретною мовою програмування. Приклади.

Для з'ясування суті зазначених понять введемо означення основного та допоміжного алгоритмів. Основним називається алгоритм, виконання якого веде до досягнення основної мети. Допоміжний алгоритм призначений для досягнення проміжної мети. Проте розроблені користувачем алгоритми можна використовувати як основні, а в інших алгоритмах як допоміжні. У мовах програмування розрізняють два види допоміжних алгоритмів: функції користувача та підпрограми — для мови Бейсик, функції та процедури — для мови Паскаль. Алгоритми-процедури — це такі допоміжні алгоритми, які призначені для виконання певних дій, результати яких передаються в точку виклику через параметри або виводяться безпосередньо на зовнішні пристрої.

Параметри в команді виклику називаються фактичними, а в заголовку допоміжного алгоритму — формальними. Фактичним парамегром найчастіше є змінна. Число або вираз може бути фактичним параметром тільки тоді, коли це значення передасться аргументу допоміжного алгоритму. Відповідні фактичні та формальні параметри можуть мати різні імена.
Алгоритм розв'язування задачі може складатися з основного та одного чи декількох допоміжних. Спочатку виконується основний алгоритм, за допомогою якого, зазвичай, вводять та виводять дані та викликають допоміжні алгоритми, де виконуються основні перетворення над даними. Обмін даними між основним та допоміжним алгоритмами здійснюється через параметри.

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

Розглянемо, як будуються допоміжні алгоритми і як вони викликаються з основних.

Приклад 1. Скласти алгоритм обчислення площі трикутника за формулою Герона, оформивши його як допоміжний.

Бейсик

Паскаль

200 REM площа

procedure P1(A,B,C: Real; var S:Real);

210Р=(А+В+С)/2

var P:Real;

220 S=SQR(P*(P-A)*(P-B)*(P-C))

begin

230 RETURN

P:=(A+B+C)/2;

 

S:=Sqrt(P*(P-A)*(P-B) *(P-C))

 

end;

Приклад 2. Скласти алгоритм обчислення площі повної поверхні піраміди, в основі якої лежить квадрат стороною х, а бічні ребра мають довжини k, r, m, f. Як допоміжний використаємо попередній алгоритм обчислення площі трикутника.

Бейсик

Паскаль

10 REM піраміда
20 INPUT X,K,R,M,F
30A=X:B=K:C=R
40 GOSUB 200
50S1=S
60 A=X: B=R: C=M
70 GOSUB 200
80 S2=S
90A=X: B=M:C=F
100 GOSUB 200
110 S3=S
120A=X:B=F:C=K
130 GOSUB 200
140S4=S
150 PRINT S1+S2+ S3+S4+X*X
160 END
200 REM площа
210P=(A+B+C)/2
220 S=SQR(P*(P-A)*(P-B)*(P-C))
230 RETURN

Program Piramida;
varX,K,R,M,F,Sl,S2,S3, S4:Real;
procedure P1(A,B,C: Real; var S:Real);
var P: Real;
begin
P:=(A+B+C)/2;
S:=Sqrt(P*(P-A)*(P-B)*(P-C));
end;
begin
Read(X,K,R,M,F);
P1(X,K,R,S1);
P1(X,R,M,S2);
P1(X,M,F,S3);
Pl(X,F,K,S4);Write(Sl+S2+S3+S4+X*X)
end.

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

Бейсик

Паскаль

ЗО А=Х: В=К: C=R
40 GOSUB 200
50 St=S
60 А=Х: B=R: C=M
70 GOSUB 200
80 S2=S
90 А=Х: В=М: C=F
100 GOSUB 200
110 S3=S
120A=X:B=F:C=K
130 GOSUB 200
140S4=S

P1(X,K,R,S1);
P1(X,R,M,S2);
P1(X,M,F,S3);
P1(X,F,K,S4);

Величини, які описуються ь основному алгоритмі, є глобальними. Вони є відомими для кожного допоміжного алгоритму і їх в допоміжних алгоритмах можна використовувати. Па мо­мент виклику допоміжною алгоритму глобальні величини володіють такими значеннями, які їм було надано в основному алгоритмі, а після завершення допоміжного алгоритму вони мають значення, які їм було присвоєно в допоміжному алгоритмі. Величини, які описуються в допомі­жному алгоритмі, називаються локальними для цього алгоритму. За межами допоміжного алго­ритму (тобто після закінчення його роботи) вони є невідомими, доступу до них немає і ними скористатися не можна. Якщо у допоміжному алгоритмі описується інший допоміжний алгоритм нижчого рівня, то величини, які є локальними у допоміжному алгоритмі вищого рівня будуть глобальними для допоміжного алгоритму нижчого рівня. Такий принцип має місце для допоміж­них алгоритмів будь-якого рівня вкладеності. Так, у прикладі 2 в програмі на мові Паскаль гло­бальними змінними є X, К, R, М, F, SI, S2, S3, S4, а у процедурі Р1 описана локальна змінна Р.

 


Репетитор в місті Рівне та Рівненському районі.

Поліграфічні послуги та фотодрук
Тел.: +38 (093) 515-57-24, +38 (098) 050-8649
м. Рівне, вул. Дубенська (Район Боярка)

Написати електронного листа репетитору

 

Реклама:

Пропонуємо фотодрук та Поліграфічні послуги.