Применение подпрограмм при программировании

Алгоритм, выполняющий некоторую относительно автономную, законченную часть основной задачи, называют вспомогательным алгоритмом, а соответствующую "вспомогательную программу” — подпрограммой (или процедурой).

Участок программы, к которому можно обращаться из различных мест программы для выполнения некоторых действий называется подпрограммой (англ. Subprogram).

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

Главное назначение подпрограмм — структуризация программы с целью удобства
её понимания и сопровождения:

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

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

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

Классификация подпрограмм. В языках программирования высокого уровня используется два типа подпрограмм: процедуры и функции.

Функция — это подпрограмма специального вида, которая, кроме получения параметров, выполнения действий и передачи результатов работы через параметры имеет ещё одну возможность — она может возвращать результат. Вызов функции является, с точки зрения языка программирования, выражением, он может использоваться в других выражениях или в качестве правой части присваивания.

Процедура — это любая подпрограмма, которая не является функцией. Подпрограммы, входящие в состав классов в объектных языках программирования, обычно называются методами. Этим термином называют любые подпрограммы-члены класса, как функции, так и процедуры; когда требуется уточнение, говорят о методах-процедурах или методах-функциях.

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

Ячейки памяти, в которых хранятся адреса возврата из подпрограмм называются стеком. Логически эти ячейки памяти организованы так, чтобы считывание последнего записанного адреса производилось первым, а первого записанного адреса производилось последним.

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

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

Подпрограммы также делятся по способу передачи параметров в подпрограмму: по имени, по значению, по ссылке, через стек.

Возможны также подпрограммы, которые вызывают сами себя. Они называются рекурсивными.

Библиотечные подпрограммы выполняют большое количество различных задач. Ниже перечислены подпрограммы, а также включаемые файлы, в которых они объявлены, разбитые на несколько общих категорий по выполняемым задачам.

Подпрограммы классификации. Данные подпрограммы классифицируют символы ASCII как буквы, управляющие символы, знаки пунктуации, символы верхнего регистра и т.д.

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

Подпрограммы управления директориями. Эти подпрограммы манипулируют директориями и именами пути доступа.

Диагностические подпрограммы. Эти подпрограммы реализуют встроенные средства поиска ошибки.

Графические подпрограммы. Эти подпрограммы позволяют создавать экранные графические представления с текстовой частью.

Подпрограммы ввода/вывода. Эти подпрограммы реализуют средства ввода/вывода на уровне потоков и DOS.

Подпрограммы интерфейса (DOS, BIOS). Эти подпрограммы реализуют обращения к средствам DOS, BIOS и специфичным средствам данного компьютера.

Подпрограммы манипуляции. Эти подпрограммы обрабатывают строки и блоки памяти: копирование, сравнение, преобразования и поиск.

Математические подпрограммы. Эти подпрограммы выполняют математические вычисления и преобразования.

Подпрограммы управления памятью. Эти подпрограммы обеспечивают динамическое распределение памяти для моделей данных small и large

Подпрограммы управления процессами. Эти подпрограммы запускают и завершают выполнение одних процессов из других.

Разные подпрограммы. Эти подпрограммы предоставляют средства перехода за пределы локального контекста, различные звуковые эффекты и локальные эффекты и другие подпрограммы.

Библиотека стандартных подпрограмм — это совокупность подпрограмм, составленных на одном из языков программирования и удовлетворяющих определенным единым требованиям к структуре, организации их входов и выходов, описаниям подпрограмм и т.п.

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

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

Так, в операционной системе Windows ХР входят такие стандартные программы общего назначения: текстовый редактор Блокнот предназначен для обработки простых неформатированных текстов; текстовый процессор WordPad - для более сложной обработки текста; программа Калькулятор представляет собой компьютерный вариант настольного калькулятора; графический редактор Paint, предназначена для создания растровых изображений.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: