Как называется вспомогательный алгоритм записанный на языке программирования
Формы записи алгоритмов
На практике наиболее распространены следующие формы представления алгоритмов:
- словесная (запись на естественном языке);
- графическая (изображения из графических символов);
- псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.;
- программная (тексты на языках программирования).
1. Словесный способ записи алгоритма
Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке.
Например. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел (алгоритм Эвклида).
Словесный способ не имеет широкого распространения, так как такие описания:
- строго не формализуемы;
- страдают многословностью записей;
- допускают неоднозначность толкования отдельных предписаний.
2. Наибольшее распространение благодаря своей наглядности получил графический способ записи алгоритмов. При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий.
Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий. В таблице приведены наиболее часто употребляемые символы.

Блок «процесс» применяется для обозначения действия или последовательности действий, изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединять в один блок. Представление отдельных операций достаточно свободно.
Блок «решение» используется для обозначения переходов управления по условию. В каждом блоке «решение» должны быть указаны вопрос, условие или сравнение, которые он определяет.
Блок «модификация» используется для организации циклических конструкций. (Слово модификация означает видоизменение, преобразование). Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения.
Блок «предопределенный процесс» используется для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращений к библиотечным подпрограммам.
3. Псевдокод.
Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов.
Псевдокод занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи.
В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя.
Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются.
Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.
Как называется вспомогательный алгоритм записанный на языке программирования
| —>Приветствую Вас , Гость · RSS |
—> —>Меню сайта —>
—>Статистика —>
29. Вспомогательные алгоритмы и подпрограммы
§ 29. Вспомогательные алгоритмы и подпрограммы
Основные темы параграфа:
♦ что такое вспомогательный алгоритм;
♦ обращение к вспомогательному алгоритму (процедуре);
♦ описание вспомогательного алгоритма (процедуры);
♦ метод последовательной детализации;
♦ сборочный метод.
Что такое вспомогательный алгоритм
А сейчас решим следующую задачу.
Задача 2. Пусть требуется составить программу , по которой ГРИС напишет на экране четырехзначное число 1919 (рис. 5.6).
Конечно, можно поступить так, как в предыдущей задаче, написав одну длинную программу, по которой исполнитель шаг за шагом нарисует эти цифры. Но с очевидностью возникает другая идея: поскольку здесь дважды повторяются цифры 1 и 9, нельзя ли сократить работу, написав программу рисования той и другой цифры только один раз? Это действительно можно сделать.
Алгоритм, по которому решается некоторая подзадача из основной задачи и который, как правило, выполняется многократно, называется вспомогательным алгоритмом.
Вспомогательный алгоритм, записанный на языке программирования, называется подпрограммой или процедурой.
Обращение к вспомогательному алгоритму (процедуре)
В таком случае программа решения поставленной задачи разделяется на основную программу (основной алгоритм) и процедуры (вспомогательные алгоритмы). Каждая процедура должна иметь свое уникальное имя. Для рассматриваемой задачи имена процедур выберем следующими: ЕДИНИЦА и ДЕВЯТЬ. Тогда в основной программе команды обращения к этим процедурам будут такими:
сделай ЕДИНИЦА
сделай ДЕВЯТЬ
По этим командам управление передается соответствующим процедурам, и после их выполнения управление вернется к следующей команде основной программы.
Договоримся, что начальное и конечное состояния ГРИС при вычерчивании каждой цифры будут такими, как показано стрелками на рис. 5.6 (внизу, на восток). У единицы начальное и конечное состояния совпадают. Основная программа:
программа Число 1919
нач
сделай ЕДИНИЦА
прыжок
сделай ДЕВЯТЬ
прыжок
сделай ЕДИНИЦА
прыжок
сделай ДЕВЯТЬ
кон
Данный пример познакомил вас с новой командой из СКИ графического исполнителя — командой обращения к процедуре. Ее формат, т. е. общий вид, следующий:
сделай имя процедуры>
Описание вспомогательного алгоритма (процедуры)
Вот и все! Так просто! Но теперь надо «объяснить» исполнителю, что такое ЕДИНИЦА и что такое ДЕВЯТЬ. Это делается в описаниях процедур (здесь порядок выполнения — по столбцам):
Определение процедуры в программе называется ее описанием. Формат описания процедуры:
Имя в описании и имя в обращении должны точно совпадать (никаких склонений по падежам!). Описание процедур располагается после основной программы.
Добавив к программе описание процедуры, мы тем самым расширили систему команд исполнителя. В данной программе стало возможным использование команды обращения к этой процедуре.
Метод последовательной детализации
Использованный нами подход облегчает программирование сложных задач. Задача разбивается на более простые подзадачи. Решение каждой оформляется в виде вспомогательного алгоритма, а основной алгоритм организует связку между ними.
Метод программирования, при котором сначала пишется основная программа, в ней записываются обращения к пока еще не составленным подпрограммам, а потом описываются эти подпрограммы, называется методом последовательной (пошаговой) детализации. Причем количество шагов детализации может быть гораздо большим, чем в нашем примере, поскольку сами подпрограммы могут содержать внутри себя обращения к другим подпрограммам.
Сборочный метод
Возможен и другой подход к построению сложных программ: первоначально составляется множество подпрограмм, которые могут понадобиться при решении задачи, а затем пишется основная программа, содержащая обращения к ним. Подпрограммы могут быть объединены в библиотеку подпрограмм и сохранены в долговременной памяти компьютера . Такую библиотеку можно постепенно пополнять новыми подпрограммами.
Например, если для управления графическим исполнителем создать библиотеку процедур рисования всех букв и цифр, то программа получения любого текста будет состоять из команд обращения к библиотечным процедурам.
Описанный метод называется сборочным программированием. Часто в литературе по программированию используется такая терминология: метод последовательной детализации называют программированием сверху вниз, а сборочный метод — программированием снизу вверх.
Коротко о главном
Для упрощения программирования сложных задач используются вспомогательные алгоритмы.
Вспомогательный алгоритм — это алгоритм решения некоторой подзадачи из исходной (основной) задачи.
Вспомогательный алгоритм, записанный на языке программирования, называется процедурой.
Вспомогательный алгоритм должен быть описан. После этого в основном алгоритме можно использовать команду обращения к этому вспомогательному алгоритму.
Метод программирования, при котором сначала записывается основной алгоритм, а затем описываются использованные в нем вспомогательные алгоритмы, называется методом последовательной детализации или программированием сверху вниз. Обратный порядок программирования называется программированием снизу вверх.
Вопросы и задания
1. Что такое основной алгоритм; вспомогательный алгоритм?
2. Чем отличается описание вспомогательного алгоритма от обращения к вспомогательному алгоритму?
3. Каковы правила описания вспомогательных алгоритмов (процедур) для исполнителя ГРИС?
4. Как записывается команда обращения к процедуре в языке исполнителя ГРИС?
5. В чем суть метода последовательной детализации?
6. Что такое программирование снизу вверх; сверху вниз?
7. Используя вспомогательные алгоритмы, запрограммируйте рисование следующих фигур:
Вспомогательные алгоритмы и подпрограммы
Что такое вспомогательный алгоритм? Решим задачу: пусть требуется составить программу, по которой ГРИС напишет на экране четырехзначное число 1991.
Конечно, можно написать одну длинную программу, по которой исполнитель шаг за шагом нарисует все эти цифры. Но с очевидностью возникает другая идея: поскольку здесь дважды повторяются цифры 1 и 9, нельзя ли сократить работу, написав программу рисования той и другой цифры только один раз? Это действительно можно сделать.
Алгоритм, по которому решается некоторая подзадача из основной задачи и который, как правило, выполняется многократно, называется вспомогательным алгоритмом. Вспомогательный алгоритм, записанный на языке программирования, называется подпрограммой или процедурой.
Обращение к вспомогательному алгоритму (процедуре). В таком случае программа решения поставленной задачи разделяется на основную программу (основной алгоритм) и процедуры (вспомогательные алгоритмы). Каждая процедура должна иметь свое уникальное имя. Для рассматриваемой задачи имена процедур выберем следующие: ЕДИНИЦА и ДЕВЯТЬ. Тогда в основной программе команды обращения к этим процедурам будут такими:
- сделай ЕДИНИЦА
- сделай ДЕВЯТЬ
По этим командам управление передается соответствующим процедурам, и после их выполнения управление вернется к следующей команде основной программы.
Начальное и конечное состояние ГРИС при вычерчивании каждой цифры будут такими, как показано стрелками (внизу, на восток). У единицы начальное и конечное состояние совпадают. Основная программа:
программа Число 1991
нач
сделай ЕДИНИЦА
прыжок
сделай ДЕВЯТЬ
прыжок
сделай ЕДИНИЦА
прыжок
сделай ДЕВЯТЬ
кон
Данный пример познакомил вас с новой командой из СКИ графического исполнителя — командой обращения к процедуре. Ее формат, то есть общий вид, следующий:
Описание вспомогательного алгоритма (процедуры). Теперь необходимо «объяснить» исполнителю, что такое ЕДИНИЦА и что такое ДЕВЯТЬ. Это делается в описаниях процедур (здесь порядок выполнения по столбцам).
процедура ЕДИНИЦА
нач
поворот
шаг
шаг
шаг
шаг
поворот
поворот
прыжок
прыжок
прыжок
прыжок
поворот
кон
процедура ДЕВЯТЬ
нач
шаг
поворот
шаг
шаг
шаг
шаг
поворот
шаг
поворот
шаг
шаг
поворот
шаг
поворот
поворот
поворот
прыжок
прыжок
поворот
кон
Определение процедуры в программе называется ее описанием.
Формат описания процедуры
процедура
нач
кон
Имя в описании и имя в обращении должны точно совпадать. Описание процедур располагается после основной программы.
Добавив к программе описание процедуры, мы тем самым расширили систему команд исполнителя. В данной программе стало возможным использование команды обращения к этой процедуре.
Метод последовательной детализации. Использованный нами подход облегчает программирование сложных задач. Задача разбивается на более простые подзадачи. Решение каждой оформляется в виде вспомогательного алгоритма, а основной алгоритм организует связку между ними.
Метод программирования, при котором сначала пишется основная программа, в ней записываются обращения к пока еще не составленным подпрограммам, а потом описываются эти подпрограммы, называется методом последовательной (пошаговой) детализации. Причем количество шагов детализации может быть гораздо большим, чем в нашем примере, поскольку сами подпрограммы могут содержать внутри себя обращения к другим подпрограммам.
Сборочный метод. Возможен и другой подход к построению сложных программ: первоначально составляется множество подпрограмм, которые могут понадобиться при решении задачи, а затем пишется основная программа, содержащая обращения к ним. Подпрограммы могут быть объединены в библиотеку подпрограмм и сохранены в долговременной памяти компьютера. Такую библиотеку можно постепенно пополнять новыми подпрограммами. Например, если для управления графическим исполнителем создать библиотеку процедур рисования всех букв и цифр, то программа получения любого текста будет состоять из команд обращения к библиотечным процедурам.
Описанный метод называется сборочным программированием. Часто в литературе по программированию используется такая терминология: метод последовательной детализации называют программирование сверху вниз, а сборочный метод — программирование снизу вверх.
2. Практическая работа.
Используя вспомогательные алгоритмы, запрограммировать рисование следующих фигур: [Фигуры]
3.Закрепление знаний
- Что такое основной алгоритм? Вспомогательный алгоритм?
- Чем отличается описание вспомогательного алгоритма от обращения к вспомогательному алгоритму?
- Каковы правила описания вспомогательных алгоритмов (процедур) для исполнителя ГРИС?
- Как записывается команда обращения к процедуре в языке исполнителя ГРИС?
- В чем суть метода последовательной детализации?
- Что такое программирование снизу вверх; сверху вниз?
См. также [ править ]
Информатика. 10 класс (Повышенный уровень)
Вспомогательный алгоритм — алгоритм, который можно использовать в других алгоритмах, указав его имя и, если необходимо, значения параметров. Вспомогательный алгоритм, записанный на языке программирования, называют подпрограммой.
Основные преимущества использования подпрограмм:
1. Разбиение комплексной программной задачи на простые шаги (декомпозиция). Это позволяет распределить решение одной задачи между различными людьми.
2. Уменьшение повторяющегося кода.
3. Многократное использование кода в других программах, в том числе и другими программистами.
4. Сокрытие деталей реализации от пользователей подпрограммы.
Подпрограммы, которые используются часто, объединяют в библиотеки. Большинство языков программирования позволяют не только использовать готовые подпрограммы, но и писать свои. В языке C++ подпрограммы оформляются в виде функций. Вам уже приходилось использовать различные функции, например из библиотеки cmath .
Перед тем как использовать функцию, ее нужно описать. Описание функции включает объявление и определение функции.
Объявление функции (пример 7.1) включает в себя заголовок функции, заканчивающийся точкой с запятой и включающий:
- имя функции f_N ;
- перечень формальных параметров с их типами
( type a_1, type a_2,… , type a_N ); - тип возвращаемого значения
r_type: r _type f_N (type a_1, type a_2, . type a_N);
Функции могут быть с параметрами или без параметров. Если функция не имеет параметров, то наличие круглых скобок после имени функции обязательно.
Определение функции состоит из заголовка функции (без точки с запятой) и тела функции, заключенного в фигурные скобки. В нем содержатся команды языка, реализующие вспомогательный алгоритм (пример 7.2).
Главная программа на С++ также реализована в виде функции. Эта функция всегда имеет имя main . Тип результата и наличие параметров этой функции может быть различными для различных сред программирования. В среде Code::Blocks функция main() имеет тип int и не имеет параметров.
Обычно объявление и описание подпрограмм размещают до функции main() . Если для решения задачи необходимо реализовать несколько функций, то нужно помнить о том, что функция должна быть объявлена до того, как она будет вызвана.
При вызове функции (пример 7.3) указывается ее имя и параметры, необходимые для вычислений. Эти параметры называют фактическими параметрами.
В описании функции задается список формальных параметров. Каждый параметр, описанный в этом списке, является локальным по отношению к описываемой функции, т. е. на него можно ссылаться по его имени из данной подпрограммы, но не из основной программы или другой функции.
Необходимость оптимизации программ по объему занимаемой памяти привела к появлению подпрограмм. Подпрограммы позволили не повторять в программе идентичные блоки кода, а описывать их однократно и вызывать по мере необходимости.
Использование подпрограмм позволяет повысить надежность кода программы. Подпрограммы обычно имеют небольшой размер, поэтому найти и исправить в них ошибки проще, нежели в большой программе.
Использование подпрограмм гарантирует относительную автономность модификации программы: если нужно что-либо изменить в программе, переделывать придется не всю программу, а только некоторые подпрограммы.
Пример 7.1. Объявление функций.
int kol _ cifr ( int n );
double plos_treug ( double a, double h );
Пример 7.2. Определение функции.
int kol_cifr ( int n )
while ( n > 0 )
double plos_treug ( double a, double h )
double s = a * h / 2 ;
return acos (- 1. );
В среде Dev-C++ функция main может иметь аргументы:

В среде Microsoft Visual Studio тип возвращаемого значения у функции main может быть void:

Пример 7.3. Вызов функции.
int k = kol _ cifr ( 12345 );
double s_kv = 2 * plos_treug ( a1, h1 );
В С++ объявление и определение функции может быть в разных местах. Объявление размещают до функции main , а определение после нее.
using namespace std ;
int kol_cifr ( int n );
double plos_treug ( double a, double h );
int k = kol_cifr ( 12345 );
double a1 = 5 , h1 = 3.2 ;
double s_kv = 2 * plos_treug ( a1, h1 );
int kol_cifr ( int n )
while ( n > 0 )
double plos_treug ( double a, double h )
double s = a * h / 2 ;
return acos (- 1. );