Что такое вспомогательный алгоритм

Что такое вспомогательный алгоритм

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритмЧто такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритмЧто такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритмЧто такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритмЧто такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

§ 13. Понятие вспомогательного алгоритма

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

Эту последовательность действий предстоит выполнить три раза за дежурство: после завтрака, обеда и ужина. Назовем соответствующий алгоритм «Обязанности», а при написании распорядка дня заменим эти четыре действия одной командой:

Тогда распорядок дежурства по столовой примет такой вид:

Легко понять, что использование команды «Выполнить алгоритм. » позволило почти в два раза сократить длину нашей инструкции.

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

указывая вместо многоточия имя алгоритма. Такие команды называются командами вызова вспомогательного алгоритма.

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

Дадим алгоритму решения квадратных уравнений имя «РЕКВУР» (впрочем, вы можете назвать этот алгоритм по-другому, более благозвучно).

И в X классе вы, конечно, сталкивались с квадратными уравнениями в ходе решения различных задач. Но теперь решение квадратных уравнений стало для вас столь же элементарным, как перемножение чисел (возможно, что мы выдаем желаемое за действительное). Можно сказать, что «РЕКВУР» стал вашим вспомогательным алгоритмом.

Давайте проанализируем, как мы выполняем алгоритм «РЕКВУР». Скажем, нужно решить уравнение

Мы вспоминаем «РЕКВУР», подставляем вместо а, b, с числа 2, 3 и 122 и получаем результат: x1 и х2. Чтобы решить другое квадратное уравнение, надо подставить вместо а, b, с другие числа.

Записывая вспомогательный алгоритм, естественно указывать, кроме названия, аргументы и результат. Например, запись вспомогательного алгоритма «РЕКВУР» можно начать так:

При вызове вспомогательного алгоритма надо указывать значения исходных данных. Например, вызов вспомогательного алгоритма «РЕКВУР» можно записать так:

(вместо многоточий надо писать конкретные числа или выражения).

Давайте с помощью алгоритма «РЕКВУР» решим какую-нибудь задачу из вашего учебника «Алгебра и начала анализа». Заглянем в него. Вот, например, тема «Показательные уравнения и неравенства». В ней объясняется, как решать уравнения вида

По сути дела, в вашем учебнике предлагается следующий алгоритм решения таких уравнений:

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

Образно говоря, переменные, имеющие одно и то же название в основном и вспомогательном алгоритмах,- просто «однофамильцы». При вызове вспомогательного алгоритма значения переменных основного алгоритма как бы «замораживаются», а после окончания работы вспомогательного алгоритма они «размораживаются».

Без такого «замораживания» то и дело происходили бы пренеприятнейшие вещи. Какие? Сейчас увидите!

Попробуем решить уравнение

«Замораживание» переменных надежно предохраняет их от порчи вспомогательными алгоритмами

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм
Результат верного алгоритма

Вопросы

1. Что такое вспомогательный алгоритм?

2. Как сделать алгоритм вспомогательным?

3. Как записывается команда вызова вспомогательного алгоритма?

4. В чем заключается «замораживание» и «размораживание» переменных при использовании вспомогательного алгоритма?

Задания для самостоятельного выполнения

1. Какие вспомогательные алгоритмы можно выделить в распорядке дня в школе?

2. Имеется следующий вспомогательный алгоритм:

Записать команды вызова этого вспомогательного алгоритма, выполнив которые исполнитель (человек):

Источник

Информатика. 10 класс (Повышенный уровень)

§ 7. Понятие вспомогательного алгоритма

7.1. Вспомогательные алгоритмы

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

Основные преимущества использования подпрограмм:

1. Разбиение комплексной программной задачи на простые шаги (декомпозиция). Это позволяет распределить решение одной задачи между различными людьми.
2. Уменьшение повторяющегося кода.
3. Многократное использование кода в других программах, в том числе и другими программистами.
4. Сокрытие деталей реализации от пользователей подпрограммы.

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

Объявление функции (пример 7.1) включает в себя заголовок функции, заканчивающийся точкой с запятой и включающий:

Функции могут быть с параметрами или без параметров. Если функция не имеет параметров, то наличие круглых скобок после имени функции обязательно.

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

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

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

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

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

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

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

Пример 7.1. Объявление функций.

int kol _ cifr ( int n );
double plos_treug ( double a, double h );

Источник

Вспомогательные алгоритмы

Урок 19. Информатика 9 класс ФГОС

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

В данный момент вы не можете посмотреть или раздать видеоурок ученикам

Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобрев в каталоге.

