КАТЕГОРИИ: Архитектура-(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) |
Структура процедур и функций
End. Begin END. BEGIN a:=5; WriteLn(a+k) Таким образом, программа на Паскале состоит из двух и только двух разделов: 1) выше BEGIN расположен раздел описаний, 2) ниже BEGIN расположен раздел выполняемых операторов. Выше этих двух разделов могут находиться две короткие строки, но о них чуть позже.
Приведем полный список служебных слов, после которых задаются описания: · Переменные описываются после служебного слова VAR · Метки описываются после служебного слова LABEL · Константы описываются после служебного слова CONST · Процедуры описываются после служебного слова PROCEDURE · Функции описываются после служебного слова FUNCTION · Новые типы, определяемые программистом, описываются после служебного слова TYPE Если программа на Паскале использует модули, то они должны быть перечислены выше раздела описаний после служебного слова USES. И наконец, программа может иметь заголовок, который состоит из служебного слова PROGRAM и в простейшем случае имени программы. Пример программы: PROGRAM Divan; USES Crt,Graph; Label met1,met2; Const k = 100; S = 'Хорошо!'; TYPE Kniga = array [1..k] of String; Tablitsa = array [0..20,1..10] of Integer; Minuta = 0..60; VAR x,y: Real; Uspevaemost: Tablitsa; PROCEDURE Torpeda...... FUNCTION Invers...... ....... Подпрограмма может не только обращаться к другим подпрограммам, но и иметь внутри себя свои собственные, внутренние, вложенные подпрограммы. Все эти подпрограммы описываются внутри данной подпрограммы, являются локальными в ней и не видны снаружи. Необходимость этого вытекает из желательности развязки отдельных частей больших проектов. Так, руководитель проекта может разделить проект на пять больших подпрограмм и поручить каждую отдельному руководителю. Те в свою очередь делят свои куски между подчиненными программистами, каждому поручая подпрограмму помельче, которая тоже в свою очередь нуждается в разбивке. В результате, если не использовать вложенности, проект оказывается разбит на несколько сотен маленьких равноправных подпрограмм. Нет никакой гарантии, что среди них не встретятся одноименные, и если бы вложенных подпрограмм не было, Паскаль обнаружил бы среди них одноименные и выдал ошибку. При использовании же вложенности это не страшно, так как подпрограммы с одинаковыми именами упрятаны внутрь более крупных подпрограмм и друг друга не видят. Каждая из пяти подпрограмм большого проекта может иметь большой объем и руководитель этой подпрограммы должен обладать всем набором средств Паскаля. Поэтому каждая подпрограмма может иметь и свои внутренние типы, метки, переменные, константы, процедуры и функции. Все эти объекты описываются внутри данной подпрограммы, являются локальными в ней и не видны снаружи. По сути структура подпрограммы копирует структуру программы за исключением того, что в подпрограммах запрещено писать USES. Приведу пример записи программы с вложенными подпрограммами: PROGRAM Hard; Uses... Label... Const... Type... Var... Procedure a1; Const... Var... Procedure a11; Label... Type... Var... begin ... end; Function f11 Var... begin ... end; begin ... end; Function f2; Procedure a21; begin ... end; begin ... end; begin ... end. Здесь в программу Hard входят процедура a1 и функция f2. В процедуру a1 вложены процедура a11 и функция f11. В функцию f2 вложена процедура a21. Из f2 видна a1, но не видны a11 и f11. Точно так же из a21 видны a1 и f2, но не видны a11 и f11. Это значит, что в теле процедуры a21может содержаться вызов a1и f2, но не может содержаться вызов a11и f11.
Дата добавления: 2014-12-27; Просмотров: 399; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |