Алгоритм, выполняющий некоторую относительно автономную, законченную часть основной задачи, называют вспомогательным алгоритмом, а соответствующую “вспомогательную программу” — подпрограммой (или процедурой). Во многих языках программирования процедура оформляется так же или почти так же, как головная программа.
Когда используют подпрограммы? Во-первых, если один и тот же алгоритм используется несколько раз по ходу решения задачи. Это вполне очевидно: зачем несколько раз писать одни и те же команды?
Последовательность операторов, составляющих подпрограмму, определена и записана только в одном месте программы, однако их можно вызвать для выполнения из одной или нескольких точек программы. Одна и та же подпрограмма может обрабатывать различные данные, переданные ей в качестве аргументов. Это не просто выделенный кусок кода — для этого куска кода определены входные и выходные параметры, а от прочих данных он, в идеале, изолирован (хотя многие языки программирования позволяют использовать внутри кода подпрограммы и глобальные переменные).
Разработка ЧПУ программы и подпрограммы.
Во-вторых, в разных программах часто используется большое количество однотипных, шаблонных действий — вывод данных на экран, сортировка чисел по возрастанию в числовых массивах или сортировка списков фамилий по алфавиту, различные алгоритмы поиска необходимых данных в массивах — этот перечень стереотипных работ можно продолжать долго. Совершенно очевидна целесообразность однократного составления таких часто употребляемых вспомогательных алгоритмов, хранение их и последующее использование в самых разнообразных задачах. Наборы таких часто употребимых подпрограмм обычно объединяют в библиотеки подпрограмм. Развитой системой библиотечных подпрограмм обладают такие языки программирования, как С++ и Java.
Но, оказывается, на практике подпрограммами гораздо чаще пользуются, чтобы упростить процесс разработки программы. По мере прогресса в искусстве программирования, как пишет автор языка Pascal Н.Вирт, программы стали создаваться методом последовательных уточнений. На каждом этапе программист разбивает задачу на некоторое число подзадач.
Таким образом, подпрограммы — это реализация в языке программирования основного и вспомогательных алгоритмов, на которые, как правило, распадается решение общей задачи в процедурном программировании. Концепция процедур (т.е. подпрограмм) позволяет выделить подзадачу как отдельную подпрограмму, даже если вызываться она будет всего один раз.
Допустим, нужно составить какую-нибудь достаточно сложную программу: она должна получать от человека исходные данные, проверяя при этом правильность ввода (чтоб не было ошибок, вроде “32 февраля”), затем выполнять несколько разных вычислений, наконец, — красиво выводить результаты на экран. Можно попытаться написать сразу всю программу целиком. Однако она скорее всего получится очень большой и настолько запутанной, что поиск любой самой простой ошибки займет много времени (а написать даже не очень большую программу сразу без ошибок практически невозможно). Но можно поступить по-другому. Сначала разобьем решение задачи на несколько этапов. Получится программа примерно такого вида:
Подпрограмма
Алгоритмы и подпрограммы
Алгоритм – последовательность действий, необходимый для выполнения в целях достижения поставленной цели. Цепочка операций, при помощи которой можно решить поставленную задачу.
Алгоритмы бывают разными. Они встречаются в обыденной жизни повсеместно. Разработка программного обеспечения – одна из областей, в которых упомянутые последовательности формируют исходный код проекта.
Данная статья расскажет о так называемых вспомогательных алгоритмах. Упор будет сделан на программирование. Предложенная информация пригодится всем, кто заинтересован в вопросах разработки программного обеспечения.
Виды алгоритмов
Алгоритмические структуры бывают:
- Линейными. Здесь действия выполняются всего один раз. Они следуют друг за другом.
- Циклическими. Описывают операции, которые должны повторяться заданное количество раз. Возможна реализация до достижения поставленного условия.
- Разветвляющимися. Данный вариант предусматривает зависимость от условия.
Также есть вспомогательные алгоритмы. Они используются в других цепочках действий. Обладают широким применением в разработке программного обеспечения.
Свойства
Последовательности действий для выполнения тех или иных задач обладают определенными свойствами. Их обозначил Дональд Кнут:
- результативность;
- наличие ввода;
- определенность;
- конечность;
- универсальность;
- эффективность.
Отсутствие хотя бы одного свойства у заданной цепочки действий приводит к нарушению рассматриваемого определения.
Подпрограммы
Алгоритм называется вспомогательным, если его можно использовать в других алгоритмах при помощи указания имени. Если соответствующая последовательность записана на языках программирования, она будет носить название подпрограммы. Далее упор будет сделан именно на такую форму представления «цепочек действий».
Подпрограмма является поименованной или идентифицированной иными методами частью программного продукта, которая содержит описание заданного набора действий. Вызывается из разных частей приложения многократно. Для оформления и использования в языках программирования предусматриваются специальные синтаксические средства.
Вспомогательный алгоритм – это процедура. Подпрограммы нужны для того, чтобы выполнять операции и функции без возврата значений.
Особенности
Информатика описывает вспомогательные алгоритмы как последовательность, которую можно использовать в других цепочках действий многократно. В качестве подпрограмм они встречаются в структурной разработке.
- Позволяют повысить читаемость исходного кода и делают его более компактным.
- Повышают непосредственную разработку программного обеспечения.
- Сводят вероятность возникновения ошибок при тестировании приложения, а также после его релиза к минимуму.
При помощи подпрограмм удается абстрагироваться от деталей, сконцентрировавшись на масштабных алгоритмах в основном проекте.
Цель применения
Подпрограммой называется процедура или вспомогательная цепочка действий. Данный элемент является средством оптимизации приложений относительно используемого объема памяти. Исходный код будет использовать один и тот же набор операций для выполнения одних и тех же фрагментов.
При помощи вспомогательных алгоритмов программист сможет описать действия один раз, а затем использовать его по мере необходимости. Подпрограммы нужны как вспомогательные средства. Они структурируют исходный код, делая его более простым для понимания и дальнейшего сопровождения.
Введение в подпрограммы
Вспомогательной процедурой в самом простом случае называется последовательность операторов, которая отделяется от основной части программы. Она включает в себя специальные команды вывода, а также имя реализуемой процедуры.
Описание вспомогательных (дополнительных) алгоритмов в языках высокого уровня состоит из:
- тела – набора операторов, которые выполняются при вызове процедуры;
- заголовка – описании имени, а также параметров (при необходимости).
Для активации заданного набора операций нужно использовать команду вызова и имя процедуры. Каждая выполненная последовательность после обработки компилятором получает пролог и эпилог. Они необходимы для сохранения и восстановления вспомогательных алгоритмов.
В языках программирования допускается использование вложенных процедур. В данном случае наборы операций включены в другие и применяются исключительно в области описания. Соответствующий подход упрощает программирование. Специфических областей применения и особенностей не имеет.
Параметры
Вспомогательный алгоритм используется для выполнения стереотипных операций над имеющимися данными. У него есть доступ к объектам информации, описанным в основном проекте. Для передачи обработанных данных необходимо их присвоить. Сделать это можно при помощи глобальных переменных, но такой подход приводит к частым ошибкам и неполадкам.
При работе со вспомогательными алгоритмами нужны параметры. Этот механизм записывается в заголовке, а затем используется как переменная внутри исходного кода.
Виды параметров
Параметры у вспомогательных алгоритмов бывают:
- фактическими;
- формальными.
Формальные параметры описываются в заголовке подпрограммы. Их список формирует список условных переменных. При помощи формальных параметров разработчик может описать информацию, передаваемую в подпрограмму.
Списки формальных параметров определяют:
- порядок;
- типы;
- количество параметров.
Фактические параметры используют, указав их при вызове подпрограммы. Они обязательно существуют в реальной жизни. Выступают списками определенных значений, передаваемых во вспомогательный алгоритм для дальнейшей обработки. Списком фактических параметров служат выражения, написанные при помощи разделителя – запятых. Их значения будут последовательно подставляться во фрагмент кода вместо формальных данных.
О способах передачи
Информатика в школе рассматривает элементарные примеры процедур, не углубляясь в их особенности. Разработчикам необходимо помнить о нескольких способах их передачи в итоговом проекте:
- Стеками. Вся информация расположена на стеке, а их типы, порядок и количество не контролируются компилятором.
- По имени. Формальный параметр получит произвольное выражение, а затем произойдут необходимые вычисления. Они осуществляются внутри процесса.
- По ссылкам. Формальный параметр находится в фактическом. Программисты чаще всего используют данный вариант, указав ссылки на фактическое значение.
- По значению. Формальный параметр получает значение фактического, содержит его копию.
Использование вспомогательных (дополнительных) алгоритмов для разработчика – один из способов облегчения написания исходного кода.
Типы подпрограмм
Информатика в школе дает примеры подпрограмм:
- Функции. Представлены готовыми блоками кода. Возвращают значения. Вызов функции – это выражение.
- Процедура. Является независимой именованной частью приложения. После однократного описания используется в коде многократно. От функции отличается тем, что она не возвращает никаких значений.
Вспомогательный алгоритм в некоторых языках разработки – это всегда функция в единственном или множественном числе.
Методы
Методы – это подпрограммы, которые относятся к определенному классу или его экземпляру. Включает в себя операторы, необходимые для реализации входных аргументов.
Методы используются для предоставления любого интерфейса, при помощи которого может быть получен доступ к информации объекта класса. Обеспечивают инкапсуляцию при программировании.
У методов существуют различные уровни доступа. Примеры:
- protected – внутренний;
- public – публичный или общий;
- private – закрытый.
Уровни доступа, предоставляемые методами, меняются в зависимости от используемого языка разработки.
Константы
Вспомогательный (дополнительный) алгоритм в языках программирования – это подпрограмма. Она использует разнообразные параметры, среди которых есть переменные. Они относятся к формальному типу. В большинстве языков разработки обозначаются при помощи ключевого слова const.
Параметр-константа ведет себя подобно локальной константе. Изменение этого элемента кода в теле процедуры не поддерживается. Его также не получится передать в другую операцию.
Как быстро освоить
Если разработчика попросят «Назовите, что такое вспомогательный алгоритм», он сможет ответить, что это – процедура или подпрограмма. Здесь изученная тема представлена в наглядной форме.
Чтобы быстрее разобраться с особенностями алгоритмизации на выбранном языке, рекомендуется закончить дистанционные компьютерные курсы. Пример – от образовательного центра OTUS. Там клиент научится основам разработки, а также особенностями каждого языка в сжатые сроки. В конце каждого курса выдается электронный сертификат для подтверждения приобретенных знаний.
Источник: otus.ru