Главная » Файлы » Для вчителя » Інформатика | [ Добавить материал ] |
ПІДПРОГРАМА. ПРОЦЕДУРИ ТА ФУНКЦІЇ Урок
[ · Скачать удаленно (71.5 Kb) ] | 04.08.2010, 15:43 |
ПІДПРОГРАМА. ПРОЦЕДУРИ ТА ФУНКЦІЇ УРОКИ З ТЕМИ УРОК 1 Тема. Підпрограми. Використання процедур у створенні програм. Тип уроку: урок засвоєння нових знань. Обладнання: середовище Turbo Pascal. Мета: • навчальна: ознайомити з поняттям «підпрограми» та «параметри підпрограм», пояснити їх призначення; • розвивальна: розвиток логічного й ана¬літичного мислення; • виховна: підтримувати постійний інтерес до предмета і прагнення до набуття нових на¬вичок і вмінь. Хід уроку I. Актуалізація опорних знань Урок доцільно розпочати з повторення вив¬ченого матеріалу. Запитання до класу: — Що розуміють під структурним програму¬ванням? Для чого воно застосовується? — Назвіть основні логічні структури побу¬дови алгоритмів. II. Вивчення нового матеріалу Багато мов програмування, зокрема Turbo Pascal, мають спеціальні можливості для опи¬су підпрограм — поіменованої групи опера¬торів, що виконують деяку підзадачу. Підпрограмою називають відокремлену (оформлену у вигляді окремої синтаксичної конструкції) та забезпечену ім'ям частину про¬грами. Процедура — це незалежна іменована час¬тина програми, яку можна викликати по імені для виконання певної підзадачі. Формальні параметри — це параметри, що описуються в заголовку процедури. Фактичні параметри підставляють замість формальних параметрів у точці викли¬ку підпрограми. Кількість формальних та фактичних пара¬метрів і їх типи мають збігатися. Існують два різновиди параметрів: параметри-значення та параметри-змінні. Параметри-значення використовують тільки для передачі початкових даних з точки виклику в підпрограму (їх не можна викорис¬товувати для повернення результатів з підпро-грами в точку виклику). У списку формальних параметрів вони перелічуються через кому з указівкою їх типів. Параметри-значення Опис: Procedure DrawLinePar(First, Last:integer; s:char); Звернення: DrawLinePar(10,25,'*') ; Параметри-змінні, як правило, викорис¬товуються для визначення результатів вико-нання процедури і в списку формальних пара¬метрів перелічуються після слова var з указів-кою типу. Змінні, оголошені всередині процедури, на¬зиваються локальними щодо даної процедури. Вони недоступні поза нею. Зміни, що відбува¬ються з такими змінними всередині процеду¬ри, не впливають на значення змінних з таки¬ми самими іменами, але які описані поза да¬ною процедурою. Змінна, використовувана в процедурі, але описана поза її межами до опису підпрограми, називається глобальною змінною щодо даної процедури. Будь-яка зміна цієї змінної всере¬дині процедури змінює її значення поза проце¬дурою. Рекомендується в процедурах уникати гло¬бальних змінних і користуватися тільки ло¬кальними змінними та параметрами. Формат опису процедури Procedure <ім'я процедури> (<параметри>); <розділ описів>; begin <розділ операторів>; end; Стандартні процедури 1) Іnс (х, n) — процедура збільшує значен¬ня цілочисельної змінної х на цілочисельне n. За відсутності n значення х збільшується на 1; 2) Delay (і) — затримка виконання програ¬ми на деякий час (час залежить від тактової частоти процесора); 3) Exit — вихід з виконуваного блоку. III. Закріплення нових знань учнів Завдання 1. Яке завдання виконує проце¬дура: Procedure Poisk(х,у:real; var z:real); Begin If x Відповідь: знаходження найбільшого числа з двох дійсних чисел. Завдання 2. Що буде виведено на екран після виконання послідовності операторів: Х:=23.4; у:=-12; z:=-11.4; Sum(x,y); sum(y,z); Writlen(z:4:2); якщо процедуру описано як: procedure sum (A: real; var В .-real) ; begin В: =A+B end; Відповідь: 0.00. Завдання 3. Написати процедуру, яка об¬числює площу прямокутника: Procedure PI(a,b:real; var S:real); Begin S:=a*b End'; IV. Підбиття підсумків V. Домашнє завдання 1. Що буде виведено на екран після вико¬нання послідовності операторів: А:=18; В:=5; С:=0; Рі(А,В,С); Writeln(A, B:4:2, C:3:l); де процедуру описано як: Procedure PI(x:integer; var у, yl:real); Var A:integer; Begin А:=2; у:=х/А; yl:=y/A; End; 2. Написати процедуру, яка обчислює пери¬метр квадрата. УРОК 2 Тема. Створення програм з використанням звернень до процедур. Тип уроку: урок засвоєння знань. Мета: • навчальна: формування навичок і вмінь складати програми з використанням звернень до процедур; • розвивальна: розвиток логічного й аналі¬тичного мислення; • виховна: розвиток колективної творчості й комунікативних здібностей учнів. Хід уроку I. Актуалізація опорних знань Запитання до класу: — Дати визначення підпрограми та поясни¬ти її призначення. — Сформувати визначення процедури та подати формат її запису. — Які ви знаєте стандартні процедури? — Що таке фактичні та формальні параметри? — Чим відрізняються параметри-значення від параметрів-змінних? — Дати поняття локальної та глобальної змінної. II. Перевірка домашнього завдання III. Вивчення нового матеріалу Приклад 1. Фрагмент програми, що ілюструє принцип локалізації. Program Prim; var a,b:integer; procedure Prim_l; var a,x:char; begin a:='!'; x:='?'; b:=b+l; end; begin a:=0; b:=100; Prim_l ; Writeln(a,b); end. Змінна x — локальна для процедури Prim_l, тому головна програма не може змінити її зна¬чення або звернутися до неї. Змінна b — глобальна для процедури Prim_l, про неї відомо і в програмі, і в проце¬дурі. Оскільки в процедурі немає іншого оголо¬шення для змінної Ь, то всі зміни, що відбува¬ються із значенням Ь в процедурі, зберігають¬ся і після виходу з неї. Змінна а в основній програмі належить до цілого типу, але в процедурі Prim_l є своя власна змінна а, що з головної програми не¬доступна в процедурі Prim_l. Всі зміни, що відбуваються із значенням а в процедурі, втра¬чають свій сенс після виходу з цієї процедури. Отже, в результаті роботи програми Prim_l на екран буде виведено два числа: 0 і 101. Приклад 2. Складемо програму, яка за за¬даними дійсними числами х і у обчислює u=Мах(х+у,х*у) і v=Max(0.5,u). Використаємо параметр-змінну Rez для по¬вернення результату роботи процедури у точку виклику. program MaxVar; var x, y, u, v:real; procedure Max2Var(rl, r2:real, var - Res: real); begin if (rl>r2) then Res:=rl Else Res:=r2; end ; begin Readln(x,y); Max2Var(x+y,x*y,u); Max2Var(0.5,u,v); Writeln('u= ', u ,'v=',v); end. IV. Закріплення нових знань і вмінь учнів. Завдання для самостійної роботи: скласти, скомпілювати і запустити на виконання про¬граму, що виводить на екран таблицю значень косинуса кута, який змінюється в діапазоні від 0 до 45 градусів з кроком в 1 градус, з викорис¬танням процедури: Program TableModuls; const Last=45; Procedure DrawLine; {процедура, що виводить на екран лінію з рисок} const Kol=40; {кількість рисок, що дорівнює Кої (в даному випадку Ко1=40)} var j:=integer; begin for j:=l to Kol do Write('-'); Writeln; end {DrawLine); var і:integer; Arg,Cosinus:real; {початок тіла програми} Begin Writeln('Таблиця значень функцій косинус:'); DrawLine; Writeln('Кут Косинус'); DrawLine; for i:=0 to Last do begin Arg:=i*Pi/180; Cosinus:=Cos(Arg); Writeln(i,Cosinus); end ; DrawLine; End. {TableModuls} V. Підбиття підсумків VI. Домашнє завдання 1. Скласти програму, використовуючи про¬цедуру обчислення різниці квадратів двох чи¬сел, і в основній програмі вивести результат на екран. 2. Скласти програму обчислення площі чотирикутника АВСD за його сторонами a, b, c, d i діа¬гоналями, використовуючи процедуру обчислен¬ня площі трикутника за формулою Герона. УРОК З Тема. Функції. Створення програм з вико¬ристанням звернень до функцій. Тип уроку: комбінований. Мета: • навчальна: формування умінь складання функцій; поглиблення умінь складати програ¬ми з використанням звернень до підпрограм; • розвивальна: S розвиток логічного й аналітичного мис¬лення; S використання інформаційних технологій під час складання програм; • виховна: виховання толерантності; взає¬моповаги. Хід уроку I. Перевірка домашнього завдання II. Вивчення нового матеріалу 1. Якщо результатом роботи деякої підпрог¬рами є обчислення одного скалярного значен¬ня, то цю підпрограму доцільно оформити як функцію. Для виклику функції достатньо, щоб її ім'я було використано у деякому виразі. begin Wrіteln('Введіть A,В,C'); Readln(D,E,F); Writeln('Введіть X') ; Readln (W) ; end; function Proc(G, H, i, Z:real):real; begin Proc:=(G*Z+H*sqr(z)+i*sqr(z)*z)/ (14*z-l); end; Var A,B,C,X,Result:Real; begin Dat(A,B,C,X); Result:=Proc(A,B,C,X); W r і t e l n ( ' Значення функції',Result:8:2); Readln; end. Варіант 2 Складіть програму обчислення значення ... кх+рх2 функції з використанням функції та 12д:-3 процедури. Відкомпілюите програму, запустіть на виконання і збережіть на дискеті під ім'ям Prod3. Розв'язання Program РгодЗ; procedure Dat(Var D,E,F, .-real) ; begin Writeln('Введіть к,p'); Readln(D,E); Writeln('Введіть X'); Readln(F) ;: end; function Proc(G,H,Z:real):real; begin Prog:=(G*Z*+H*sqr(z))/(12*z-3); end; var k,p,x,Rezult:real; begin Dat{K,p,x); Result:=ргос(к,р,х) ; Writeln('Значення функції рівне', Result:8:2); Readln; end. II. Підбиття підсумків III. Домашнє завдання: розв'яжіть проти¬лежний варіант. | |
Просмотров: 516 | Загрузок: 205 | |