Получите невероятные возможности

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

Конспект урока «Вспомогательные алгоритмы»

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

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

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

Вспомогательный алгоритм – это алгоритм, который целиком использован в составе другого алгоритма.

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

Задача: Робот находится в левой верхней клетке поля без стен. Нарисовать девять квадратов. Две на две клетки.

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

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

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

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

Вспомогательный алгоритм рисования квадрата

Так мы получили вспомогательный алгоритм для рисования квадрата. Теперь запишем вспомогательный алгоритм для рисования горизонтального ряда квадратов, назовём его ряд.

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

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

Вспомогательный алгоритм рисования ряда квадратов

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

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

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

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

Результат работы программы

В блок-схеме вспомогательный алгоритм изображается как показано на рисунке. Этот блок называется «Предопределённый процесс», внутри него записывается название вспомогательного алгоритма, входные и выходные параметры.

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

Изображение вспомогательного алгоритма на блок-схеме

Задача: У нас есть вспомогательный алгоритм factorial, который вычисляет значение факториала целого числа k. Составить блок-схему алгоритма вычисления значения выражения 1! + 2! + … + n!. Вспомним, что k! = 1 * 2 * … * k.

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

Блок-схема вспомогательного алгоритма

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

Блок-схема с использованием вспомогательного алгоритма

Рассмотрим, как работает вспомогательный алгоритм в составе основного. В начале выполняются команды основного алгоритма, идущие до вызова вспомогательного. Затем, когда доходит до выполнения вспомогательного алгоритма, его формальные параметры, в нашем случае k, заменяются параметрами из основного алгоритма. В нашем случае i. Далее выполняются команды вспомогательного алгоритма. Затем значения выходных параметров вспомогательного алгоритма, в нашем случае f подставляются в основной алгоритм, в нашем случае в переменную a. После чего далее выполняются команды основного алгоритма.

Через вспомогательные алгоритмы можно создавать так же рекурсивные алгоритмы. Рекурсивным алгоритмом называется алгоритм, который содержит ссылку на самого себя. Посмотрим для решения каких задач их можно применить.

Мы можем составить вспомогательный алгоритм для вычисления факториала, с использованием рекурсии, если примем во внимание формулу: n! = (n — 1)!. Важно при этом помнить, что 1! = 1. Блок-схема данного алгоритма будет выглядеть так.

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

Блок-схема рекурсивного алгоритма вычисления n!

Обратим внимание, что вспомогательный алгоритм содержит ветвление, при котором, если n > 1n! = (n — 1)!, а в случае если n = 1, то n! = 1. Также и в других рекурсивных алгоритмах, ссылка на алгоритм всегда указывается лишь в одной ветви условного оператора, иначе он будет вызывать сам себя бесконечно.

Задача: Робот находится в поле без стен, на определённом расстоянии от левого края. Он должен нарисовать уголок, то есть закрасить все клетки от своего текущего положения до левого края, а потом столько же клеток вниз.

Запишем рекурсивный вспомогательный алгоритм для рисования уголка. Назовём его угол. Он будет содержать условный оператор, условием которого будет если слева свободно, если данное условие выполняется, робот будет закрашивать клетку, в которой он находится и смещаться на одну клетку влево, после чего снова вызывать себя. После условного оператора будут содержаться команды, которые будут выполняться, когда робот дойдёт до стены. На каждом шаге Робот должен закрасить клетку, в которой он находится и сместиться на клетку вниз.

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

Рекурсивный алгоритм рисования уголка

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

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

Выполнение рекурсивного алгоритма, для удобства можно представить в виде стека, то есть коробки, у которой есть дно, но нет верхней крышки, в такую коробку объект можно положить лишь поверх остальных, точно так же и достать из коробки можно лишь верхний объект. То есть объект, который в коробку положили первым, достанут из коробки последним. Так же происходит при выполнении вспомогательного алгоритма угол, в нашем примере, в процессе выполнения первого вызова алгоритма, он был вызван второй раз, а в процессе выполнения второго вызова, в третий. После того, как было завершено выполнение третьего вызова, было продолжено выполнение второго, а после его завершения – первого.

При использовании рекурсивных алгоритмов важно помнить, что количество одновременных вызовов ограничено, поэтому, если рекурсию можно заменить циклом – лучше так и поступить.

· Вспомогательным называется алгоритм, который целиком используется в составе другого алгоритма.

· Рекурсивный алгоритм – это алгоритм, в котором есть ссылка на самого себя.

· Исполнение рекурсивного алгоритма можно представить в виде стека.

· Если рекурсию можно заменить циклом – лучше так и поступить.

Мы научились применять вспомогательные и рекурсивные алгоритмы при решении задач.

Источник

Что такое вспомогательный алгоритм

Вспомогательный алгоритм – алгоритм, который можно вызвать и использовать в других алгоритмах, указав только его имя.

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

Рассмотрим пример, Вы хотите спеть песню, у которой три куплета и припев, исполняемый после каждого куплета. Алгоритм Ваших действий будет следующим:
1. Спеть 1-й куплет.
2. Спеть припев.
3. Спеть 2-й куплет.
4. Спеть припев.
5. Спеть 3-й куплет.
6. Спеть припев.
Действия, объединенные в пункт «спеть припев», трижды повторяются. Таким образом, этот алгоритм содержит набор повторяющихся одинаковых действий и в озникает необходимость многократного использования одного и того же набора действий (алгоритма), следовательно такой набор действий или алгоритм можно выделить в качестве самостоятельного фрагмента. Он становится вспомогательным алгоритмом.
Вспомогательный алгоритм – алгоритм, по которому решается некоторая подзадача из основной задачи и который, как правило, выполняется многократно. Алгоритм может содержать несколько вспомогательных алгоритмов.
Блок-схема вызова вспомогательного алгоритма

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

Что такое вспомогательный алгоритм. Смотреть фото Что такое вспомогательный алгоритм. Смотреть картинку Что такое вспомогательный алгоритм. Картинка про Что такое вспомогательный алгоритм. Фото Что такое вспомогательный алгоритм

Источник

Что такое вспомогательный алгоритм

¾ Рисование числа 1919 Семакин 9

Данная задача естественным образом выводит на идею вспомогательного алгоритма. Задание следующее: составить алгоритм рисования числа «1919». Учитель может поступить следующим образом: предложить ученикам написать алгоритм прежними средствами, т. е. используя только три основные команды: шаг, поворот, прыжок. Такое задание, очевидно, не вызовет энтузиазма учеников, поскольку принцип им уже понятен, а писать длинный линейный алгоритм довольно скучно. В этой ситуации вполне возможно самостоятельное «открытие» учениками идеи вспомогательного алгоритма. Обратив внимание на то, что в рисунке дважды присутствуют цифры «1» и «9», ученики могут прийти к идее отдельного описания алгоритмов рисования этих цифр, а затем использования их для получения четырехзначного числа «1919». После обсуждения этой идеи учитель вводит понятие вспомогательного алгоритма и объясняет, как производится его описание и использование. На языке Кенгуренка вспомогательный алгоритм называется процедурой.

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

ШАГ ШАГ ПОВОРОТ ШАГ ШАГ ШАГ ШАГ

ШАГ ПОВОРОТ ШАГ ШАГ ПОВОРОТ ШАГ ШАГ ПОВОРОТ

Дано: Исполнитель в т.А

Надо: воспроизвести образец

¾ Алгоритм «Обязанности» Гейн

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

Убрать со столов посуду. Вытереть столы. Расставить стулья. Уйти.

Эту последовательность действий предстоит выполнить три раза за дежурство: после завтрака, обеда и ужина. Назовём соответствующий алгоритм «Обязанности», а при написании распорядка дня заменим эти четыре действия одной командой:

Исполнить алгоритм Обязанности.

Тогда распорядок дежурства по столовой примет такой вид:

Прийти в столовую в 7.00.

Накрыть столы к завтраку.

Дождаться окончания завтрака.

Исполнить алгоритм Обязанности.

Прийти в столовую в 13.00.

Накрыть столы к обеду.

Дождаться окончания обеда.

Исполнить алгоритм Обязанности.

Прийти в столовую в 18.00.

Накрыть столы к ужину.

Дождаться окончания ужина.

Исполнить алгоритм Обязанности.

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

¾ Подготовка реферата макарова 8-9

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

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

Алгоритм, из которого производится вызов вспомогательного алгоритма, получил название основного алгоритма.

¾ Алгоритм «Набор текста песен» макарова 8-9

Например, для набора текста песни, содержащей три куплета с припевом, можно воспользоваться основным алгоритмом под названием * Набор текста песни».

Алгоритм «Набор текста песни»

1. Набрать название песни.

2. Набрать первый куплет.

4. Набрать второй куплет.

5. Скопировать припев.

6. Набрать третий куплет.

7. Скопировать припев. Конец алгоритма

В этом алгоритме многократно встречается слово Скопировать смысл которого вам понятен, так как был определен на начальном этапе обучения технологии работы с текстом.

