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

ГДЗ Информатика 9 класс Семакин — Вспомогательные алгоритмы и подпрограммы

ОТВЕТЫ Решебник — ГДЗ Инфо рматика — §5.Вспомогательные алгоритмы и подпрограммы , Семакин 9 класс

Вопросы и задания
1 Что такое основной алгоритм; вспомогательный алгоритм?
2 Чем отличается описание вспомогательного алгоритма от обращения к вспомогательному алгоритму?
3 Каковы правила описания вспомогательных алгоритмов (процедур) для исполнителя ГРИС?
4 Как записывается команда обращения к процедуре в языке исполнителя ГРИС?
5 В чем суть метода последовательной детализации?
6 Что такое программирование снизу вверх; сверху вниз?
7 Используя вспомогательные алгоритмы, запрограммируйте рисование следующих фигур:

Ответы на вопросы параграф 5 из учебника Семакина 9 класс

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

2. описание пишется вначале программы, а обращение это уже непосредственная ссылка на строку с началом алгоритма

3. Имя в описании и имя в обращении должны совпадать (никаких склонений по падежам). Описание процедур располагается после самой программы

4. Команда обращения к процедуре имеет формат, т. е. общий вид, следующий: сделай

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

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

7. ПРОГРАММА по пунктам
Рисунок 1
(стрелка — вправо)
Программа Гусеница
Нач
сделай КВАДРАТ
сделай КВАДРАТ
шаг
шаг
кон
процедура КВАДРАТ
нач
шаг
шаг
поворот
шаг
шаг
шаг
поворот
поворот
поворот
шаг
шаг
поворот
поворот
поворот
шаг
шаг
шаг
поворот
кон

Рисунок 2
(стрелка — вправо)
Программа Крест
нач
сделай ЛЕСЕНКА
сделай ЛЕСЕНКА
сделай ЛЕСЕНКА
сделай ЛЕСЕНКА
кон
процедура ЛЕСЕНКА
нач
шаг
шаг
поворот
поворот
поворот
шаг
шаг
поворот
шаг
шаг
поворот
кон

Рисунок 3
(стрелка — вправо)
Программа Нос
Нач
сделай Н
прыжок
сделай О
прыжок
прыжок
прыжок
сделай С
кон

Процедура Н
нач
поворот
шаг
шаг
шаг
шаг
поворот
поворот
прыжок
прыжок
поворот
шаг
шаг
поворот
шаг
шаг
поворот
поворот
шаг
шаг
поворот
кон

Процедура О
нач
шаг
шаг
поворот
шаг
шаг
шаг
шаг
поворот
шаг
шаг
поворот
шаг
шаг
шаг
шаг
поворот
кон

Процедура С
нач
шаг
поворот
прыжок
прыжок
прыжок
прыжок
поворот
шаг
поворот
шаг
шаг
шаг
шаг
кон

Рисунок 4
(стрелка — вправо)
Программа Лесенка
нач
сделай УГОЛ
сделай УГОЛ
сделай УГОЛ
кон
процедура УГОЛ
нач
поворот
шаг
поворот
поворот
поворот
шаг
кон

Литература: Учебник:Информатика, 9 класс. ФГОС Автор: И. Г. Семакин, Л. А. Залогова, С. В. Русаков, Л. В. Шестакова.

Источник

Учитель информатики

Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.

§ 2.3. Конструирование алгоритмов

Информатика. 9 класса. Босова Л.Л. Оглавление

Ключевые слова:

Последовательное построение алгоритма

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

Процесс последовательного построения алгоритма выглядит следующим образом.

На первом шаге мы считаем, что перед нами совершенный исполнитель, который «всё знает и всё умеет». Поэтому достаточно определить исходные данные и результаты алгоритма, а сам алгоритм представить в виде единого предписания — постановки задачи (рис. 2.2).

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

Процесс продолжается до тех пор, пока все предписания не будут понятны исполнителю.

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

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

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

Система команд исполнителя Робот:

В одном условии можно использовать несколько команд, применяя логические операций И, ИЛИ, НЕ.

Известно, что Робот находится где-то в горизонтальном коридоре. Ни одна из клеток коридора не закрашена.

Составим алгоритм, под управлением которого Робот закрасит все клетки этого коридора и вернётся в исходное положение.

