Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Процедуры




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

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

В языке Turbo Pascal существуют 3 типа программных единиц:

- основная программа (начинающаяся заголовком Program),

- функция (заголовок Function),

- процедура (заголовок Procedure).

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

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

Очевидно, что вызывающая программная единица и подпрограмма должны обмениваться информацией, т.е. часть переменных должна быть доступна в них обеих. Остальные переменные должны быть локализованы в своих программных единицах (быть недоступными из других подпрограмм). Поэтому все переменные, константы, типы данных могут быть или глобальными, или локализованными в программной единице. Метки всегда локальны в каждой подпрограмме. Все переменные основной программы, глобальны по отношению к подпрограммам, описанным в этой программе, если в подпрограммах не заведены (не описаны повторно) переменные с такими же именами.

Процедура представляет собой некоторую последовательность действий, реализующую определенную задачу, причем эту группу действий можно неоднократно вызывать в программе в различных местах. Вызов (обращение к процедуре) осуществляется по имени процедуры, которое должно быть уникальным в программе. Хотя сама процедура при каждом вызове может выполнять фиксированный набор операторов, у нее есть возможность каждый раз обрабатывать новую группу данных. Указания, какие данные требуется обрабатывать при вызове процедуры, передаются ей через механизм параметров.

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

В отличие от основной программы, заголовок процедуры обязателен, он имеет вид:

PROCEDURE <имя процедуры>(<список параметров>);

Раздел описаний процедуры строится как раздел описаний основной программы, с учетом того, что все описанные переменные существуют только во время выполнения процедуры (локальные переменные) и никак не связаны с переменными вызывающей программы. Переменная, описанная в процедуре и такая же переменная (с тем же именем) основной программы представляют две различные ячейки памяти. Следует иметь в виду, что если во внешней программе переменная описана, а в процедуре - нет, ее использование в теле процедуры означает работу с переменной внешней программы (так называемые глобальные переменные). Обычно не рекомендуется использовать глобальные переменные, так как это снижает универсальность процедур и затрудняет отладку программ.

В выполняемом блоке процедуры (который должен быть заключен в скобки Begin.. End), описаны действия, которые при вызове процедуры, будут выполняться над локальными, глобальными переменными (если они есть), и над теми данными, которые будут переданы в процедуру через список параметров. В отличие от основной программы, выполняемый блок заканчивается символом ";", а не точкой.

В блок-схемах алгоритмов обращение к процедуре изображается прямоугольником с двойными вертикальными сторонами и именем процедуры внутри этого прямоугольника:

 

 

 
 

 





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


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


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



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




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