Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Приклад. Написати програму обчислення площі кола з використанням процедури




Приклад.

Написати програму обчислення площі кола з використанням процедури. Радіус кола (R) задається користувачем.

Program Kolo (input, output);

var R,S:real;

Procedure Krug(R:real; S:real);

const pi=3.14;

begin

S:=pi*sqr(R);

end;

begin

writeln('Введіть радіус кола');

read(R);

Krug(R,S);

writeln('Площа кола становить ',S:6:2);

end.

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

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

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

На прикладі попередньої задачі програма з використанням процедури без параметрів матиме вигляд:

 

Program Kolo (input, output);

var R,S:real;

Procedure Krug;

const pi=3.14;

begin

S:=pi*sqr(R);

end;

begin

writeln('Введіть радіус кола');

read(R);

Krug;

writeln('Площа кола становить ',S:6:2);

end.

 

Змінні, які використовуються в процедурі, описані як глобальні (R).

4. Особливості використання функцій

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

Особливості функцій:

1) має тільки один результат виконання (процедури дозволяють отримувати ряд результатів для різних параметрів);

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

3) можна викликати в середині виразу (F:=FACT(M)-FAKT(K)).

Знайти різницю факторіалів F=m!–k!, де m!=1*2*3*…*m; k!=1*2*3*…*k.

Function FACT(n:integer):real;

var i:integer;

p:real;

begin

p:=1;

for i:=1 to n do

p:=p*i;

FACT:=p;

end;

Тут FACT – ім’я функції, якому присвоюється результат типу real. Формальним параметром є n – параметр-значення типу integer.

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

5. Методи посилань до процедур та функцій

Існує три варіанти посилань до процедур і функцій:

1. Із зовнішнього блока (розглянутий вище).

2. Із сусідньої функції.

3. Із самої функції (рекурсія).

На рис. 26 проілюстровані другий та третій варіанти посилань до процедур і функцій.

 

1. Посилання до процедури F1 із тіла програми Pr.

2. Посилання до процедури F2 із тіла процедури F1.

3. Посилання до процедури F2 всередині самої процедури – рекурсія.

Посилання до процедури із тіла процедури. На рис. 26 процедура F1 посилається до процедури F2, яка буде описана пізніше. Формально у мові програмування Паскаль не дозволяється використовувати конструкції, які ще не описані.

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

Program Pr…;

Procedure F2(параметри);

FORWARD;

Procedure F1(параметри);

F2(параметри); {посилання до F2 всередині F1 }

end;

Procedure F2; {список параметрів відсутній}

begin

end.

Pr містить дві незалежні процедури F1, F2. У F1 є посилання до F2, тому використаний випереджальний опис процедури F2, який складається із заголовка з параметрами і службового слова forward. Тоді сам опис F2 має заголовок без повторення формальних параметрів.

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




Поделиться с друзьями:


Дата добавления: 2015-05-24; Просмотров: 558; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.