Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОНСПЕКТ ЛЕКЦИЙ(рус).doc
Скачиваний:
80
Добавлен:
09.02.2016
Размер:
2.29 Mб
Скачать

Глава 10. Алгоритмизация вычислительных процессов Этапы решения инженерных задач на пк

1. Постановка инженерной задачи. На этом этапе уясняется, что задано, что необходимо получить, а также целесообразность постановки задачи.

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

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

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

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

6. Решение задачи на ПК и обработка результатов решения.

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

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

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

  2. Дискретность - представление алгоритма в виде простейших операций.

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

  4. Результативность - получение результата либо сообщение об его отсутствии за конечное число действий.

  5. Разнообразие форм представления (текстовая, символическая, графическая и т.д.).

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

Типы алгоритмических структур

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

Линейный алгоритм - это последовательность действий, выполняемых в порядке их естественного расположения, т.е. одно за другим (рис. 10.1,а).

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

а) б) в) г) д) е)

Рис. 10.1. Алгоритмические структуры

Циклический - это алгоритм, в котором предусмотрено многократное выполнение одной и той же последовательности действий, называемых телом цикла. Цикл ­— повторение этой последовательности действий. При выполнении цикла изменяется значение некоторой переменной, которая называется параметром цикла. Когда параметр цикла достигнет заданного значения, цикл прекращается. Приведем общепринятые положения организации цикла:

  1. Установить начальное значение параметра цикла;

  2. Выполнить тело цикла;

  3. Изменить параметр цикла;

  4. Выполнить проверку: если параметр цикла не достиг заданного значения ­— возврат к пункту 2, иначе — к пункту 5;

  5. Выход из цикла.

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

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

Ряд задач сводятся к ЦА, в которых заранее неизвестно число выполняемых циклов. Например, определение суммы членов ряда с заданной точностью E , если задан общий член ряда аn. Параметром цикла в данном случае является значение текущего члена ряда. Выход из цикла произойдет при an ≤ E. При уточнении корня алгебраического уравнения методом половинного деления параметром цикла является переменная z= b-a. Выход из цикла при выполнении условия z ≤ E.

При решении задач с использованием итерационных формул yi+1 = f(yi,x), выход из цикла осуществляется при выполнении условия yi+1 - yi <=E, где Е — заданная точность.

Циклические алгоритмы бывают простые (рис. 10.1,в,г) и сложные (на рис. 10.1,д представлен сложный циклический алгоритм без детализации начальной установки и изменения параметров внутреннего и внешнего циклов). Например, при решении задачи табулирования функции двух переменных Z=f(x,y) используется сложный циклический алгоритм, где параметром внутреннего цикла является х = xнач., xкон., dxшаг., а параметром внешнего цикла y= yнач.,yкон.,dyшаг.. К сложным циклическим алгоритмам сводятся задачи обработки элементов двумерных массивов и т.д.

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