Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



ЛІТЕРАТУРА

План.

1. Поняття підпрограми;

2. Підпрограми у мові програмування Pascal.

 

 

Систематичний підхід до програмування припускає підвищену увагу до аспектів, пов'язаних із структурою програми. Уявлення програми як сукупності (ієрархії) відносно відокремлених фрагментів із певними явно визначеними інтерфейсами сприяє більшій зрозумілості програми, дозволяє легко її модифікувати та перевіряти (в тому числі і автоматичними засобами) та нарешті призводить до підвищення якості та ефективності програм.

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

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

Таким чином, підпрограма – це частина програми, оформлена у вигляді окремої синтаксичної конструкції, яка має своє ім'я. “Виклик” підпрограми, тобто виконання дій, які задані в ній у вигляді операторів, може бути зроблений у деякому місці програми за допомогою указування імені цієї підпрограми.

Крім задавання послідовності дій будь-яка підпрограма може містити опис деякої сукупності локальних об'єктів – констант, типів, змінних і тощо. Ці об'єкти призначені для організації дій в підпрограмі та мають зміст тільки всередині даної підпрограми.

Нарешті, підпрограма може бути розроблена для різноманітних випадків застосування. Інакше кажучи, перед виконанням підпрограми можна передати їй деяку інформацію із пункту виклику, “налагодивши” її відповідним чином. Таке “налагодження” підпрограми реалізується за допомогою поняття параметри і сприяє більшій гнучкості та універсальності механізму підпрограм. Крім того, явна передача інформації через параметри послаблює взаємну залежність підпрограм та пунктів їх виклику, що вважається позитивним фактором при розробці програм.

На мові Pascal механізм підпрограм реалізовано у вигляді процедур та функцій.

Структура підпрограми майже буквально повторює структуру всієї Pascal-програми. При описі підпрограми у загальному випадку необхідно задати три основні компоненти:

інтерфейс програми, тобто інформацію, яка необхідна для її виклику (активізації);

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

самі дії (оператори), які складають зміст програми.

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

Процедури

 

На мові Pascal є два види підпрограм – процедури та функції. Маючи один і той же зміст та аналогічну структуру процедури та функції різняться призначенням та способом їх використання.

Кожну процедуру можна розглядати як програму, що описує розв'язок окремої підзадачі, на які поділяється вся задача. В програмі процедури задаються описами, які поміщаються після розділу опису змінних. Опис процедури складається із заголовка, описової та виконуваної частин.

Заголовок процедури починається службовим словом procedure та має вигляд:

 

Procedure <ідентифікатор> (список формальних параметрів);

Ідентифікатор – це ім'я процедури, за яким потім буде виконуватись її виклик. У спискові формальних параметрів перелічуються імена формальних параметрів (ідентифікаторів) та вказуються їх типи. Кожен з параметрів, що вказані у заголовку, є локальним в даній процедурі, локальними також є і всі змінні, що описані в даній процедурі. Ідентифікатори формальних параметрів можна вважати умовними позначеннями в тілі процедури тих реальних фактичних параметрів, які будуть передаватись в процедуру під час її виклику.

Список може містити декілька груп параметрів. Якщо груп декілька, то вони розділяються між собою крапкою з комою “;”. Формальні параметри є аргументами та результатами процедури. Заголовки процедур можуть бути, наприклад, такими:

Procedure proc1 (x,y:real);

Procedure proc2 (x:integer; y:real);

Procedure proc3 (i:integer; var f:longint);

Procedure proc4 (var a,b,c,d:real);

Формальні параметри можуть бути відсутніми. Тоді заголовок процедури матиме вигляд:

 

Procedure <ідентифікатор>

Це означає, що процедура не має ніяких ні вхідних ні вихідних параметрів, а результатами її роботи є, наприклад, чистий екран (процедура clrscr).

Описовий блок процедури складається із тих же розділів, що і основна програма, тобто на початку блоку дається опис міток, констант, змінних та інших процедур і функцій, котрі використовуються тільки в даній процедурі. Вони називаються локальними. Це означає, що відповідні імена об'єктів мають зміст лише всередині тексту процедури, він і є областю дії цих ідентифікаторів.

Останнім блоком процедури є виконуваний блок, всі оператори котрого знаходяться між операторними дужками (begin-end). Блок операторів процедури закінчується символом “;”. Звертання до процедури здійснюється за допомогою оператора процедури, який має вигляд:

 

<ідентифікатор> (список фактичних параметрів);

де ідентифікатор – ім'я процедури. Наприклад, proc1(a,b). Якщо заголовок процедури не містить параметрів, то вони відсутні також і в операторі процедури. Наприклад, clrscr;.

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

Наприклад, напишемо програму, яка б обчислювала значення виразу (x-3)5/4+x0,5 для x=8 та x=34,9.

Program P1;

var

x,y : real;

procedure calc(a:real;var b:real);

begin

b:=exp(5*log(x))/(4+sqrt(x));

end;

begin

x:=8;

calc(x,y);

write(‘y= ’,y);

x:=34.9;

calc(x,y);

write(‘y= ’,y);

end.

В ній ми використали процедуру calc, яка обчислює значення заданого виразу для різних .

Параметри бувають двох видів: параметри-значення та параметри-змінні. Пізніше ми розглянемо їх докладніше.

Параметри-значення

 

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

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

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

Procedure Squareroot(x,y:real);

Begin

x:=sqrt(x);

y:=sqrt(y);

Writeln(‘Різниця коренів дорівнює ’,x-y);

End;

Виклик цієї процедури може виглядати так:

Var

a,b:real;

Begin

a:=45.987;

b:=34.3456;

Squareroot(a,b);

. . .

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

Функції

 

