пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

2 курс 2 семестр:
» Математика
2 курс 1 семестр:
» Математ
» Химия
» ИМХ
» Физика
1 семестр:
» хим
» Математика
» Физика
» Информатика

Процедурное программирование. Понятие подпрограммы.

Процедурное программирование. Понятие подпрограммы.

Языки программирования, ориентированные на операционную си-
стему MS DOS, относятся к категории процедурных языков программи-
рования (ALGOL, Фортран, Бейсик (MSX, GW, Q), Паскаль, Си). Про-
граммы, написанные на процедурных языках, представляют собой по-
следовательность операторов – инструкций, которые выполняются одна
за другой по тексту программы. Для небольших программ при этом не
требуется какой-то дополнительной организации, но если размер про-
граммы большой, то ее текст становится громоздким и неудобным для
восприятия человеком - неструктурированным. Для структурирова-
ния таких программ их разбивают на отдельные блоки, которые
называют подпрограммами.
Каждая подпрограмма имеет свое имя и выполняет некоторую за-
конченную последовательность действий. Если последовательность дей-
ствий выполняется над некоторыми переменными, то после имени под-
программы указывают имена этих переменных - параметры. Обраще-
ние к подпрограмме (ее вызов) происходит по имени, после которого
указывают значение параметра.
В небольших программах подпрограммы удобно использовать в тех
случаях, когда одинаковые действия, выполняемые группой операторов
над значениями некоторых переменных, требуется выполнить несколько
раз в различных местах программы. В этом случае использование под-
программ дает возможность сократить текст программы, т.к. соответ-
ствующая последовательность действий записывается один раз, а вызы-
вается несколько раз (рис.4.1):

xQW4pPZkiAw.jpg

В некоторых языках программирования вместо термина подпро-
грамма используется термин процедура (Pascal). Кроме того, частным
случаем подпрограммы (процедуры) является функция. Функция – это
подпрограмма, в результате работы которой получается одно скаляр-
ное значение и оно присваивается имени функции.
В процедурном программировании существуют два типа данных
(переменных): ЛОКАЛЬНЫЕ и ГЛОБАЛЬНЫЕ. Переменные, опи-
санные в основной программе, называют глобальными переменными.
Переменные, описанные в подпрограмме (процедуре), называются ло-
кальными переменными.
Локальные данные находятся внутри подпрограммы и предназна-
чены для использования только этой подпрограммой. Локальные данные
недоступны никому, кроме самой подпрограммы (ни основной програм-
ме, ни другой подпрограмме) и не могут быть изменены другими под-
программами. Если возникает необходимость совместного использова-
ния одних и тех же данных несколькими подпрограммами, то такие дан-
ные должны быть объявлены как глобальные. Любая подпрограмма име-
ет доступ к глобальным данным.
Проиллюстрируем это (рис. 4.2):

xg8fcB6c2a8.jpg

Рис.4.2 Локальные и глобальные переменные
Допускается любой уровень вложенности процедур и функций. Лю-
бая программа, процедура и функция представляет собой блок со своей
областью описаний и может содержать внутри этого блока описание
других процедур и функций, а так же обращений к ним.
Блок, содержащий в своем разделе описаний другой блок, называет-
ся внешним. Блок, содержащийся в разделе описаний другого блока,
называется внутренним или подблоком.
65
Объекты, описанные внутри какого-либо подблока, являются по от-
ношению к нему локальными и недоступны внешним блокам. Объекты,
описанные в некотором внешнем блоке, доступны и могут быть исполь-
зованы в любом его подблоке, то есть они являются глобальными по
отношению к этим подблокам. Только объекты, локальные для некото-
рого блока, являются глобальными для всех его подблоков (под объек-
тами понимаются имена констант, переменных, типов процедур и функ-
ций).
Схематически изобразим структуру блоков некоторой программы
(рис.4.3):re9aB0Kmw9I.jpg

Рис. 4.3 Вложенность процедур и функций
Здесь A – основная программа, B,C,D,E – подпрограммы (процеду-
ры или функции).
Переменные, описанные в А, являются глобальными по отношению
ко всем процедурам и функциям, описанные в С - глобальные для D и
т.д.. Процедура Е доступна в B, но недоступна в С и т.д.
Различают стандартные (встроенные) процедуры и функции, и
процедуры и функции, определяемые пользователем. Стандартные
процедуры и функции содержатся в библиотечных модулях системы
программирования. В языке Pascal (Delphi) эти модули подключаются к
программе при помощи ключевого слова
uses <имя модуля>.
Каждый модуль содержит в себе набор процедур и функций для
решения определенного класса задач. Например, в языке Pascal стан-
дартные арифметические функции содержатся в модуле system, который
автоматически подключается к любой программе. Модуль crt содержит
66
процедуры и функции для работы с текстовым режимом экрана и зву-
ком. Модуль graph (graphABC) содержит процедуры и функции для
работы с графикой. Соответственно для их подключения в программе на
Pascalе необходимо записать после имени программы следующую
строчку:
program <имя программы>;
uses crt, graphABC;
Кроме стандартных процедур и функций пользователь может разра-
батывать свои процедуры и функции. Они описываются в разделе опи-
саний основной программы и по своей структуре аналогичны программе
на языке Паскаль. После того, как эти процедуры и функции описаны
пользователем, можно обращаться к ним по имени (вызывать их) в ос-
новной программе также как и к стандартным процедурам и функциям.
Рассмотрим более подробно работу с процедурами и функциями,
определяемыми пользователем, в языке Паскаль.

 

 


29.06.2016; 21:01
хиты: 655
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь