Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
posibnik_paskal.pdf
Скачиваний:
230
Добавлен:
11.02.2016
Размер:
2.43 Mб
Скачать

«Turbo Pascal »

Значенко О.П.

ТЕМА 8. ПІДПРОГРАМИ В МОВІ ТУРБО ПАСКАЛЬ

Процедури

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

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

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

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

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

Procedure <імя> (<параметр1:тип1; параметр2:тип2>); Var {розділ опису внутрішніх змінних процедури};

Begin

{розділ інструкцій процедури};

End;

де Procedure зарезервоване слово мови Паскаль, Ім’я – ім’я процедури, для виклику послідовності інструкцій, Параметр – змінна, що використовується в інструкціях процедури.

Розрізняють два види параметрів формальні та фактичні. Параметри, що визначаються при описі процедури чи функції називаються формальними. Параметри, що задаються при виклику процедури чи функції називаються

37

«Turbo Pascal »

Значенко О.П.

фактичними.

Формальні параметри відокремлюються крапкою з комою, їх неможливо описати в розділі опису процедури. Фактичні параметри відокремлюються комою. Механізм застосування параметрів забезпечує заміну формальних фактичними, що дозволяє виконувати процедуру з різними даними. Між фактичними параметрами в операторі виклику процедури та формальними параметрами в заголовку процедури встановлюється взаємно однозначна відповідність. Кількість, типи та порядок слідування формальних та фактичних параметрів повинні співпадати. Для звернення до процедури необхідно використати оператор виклику процедури.

< ім’я процедури >(< список фактичних параметрів >)

Приклад програми виведення на екран рядка символів.

 

Процедура з параметрами

Процедура без параметрів

Procedure Line30;

Procedure Line (n:integer; c:char);

Var i:integer;

Var i:integer;

Begin

Begin

For i:=1 to 30 do Write (‘-‘)

For i:=1 to n do Write (c)

end;

end;

Виклик процедури в тексті основної програми

Line30;

Line(30, ‘-‘);

Можна виділити два основних класи формальних параметрів:

параметри – значення;

параметри – змінні.

Параметр – значення використовується в якості вхідних даних підпрограми, при зверненні до яких фактичні параметри передають своє значення формальним та більше не змінюються.

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

38

«Turbo Pascal » Значенко О.П.

Приклад підпрограми (процедури) визначення tg та ctg кута

Program P1;

Var r, r1, r2: real;

Procedure f (x:real; var y,c:real);

Begin

y:= sin(x)/cos(x); c:= cos(x)/sin(x);

End;

Begin

Writeln (‘ Введіть кут’);

Readln(r); f(r,r1,r2);

Writeln(‘tg(‘,r,’)=’,r1, ‘ ctg(‘,r,’)=’,r2);

Readln;

End.

Локальні та глобальні змінні

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

Змінні, описані в розділі опису змінних процедур та функцій, доступні лише інструкціям даних процедур та функцій і називаються локальними.

Функції Функція – це інструкція, яка має ім’я та результат, який може бути присвоєно

змінні або входити у вираз. Виконання функції відбувається при появі в тексті програми її імені. Існують вбудовані функції, бібліотечні функції та функції створені користувачем.

При створенні програми можуть бути використані вбудовані функції мови Паскаль. До них відносяться арифметичні, тригонометричні та інші функції.(Cos, Sin, Sqr, Sqrt, Ln, exp та ін.)

Опис функції складається із заголовку функції та тіла. Заголовок містить службове слово function, ім’я функції, список формальних параметрів з їх типом та

39

«Turbo Pascal »

Значенко О.П.

тип результату.

Function <імя> (<параметр1:тип1; параметр2:тип2>):<тип>;

Var {розділ опису внутрішніх змінних функції};

Begin

{розділ інструкцій функції};

End;

Звернення до функції здійснюється за ім’ям та вказаним списком фактичних параметрів. Кількість, тип, порядок слідування формальних та фактичних параметрів повинні співпадати.

<змінна>:=<ім’я функції>(<список фактичних параметрів>)

В тілі функції завжди повинен бути один оператор, який присвоює значення імені функції.

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

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

Приклад підпрограми (функції) визначення tg кута.

Program P3;

Var y, j: real;

Function tan(x:real):real;

Begin

tan:= sin(x)/cos(x);

End;

Begin

Writeln (‘ Введіть кут’);

Readln(y); j:=tan(y);

Writeln(‘tg (‘,y,’)=’,j);

Readln; End.

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]