Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
практика 1.docx
Скачиваний:
2
Добавлен:
12.11.2019
Размер:
147.25 Кб
Скачать

Практическое занятие № 1

Разработка линейных и разветвляющихся алгоритмов

Цель занятия:

  • Изучить основные правила разработки алгоритма

  • Изучить свойства алгоритма

  • Приобрести начальные навыки разработки алгоритмов линейной и разветвляющейся структуры

Время на выполнение работы: 2 часа

Учебные вопросы:

  1. Разработка линейных алгоритмов

  2. Разработка разветвляющихся алгоритмов

  3. Разработка циклических алгоритмов

Подготовка к выполнению работы:

  1. Изучить рекомендованную литературу.

  2. Изучить материал настоящего руководства.

Материалы для подготовки к занятию:

  1. Конспект лекций

  2. [2] стр. 25-121

Основные теоретические сведения

Алгоритм и его свойства

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

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

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

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

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

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

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

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

  • с помощью графического описания

  • словесного описания

  • в виде таблицы

  • последовательностью формул

  • на алгоритмическом языке

Графическое описание алгоритма называется блок-схемой.

Стандарты выполнения

Правила выполнения блок-схем определяются следующими документами:

  • ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.

  • Для программной документации (устарели, заменяются ГОСТ 19.701-90):

  • ГОСТ 19.002-80. Схемы алгоритмов и программ. Правила выполнения.

  • ГОСТ 19.003-80. Схемы алгоритмов и программ. Обозначения условные графические.

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

Таблица 1 - Основные элементы схем алгоритма

Наименование

Обозначение

Функция

Терминатор

(пуск-остановка)

Элемент отображает вход из внешней среды или выход из нее (наиболее частое применение − начало и конец программы). Внутри фигуры записывается соответствующее действие.

Блок вычислений (вычислительный блок)

Выполнение одной или нескольких операций, обработка данных любого вида (изменение значения данных, формы представления, расположения). Внутри фигуры записывают непосредственно сами операции, например, операцию присваивания: a = 10*b + c.

Логический блок (блок условия)

Отображает решение или функцию переключательного типа с одним входом и двумя или более альтернативными выходами, из которых только один может быть выбран после вычисления условий, определенных внутри этого элемента. Вход в элемент обозначается линией, входящей обычно в верхнюю вершину элемента. Если выходов два или три то обычно каждый выход обозначается линией, выходящей из оставшихся вершин (боковых и нижней). Если выходов больше трех, то их следует показывать одной линией, выходящей из вершины (чаще нижней) элемента, которая затем разветвляется. Соответствующие результаты вычислений могут записываться рядом с линиями, отображающими эти пути. Примеры решения: в общем случае − сравнение (три выхода: >, <, =); в программировании − условные операторы if (два выхода: true, false) и case (множество выходов).

Предопределенный процесс

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

Данные

(ввод-вывод)

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

Граница цикла

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

Соединитель

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

Комментарий

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

Описание других элементов схем можно найти в соответствующих ГОСТах.

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

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

  2. Стрелка в конце линии может не ставиться, если линия направлена слева направо или сверху вниз.

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

  4. Из блока (кроме логического) может выходить только одна линия.

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

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

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

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

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

  2. Выбрать метод (порядок) решения задачи.

  3. Разбить метод решения задачи на этапы (с учетом возможностей ЭВМ).

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

  5. В полученной схеме при любом варианте вычислений:

    1. предусмотреть выдачу результатов или сообщений об их отсутствии;

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