Главная » Файлы » Для вчителя » Інформатика [ Добавить материал ]

ПІДПРОГРАМА. ПРОЦЕДУРИ ТА ФУНКЦІЇ Урок
[ · Скачать удаленно (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 End;
Відповідь: знаходження найбільшого числа з двох дійсних чисел.
Завдання 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. Домашнє завдання: розв'яжіть проти¬лежний варіант.
Категория: Інформатика | Добавил: referatwm
Просмотров: 516 | Загрузок: 205 | Рейтинг: 5.0/1