Стандартні підпрограми та підпрограми користувача. Створення і виклик підпрограм 

Мета уроку:

Навчальна: сформувати поняття стандартних підпрограм та підпрограм користувача, локальних та глобальних змінних, формальних та фактичних параметрів підпрограм; сформувати вміння та навички використання стандартних підпрограм та створення процедур і функцій користувача;

розвивати: логічне мислення, інформаційну культуру, пізнавальні інтереси учнів;

виховувати: активність, увагу, дисциплінованість, взаємодопомогу, інтерес до предмета і навчання.

Обладнання та матеріали: персональні комп'ютери, мультимедійний проектор, інтерактивна дошка, програмне забезпечення Delphi 7, комп'ютерна презентація, опорні конспекти, картки із завданнями.

Тип уроку: комбінований.

Структура уроку:

I. Організаційний етап

II.Перевірка домашнього завдання

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

IV.Мотивація навчальної діяльності

V.Сприйняття та усвідомлення нового матеріалу

VI. Первинне закріплення знань

VII. Підбиття підсумків уроку

VIII. Домашнє завдання

Хід уроку

· Організаційний етап

Привітання. Підготовка класу до занять. Оголошення теми, мети і завдань уроку.

· Перевірка домашнього завдання

Аналіз помилок в задачах, які учні попередньо завантажили в додаток ClassRoom

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

Використовуються інтерактивні вправи (анаграма, ), створені в програмі Smart NoteBook.

Бесіда з елементами опитування

  1. Як створити проект?
  2. За допомогою яких елементів користувач може вводити дані в програму?
  3. Як ввести дійсне число?
  4. За допомогою яких елементів користувач може вивести результат?
  5. Як вивести ціле число? дійсне? текстовий рядок?
  6. Які властивості елементів керування ви знаєте?

· Мотивація навчальної діяльності

Під час створення програм інколи виникає необхідність повторно використати частини коду. Якщо така необхідність виникає декілька разів, код можна просто скопіювати. Що ж робити, коли код необхідний досить часто?

· Сприйняття та усвідомлення нового матеріалу

Підпрограма(subroutine) - частина програми, яка реалізує певний алгоритм і дозволяє звертатися до неї з різних частин загальної(головної) програми.

Підпрограму часто використовують для скорочення розмірів програм у тих задачах, у процесі розв'язування яких необхідно виконати декілька разів однаковий алгоритм при різних значеннях параметрів. Оператори(команди), які реалізують відповідну підпрограму, записують один раз, а в необхідних місцях розміщують оператори передавання керування на цю програму.

Процедури користувача в Delphi

Під час творення програм можна включати до проекту процедури, не пов'язані з подіями. Такі процедури називаються процедурами користувача.

Процедура користувача, як й інші процедури, - це відокремлена частина програми, яка має своє ім'я та може бути викликана для виконання в будь-якій іншій частині програми.

Процедури користувача можуть бути:

Без аргументів і без результатів;

З аргументами і без результатів;

Без аргументів і з результатами;

З аргументами і з результатами;

Аргументи процедури - це змінні, які отримують свої значення в команді виклику перед початком виконання команд процедури.

Результати процедури - це змінні, які передають свої значення з процедури певним змінним у команді виклику процедури.

Найчастіше використовують процедури останнього типу. Загальний вигляд процедур у Delphi такий:

Procedure<ім'я>(<списки аргументів з їхніми типами>; var <списки результатів з їхніми типами>);

Var (<списки локальних змінних процедури з їхніми типами>);

Begin

<команди>

End;

Загальний вигляд команди виклику процедури з аргументами і результатами такий:

<ім'я>(<списки виразів, значення яких передаються аргументам процедури>,<списки змінних, яким передають свої значення результати процедури>);

У команді виклику процедури порядок виразів, значення яких передаються аргументам процедури, і змінних, яким передають свої значення результати процедури, повинен строго відповідати порядку запису аргументів і результатів процедури в рядку її заголовка.

Приклад 1.Скласти програму знаходження площі чотирикутника за його сторонами та діагоналлю, використовуючи підпрограму обчислення площі трикутника за формулою Герона.

Нехай сторони чотирикутника a,b,c,d, а діагональ - m. Знайдемо площу чотирикутника як суму площ двох трикутників.

1.В основній програмі викликати підпрограму geron для обчислення площі першого трикутника можна, наприклад, такою командою geron (6, 12,10,s1). Змінні x,y,z отримають значення x:=6;y:=12;z:=10, в підпрограмі знаходиться площа першого трикутника, результат обчислень в основній програмі заноситься в s1; при повторному зверненні до підпрограми geron (6, 8, 10,s2). формальним параметрам х, у,z надаються значення x:=6;y:=8;z:=10, в підпрограмі знаходиться площа другого трикутника, результат обчислень в основній програмі заноситься в s2. Площу чотирикутника знаходять як суму площ трикутників: s:=s1+s2;

Параметри, які передаються у процедуру чи функцію при її виклику, називаються фактичними(знаходяться в точці виклику).

Параметри, що вказуються у заголовку підпрограми і які при її виконанні набувають значень фактичних параметрів, називаються формальними.

2. Формальні параметри процедури geron розділені на дві групи:

a) першах, у, z - це довжина сторін трикутника, які передаються в підпрограму для виконання обчислень. Ці параметри називаються параметрами- значеннями і описуються без зарезервованого слова var.

b) друга група містить один параметр f - обчислену площу. Його значення буде «забиратися» з процедури, а тому цей параметр при описіповинен починатися з зарезервованого слова var і називається він параметром - змінною.

Функції користувача в Delphi

Як зазначалося вище, процедура може не мати результатів, а може мати один або більше результатів. Якщо процедура має один результат, то її зручніше оформити і викликати як функцію користувача.

Функція користувача, як і процедура користувача - це відокремлена частина програми, яка має своє ім'я та може бути викликана для виконання в будь-якій іншій частині програми.

Відрізняється функція від процедури таким:

1. Рядок заголовка функції виглядає так:

Function<ім'я > (списки аргументів з їхніми типами >):<тип результату>;

2. Значення, яке функція повинна повернути(передати) команді, яка її викликає, у тексті самої функції має бути присвоєно змінній, ім'я якої збігається з іменем функції.

3. Функція може бути викликана або в правій частині команди присвоєння, або в команді виведення.

Приклад 2.Скласти програму знаходження значення функції:

Z:=x! - y!

Оскільки значення факторіалу - це число, підпрограму можна оформити як функцію. Назвемо її factorial.

Function factorial(n:integer):longint;

Var i:integer; f:longint;

Begin

F:=1;

For i:=1 to n do f:=f*i;

Factorial:=f;

End;

В основній програмі при зверненні до функції factorial перший раз формальному параметру надається значення х factorial(x), в підпрограмі знаходиться х! і результат повертається в основну програму, потім при повторному зверненні до функції factorial параметру n присвоюється значення y factorial(y); і в підпрограмі обчислюється y!, результат повертається в основну програму. На завершенні змінній z:= factorial(x)- factorial(y), тобто z:= x!-y!.

Стандартні процедури та функції в Delphi

У мові програмування Delphi можна використати великий набір стандартних процедур і функцій, призначених для виконання різноманітних операцій над числами, текстами, елементами керування, графічними об'єктами, файлами та ін.

Приведемо приклади стандартних функцій у Delphi


Навчальний матеріал пояснюється на реальному прикладі.

Створити проект для обчислення Z:=x! - y! При x=5,y=3.

Код проекту:

unit UFUN;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

function fact(n:integer):longint;

Var i:integer; f:longint;

Begin

F:=1;

For i:=1 to n do f:=f*i;

Fact:=f;

End;

procedure TForm1.Button1Click(Sender: TObject);

var x,y:integer;z:longint;

begin

x:=STRTOINT(edit1.Text);

y:=StrToint(edit2.Text);

z:=fact(x)-fact(y);

Edit3.text:=IntToStr(z);

end;

end.

VI.Первинне закріплення знань

Практичне завдання.

Інструктаж із техніки безпеки.

  • Запишіть заголовок процедури з іменем stepin, аргументами якої є змінна a дійсного типу і змінна b цілого типу, а результатом - змінна с дійсного типу, і приклад команди її виклику.

2. Запишіть процедуру з іменем simp, яка здійснює перевірку, чи є дане натуральне число простим і повертає як результат значення змінної f логічного типу ознаку того, чи є число простим, і значення змінної k цілого типу - кількість дільників даного числа.

3. Запишіть заголовок функції з іменем length, аргументами якої є чотири змінні цілого типу, а результат має дійсний тип, і приклад команди її виклику.

4. Запишіть функцію, яка виконує обчислення довжини відрізка за відомими координатами його кінців. Запишіть команду виклику цієї функції для обчислення довжини відрізка а з координатами кінців (0; 0) та (20; 30).

5. Створіть проект, у якому можна знайти максимальне із чотирьох заданих різних цілих чисел. Використайте функцію для знаходження більшого з двох заданих цілих чисел. Створіть у власній папці папку Проект 25 і збережіть у ній проект.

· Підбиття підсумків уроку

Здійснюється за допомогою інтерактивних вправ, створених в програмі Smart NoteBook

VIII. ДОМАШНЄ ЗАВДАННЯ.

1.Опрацювати конспект уроку та розділ підручника 2.10. Виконати завдання, завантажені в додатку ClassRoom.

Низький рівень

Запишіть заголовок функції з іменем stepin, аргументами якої є змінна a дійсного типу і змінна b цілого типу, а результат дійсного типу.

Середній рівень

Запишіть процедуру з іменем square, яка виконує обчислення площі трикутника за відомими довжинами його сторін, значення яких передаються до процедури як аргументи. Для обчислення площі використайте формулу Герона.

Достатній рівень

Створіть проект, у якому для двох заданих на площині точок з цілими координатами визначається, чи лежать вони в одній координатній чверті. Використайте процедуру для визначення координатної чверті, у якій розміщена точка із заданими координатами. Створіть у власній папці папку Проект 2.10.4 і збережіть у ній проект.

Високий рівень

Запишіть функцію, в якій обчислюється значення факторіалу заданого натурального числа n (n! = 1 × 2 × 3 × ... × n). Запишіть команду використання цієї функції для обчислення суми факторіалів перших п'яти натуральних чисел.