Представим план действий Робота следующими укрупнёнными шагами (модулями):

Детализируем каждый из пяти модулей.

1. Чтобы закрасить все клетки коридора, находящиеся левее Робота, прикажем Роботу шагнуть влево и выполнить цикл-ПОКА:

Под управлением этого алгоритма Робот закрасит все клетки коридора, находящиеся левее от него, и окажется на клетке рядом с левой границей коридора.

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

Под управлением этого алгоритма Робот окажется в исходной клетке.

4. Так как, выполнив предыдущий алгоритм, Робот оказался правее коридора, командой влево вернём его в коридор. Возвращение в исходную точку обеспечивается алгоритмом:

5. По команде закрасить Робот закрашивает исходную клетку.

Полностью программа управления Роботом выглядит так:

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

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

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

Пример 1. В среде КуМир составим алгоритм для исполнителя Робот, под управлением которого он нарисует узор:

Начальное положение Робота отмечено звёздочкой. В алгоритме использован вспомогательный алгоритм фигура.

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

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

Пример 2.

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

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

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

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

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

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

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

n-я степень числа а есть не что иное, как произведение а n-1 • а; в свою очередь, а n-1 = а n-2 • а и т. д.

Пример 4. Рекурсивный алгоритм положен в основу эффективно го решения головоломки «Ханойская башня».

Пример 5. Рассмотрим алгоритм построения геометрической фигуры, которая называется снежинкой Коха. Шаг процедуры построения состоит в замене средней трети каждого из имеющихся отрезков двумя новыми такой же длины, как показано на рисунке:

С каждым шагом фигура становится всё причудливее. Граница снежинки Коха — положение кривой после выполнения бесконечного числа шагов.

Попробуйте подсчитать, сколько рёбер в границе снежинки Коха после четвёртого шага; после пятого шага.

САМОЕ ГЛАВНОЕ

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

1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Дополняет ли презентация информацию, содержащуюся в тексте параграфа?

Источник

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

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

Основные темы параграфа:

♦ что такое вспомогательный алгоритм;
♦ обращение к вспомогательному алгоритму (процедуре);
♦ описание вспомогательного алгоритма (процедуры);
♦ метод последовательной детализации;
♦ сборочный метод.

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

А сейчас решим следующую задачу.

Задача 2. Пусть требуется составить программу, по которой ГРИС напишет на экране четырехзначное число 1919 (рис. 5.6).

Конечно, можно поступить так, как в предыдущей задаче, написав одну длинную программу, по которой исполнитель шаг за шагом нарисует эти цифры. Но с очевидностью возникает другая идея: поскольку здесь дважды повторяются цифры 1 и 9, нельзя ли сократить работу, написав программу рисования той и другой цифры только один раз? Это действительно можно сделать.

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

Читайте также:  Что такое мушкет определение

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

Обращение к вспомогательному алгоритму (процедуре)

В таком случае программа решения поставленной задачи разделяется на основную программу (основной алгоритм) и процедуры (вспомогательные алгоритмы). Каждая процедура должна иметь свое уникальное имя. Для рассматриваемой задачи имена процедур выберем следующими: ЕДИНИЦА и ДЕВЯТЬ. Тогда в основной программе команды обращения к этим процедурам будут такими:

сделай ЕДИНИЦА
сделай ДЕВЯТЬ

По этим командам управление передается соответствующим процедурам, и после их выполнения управление вернется к следующей команде основной программы.

Договоримся, что начальное и конечное состояния ГРИС при вычерчивании каждой цифры будут такими, как показано стрелками на рис. 5.6 (внизу, на восток). У единицы начальное и конечное состояния совпадают. Основная программа:

программа Число 1919
нач
сделай ЕДИНИЦА
прыжок
сделай ДЕВЯТЬ
прыжок
сделай ЕДИНИЦА
прыжок
сделай ДЕВЯТЬ
кон

Данный пример познакомил вас с новой командой из СКИ графического исполнителя — командой обращения к процедуре. Ее формат, т. е. общий вид, следующий:

сделай имя процедуры>

Описание вспомогательного алгоритма (процедуры)

Вот и все! Так просто! Но теперь надо «объяснить» исполнителю, что такое ЕДИНИЦА и что такое ДЕВЯТЬ. Это делается в описаниях процедур (здесь порядок выполнения — по столбцам):

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

Имя в описании и имя в обращении должны точно совпадать (никаких склонений по падежам!). Описание процедур располагается после основной программы.

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

Метод последовательной детализации

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

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

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

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

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

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

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

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

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

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

1. Что такое основной алгоритм; вспомогательный алгоритм?
2. Чем отличается описание вспомогательного алгоритма от обращения к вспомогательному алгоритму?
3. Каковы правила описания вспомогательных алгоритмов (процедур) для исполнителя ГРИС?
4. Как записывается команда обращения к процедуре в языке исполнителя ГРИС?
5. В чем суть метода последовательной детализации?
6. Что такое программирование снизу вверх; сверху вниз?
7. Используя вспомогательные алгоритмы, запрограммируйте рисование следующих фигур:

И. Семакин, Л. Залогова, С. Русаков, Л. Шестакова, Информатика, 9 класс
Отослано читателями из интернет-сайтов

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

Если у вас есть исправления или предложения к данному уроку, напишите нам.

Источник

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

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

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

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

Источник

Урок 15
Основы алгоритмизации

Алгоритмы

Изучив эту тему, вы узнаете:

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

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

Вспомните рассмотренный ранее алгоритм «Приготовление гречневой каши». Он начинался с пункта «Обратитесь к алгоритму „Разжигание костра»».

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

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

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

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

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

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

1. Набрать название песни.
2. Набрать первый куплет.
3. Набрать припев.
4. Набрать второй куплет.
5. Скопировать припев.
6. Набрать третий куплет.
7. Скопировать припев.

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

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

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

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

1. Выделить объект.
2. Выбрать команду Правка/Копировать.
3. Указать щелчком мыши место вставки.
4. Выбрать команду Правка/Вставить.

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

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

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

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

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

— алгоритм Дуга (радиус, направление);
— алгоритм Лепесток (радиус, направление);
— алгоритм Группа (радиус, направление).

Рис. 12.12. Этапы создания сложной графической композиции

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

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

12.8. Стадии создания алгоритма

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

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

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

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

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

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

Таким образом, в общем случае алгоритм претерпевает изменения по стадиям:
♦ первая стадия — алгоритм должен быть представлен в форме, понятной человеку, который его разрабатывает;
♦ вторая стадия — алгоритм должен быть представлен в форме, понятной тому объекту (в том числе и человеку), который будет выполнять описанные в алгоритме действия. В том случае, если эти действия станет выполнять сам разработчик алгоритма, вторая стадия будет отсутствовать.

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

1. Достать карту местности.
2. Оговорить продолжительность путешествия.
3. Проложить предстоящий маршрут.

Это первая стадия разработки алгоритма. На этом этапе вы обдумываете план и намечаете для себя промежуточные цели.

В дальнейшем, исследуя карту, вы обнаруживаете, что наиболее привлекательным местом является берег речки, расположенный довольно далеко. Ваша цель меняется. Теперь вы мечтаете совершить путешествие именно к этому месту. Поэтому вы вынуждены откорректировать намеченный план действий:
4. Подготовить перечень необходимых продуктов, которые вы возьмете с собой.
5. Подготовить велосипед к длительному пути — смазать маслом, накачать шины и т. д.
6. Собрать необходимые вещи — купальные принадлежности, удочку и т. д.

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

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

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

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

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

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

1. Придумать сюжет.
2. Нарисовать картинку по сюжету.
3. Написать стихи до сюжету.
4. Подготовить открытки с адресами.
5. На каждую открытку поместить рисунок и текст.

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

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

Запомните правила разработки любого алгоритма.

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

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

Контрольные вопросы и задания

1. Дайте определение алгоритма и приведите примеры.
2. Что такое алгоритмизация?
3. Приведите пример математического выражения и составьте алгоритм его вычисления.
4. Поясните на примерах свойства алгоритма.
5. Как вы понимаете свойство конечности алгоритма? Приведите примеры.
6. Как вы понимаете свойство массовости алгоритма? Приведите примеры.
7. Что такое линейный алгоритм? Приведите примеры.
8. Что такое циклический алгоритм? Приведите примеры.
9. Напишите циклический алгоритм и укажите в нем тело цикла.
10. Как происходит окончание циклического алгоритма?
11. Что такое разветвляющийся алгоритм? Приведите примеры.
12. Как в алгоритме записывается условие?
13. Как записывается полная форма разветвляющегося алгоритма? Приведите примеры.
14. Как записывается неполная форма разветвляющегося алгоритма? Приведите примеры.
15. Что такое вспомогательный алгоритм? Приведите примеры.
16. Зачем нужна блок-схема алгоритма?
17. Придумайте пример алгоритма и представьте его в виде блок-схемы.
18. Какие стадии разработки алгоритма вы знаете и в чем их суть?
19. Приведите пример разработки алгоритма по стадиям в виде двух блок-схем.

Тест по теме: “Основные понятия алгоритма”

1. Свойство алгоритма, заключающееся в том, что каждое действие и алгоритм в целом должны иметь возможность завершения.
а) дискретность;
б) детерминированность;
в) конечность;
г) массовость.

2. Алгоритм называется циклическим:
а) если он начинается с конца;
б) если серия команд повторяется многократно, в зависимости от условия задачи;
в) если в программе упорядочены действия;
г) всё выше перечисленное верно.

3. Свойством алгоритма является:
а) результативность;
б) цикличность;
в) возможность изменения последовательности выполнения команд;
г) возможность выполнения алгоритма в обратном порядке.

4. Алгоритмом является:
а) прайс лист;
б) инструкция по получению денег в банкомате;
в) расписание уроков;
г) список класса.

5. Алгоритм это:
а) правила выполнения определённых действий;
б) ориентированный граф, указывающий порядок выполнения некоторого набора команд;
в) описание последовательности действий, строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов;
г) набор команд ля компьютера.

Практикум

Циклические алгоритмы

Цикл с предусловием

Выполнив задания этой темы, вы научитесь:

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

Цикл с предусловием относится к циклам с неизвестным числом повторений.

В цикле с предусловием сначала проверяется выполнение условия продолжения цикла. Если условие истинно (да, true), то выполняется тело цикла, а иначе (нет, False) цикл завершается. Особенностью этого цикла является то, что если при 1-й проверке условие ложно, то тело цикла не выполнится ни разу.

Специального блока для реализации цикла с предусловием в блок-схемах нет.

Блок-схема алгоритма реализуется при помощи блока принятия решения, выполнения действий и др.

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

Задание 8.7

Существуют простые правила определения делимости чисел на числа 3, 4, 5:

♦ на 3 без остатка делятся числа, сумма цифр которых делится на 3;
♦ на 4 без остатка делятся числа, у которых две последние цифры составляют число, делящееся на 4;
♦ на 5 без остатка делятся числа, заканчивающиеся на цифры 5 и 0.

Впервые эти правила были сформулированы в знаменитой «Книге Абака» итальянского математика Леонардо Фибоначчи (XII век). Требуется проверить делимость введенных чисел на 3 по первому из перечисленных правил.

Словесный алгоритм

Начало алгоритма
1. Введите число.
2. Пока цифры числа не закончатся:

а) выделите очередную цифру как остаток от деления на 10;
б) прибавьте эту цифру к общей сумме;
в) удалите обработанную цифру из числа, получив новое число в виде частного от деления на 10.
3. Проверьте, делится ли полученная сумма на 3 без остатка:

• если делится, то сообщите, что исходное число делится на 3;
• иначе сообщите, что исходное число не делится на 3. Конец алгоритма
Конец алгоритма

Алгоритм в виде блок-схемы

На рис. 8.9 приведена блок-схема, составленная по словесному алгоритму.

Рис. 8.9. Блок-схема алгоритма (к заданию 8.7)

Алгоритм в виде программы

В табл. 8.13 приведена программа к заданию на алгоритмическом языке Кумир. В табл. 8.14 приведены тексты программ на языках Паскаль и Visual Basic.

Таблица 8.13. Программа на Кумире с пояснениями (к заданию 8.7)

Таблица 8.14. Примеры программ на Паскале и Visual Basic (к заданию 8.7)

Задание 8.8

Леонардо из Пизы, известный как Фибоначчи, был первым из великих математиков Европы позднего Средневековья. Числовой ряд, носящий в наше время имя Фибоначчи, вырос из проблемы с кроликами, которую Фибоначчи изложил в своей «Книге Абака», написанной в 1202 году. Он выглядит так:

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144.

В этом ряду каждое следующее число, начиная с третьего, равно сумме двух предыдущих (рис. 8.10). Требуется составить алгоритм проверки принадлежности введенного числа ряду чисел Фибоначчи.

Словесный алгоритм

Начало алгоритма
1. Введите число.
2. Установите значение первых трех чисел Фибоначчи: 1,1,1 + 1 (сумма двух предыдущих чисел).
3. Пока введенное число больше очередного числа Фибоначчи, возьмите два последних числа и получите из них новое число Фибоначчи.
4. Если число Фибоначчи, полученное по выходу из цикла, равно введенному (n) или было введено число п = 1, то сообщите «Да» (введено число Фибоначчи), в противном случае — сообщите «Нет» (введенное число не является числом Фибоначчи) Конец алгоритма

Алгоритм в виде блок-схемы

На рис. 8.11 приведена блок-схема, составленная по словесному алгоритму.

Алгоритм в виде программы

В табл. 8.15 приведена программа на алгоритмическом языке Кумир.

Таблица 8.15. Программа на Кумире с пояснениями (к заданию 8.8)

В табл. 8.16 приведены тексты программы на языках программирования Паскаль и Visual Basic.

Таблица 8.16. Примеры программ на Паскале и Visual Basic (к заданию 8.8)

Задание 8.9

В телевизионном эфире в США проводится марафон, цель которого — сбор средств для поддержки незащищенных слоев населения. Во время эфира слушатели отправляют на адрес студии телеграммы с указанием суммы пожертвования и цели, на реализацию которой пойдет эта сумма, например: «Посылаю 521$ в фонд помощи безработным. Смит».

Словесный алгоритм

Алгоритм в виде блок-схемы

На рис. 8.12 приведена блок-схема, составленная по словесному алгоритму.

Алгоритм в виде программы

В табл. 8.17 приведена программа на алгоритмическом языке Кумир.

Таблица 8.17. Программа на Кумире (к заданию 8.9)

В табл. 8.18 приведены тексты программы на языках программирования Паскаль и Visual Basic.

Таблица 8.18. Примеры программ на Паскале и Visual Basic (к заданию 8.9)

Контрольные вопросы и задания

К заданию 8.7

1. Для чего нужны начальные установки в алгоритме?
2. Пройдите алгоритм по блок-схеме для числа 521 (см. рис. 8.9). Какое значение будет в переменных nl и Sum перед выходом из цикла?
3. Добавьте в любую из программ оператор вывода переменных cifra и Sum. Какое значение и сколько раз будет выведено для числа 222?
4. Что произойдет, если пользователь введет число п равным нулю?
5. Напишите комментарий к п. 9 программы на Кумире (см. табл. 8.13).

К заданию 8.8

1. Какие действия выполняются в блоке 6 (см. рис. 8.11) и соответствующем фрагменте программы на Кумире (см. табл. 8.15)?
2. Какое условие проверяется в данном алгоритме при входе в цикл с предусловием?
3. Запишите в тетради тело цикла с предусловием, используемое в данном алгоритме.
4. Придумайте и запишите пример ситуации, когда тело цикла не выполняется ни одного раза.
5. В блоке 3 алгоритма (см. рис. 8.11) было введено число 5. Сколько раз выполнится тело цикла?
6. Напишите пояснение к строкам 2 и 3 программы на Кумире (см. табл. 8.15).
7*. В блоке 6 программы на Кумире (см. табл. 8.15) производится переприсваивание содержимого ячеек (предпредыдущей, предыдущей и текущей). Можно ли поменять местами операторы присваивания? Ответ обоснуйте.
8*. Можно ли в данном алгоритме обойтись только двумя переменными ƒ1 и ƒ2?

К заданию 8.9

1. В блоке 4 блок-схемы (см. рис. 8.12) определяется длина строки n. Для чего это делается? Где далее используется эта переменная?
2. В алгоритме используется цикл с предусловием. Может ли возникнуть такая ситуация, что тело цикла не исполнится ни разу? Придумайте и запишите в тетради пример телеграммы, текст которой приведет к такой ситуации.
3. Что произойдет в алгоритме, если в адрес телемарафона придет телеграмма из России: «Я пенсионерка, но хочу пожертвовать 3 доллара в фонд помощи бездомным животным. Татьяна». Предложите вариант алгоритма, учитывающего подобную ситуацию.
4. Добавится ли к сумме число, указанное в телеграмме: «Я родился в 1900 году, средств не имею, но считаю, что нужно помогать старикам. Джон»?
5*. Если вы отлаживаете программы на Паскале или на Visual Basic, упростите поиск упоминания доллара (знак или текст).
6. Что означает сложное условие sim >= «0» и sim *

Слышали ли вы о «золотом» прямоугольнике? Если от него отсечь квадрат, то остается прямоугольник с такими же пропорциями (отношением сторон), то есть полученный прямоугольник тоже будет «золотым». Этот процесс можно продолжать до бесконечности. На этой же пропорции базируются все «золотые» геометрические фигуры. Отрезки «золотой» пропорции выражаются бесконечными дробями 1,618 или 0,618.

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

Требуется определить по введенным сторонам, является ли прямоугольник «золотым». Принять допущение: считать прямоугольник «золотым», если одно и то же соотношение с заданной точностью (абсолютная погрешность — 0,01) повторилось 5 раз. Вывести «золотое» соотношение.

Рис. 8.18. К заданию 8.15

Словесный алгоритм

Начало алгоритма
1. Введите параметры прямоугольника.
2. Определите, какая сторона является большей, какая — меньшей.
3. Найдите и сообщите первое отношение большей стороны к меньшей.
4. Пока не закончатся 5 экспериментов или не выявится неравенство последующих отношений, выполняйте следующие действия:
а) определите стороны нового прямоугольника после отсечения квадрата и найдите их соотношение;
б) если это соотношение не равно предыдущему с заданной точностью, то завершите эксперименты.
5. Если все 5 попыток прошли успешно, то выведите сообщение «прямоугольник золотой», иначе — «прямоугольник не золотой».
Конец алгоритма

Алгоритм в виде блок-схемы

Рис. 8.19. Блок-схема алгоритма (к заданию 8.15)

На блок-схеме (рис. 8.19) пунктирной линией обведены блоки, которые будут многократно повторяться далее в цикле. Это означает, что данные блоки должны быть оформлены как вспомогательный алгоритм.

Алгоритм в виде программы

В табл. 8.29 приведена программа на алгоритмическом языке Кумир с пояснениями. В табл. 8.30 приведены тексты программы на языках программирования Паскаль и Visual Basic.

Таблица 8.29. Программа на Кумире с пояснениями (к заданию 8.15)

Таблица 8.30. Примеры программ на Паскале и Visual Basic (к заданию 8.15)

Контрольные вопросы и задания

К заданию 8.13


6. Выпишите в тетрадь, как описана на разных языках строка фамилий?
7. Если искомая фамилия является последней в списке, по какому условию осуществился выход из цикла?

К заданию 8.15

1. Для чего нужны начальные установки в алгоритме?
2. При решении задачи принято допущение: считать прямоугольник «золотым», если одно и то же соотношение с заданной точностью (абсолютная погрешность — 0,01) повторилось 5 раз. Найдите места в примерах программ, где учитывается это соглашение.
3. Что надо изменить в блок-схеме и программах, чтобы пользователь сам указывал абсолютную погрешность?
4. После выхода из цикла анализируется переменная razn. Можно ли анализировать переменную ch?
5*. Заполните таблицу истинности для сложного логического выражения (razn > 0.01) Or (ch = 5).


6. Напишите пояснения к пп. 10 и 11 программы на Кумире (см. табл. 8.29).
7*. Золотое соотношение обеспечивают стороны, длина которых соответствует числам Фибоначчи (чем больше числа, тем точнее пропорция). Это видно на первом тесте (рис. 8.21). Что нужно изменить в программе, чтобы рассматриваемое отношение сторон поменялось с 0,618 на 1,618?
8*.На рис. 8.21 изображено два теста. Какого теста не хватает для проверки всех ветвей алгоритма?

Рис. 8.21. Примеры тестирования программы на Visual Basic (к заданию 8.15)

9. Что нужно изменить (добавить) в блок-схеме, чтобы проверялось условие равенства сторон исходного прямоугольника? Что даст подобное изменение?

Источник

Читайте также:  Что такое базофилы в медицине
Информационный сайт