Здесь слово скопировать является именем алгоритма, определенного ранее, то есть вспомогательного алгоритма. Слово «припев» обозначает конкретный объект, над которым нужно произвести действие копирования.

Рассмотрим, что представляет собой алгоритм копирования, который является вспомогательным по отношению к основному алгоритму «Набор текста песни». Назовем такой вспомогательный алгоритм «Скопировать (объект копирования)».

Алгоритм «Скопировать (объект копирования)»

2. Выбрать команду Правка/Копировать.

3. Указать щелчком мыши место вставки.

4. Выбрать команду Правка/Вставить.

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

После выполнения вспомогательного алгоритма вы возвращаетесь в основной алгоритм для его продолжения.

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

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

¾ Рисование слова «МИР»с помощью исполнителя Чертежник Кушниренко

Составив три алгоритма для рисования букв М, И, Р, можно не только последовательно приказывать ЭВМ выполнять эти алгоритмы, но и задать порядок их выполнения в виде алгоритма:

надо нарисовано слово МИР, перо поднято и расположено в конце слова (начале следующей буквы)

Строки «буква М», «буква И», «буква Р» в записи алгоритма «МИР» —это команды алгоритмического языка, которые означают соответственно

выполнить алгоритм с именем «буква М»,

выполнить алгоритм с именем «буква И»,

выполнить алгоритм с именем «буква Р».

Если теперь поместить в ЭВМ алгоритм «МИР» и алгоритмы «буква М», «буква И», «буква Р» (см. АН), а затем приказать ЭВМ выполнить алгоритм «МИР», то ЭВМ автоматически вы­полнит сначала алгоритм «буква М», потом — «буква И» и наконец—»буква Р».

ПОНЯТИЯ ОСНОВНОГО И ВСПОМОГАТЕЛЬНОГО АЛГОРИТМОВ.
ВЫЗОВ ВСПОМОГАТЕЛЬНОГО АЛГОРИТМА

Алгоритмы «буква М», «буква И» и «буква Р» в этом примере называются вспомогательными для основного алгоритма «МИР».

ОДИН И ТОТ ЖЕ АЛГОРИТМ МОЖЕТ ВЫСТУПАТЬ
И В РОЛИ ВСПОМОГАТЕЛЬНОГО, И В РОЛИ ОСНОВНОГО

Алгоритм «МИР» ( All ) сам может быть использован как вспомогательный. Например, мы можем составить следующий алгоритм для рисования лозунга «МИРУ МИР»:

дано п epo поднято

надо | нарисован лозунг «МИРУ МИР», перо поднято и расположено в конце лозунга (в начале следующей буквы)

сместиться на вектор (3, 0) |пропуск между словами МИР

В этом примере алгоритм «МИР» является вспомогательным по отношению к алгоритму «МИРУ МИР» и основным по отношению к алгоритму «буква М».

¾ Алгоритм проезда по большому городу Каймин

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

Типичный пример — алгоритм проезда по большому городу. Рассмотрим задачу проезда в Москве от аэродрома Внуково до Красной площади. Один из способов можно описать следующим алгоритмом с использованием вспомогательных алгоритмов:

¾ Алгоритм рисования индекса 660000 Босова 7

Пример 1. Составить алгоритм рисования почтового индекса города Красноярска — 660000.

Для решения основной задачи (рисования почтового индекса 660000) достаточно «научить» Чертежника рисовать цифру 6 и цифру 0. Для этого алгоритм рисования цифры нужно предварительно оформить в виде процедуры (вспомогательного алгоритма).

1.2. Определения ВА, предлагаемые авторами учебников

1. Вспомогательный алгоритм – алгоритм, который можно использовать в других алгоритмах, указав его имя и, если имеются, значения параметров. Макарова 8-9

2. Алгоритм, по которому решается некоторая подзадача из основной задачи и который, как правило, выполняется многократно, называется вспомогательным алгоритмом.

Вспомогательный алгоритм – это алгоритм решения некоторой подзадачи исходной (основной) задачи. Вспомогательный алгоритм, записанный на языке программирования, называется подпрограммой или процедурой. семакин

3. Вспомогательный алгоритм – алгоритм, целиком используемый в составе другого алгоритма. Босова, Ершов

4. Вспомогательный алгоритм – это набор действий, многократно использующихся в алгоритме, выделенных в качестве самостоятельного алгоритма и имеющих имя. Гейн

6. Для решения каждой подзадачи составляют свою программу на языке программирования, которая называется вспомогательной программой (подпрограммой). Быкадоров 15п 9