На мові Pascal крім процедур використовується ще один вид підпрограм – функції. Зміст функції полягає в задаванні алгоритму обчислення деякого значення та організації повернення у місце виклику. Повернення обчисленого значення організовується так. У тілі функції повинен бути присутній оператор присвоювання спеціального виду, в лівій частині якого повинен вказуватись ідентифікатор, який співпадає з ім'ям функції, а в правій частині – вираз, що обчислює значення яке треба повернути. Тип виразу в правій частині повинен бути сумісним з типом, що вказаний в її заголовку, тобто типом функції. Якщо в процесі виконання функції не виконано таке присвоювання, то значення функції вважається невизначеним.

Заголовок функції починається службовим словом function та має вигляд:

 

function <ідентифікатор> (список параметрів):<тип значення>;

У спискові параметрів перелічуються формальні параметри функції. Список може містити декілька груп параметрів. Якщо груп декілька, то вони розділяються між собою крапкою з комою “;”. Наприклад,

function f1 (x:real; y:integer):integer;

function f2 (var a,x:real):real;

function f3 (p:integer):char;

Відповідний описовий блок функції аналогічний до того ж блоку процедури. Відносно параметрів функції теж спостерігається повна аналогія із процедурами.

Наведемо приклад функції, що обчислює мінімальне число з двох:

Function minimum(x,y:integer):integer;

Begin

If x then minimum:=x

else minimum:=y;

End;

Функцію minimum можна використовувати як для присвоювання (наприклад, a:=minimum(m,n)), так і у виразах. Наприклад,

r:=minimum(a+6,b+sqr(34))+10*minimum(a*b,67).

Приведемо приклад програми, яка використовує функцію minimum. Програма знаходить найменше число з трьох.

Program P;

Var

a,b,c,d:integer;

Function minimum(x,y:integer):integer;

Begin

If x then minimum:=x

else minimum:=y;

End;

Begin

Write(‘Введіть числа a, b, c ’);

Readln(a,b,c);

d:=minimum(a,b);

d:=minimum(c,d);

Writeln(‘Найменше з введених чисел - ’, d);

End.

Завершення підпрограм

 

Робота процедури чи функції завершується після виконання останнього її оператора. Pascal не містить спеціальних засобів для її передчасного завершення. Але Turbo Pascal має такий засіб переривання виконання підпрограми в будь-якому її місці. Для цього призначена процедура Exit без параметрів, яка миттєво завершує виконання підпрограми та повертає керування у місце виклику. Необхідно пам'ятати, що перед викликом Exit в тілі функції обов'язково повинен бути присутнім оператор присвоювання з ідентифікатором функції в лівій частині.

Наприклад,

Procedure Proc(x,y:real; var r:real);

Begin

If y-x<=1e-5 then exit

else r:=sqr(y)-sqrt(x);

End;

Якщо виклик процедури Exit був з основної програми, то програма теж буде миттєво завершена.

 

  1. А. Ю. Гаевский Информатика 7-11 кл.: Учебное пособие =2-е изд., доп. – К.: А.С.К., 2006 – 536 с.: ил.
  2. В.З. Фигурнов. ІВМРС для пользователя. 7-я версия. М. «ИНФРА М»1997 С.480
  3. И.Т. Зарецкая, Б.Г. Колодяжньїй, А.Н. Гуржий, А.Ю. Соколов Информатика. 10-11 кл.Киев «Форум» 2001 с.495
  4. В.С. Новичков, Н.И. Панфилова , А.Н.Пьількин Алгоритмические язьїки в техникуме. Паскаль. Москва «Вьісшая школа» 1990 ст.223
  5. В.В. Фаронов. ТигЬо Разсаі 7.0. Начальний курс. Учебное пособие. . "Нолидж" 1999 г. с.616
  6. С. Симонович, Г. Евсеев, А. Алексеев. Специальная информатика. Учебное пособие. Универсальньш курс. М. АСЇпресс. 1999 г. с.480
  7. А.В. Потапкин. Операционная система МИООХУЗ 95. Русская версия. Руководство к действию. М. "ЗКОМ" 1998 г. с.432
  8. Л.И. Щеголева, А.Ф. Давьідов. Основьі вьічислительной техники и Программирования. Ленинград. Знергоиздат. 1981 г. с.253
  9. В.Д. Руденко, О.М. Макарчук,М.О. Патланжоглу. Практичний курс Інформатики. За редакцією академіка АПН України Мадзігона В.М. Рекомендовано Міністерством освіти України як навчально-методич­ний посібник. К. Фенікс. 1997 г. с.304
  10. А.Ф.Верлань, Н.В.Апатова. Информатика. Киев "Форум" 2001 г. ст.255
  11. С. Симонович, Г. Евсеев. Практическая информатика. Учебное пособие. Универсальньш курс. М. АСТпресс. 1999 г. с.480
  12. Г.А.Ковриженко " Системьі счисления и двоичная арифметика" Киев " Радянська школа" 1984 г. ст.78

Читайте також:

  1. ВИКОРИСТАНА ЛІТЕРАТУРА
  2. ВИКОРИСТАНА ЛІТЕРАТУРА
  3. ДОДАТКОВА ЛІТЕРАТУРА
  4. ДОДАТКОВА ЛІТЕРАТУРА
  5. ДОДАТКОВА ЛІТЕРАТУРА
  6. ЛІТЕРАТУРА
  7. ЛІТЕРАТУРА
  8. ЛІТЕРАТУРА
  9. ЛІТЕРАТУРА
  10. ЛІТЕРАТУРА
  11. ЛІТЕРАТУРА
  12. ЛІТЕРАТУРА




Переглядів: 615

<== попередня сторінка | наступна сторінка ==>
Підпрограми у мові програмування Pascal. | Системний блок

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.078 сек.