|
Скачати 58.38 Kb.
|
Лекція Р_8 Процедури та функціїМета: Ознайомити студентів з поняттям процедур та функцій, розглянути використання процедур та функцій при створенні різноманітних програм План
1. Процедури. Підпрограмою — називається найменована логічно закінчена група вказівок, яку можна викликати для виконання довільну кількість раз з різних місць програми. Процедура — це незалежна найменована частина програми, призначена для виконання конкретних дій. Процедура складається із заголовка і тіла. Це — нібито програма в мініатюрі. Коли процедура виконає своє завдання, програма продовжить виконуватися з вказівки, яка слідує безпосередньо за вказівкою виклику процедури. Використання імені процедури в програмі називається вказівкою процедури або викликом процедури. Формат запису процедури: procedure <�ім'я процедури>; <�тіло процедури>; 1.1. Процедури без параметрів. Використання процедур дає можливість зробити програму більш наочною, спростити розробку великих програм тощо. Так, наприклад, програму знаходження об'єму конуса можна розбити на декілька процедур: 1) procedure InputDate; 2) procedure Vkazivka; 3) procedure OutputDate. Procedure InputDate - виконує введення даних в програму. Procedure Vkazivka - виконує вказівки для знаходження об'єму конуса. Procedure OutputDate - виконує виведення даних на дисплей. Всі змінні, які використовуються в процедурах без параметрів, описуються в основній програмі. Задача. Скласти програму знаходження об'єму конуса. Program Vkonus; Const P=3.14; Var R, H, V :real; procedure InputDate; begin write('r='); readln(R); write('h='); readln(H); end; procedure Vkazivka; begin V:=P*Sqr(R)*H/3; end; procedure OutputDate; begin writeln('V=',V); end; begin {Основна програма} InputDate; Vkazivka; OutputDate; end. 1.2. Процедури з параметрами. В процедурі можна оголошувати константи, змінні, інші процедури і функції. Розділ опису в процедурах має таку саму структуру, як і в основній програмі. Оголошені всередині процедури змінні називаються локальними по відношенню до даної процедури. Локальні змінні не доступні поза межами даної процедури. Зміни, які відбуваються з локальними змінними всередині процедури, не впливають на значення змінних з такими самими іменами, які описані поза даною процедурою. Змінні, які використовуються в процедурі, але описані поза нею, називаються глобальними по відношенню до даної процедури. Будь-які зміни значень глобальних змінних всередині процедури змінюють значення цих змінних поза процедурою. Змінна А в основній програмі належить до цілого типу, але в процедурі LOKAL є своя власна В Турбо-Паскалі введено розширення мови, завдяки чому в процедурі можуть бути доступними як локальні відносно неї змінні, так і змінні з такими ж іменами, які описані в основній програмі. Для того, щоб реалізувати таку можливість, звернення до змінних в процедурі виконується таким чином. До локальних змінних звернення реалізується просто по їх імені (тобто як в стандартній мові). Для звернення до змінних, які однойменні з локальними, але введені в основній програмі, використовується така форма: ім'я програми.ім'я змінної ім'я програми — ім'я програми, яке вказано в заголовку програми "program ..." ім'я змінної— ідентифікатор змінної, вказаний в розділі опису змінних — "var ...." 1.3. Паметри-значення і параметри-змінні в процедурах Параметри-значення Наведений вище формат опису процедури можна доповнити таким чином. Після заголовка процедури в круглих дужках можуть вказуватись змінні (з допомогою яких в процедуру передаються дані) і їх типи, які називаються параметрами-значеннями. Перед ними відсутнє службове слово VAR. Формат запису процедури: procedure ім'я процедури (ім'я змінної:тип змінної); тіло процедури; Змінні, які описані в заголовку процедури, називаються формальними параметрами. Змінні або константи, які описані у вказівці процедури при її виклику, називаються фактичними параметрами 151 При зверненні до процедури з параметрами всі формальні параметри замінюються фактичними в порядку їх перелічення. Program PARAMETR; Var C, D : integer; procedure PARAM(A, B: integer); var S: integer; begin S:=0; S:=A+B; writeln('s=',S) end; begin C:=10; D:=100; param(C,D); { 1-ий спосіб } param(100,100) { 2-ий спосіб } end. Змінні А і В — це формальні параметри. Змінні С і D - фактичні параметри. Значення фактичних параметрів С=10 D=100 передаються формальним параметрам А і В. Зверніть увагу на те, як двома способами можна викликати процедуру і передати значення змінним. Такий спосіб передачі параметрів процедурі називається передачею за значенням. При цьому значення фактичного параметра робиться доступним для процедури. Його можна використовувати в роботі, змінювати довільним чином. Але ці зміни проявляються тільки в межах процедури, тобто є локальними. Вони не впливають на фактичні параметри поза процедурою. Параметри-змінні Для того, щоб процедура змогла змінювати значення фактичних параметрів, потрібно змінити спосіб передачі параметрів в процедуру. Новий спосіб називається передачею по імені. При використанні цього способу заголовок процедури змінюється таким чином: перед ідентифікатором формального параметра в заголовку процедури вказується службове слово Var. Змінні, перед якими записане службове слово Var, називаються параметрами-змінними. При виконанні процедури формальні параметри-змінні замінюються фактичними параметрами. Будь-які зміни значення формального параметру-змінної приводить до зміни значення фактичного параметру-змінної. За допомогою параметрів-змінних в основну програму передаються результати дії вказівок над даними. 2. Функції Якщо результатом виконання деякої процедури є одне скалярне значення, то цю процедуру бажано оформити як функцію. Формат опису функції: function <�ім'я функції> (список формальних параметрів):<�тип результату> Звернення до функції (обов'язково повинно бути включене у вираз як операнд) має такий вигляд : <�ім'я функції> (список фактичних параметрів). Задача. Знайти значення числа комбінацій n! Знаходження значення факторіалу числа оформимо у вигляді функції. Тоді програма розв'язання даної задачі матиме вигляд: Program KOMBINACIJ; var N, M, C: integer; function FACT(K: integer):integer; var i, F: integer; begin F:=1; For i:=1 to К do F:=F*i; FACT:=F; end; begin write('n='); readln(N); write('m='); readln(M); C:=FACT(N)Div(FACT(M)*FACT(N-M)); writeln('Кількість комбінацій з ',n,' пo ',m,' = ',C ); end. Зверніть увагу на те, що в самому тілі функції FACT необхідно змінній, ім'я якої співпадає з ім'ям самої функції, присвоїти значення результату виконання функції: FACT:=F. 155 3. Створення програм із використанням звернень до підпрограм Скласти програму знаходження НСК (найменшого спільного кратного) трьох натуральних чисел а, Ь, с. Program PROBOTA8; Var A, B, C, Y, N, S, K: integer; procedure NSKl (M, N: integer; var pNSK: integer); begin pNSK:=M*N; while M<>N do If M>N then M:=M-N else N:=N-M; pNSK:=pNSK div M; end; begin writeln('Введіть значення трьох чисел a, b, с:'); write('a='); readln(A); write('b='); readln(B); write('c='); readln(C); NSK1(A,B,Y); NSK1(C,Y,NSK); writeln('HCK=',NSK); end. |
ЛЕКЦІЯ 3 Лекція: Поняття предмета права промислової власності, коло та характеристика однорідних суспільних відносин |
Лекція 7 8 Лекція 7 Українська революція і пошук її зовнішньополітичних орієнтацій. Початки дипломатичної діяльності УНР. (4 год.) |
Лекція з курсу «Прикладні програми (Електронні таблиці Excel)» Лекція Робота з фінансовими функціями. Створення, редагування і форматування графіків і діаграм (2 год.) |
Лекція Державна мова мова професійного спілкування Евфемізм і перифраз у професійному спілкуванні Лекція Риторика і мистецтво презентації |
Лекція №1 Лекція № Поняття культури. Античність – джерело європейської культури (2 год.) |
Лекція Сутність та види податків. Податкова система і податкова політика 5 Лекція Організація податкової служби і податкової роботи. Система інформаційного забезпечення 11 |
ЛЕКЦІЯ 2 17 ЛЕКЦІЯ 31 ТЕМА 4 ОБҐРУНТУВАННЯ ГОСПОДАРСЬКИХ РІШЕНЬ ТА ОЦІНЮВАННЯ ЇХ ЕФЕКТИВНОСТІ 49 Вивчення дисципліни передбачає наявність знань з наступних дисциплін: «Теорія ймовірностей та математична статистика», «Теорія статистики»,... |
Лекція Інформатизація діяльності інформаційних установ Лекція Інформатизація діяльності інформаційних установ. Електронний документний фонд як модель управління інформаційними ресурсами.... |
Лекція: Інтерфейс Microsoft Word 2007: версія для друку і PDA Лекція... Описані способи роботи з елементами управління : кнопками, списками та ін. Показані можливості налаштування панелі швидкого доступу.... |
Лекція: Підготовка до друку і друк документу : версія для друку і... Показана робота з документом в режимі попереднього перегляду перед друком. Вивчаються можливості налаштування друку документу, у... |