Successfully reported this slideshow.
ВИКОРИСТАННЯ ПІДПРОГРАМ. ПРОЦЕДУРИ ТА ФУНКЦІЇ. Вчитель: Наталія Миколаївна Інформатика:  5  клас гімназії,  урок №13
<ul><li>Це незалежний фрагмент програми, який оформляється у вигляді окремої синтаксичної конструкції і надалі використову...
<ul><li>Відлагодження програми можна виконати окремими блоками (по черзі відлагодити кожну з підпрограм) і лише після цьог...
<ul><li>майже повністю повторює структуру основної програми: </li></ul><ul><li>заголовок  містить інформацію про призначен...
Види підпрограм:
<ul><li>Procedure   < назва процедури >  ( < змінна_1 > : < тип змінної_1 > ;  < змінна_2 > : < тип змінної_2 > ;  Var   <...
Процедура Службове слово, яке вказує, що підпрограма буде саме процедурою. Назва процедури  потрібна для організації її по...
<ul><li>Процедура визначатиме, чи може існувати трикутник зі сторонами  x, y, z , і для можливого трикутника обчислюватиме...
Формальні та фактичні параметри Тоді в основній програмі цю процедуру можна буде викликати, звернувшись за її іменем із бу...
<ul><li>Function   < назва функції >  ( < список формальних параметрів > ): </li></ul><ul><li>  < тип скалярного результат...
Особливості функцій <ul><li>Таким чином, викликавши функцію, ви  завжди  маєте отримати результат її виконання, тип якого ...
<ul><li>Перетворимо створену процедуру на функцію, яка також визначатиме, чи може існувати трикутник зі сторонами  x, y, z...
Upcoming SlideShare
Loading in …5
×

9 13

898 views

Published on

  • Be the first to comment

  • Be the first to like this

9 13

  1. 1. ВИКОРИСТАННЯ ПІДПРОГРАМ. ПРОЦЕДУРИ ТА ФУНКЦІЇ. Вчитель: Наталія Миколаївна Інформатика: 5 клас гімназії, урок №13
  2. 2. <ul><li>Це незалежний фрагмент програми, який оформляється у вигляді окремої синтаксичної конструкції і надалі використовується багаторазово. </li></ul><ul><li>Стандартні підпрограми зібрано у бібліотеки. До них належать відомі вам read , write . </li></ul><ul><li>Щоб указати виконання підпрограми, у програмному блоці основної програми треба вказати її виклик . </li></ul><ul><li>Використання власне розроблених підпрограм суттєво полегшує розробляння та відлагодження основної програми, роблячи її текст структурованим, лаконічнішим, надійнішим та зрозумілішим. </li></ul>Підпрограма
  3. 3. <ul><li>Відлагодження програми можна виконати окремими блоками (по черзі відлагодити кожну з підпрограм) і лише після цього, переконавшись у правильній роботі кожної підпрограми, відлагодити основну програму. </li></ul><ul><li>Над програмою одночасно і незалежно від інших може працювати кілька розробників, кожен з яких розробляє та відлагоджує окремі підпрограми основного проекту. </li></ul><ul><li>Значна економія пам’яті, оскільки повторювані дії зберігають у пам’яті один раз, а виконують багаторазово. </li></ul><ul><li>Спрощення внесення змін у текст програми, оскільки достатньо змінити окремі підпрограми, залишивши інші підпрограми або основну програму без змін. </li></ul><ul><li>Використання підпрограм підтримує евристику розбивання задачі на частини (підзадачі), з яких надалі можна моделювати розв’язування цілого класу аналогічних задач. </li></ul>Переваги використання підпрограм:
  4. 4. <ul><li>майже повністю повторює структуру основної програми: </li></ul><ul><li>заголовок містить інформацію про призначення підпрограми; </li></ul><ul><li>програмний блок описує, як вона це має виконувати; </li></ul><ul><li>описова частина може містити опис власних сталих та змінних або типів користувача; </li></ul><ul><li>Ці описи поширюють свою дію лише на підпрограму, тому їх називають ЛОКАЛЬНИМИ . </li></ul><ul><li>Тобто, у підпрограмі діють усі правила, застосовні до основної програми, а власні правила, визначені у підпрограмі, діють лише в ній, не поширюючись на основну програму. </li></ul><ul><li>ГЛОБАЛЬНИМИ називають змінні, описані в основній програмі, проте вони можуть використовуватися як в основній програмі, так і в будь-якій процедурі або функції. </li></ul>Структура підпрограми
  5. 5. Види підпрограм:
  6. 6. <ul><li>Procedure < назва процедури > ( < змінна_1 > : < тип змінної_1 > ; < змінна_2 > : < тип змінної_2 > ; Var < змінна_3 > : < тип змінної_3 > ); </li></ul><ul><li>Const < опис локальних сталих >; </li></ul><ul><li>Type < опис локальних типів користувача >; </li></ul><ul><li>Var < опис локальних змінних >; </li></ul><ul><li>< опис вкладених процедур та функцій > ; </li></ul><ul><li>Begin </li></ul><ul><li>< тіло процедури > </li></ul><ul><li>End ; </li></ul>Структура процедури:
  7. 7. Процедура Службове слово, яке вказує, що підпрограма буде саме процедурою. Назва процедури потрібна для організації її подальшого виклику Параметри підпрограми (імена змінних із зазначенням їх типу) можуть бути змінними лише скалярного (простого) типу. Описова частина може містити опис локальних величин, потрібних для організації дій у самій процедурі.
  8. 8. <ul><li>Процедура визначатиме, чи може існувати трикутник зі сторонами x, y, z , і для можливого трикутника обчислюватиме значення його площі за формулою Герона та виводитиме це значення на екран. </li></ul>Приклад процедури: <ul><li>Procedure Ploscha (x, y, z: integer ); </li></ul><ul><li>Var p, S: real ; </li></ul><ul><li>Begin </li></ul><ul><ul><li>If (x+y>z) and (y+z>x) and (x+z>y) </li></ul></ul><ul><ul><li>Then </li></ul></ul><ul><ul><li>begin </li></ul></ul><ul><ul><ul><ul><li>p:=(x+y+z)/2; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>S:= sqrt (p*(p-x)*(p-y)*(p-z)); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Write (‘ Площа трикутника ’, S:2:2) </li></ul></ul></ul></ul><ul><ul><ul><li>End </li></ul></ul></ul><ul><ul><li>Else write (‘ Трикутник зі сторонами ’, x, ‘ ‘, y, ‘ ‘, z, ‘ не існує ’) </li></ul></ul><ul><li>End ; </li></ul>{ Назва процедури та опис її параметрів } { Опис локальних змінних } { Перевірка умови існування трикутника } { Трикутник існує } { Визначимо півпериметр трикутника } { Визначимо площу за формулою Герона } { Виводимо знайдене значення площі }
  9. 9. Формальні та фактичні параметри Тоді в основній програмі цю процедуру можна буде викликати, звернувшись за її іменем із будь-якими трьома вхідними даними – чи просто числами, чи змінними, які використовуються в основній програмі: Ploscha (10 , 12, 15 ); або Ploscha (stor_1, stor_2, stor_3); Коли ми тільки записуємо процедуру, то після її назви, в дужках стоять ФОРМАЛЬНІ параметри, а параметри, значення яких передають у підпрограму під час її виклику, називають ФАКТИЧНИМИ . Тобто, викликавши процедуру Ploscha , формальний параметр x набув фактичного значення 10 (або stor_1 ), формальний параметр y набув фактичного значення 12 (або stor_2 ) і формальний параметр z – фактичного значення 15 (або stor_3 ).
  10. 10. <ul><li>Function < назва функції > ( < список формальних параметрів > ): </li></ul><ul><li> < тип скалярного результату функції > ; </li></ul><ul><li>Const < опис локальних сталих >; </li></ul><ul><li>Type < опис локальних типів користувача >; </li></ul><ul><li>Var < опис локальних змінних >; </li></ul><ul><li>< опис вкладених процедур та функцій > ; </li></ul><ul><li>Begin </li></ul><ul><li>< тіло функції має містити </li></ul><ul><li>< назва функції > := < вираз > ; > </li></ul><ul><li>End ; </li></ul>Структура функції :
  11. 11. Особливості функцій <ul><li>Таким чином, викликавши функцію, ви завжди маєте отримати результат її виконання, тип якого описали в заголовку функції. </li></ul><ul><li>Назва функції не може брати участі у проміжних обчисленнях, вона використовується лише раз, коли всі підрахунки зроблено і уже можна вказати результат роботи цієї функції: </li></ul><ul><ul><li>< назва функції > := < вираз > ; </li></ul></ul>
  12. 12. <ul><li>Перетворимо створену процедуру на функцію, яка також визначатиме, чи може існувати трикутник зі сторонами x, y, z , і для можливого трикутника обчислюватиме значення його площі за формулою Герона та виводитиме це значення на екран, а якщо такого трикутника не існує, то виводитиме 0. </li></ul>Приклад функції : <ul><li>Function Ploscha (x, y, z: integer ): real ; </li></ul><ul><li>Var p, S: real ; </li></ul><ul><li>Begin </li></ul><ul><ul><li>If (x+y>z) and (y+z>x) and (x+z>y) </li></ul></ul><ul><ul><li>Then </li></ul></ul><ul><ul><li>begin </li></ul></ul><ul><ul><ul><ul><li>p:=(x+y+z)/2; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>S:= sqrt (p*(p-x)*(p-y)*(p-z)); </li></ul></ul></ul></ul><ul><ul><ul><li>End </li></ul></ul></ul><ul><ul><li>Else S:=0; </li></ul></ul><ul><ul><li>Ploscha:=S; </li></ul></ul><ul><li>End ; </li></ul>{ Назва функції, опис її параметрів та зазначення типу результату } { Опис локальних змінних } { Перевірка умови існування трикутника } { Трикутник існує } { Визначимо півпериметр трикутника } { Визначимо площу за формулою Герона } { присвоюємо значення функції }

×