- •Основы алгоритмических языков программирования Понятие о языках программирования. Современные языки программирования высокого уровня
- •Лексические единицы языков программирования
- •Интегрированные среды разработки программ
- •История развития технологии vba
- •Интегрированная среда разработки vba
- •Составные части vba-проекта. Добавление пользовательского кода
- •Вывод отладочных сообщений. Пошаговое выполнение и инструменты отладки
- •Концепция памяти. Переменные и их декларация в языках программирования
- •Управляющие структуры выбора
- •Структурные операторы в алгоритмических языках программирования
- •Данная логическая операция имеет следующую таблицу истинности, в которой «0» соответствует значению false, а «1» – true (табл 1).
- •Остальные логические операторы являются двухоперандными. Операция логического умножения and имеет следующую таблицу истинности (табл 2):
- •Наконец операция логического исключающего или представляется следующей таблицей истинности (табл 4):
- •Реализация управляющих структур выбора в vb
- •Циклические управляющие структуры
- •Реализация циклических управляющих структур в vb
- •Цикл с постусловием имеет похожий синтаксис:
- •Основные положения процедурного программирования
- •Реализация процедурного программирования в Visual Basic
- •Фундаментальные структуры данных
- •Массивы в vb
- •Агрегация разнородных типов. Структурные типы данных
- •Тип данных определяемый пользователем в vb
- •Основы объектно-ориентированного программирования
- •Реализация основных идей объектно-ориентированного программирования в языке vb. Поля и методы. Конструирование объекта класса. Адресная природа объекта класса
- •Свойства и события в vb. Связь объекта класса и его клиентов
- •Интерфейс класса в vb и его наследование
Основные положения процедурного программирования
Главной проблемой структурного программирования и алгоритмических языков первых поколений стало отсутствие языковых средств структурирования исходного текста и, как следствие, крайне большая избыточность кода программ. Решением этих задач стало введение в языки программирования понятия подпрограммы как фундаментального средства ее структурирования. Подпрограмма – это средство представления исходного кода в виде логически связанных, но самостоятельных программных единиц, каждая из которых решает небольшую специфическую алгоритмическую задачу. Подпрограммы в общем случае бывают двух видов: процедуры(procedure) ифункции(function).
Подпрограмма представляет собой особым образом оформленный фрагмент исходного кода, имеющий собственный идентификатор, ограничивающий область видимости своих внутренних объектов. Упоминание идентификатора подпрограммы в исходном тексте приводит к активизации подпрограммы и называется ее вызовом(call). Сразу после активизации подпрограммы, распределяется память под ее внутренние переменные и начинают выполнятся входящие в нее операторы. После окончания выполнения последнего из них управление передается обратно вточку вызова подпрограммы (invocation point) и продолжают выполняются операторы, стоящие непосредственно за оператором вызова подпрограммы (рис. 13).
Подпрограмма может быть вызвана из других фрагментов кода множество раз. При этом ее код не копируется в точку вызова и существует в единственном экземпляре, что позволяет существенным образом сократить объем программы, путем выделения в ней некоторого количества подпрограмм.
Для обмена информацией между основной программой и подпрограммой используется один или несколько параметров вызова(call parameter). Параметр представляет собой некоторое значение, которое передается в подпрограмму и используется в ней посредством своего идентификатора. Синтаксически передача параметров выражается путем указания в операторе вызова после имени подпрограммы непосредственных значений параметров (в виде литералов) или идентификаторов переменных, которые задают значение этих параметров.
Процедура – это подпрограмма, которая не возвращает слева от себя какое-либо значение и применяется для выполнения некоторых алгоритмических действий. В следующем примере показан вызов процедуры, первый параметр в которую передается в виде непосредственного значения, а второй в виде переменной:
// вызов процедуры DoSomething
DoSomething (12, x); // Pascal
Параметры передаваемые в виде переменных могут быть использованы для передачи значения из вызываемой подпрограммы в вызывающую.

Рис. 13. Схематичная модель вызова подпрограммы
Напротив, функция, подобно переменной, может участвовать в выражениях и возвращает слева от себя некоторое значение заданного в ее определении типа.
// вызов функции sin, возвращающая значение вещественного типа
y := sin(10 * x + 10); // Pascal
Наряду с подпрограммой, другим важным понятием в парадигме процедурного программирования является принятие программного модуля(program module). Характерным для всех современных ЯП является то, что элементарные строительные блоки программы, представляющие собой простые и структурные операторы должны быть объединены в программу посредством структурных элементов следующего уровня. Таким элементом являются подпрограммы. В свою очередь подпрограммы включаются в состав модулей, которые и являются основной структурной единицей декомпозиции программы. Программа или говорят проект, в целом, конструируется из таких модулей исходного кода.
Программный модуль является средством структуризации программного проекта в целом. В самом общем случае, модуль предназначен для инкапсуляции(encapsulation), т.е. размещения внутри себя, набора из нескольких подпрограмм. Подпрограммы размещаются в модуле либо по признаку решения однотипных задачи, например, модуль с подпрограммами для обработки строк, модуль подпрограмм для работы с датами или модуль с математическими подпрограммами, либо модуль содержит в себе подпрограммы, реализующие части одной крупной алгоритмической задачи.
На уровне программного модуля в ЯП определено понятие видимости(visibility) подпрограммы, которое регламентирует доступность подпрограммы из других модулей программного проекта. Подпрограммы так же, как и переменные, объявленные в модуле, в самом простейшем случае могут быть либо доступны только внутри модуля (private) или доступны как внутри, так и вне модуля, т.е. в других модулях проекта (public).
Физически модуль программы представляет собой файл с исходным тестом подпрограмм, он имеет имя, на основании которого на подпрограммы внутри него ссылаются другие модули.
Подробно остановимся на синтаксической реализации подпрограмм в алгоритмических языках программирования.
