Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Interface




END.

BEGIN

END.

BEGIN

Внутренние и внешние процедуры и функции

ЛАБОРАТОРНАЯ РАБОТА № 5

Контрольные вопросы

1. Что понимают под комбинированным типом данных?

2. Как объявить тип запись?

3. Как объявить переменную типа запись?

4. Как объявить массив записей?

5. Как обратиться к полю записи?

6. Объясните для чего и как используют оператор над записями?

7. В чем сходство и в чем различие массива и записи?

1.Цель работы :

Разработка программ на языке Паскаль, использующих процедуры и функции.

2.Краткая теория:

При программировании часто возникают ситуации когда группа операторов повторяется. Эту проблему в ряде случаев можно упростить, за счет использования циклов, но иногда использование циклов невозможно или не целесообразно. Кроме того, для эффективного использования принципов структурного программирования на которые ориентирован ТУРБО ПАСКАЛЬ и прозрачности программы лучше использовать подпрограммы.

Подпрограмма – эта группа операторов программы, решающих некоторую подзадачу из поставленной на программирование задачи. Подпрограмма может вызываться из основной программы несколько раз.

Паскаль позволяет использовать два вида подпрограмм: процедуры и функции.

Процедура отличается от функции тем, что может возвращать в основную программу несколько значений, в то время как функция возвращает только одно значение – значение самой функции.

Процедуры и функции в Турбо Паскале могут быть внутренними и внешними.

Внутренние процедуры описываются в разделе описания процедур и функций основной программы.

Внешние процедуры оформляются в виде автономно компилируемых модулей.

Формат описания процедур:

PROCEDURE < имя проц > (список форм. парам);

Разделы описания

Раздел операторов

Имя проц. - имя процедуры, любое имя задаваемой программистом, обычно соответствующим назначению процедуры, состоящее из латинских букв и цифр 0-9.

Разделы описания совпадают с соответствующими разделами описания в основной программе и могут содержать описания типов, меток, констант, присоединение модулей, описания переменных, процедур и функций.

Список формальных параметров – перечень параметров используемых в процедуре.

Формат вызова процедуры:

Имя процедуры( список фактических параметров);

Вызов процедуры осуществляется по ее имени.

Список фактических параметров – это перечень величин передаваемых в процедуру для обработки.

Список формальных и список фактических параметров должны совпадать по количеству величин и типы соответствующих величин тоже должны совпадать.

Пример 1: Пусть необходимо вывести на экран, в виде таблицы 10 значений X и f(X) при X=1,05 с шагом h=0,1

f(X)=(X-5)(X-2)X

a) программа без использования процедуры:

PROGRAM PROG1;

VAR X, Y: REAL;

I: BYTE;

BEGIN

WRITELN(‘-------------------------------’);

WRITELN(‘! X! f(X)!’);

WRITELN(‘-------------------------------’);

X:=1,05; h:=0,1;

FOR I:=1 TO 10 DO

BEGIN

F:=(X-5)*(X-2)*X;

WRITELN(‘!’,X:4:2,’!’,F:6:2,’!’);

X:=X+h;

END;

WRITELN(‘-------------------------------’);

END.

b) программа и использованием процедуры

PROGRAM PROG2;

VAR X, Y: REAL;

I: BYTE;

PROCEDURE RASCET;

BEGIN

F:=(X-5)*(X-2)*X;

WRITELN(‘!’,X:4:2,’!’,F:6:2,’!’);

X:=X+h;

END;

PROCEDURE SHAPKA;

BEGIN

WRITELN(‘-------------------------------’);

WRITELN(‘! X! f(X)!’);

WRITELN(‘-------------------------------’);

END;

BEGIN

SHAPKA;

X:=1,05; h:=0,1;

FOR I:=1 TO 10 DO

RASZET(X,h);

WRITELN(‘-------------------------------’);

END.

Формат описания функций:

FUNCTION имя функ. (список форм. параметров);

Разделы описания

Раздел операторов

Имя функции – любое имя задаваемой программистом, обычно соответствующим назначению процедуры, состоящее из латинских букв и цифр 0-9.

Разделы описания совпадают с соответствующими разделами описания в основной программе и могут содержать описания типов, меток, констант, присоединение модулей, описания переменных, процедур и функций.

Список формальных параметров – перечень параметров используемых в функции.

Формат вызова функции:

Имя функции (список фактических параметров);

Список фактических параметров соответствует аналогичному понятию в вызове процедур, и должен соответствовать списку формальных параметров в описании функции.

Пример 2: Для рассмотренного выше примера составим программы с использованием функции:

PROGRAM PROG1;

VAR X: REAL;

I: BYTE;

FUNCTION F(X:REAL):REAL;

BEGIN

F:=(X-5)*(X-2)*X;

END;

BEGIN

WRITELN(‘-------------------------------’);

WRITELN(‘! X! f(X)!’);

WRITELN(‘-------------------------------’);

X:=1,05; h:=0,1;

FOR I:=1 TO 10 DO

BEGIN

WRITELN(‘!’,X:4:2,’!’,F(X):6:2,’!’);

X:=X+h;

END;

WRITELN(‘-------------------------------’);

END.

В подпрограммах используются параметры которые могут быть параметрами-значениями и параметрами-переменными.

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

Параметры-переменные: при вызове подпрограммы передаются как ячейки памяти, то есть непосредственно в подпрограмму, поэтому такие параметры в процессе выполнения подпрограммы могут изменяться.

Если переменные описаны в программе, то они могут использоваться в пределах этой программы. Такие переменные являются глобальными для всех подпрограмм, вызываемых в этой программе.

Если переменные описаны в некоторой подпрограмме, то они могут использоваться только в пределах этой подпрограммы. Для основной программы они не доступны. Такие переменные называются локальными.

Часто при программировании нескольких прикладных программ возникает ситуация когда в разных программах используются одинаковые по назначению процедуры или функции. В таких ситуациях удобно использовать внешние процедуры и функции, оформленные в виде отдельного программного модуля.

Модуль – автономно компилируемая программная единица. С их помощью можно разрабатывать библиотеки прикладных программ.

Общая структура модулей:

UNIT имя модуля;

Интерфейсная часть




Поделиться с друзьями:


Дата добавления: 2014-12-17; Просмотров: 400; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.026 сек.