КАТЕГОРИИ: Архитектура-(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) |
Процедуры
ПРОЦЕДУРЫ И ФУНКЦИИ ПОЛЬЗОВАТЕЛЯ Если в программе возникает необходимость частого обращения к некоторой При вызове подпрограммы (процедуры или функции), определенной программистом, работа главной программы на некоторое время приостанавливается и начинает выполняться вызванная подпрограмма. Она обрабатывает данные, переданные ей из главной программы. По завершении выполнения подпрограмма-функция зозвращает главной программе результат (подпрограмма-процедура не возвращает ibho результирующего значения). Передача данных из главной программы в подпрограмму и возврат результата выполнения функции осуществляются с помощью параметров. Параметром называется переменная, которой присваивается некоторое значение в рамках указанного применения. Различают формальные параметры — параметры, определенные в заголовке подпрограммы, и фактические параметры — выражения, задающие конкретные значения при обращении к подпрограмме. При обращении к подпрограмме ее формальные параметры замещаются фактическими, переданными из главной программы. Механизм передачи параметров рассмотрим далее. ' Описание процедуры включает заголовок (имя) и тело процедуры. Заголовок состоит из зарезервированного слова procedure, идентификатора (имени) процедуры и необязательного, заключенного в круглые скобки, списка формальных параметров с указанием типа каждого параметра. Имя процедуры — идентификатор, уникальный в пределах программы. Тело процедуры представляет собой локальный блок, по структуре аналогичный программе. Общая структура описания процедур и функций иллюстрируется следующими синтаксическими диаграммами. Описание процедуры: Описание функции: Заголовок процедуры: Заголовок функции: Описания меток, констант, типов и т. д. действительны только в пределах данной процедуры. В теле процедуры можно использовать любые глобальные константы и переменные. В качестве примера опишем процедуру, которая прерывает, выполнение про В данной процедуре пользователя использована переменная Msg типа string, в которой хранится текст сообщения о характере ошибки, вызвавшей прерывание программы. Для прерывания выполнения программы используется стандартная процедура Halt из стандартного библиотечного модуля System. Процедура не может выполниться сама, ее необходимо вызвать по имени и указать фактические параметры того же типа, что и формальные. Количество и тип формальных параметров равны количеству и типу фактических параметров. В качестве примера приведем фрагмент программы, в котором используется описанная выше процедура Abort: В разделе описания программы описываются константа Limit, ограничивающая количество вводимых чисел; в разделе описания переменных описываются переменные Count, Item, Sum типа integer. Затем в блоке описания записана директива компилятору {$1 ABORT.PAS}, указывающая, что при компиляции данной программы в нее нужно включить в качестве процедуры программу ABORT.PAS. В начале программы обнуляются значения количества введенных чисел Count и их сумма Sum. Потом выполняется цикл, пока очередное вводимое число меньше предельного, заданного значением константы Limit. Сначала устанавливается номер очередного числа, затем на экран выводится приглашение "Введите 1—е (2—е и т.п.) число", считывается значение числа с клавиатуры в переменную Item. Затем проверяется условие Item<0. Если условие выполняется, то вызывается внешняя процедура Abort, которой передается фактический параметр-значение "введено отрицательное число". Это значение присваивается формальному параметру Msg процедуры Abort. Процедура Abort выводит на экран сообщение "Ошибка: и печатает текст сообщения — значение параметра Msg "введено отрицательное число", после чего вызывает стандартную процедуру Halt(l), которая прерывает выполнение программы. Если условие Item<0 не выполняется, то значение суммы Sum увеличивается на значение введенного числа Item, и управление передается в заголовок цикла для проверки условия Count < Limit. Если условие соблюдается, то тело цикла выполняется еще раз, иначе цикл завершается, а управление в программе передается на оператор, следующий за циклом, т. е. за резервированным словом end;, обозначающим окончание составного оператора в теле цикла. После этого на экран выводится сообщение "Сумма введенных чисел равна" и печатается значение переменной Sum. На этом выполнение программы завершается. Упражнение 1. Запустите интегрированную среду программирования. Введите в первое окно редактора текст программы DemoProc, а во второе окно — текст процедуры Abort и запишите файлы на диск под соответствующими именами. Примечание. Чтобы открыть новое окно в пункте File главного меню интегрированной среды программирования, выберите опцию New. Для перехода из одного окна в другое нажимайте F6. Откомпилируйте файл DemoProc. Если появятся сообщения об ошибке, внесите исправления и откомпилируйте вновь. После того как компиляция выполнится успешно, задайте для просмотра в окне отладчика величины Sum, Item и выражение Count < Limit. Для того чтобы одновременно на экране наблюдать окна с текстами программы и процедуры, а также окно просмотра значений переменных в пункте Window главного меню интегрированной среды, задайте опцию Tile. Нажатием клавиши F7 запустите программу на исполнение в пошаговом режиме с заходом в процедуры. Экран компьютера будет выглядеть, как показано на рис. 7.1. Нажимая клавишу F7, наблюдайте за значениями переменных и выражениями в окне просмотра. В ответ на запрос "Введите число" введите отрицательное число и обратите внимание на соблюдение условия Item < 0, вследствие чего из основной программы вызывается процедура Abort. При этом в формальный параметр процедуры — переменную Msg передается значение сообщения "Введено отрицательное число". Результатом действия процедуры будет вывод на экран сообщения "Ошибка: введено отрицательное число" и прерывание работы программы. Как видно из примера, параметры обеспечивают механизм замены, который "озволяет выполнять процедуру с различными строковыми сообщениями. Если процедура возвращает в программу какие-то значения, соответствующие переменные должны быть описаны, как параметры-переменные с использованием:лова var (см. Параметры).
Дата добавления: 2015-05-09; Просмотров: 526; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |