Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_ЗФ / И-73_Структурные схемы алгоритмов.DOC
Скачиваний:
57
Добавлен:
22.03.2016
Размер:
798.21 Кб
Скачать

29

Министерство общего и профессионального образования РФ

Донская Государственная Академия Сервиса

1576

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

И ЗАДАНИЯ

к практическим занятиям по теме “Структурные схемы алгоритмов”

для студентов дневной и заочной форм обучения специальностей

2303.00 “Проектирование и сервис бытовой техники”,

1707.00 “Машины и аппараты текстильной и легкой промышленности”,

0608.00 “Экономика и управление на предприятии” и 0611.00 “Менеджмент”

Шахты 1997

С О С Т А В И Т Е Л И

Доцент кафедры ВТ О.И. Лантратов

Ст. преподаватель кафедры ВТ Е.Б. Ивушкина

Р Е Ц Е Н З Е Н Т Ы

Доцент кафедры "М и ВТ" ШИ НГТУ, А.И. Бондаренко

к.т.н.

Методические указания и задания к практическим занятиям предназначены для студентов дневной и заочной форм обучения специальностей 2303.00 “Проектирование и сервис бытовой техники”, 1707.00 “Машины и аппараты текстильной и легкой промышленности”, 0608.00 “Экономика и управление на предприятии” и 0611.00 “Менеджмент”.

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

СОГЛАСОВАНО:

Протокол № 10 заседания

НМСС 2303.00 от 4 июля 1997 г.

СОГЛАСОВАНО:

Протокол № 10 заседания

НМСС 1707.00 от 4 июля 1997 г.

СОГЛАСОВАНО:

Протокол № 10 заседания

НМСС 0608.00 от 4 июля 1997 г.

СОГЛАСОВАНО:

Протокол № 10 заседания

НМСС 0611.00 от 4 июля 1997 г.

С О Д Е Р Ж А Н И Е

ВВЕДЕНИЕ 4

1 ОБЩИЕ СВЕДЕНИЯ 4

2 СТРУКТУРНЫЙ ПОДХОД К РАЗРАБОТКЕ АЛГОРИТМОВ 12

3 Типовые задачи 19

 3.1 РазветвляющиЕся вычислительныЕ процессЫ 19

 3.2 Циклические вычислительные процессы 21

 3.3 Массивы 23

4 Контрольные задачи 24

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ 28

ВВЕДЕНИЕ

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

1 Общие сведения

Большинство филологов термин "алгоритм" связывают с именем выдающегося узбекского ученого Аль Хорезми, жившего в VIII-IX веках. По его трудам в Европе познакомились с десятичной системой счисления и правилами арифметических действий. Книга Аль Хорезми "Арифметика индусскими цифрами" произвела огромное впечатление на европейских математиков. Имя ученого в их устах превратилось в Algorithmus. Аль Хорезми первым сформулировал правила, позволяющие систематически составлять и решать квадратные уравнения.

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

Что же мы называем алгоритмом?

В соответствии с ГОСТ 19.004-80 "алгоритм - точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату". В литературе встречаются различные трактовки термина "алгоритм". Приведем их.

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

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

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

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

Алгоритм должен обладать следующими свойствами:

- детерминированностью - однозначностью получаемого результата при одних и тех же исходных данных;

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

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

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

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

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

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

Графический способ описания алгоритмов представляет собой изображение структуры алгоритма, при котором все этапы процесса обработки данных представляются с помощью определенного набора геометрических фигур - блоков, имеющих строгую конфигурацию в соответствии с характером выполняемых действий. Такое графическое представление алгоритма называется схемой алгоритма. Составление алгоритмов осуществляется в соответствии с требованиями ГОСТ 19701-90 "Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения" и ГОСТ 19.003-80 "Схемы алгоритмов и программ. Обозначения условные графические". По назначению и характеру отображаемых функций условные графические изображения делятся на основные и вспомогательные. Основные символы используются для представления операций, раскрывающих характер обработки данных в процессе решения задачи. Вспомогательные символы предназначены для пояснения отдельных элементов схемы алгоритма. Изображение схем алгоритмов осуществляется по определенным правилам. Каждая схема должна начинаться и заканчиваться символами, обозначающими начало и окончание алгоритма. Все блоки в схеме располагаются в последовательности сверху вниз и слева направо. Отдельные блоки соединяются между собой линиями потоков информации. Направление линии потока сверху вниз и справа налево принимаются за основные и стрелками не обозначаются в отличие от других направлений. Необходимым условием является один выход из символов, обозначающих обрабатывающие блоки, и двух выходов из символов, обозначающих логические операции по проверке выполнения условий.

Приведем основные условные обозначения функциональных блоков схем алгоритмов (Таблица 1).

Таблица 1 - Обозначения, название и функциональное назначение блоков алгоритмов

Обозначение

Название и функциональное назначение

Процесс - вычислительная операция или группа операций

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

Модификация - заголовок цикла

Предопределенный процесс - использование ранее разработанного алгоритма как составной части решения задачи, подпрограмма

Пуск-останов - начало, конец алгоритма, вход в подпрограмму, выход из подпрограммы

Соединитель и межстраничный соединитель. Указывают связь между прерванными линиями

Ввод-вывод - обобщенный блок ввода вывода

Ручной ввод - ввод данных с клавиатуры

Дисплей -вывод информации на экран дисплея

Продолжение таблицы 1

Обозначение

Название и функциональное назначение

Документ - вывод, печать информации на бумажный носитель

Комментарий - пояснения к операции блока

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

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

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

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

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

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

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

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

- проектирование алгоритмов - на основании выбранного численного метода и математической постановки задачи строится детальный алгоритм решения задачи;

- составление программы.

Рисунок 1 - Координатный метод нумерации блоков

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

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

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

Например, определим величину при (Рисунок 2).

Рисунок 2 -Линейный вычислительный процесс и структура следование

Порядок выполнения операций в алгоритме должен отвечать принципу следования или принципу обеспеченности переменных, в основе которого лежит обеспеченность (определенность) значений переменных на каждом шаге выполнения алгоритма. Так для алгоритма на рисунке 2 перестановка блоков 3 и 4 не допустима, поскольку для вычисления z необходимо значение у.

Ветвящимся называется алгоритмический процесс, в котором выбор направления и характера обработки информации зависит от результатов проверки выполнения какого-либо логического условия. Часто такую структуру называют также структурой ЕСЛИ-ТО-ИНАЧЕ. Каждое отдельное направление обработки информации называется ветвью и ведет к общему выходу, так что работа алгоритма продолжается независимо от того, какая ветвь будет выбрана. Базовая структура ветвление приведена на рисунке 3, а. В частном случае может оказаться, что для одного из выбранных путей никаких действий выполнять не надо (рис. 3, б). Такая структура получила название обход или ЕСЛИ-ТО. Для приведения ее к общему виду можно во второй ветви поместить пустую операцию (рис. 3, в). Если в алгоритме ветвление имеет три и более направлений, то его можно представить в виде совокупности базовых структур ЕСЛИ-ТО-ИНАЧЕ (рис. 3, г).

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

Циклический процесс представляет собой алгоритмическую структуру, называемую ЦИКЛ или ПОВТОРЕНИЕ, в которой многократно повторяются однотипные этапы обработки данных. Цикл - многократно повторяющийся участок алгоритма. Циклы, которые не содержат внутри себя других циклов, называются простыми. Сложные или вложенные циклы содержат внутри себя хотя бы одну циклическую структуру.

По способу организации порядка исполнения проверки условия окончания цикла различают две разновидности базовых циклических структур: с проверкой условия окончания цикла до (ЦИКЛ-ПОКА) и после (ЦИКЛ-ДО) реализации цикла (рис. 4).

Операция или группа операций, повторяющаяся в цикле, называется телом цикла. Основное отличие структуры ЦИКЛ-ПОКА от структуры ЦИКЛ-ДО заключается в том, что в первой структуре тело цикла, в зависимости от условия, могут не выполнятся совсем, тогда как в структуре ЦИКЛ-ДО тело цикла обязательно выполняется хотя бы один раз.

Алгоритмы, имеющие в своем составе базовую структуру ЦИКЛ, называются циклическими алгоритмами. Пример циклического алгоритма для решения задачи построения таблицы функции

для изменяющегося от 0 до 360 с шагом 10 с использованием структуры ЦИКЛ-ДО приведен на рис. 5, а. Величина  в этом случае называется параметром цикла.

Рисунок 3 - Базовая структура ветвление и ее модификации

Для организации цикла необходимы управляющие операции задания начального значения параметра цикла, изменения параметра цикла и проверки условия окончания цикла. На рис. 5, а к управляющим относятся операции 4, 7 и 8. Операции 5 и 6 составляют тело цикла. Следует обращать внимание, что необходимо выносить из цикла операции, результат выполнения которых не зависит от параметра цикла, поскольку это позволяет избежать ненужных повторений в цикле и тем самым экономить время работы.

Организация цикла с использованием структуры ЦИКЛ-ПОКА показана на рис. 5, б. Здесь к управляющим операциям относятся операции 4, 5 и 8, а тело цикла составляют операторы 6 и 7.

Рисунок 4 - Базовая структура ЦИКЛ

а - структура ЦИКЛ-ПОКА; б - структура ЦИКЛ-ДО

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

Этот способ графического представления циклических алгоритмов применим для обеих структур ЦИКЛ-ДО и ЦИКЛ-ПОКА, однако, чаще всего, для определенности, его используют для представления структуры ЦИКЛ-ПОКА. Текст заголовка цикла, приведенного в символе модификация, может быть в достаточной степени произвольным, однако чаще всего используют следующую запись:

V = Vn, Vk [,V],

где V - параметр цикла;

Vn - начальное значение параметра цикла;

Vk - конечное значение параметра цикла;

V - шаг изменения параметра цикла. Если этот параметр опущен вместе с предшествующей ему запятой, шаг параметра цикла предполагается равным 1.

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