7. Вспомогательным называется алгоритм, снабженный таким заголовком, который позволяет вызывать этот алгоритм из других алгоритмов. Любой алгоритм можно сделать вспомогательным: надо лишь снабдить его соответствующим заголовком (т.е. указать название, аргументы и результаты). ВА – мощное и удобное средство, облегчающее решение трудных задач.

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

1.3. Обращение к ВА (описание ВА)Босова 9 Семакин 161

1.3.1. Заголовок ВА. Гейн 8

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

1.3.2. Команда вызова ВА Босова 9 Гейн.

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

Команда вызова вспомогательного алгоритма исполняется следующим образом (рис. 2.4):

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

2. для заданных входных данных исполняются команды вспомогательного алгоритма;

3. полученные результаты присваиваются переменным с именами фактических результатов;

4. осуществляется переход к следующей команде основного алгоритма.

Босова информатика 9

1.3.3. Общая форма записи ВА:

Записывая вспомогательный алгоритм, кроме названия, следует указывать переменные, служащие аргументами и результатами. Гейн 8

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

1.3.4. Типы переменных

· переменная вещественного типа;

· переменная целого типа;

· передача данных во вспомогательный алгоритм

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

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

Вспомним, как записывают числа на уроках математики.

Алгоритмы выполнения действий над числами сильно зависят от того, как эти числа записаны. Например, десятичные дроби складываются совсем не так, как обыкновенные. Поэтому формальный исполнитель должен знать, с числами какого вида он будет иметь дело.

В алгоритме редко присутствует запись самих чисел. Обычно в нём фигурируют переменные, которые, словно пустая тара, всегда готовы принять в себя числа на временное хранение. Но никто не хранит подсолнечное масло в бумажных пакетах или сахар в сетках. Каждому виду продукта — свой тип тары. Так же и с переменными: каждому виду чисел — свой тип переменных.

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

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

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

Объявление переменных может, например, выглядеть так:

Переменные объявляются до фигурных скобок, ограничивающих тело алгоритма, программы или подпрограммы. Например:

Стандартные слова вещ и цел, как обычно, подчёркиваются.

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

Например, в уже знакомом вам алгоритме нахождения разложения на простые множители переменные можно описать следующим образом:

(*писходное число, тнаименьший простой множитель числа п*)

Алгоритм Разложение на простые множители цел: п, т;

(*3десь тисходное число, anнаименьший простой мно­житель числа п*)

< Сообщить «Разложения не существует»;

< Вызвать Простой множитель (т, п);

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

Имена переменных (неважно, аргументы это или результаты), которые фигурируют в операторе Вызвать, являются фактически­ми параметрами. Правила присваивания значений формальным параметрам очень просты.

Перед началом выполнения подпрограммы:

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

¾ если в подпрограмме есть второй аргумент, то берётся вторая переменная в операторе Вызвать; её содержимое присваивается второй переменной после слова арг в заголовке соответствующей подпрограммы;

¾ если в подпрограмме есть третий аргумент, то третья переменная присваивается третьей переменной и т. д.

После окончания работы подпрограммы:

¾ если в подпрограмме есть результаты, то берётся первая переменная после слова рез в заголовке соответствующей подпрограммы; её содержимое присваивается следующей переменной, которая осталась после присваивания значений аргументам в операторе Вызвать;

¾ если есть еще результаты, то их значения присваиваются соответствующим переменным.

Количество переменных и их тип в операторе Вызвать должны совпадать с количеством переменных и их типом в заголовке соответствующей подпрограммы.

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

Но переменные можно объявить в основном алгоритме, работать с ними во вспомогательном алгоритме. Такие переменные называются глобальными переменными. Например, в алгоритме разложения на простые множители переменные можно описать так:

Делать пока («не делится на т)

Алгоритм Разложение на простые множители

< Сообщить «Разложения не существует»;

< Вызвать Простой множитель (р);

Теперь во вспомогательном алгоритме нет аргументов, есть только результаты. Переменная п здесь является глобальной, она используется как в основном, так и во вспомогательном алгоритме. А переменная т — локальная, она может использоваться только во вспомогательном алгоритме.

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

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

алгоритма с указанием

2.3. Блок «предопределённый процесс»

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

Фактические параметры указываются в этом блоке, а формальные параметры — в начальном блоке вспомогательного алгоритма.

Вспомогательный алгоритм делает структуру алгоритма более понятной.

Для передачи информации во вспомогательный алгоритм и получения его результатов в команде вызова вспомогательного алгоритма указываются фактические параметры — имена переменных основного алгоритма или арифметические выражения

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *