Способы описания алгоритмов задачи с решением

Алгоритмы

Алгоритмы. Разработка алгоритма решения задачи

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

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

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

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

  • Этап 1 . Математическое описание решения задачи.
  • Этап 2 . Определение входных и выходных данных.
  • Этап 3 . Разработка алгоритма решения задачи.

Базовые алгоритмические конструкции

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

  • следование (линейный алгоритм);
  • ветвление (разветвляющийся алгоритм);
  • цикл-пока (циклический алгоритм).

Линейные алгоритмы

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

Пример

ЗАДАЧА. Разработать алгоритм вычисления гипотенузы прямоугольного треугольника по известным значениям длин его катетов a и b.

На примере данной задачи рассмотрим все три этапа разработки алгоритма решения задачи:

Этап 1. Математическое описание решения задачи.

Математическим решением задачи является известная формула:

,

где с-длина гипотенузы, a, b – длины катетов.

Этап 2. Определение входных и выходных данных.

Входными данными являются значения катетов a и b. Выходными данными является длина гипотенузы – c.

Этап 3. Разработка алгоритма решения задачи.

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

Разветвляющиеся алгоритмы

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

Пример

ЗАДАЧА. Разработать алгоритм вычисления наибольшего числа из двух чисел x и y.

Этап 1. Математическое описание решения задачи.

Из курса математики известно, если x > y, то наибольшее число x, если x y, то переход к шагу 6, иначе к шагу 7.

  • Вывод информации: число x больше y. Переход к шагу 8.
  • Вывод информации: число y больше x. Переход к шагу 8.
  • Конец алгоритма.
  • В схеме алгоритма решения задачи цифрами указаны номера элементов алгоритма, которые соответствуют номерам шагов словесного описания алгоритма

    В рассматриваемом алгоритме (рис.3) имеются три ветви решения задачи:

    • первая: это элементы 1, 2, 3, 4, 8.
    • вторая: это элементы 1, 2, 3, 5, 6, 8
    • третья: это элементы 1, 2, 3, 5, 7, 8.

    Выбор ветви определяется значениями x и y в элементах 3 и 5, которые являются условиями, определяющими порядок выполнения элементов алгоритма. Если условие (равенство), записанное внутри символа «решение», выполняется при введенных значениях x и y, то следующими выполняется элементы 4 и 8. Это следует из того, что они соединены линией с надписью «да» и направление (последовательность) вычислений обозначена стрелочкой.

    Если условие в элементе 3 не выполняется, то следующим выполняется элемент 5. Он соединен с элементом 3 линией с надписью «нет». Если условие, записанное в элементе 5, выполняется, то выполняется элементы 6 и 8, в противном случае выполняются элементы 7 и 8.

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

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

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

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

    • параметр цикла – величина, с изменением значения которой связано многократное выполнение цикла;
    • начальное и конечное значения параметров цикла;
    • шаг цикла – значение, на которое изменяется параметр цикла при каждом повторении.

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

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

    • начальные значения цикла;
    • конечные значения цикла;
    • шаг цикла.

    В тело цикла входят:

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

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

    Пример

    ЗАДАЧА. Разработать алгоритм вычисления суммы натуральных чисел от 1 до 100.

    Этап 1. Математическое описание решения задачи.

    Обозначим сумму натуральных чисел через S. Тогда формула вычисления суммы натуральных чисел от 1 до 100 может быть записана так:

    где Xi – натуральное число X c номером i, который изменяется от 1 до n, n=100 – количество натуральных чисел.

    Этап 2. Определение входных и выходных данных.

    Входными данными являются натуральные числа: 1, 2, 3, 4, 5, …, 98, 99, 100.

    Выходные данные – значение суммы членов последовательности натуральных чисел.

    Параметр цикла величина, определяющая количество повторений цикла. В нашем случае i – номер натурального числа.

    Подготовка цикла заключается в задании начального и конечного значений параметра цикла.

    • начальное значение параметра цикла равно 1,
    • конечное значение параметра цикла равно n,
    • шаг цикла равен 1.

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

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

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

    Этап 3. Разработка алгоритма решения задачи.

    Введем обозначения: S – сумма последовательности, i – значение натурального числа.

    Начальное значение цикла i=1, конечное значение цикла i =100, шаг цикла 1.

    Источник

    Урок по теме «Алгоритмы и способы их описания»

    ТЕМА: АЛГОРИТМЫ И СПОСОБЫ ИХ ОПИСАНИЯ. ЭТАПЫ РЕШЕНИ ЗАДАЧ С ИСПОЛЬЗОВАНИЕМ КОМПЬЮТЕРА: ФОРМАЛИЗАЦИЯ, ПРОГРАММИРОВАНИЕ И ТЕСТИРОВАНИЕ. ПЕРЕХОД ОТ НЕФОРМАЛЬНОГО ОПИСАНИЯ К ФОРМАЛЬНОМУ

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

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

    К основным способам описания алгоритмов можно отнести следующие:

    структурный или блок-схемный;

    с помощью граф-схем;

    с помощью сетей Петри.

    Типовые конструкции алгоритмов:

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

    б) Разветвляющийся (развилка)

    Это такой алгоритм, в котором содержится команда ветвления.

    Команда ветвления – это составная команда, в которой та или иная серия команд выполняется после проверки условия.

    Команда ветвления имеет полную (1) или сокращенную форму (2)

    Цикл «Пока» ( While )

    Это такой алгоритм, в котором содержится команда повторения.

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

    ТРИ ТИПА КОМАНД ПОВТОРЕНИЯ: ЦИКЛ «ДЛЯ», ЦИКЛ «ПОКА», ЦИКЛ «ДО»

    Отличие – способ проверки окончания цикла.

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

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

    2. Понятность (определенность). Каждый алгоритм должен быть ориентирован на определенного пользователя.

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

    4. Массовость. Любой алгоритм должен решать как можно более широкий круг однотипных задач.

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

    Таблица 1. Условные обозначения блоков схем алгоритмов

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

    Основные правила составления блок-схемы:

    Обязательно должно присутствовать два блока – «Начало» и «Конец». Причем в единичном экземпляре.

    От начального блока до конечного должны быть проведены линии связи.

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

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

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

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

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

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

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

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

    Для облегчения блок-схемы разрешается всю информацию прописывать в комментариях.

    Формализация – это замена реального объекта или процесса его формальным описанием, т.е. его информационной моделью.

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

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

    ЭТАПЫ РЕШЕНИЯ ЗАДАЧИ НА ЭВМ

    Выделяют несколько этапов в подготовке и решении задач на ЭВМ:

    математическое описание задачи;

    выбор и обоснование метода решения;

    алгоритмизация вычислительного процесса;

    решение задачи на ЭВМ и анализ результатов.

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

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

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

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

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

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

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

    Пример реализации алгоритма при помощи блок-схемы.

    Задана блок-схема, по которой решается какой-то алгоритм. При этом пользователь самостоятельно вводит значения переменных. Допустим, х=16, а у=2. Процесс выполнения такой:

    1. Производится ввод значений х и у.

    2. Выполняется операция преобразования: х=√16=4.

    3. Выполняется условие: у=у2=4.

    4. Производится вычисление: х=(х+1)=(4+1)=5.

    5. Дальше вычисляется следующая переменная: у=(у+х)=(5+4)=9.

    6. Выводится решение: у=9.

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

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

    3. Составьте блок-схему алгоритма какой-либо жизненной ситуации

    Источник

    Читайте также:  Хозяйственный способ производства строительных работ это
    Оцените статью
    Разные способы
    Словесное описание алгоритма Запись алгоритма на языке блок-схем
    1. Начало алгоритма.
    2. Ввод значений длин катетов a и b.
    3. Вычисление длины гипотенузы с по формуле
    4. Вывод значения длины гипотенузы.
    5. Конец алгоритма