"Підпрограми. Опис підпрограм мовою програмування. Типи підпрограм. Звернення до підпрограм у програмах"

Матеріал з Фізмат Вікіпедії
Перейти до: навігація, пошук

''Мета: Ознайомити дітей з типами підпрограм, навчити дітей описувати підпрограми мовою програмування. Тип: Комбінований урок. Вид: Пояснення нового матеріалу.

Обладнання: Кодоскоп. Наочність: Плівки для кодоскопу. Тривалість: 45 хвилин.

Література для учнів: Верлань А.Ф, Апатова Н.В. “Інформатика 10-11”.

Література для вчителя:

1. Симонович “Информатика. Базовий курс”.

2. Руденко “Практичний курс інформатики”.

3. Макарова “Інформатика 10-11”.

План уроку

1. Підпрограми-процедури

2. Процедури без параметрів. 3. Процедури з параметрами. 4. Підпрограми-функції.

Хід уроку 1.Організаційна частина. Добрий день, діти, сідайте! Хто сьогодні черговий? Хто відсутній? Хто сьогодні не готовий до уроку?

2. Актуалізація опорних знань.

1. Які ви знаєте базові структури алгоритмів?— О.В.: Слідування, розгалуження, повторення.

2. Який вигляд заголовку програми в Паскалі.— О.В.: Program “назва”.

3. З чого складається програма на мові Паскаль?— Програма на мові Паскаль складається із заголовку program <iм'я> (input, output); i власне програми, що називається блоком.

4. Які розділи містить блок? Блок містить розділи: розділ модулів - uses

розділ міток - label3.

розділ констант- const4.

розділ типів - type5.

розділ змінних - var6.

розділ операторів - begin … end.

3. Вивчення нового матеріалу— Добре діти, ми з вами повторили основні поняття.— Давайте поговоримо про проблеми, які виникають під час роботи в середовищі програмування.— При розробці програми іноді з'являються повторювані групи дій або виникає необхідність поділити програму на функціональні модулі, зробити її структуру ієрархічною. Для цього у всіх мовах програмування існують засоби організації підпрограм. При розв'язанні складної задачі рекомендується спочатку алгоритм, а потім і програму розроблювати «зверху вниз», від більш загального плану до докладного, У такому вигляді головна програма відповідає укрупненому плану розв'язання задачі, а її команди — виклику відповідної підзадачі, реалізованої у вигляді підпрограми. Ідучи таким шляхом створення програми, можна окремі функції, що найбільш часто використовуються, реалізувати спочатку у вигляді невеликих підпрограм, перевірити їх на контрольних прикладах і, переконавшись у правильності, включати їх до складу основної програми. Це зручніше робити, маючи в розпорядженні мову, яка дозволяє повністю виділити підпрограму з тексту основної програми у вигляді окремого модуля. Використання підпрограм дозволяє розробляти програму частинами, доручати реалізацію великих проектів окремим групам розробників— Давайте запишемо: число, класна робота і далі запишіть, будь ласка, тему та план сьогоднішнього уроку: ТЕМА: ПІДПРОГРАМИ. ПЛАН. У Паскалі підпрограма є частиною основної програми, її опис дається між розділом var головної програми та її програмним блоком (першим begin). Підпрограм може бути декілька, їх описи розміщуються у довільному порядку один за одним. Опис підпрограми можна порівняти із записуваною в математиці формулою «у загальному вигляді», в яку при розрахунках підставляються конкретні значення. Як і формулу, підпрограму можна використовувати для різних даних, які передаються з програми, що її викликає. Тому параметри, які використовуються в описі підпрограми, називають формальними, а параметри, над значеннями яких виконуються операції, вказані в підпрограмі, називають фактичними. Давайте запишемо в зошити: Підпрограма — це спеціально оформлений алгоритм, який можна використовувати багато разів при розв'язуванні задач. У Паскалі розрізняють два види підпрограм: процедури і функції. Основна різниця між ними полягає в тому, що процедура може мати будь-яку кількість вхідних і вихідних даних (параметрів), а функція — довільну кількість вхідних і тільки одне вихідне значення. Підпрограми мають структуру, аналогічну до структури головної програми. Вони починаються з заголовка із спеціальним словом — ознакою підпрограми, далі вказується ім'я підпрограми і, при потребі, список формальних параметрів. Далі розміщуються всі розділи описів, які є в головній програмі: мітки, константи, типи і змінні. У цих розділах описуються дані, які використовуються тільки всередині підпрограми. Такі дані називаються локальними, У підпрограмі можуть використовуватися також змінні, описані у викликаючій програмі. Такі змінні називаються глобальними. Вони можуть використовуватися не лише програмами, які викликають, а й підпрограмами. При роботі з підпрограмою завжди виділяється два етапи: опис підпрограми, тобто запис алгоритму розв'язаннязадачі в спеціальній формі, і виклик підпрограми — передача їй даних на обробку з викликаючої програми та отримання результатів. ДАВАЙТЕ ЦЕ СОБІ ЗАПИШЕМО. Розглянемо способи організації підпрограм у Паскалі. Підпрограми-процедури. Процедура — це підпрограма, яка має будь-яку кількість вхідних і вихідних даних. Процедура може бути описана без параметрів і з параметрами. Параметри в заголовку процедури використовуються для обміну інформацією між процедурою і програмою, яка її викликає. Вони визначають дані, які передаються на обробку до процедури, і дані, .які отримуються у вигляді результатів. Процедури без параметрів. Опис процедури має такий вигляд: (кодоплівка)

Процедура без параметрів може реалізовувати будь-який алгоритм. Усі змінні, з якими проводять дії оператори процедури, визначаються у викликаючій програмі, їм присвоюються потрібні для виконання процедури значення. Для виклику процедури без параметрів просто вказується її ім'я. Розглянемо приклад обчислення найменшого спільного кратного двох натуральних чисел НСК(Х,У), яке можна знайти, використовуючи найбільший спільний дільник (НСД) цих чисел, за формулою ндк(х, y)=х-у/нсд(х, y). При складанні програми оформимо як процедуру без параметрів програму Е7 — обчислення НСД за алгоритмом Евкліда. Результат роботи процедури заносимо до ділянки з іменем М. Змінна М описується як глобальний параметр, вона використовується і у викликаючій програмі, і в процедурі. У програмі будемо обчислювати НСК кількох чисел, заносячи їх до масиву С. Цей масив формується в розділі констант головної програми. Якщо дані визначаються в розділі констант, то вони не потребують додаткового опису в розділі змінних (var). Змінна X спочатку набуває значення першого числа, а потім їй присвоюється значення, отримане в результаті виконання підпрограми — НСК двох перших чисел. Значення змінної Y є друге число з кожної пари, для якої обчислюється найменше спільне кратне. Таким чином, на кожному наступному кроці циклу обчислюється НСК двох чисел, перше з яких X містить результат попереднього кроку. Наочно цей процес подано в таблиці 13.Програма має вигляд:Таблиця 13 1X: = НСК ( X,Y ) 36 108 216 216 1080

Y: = С [і] 54 72 18 15

М := НСК ( X, Y ) 18 36 18 3

Процедури з параметрами.ДАВАЙТЕ ЗАПИШЕМО: Для передавання даних до процедури і отримання з неї результатів використовуються формальні і фактичні параметри.Формальні параметри — це умовні позначення в описі процедури; вони описуються в її заголовку. При виклику процедури після її імені в дужках слід вказати список фактичних параметрів, які конкретизують значення, над якими будуть виконуватись операції в тілі процедури. Послідовність, кількість і тип формальних і фактичних параметрів повинні збігатися. Формальні параметри, описані в заголовку процедури, більше ніде не описуються, їх опис схожий на опис даних у розділі змінних і може також містити слово var. ДАВАЙТЕ ЗАПИШЕМО:Слово var у заголовку процедури ставиться перед тими параметрами, імена яких відповідають початковим даним. Фактичні параметри, які відповідають формальним, перед якими стоїть слово var, можуть бути тільки іменами змінних. Перед іменами формальних параметрів, які є вхідними даними процедури, слово var можна не вказувати. Якщо перед формальним параметром у заголовку процедури немає слова var, то йому може відповідати формальний параметр, який має вигляд виразу відповідного типу. Якщо для вхідних даних процедури при описі формальних параметрів вказано слово var, то їм також відповідають фактичні параметри — імена змінних.Наприклад, процедура NSD (знаходження найбільшого спільного дільника) із параметрами може мати заголовок: Виклик цієї процедури:

Змінні a, b, А; у заголовку процедури NSD — це формальні параметри, які заміняються при виконанні процедури на конкретні значення змінних х і у або числа 36 і 54. У заголовку процедури NSD описані формальні параметри: а і b — вхідні дані, для яких знаходиться найбільший спільний дільник; k — результат роботи процедури. При виклику процедури змінна а набуде значення змінної х, а змінна b — значення змінної у. Результат виконання процедури надійде до ділянки пам'яті з іменем т.Розглянемо ще один приклад використання процедури з параметрами. Знайдемо за допомогою процедури середнє арифметичне, найбільший і найменший елементи масиву. У програмі Е26 з'явився новий розділ описів — розділ типів даних type, в якому можна описати новий тип даних через уже відомі типи. Тип даних R — це масиви з n дійсних чисел, R — ім'я типу. Далі цей тип дозволяє скоротити описи, він використовується в головній програмі при описі вихідного масиву У і в заголовку процедури при описі формального параметра — масиву X.ДАВАЙТЕ ЗАПИШЕМО:Головна програма складається з трьох основних частин:1) введення даних — масиву У;2) виклику процедури Stat з фактичними параметрами — масивом У і отримуваними результатами, які надходять відповідно до ділянок А ( середнє значення), В (найменше) і С (найбільше);3) друкування результатів роботи програми.Підпрограми-функції. Підпрограма, яка має єдиний результат, може бути оформлена як функція. Опис її має вигляд:

Після опису формальних параметрів, які є аргументами функції, в заголовку вказується тип результату, тобто тип самої функції. Цей опис відноситься до імені функції, якому необхідно присвоїти значення результату роботи підпрограми. Як і процедура, функція може містити всі чотири розділи опису локальних змінних — label, const, type i var. Ім'я функції не можна використовувати для проміжних обчислень.ДАВАЙТЕ ЗАПИШЕМО:Функція викликається за допомогою вказівника. Вказівник — це ім'я функції, після якого в круглих дужках перелічені фактичні параметри — аргументи функції. Вказівник має вигляд:

Вказівник може з'явитися у виразі відповідного типу, в умовах операторів if, while і repeat після слова until, а також в операторі друку write. Прикладами виклику функцій є арифметичні функції, наприклад write (sin (х));Розглянемо третій варіант програми обчислень найменшого спільного кратного. Оскільки найбільший спільний дільник двох натуральних чисел — єдине число, то підпрограму для його обчислення можна оформити як функцію. Програма матиме вигляд:Одна підпрограма може викликати іншу. Розглянемо програму уточнення кореня рівняння методом ділення відрізка навпіл (приклад Е14), яка включає дві підпрограми. 1 Перша підпрограма — процедура, яка реалізує метод діленії ня відрізка навпіл, друга — підпрограма-функція, яка обчислює значення функції у потрібних точках.4. Закріплення вивченого матеріалу.Ми розглянули з вами тему “Підпрограми”, можливо у когось виникли якісь запитання, то запитуйте.Якщо запитань нема то давайте повторимо те що ми вивчили на цьому уроці1. Що таке підпрограма і для чого вона використовується?О.В: Підпрограма — це спеціально оформлений алгоритм, який можна використовувати багато разів при розв'язуванні задач. 2. Поясніть призначення локальних і глобальних змінних.О.В: У розділах описуються дані, які використовуються тільки всередині підпрограми. Такі дані називаються локальними, У підпрограмі можуть використовуватися також змінні, описані у викликаючій програмі. Такі змінні називаються глобальними3. Що таке формальні і фактичні параметри?О.В: Тому параметри, які використовуються в описі підпрограми, називають формальними, а параметри, над значеннями яких виконуються операції, вказані в підпрограмі, називають фактичними.

4. До чого відноситься опис типу в кінці заголовка підпрограми-функції?О.В: Після опису формальних параметрів, які є аргументами функції, в заголовку вказується тип результату, тобто тип самої функції. Цей опис відноситься до імені функції, якому необхідно присвоїти значення результату роботи підпрограми.5. Чим відрізняється виклик функції від виклику процедури?О.В: Процедура викликається службовим словом PROCEDURE, а функція — службовим словом FUNCTION. 6. Що таке вказівник?О.В: Вказівник — це ім'я функції, після якого в круглих дужках перелічені фактичні параметри — аргументи функції.7. Який вигляд має вказівник?О.В: Ім'я функції (список фактичних параметрів). Домашнє завдання:Верлань, Апатова “Інформатика 10-11” сторінка 23-27.Макарова “Інформатика 10-11” параграф 13.“Інформатика. Збірник задач” пункт 5.2. сторінка 54-58.Також розв’яжіть таку задачу за допомогою підпрограми, тобто напишіть програму: знайти НСД і НСК таких двох чисел: а) 55 і 103, б) 14 і 58.

Підсумок уроку: На цьому уроці ми з вами ознайомилися з типами підпрограм, їх описом на мові програмування Паскаль і наш урок підійшов до завершення. Вивчіть добре домашнє завдання, тому що на наступному уроці у нас буде практичне заняття по цій темі. Урок завершено, дякую за увагу.До побачення!!!