Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
INFORMAT / 1TEOR_AL.DOC
Скачиваний:
23
Добавлен:
02.03.2016
Размер:
201.22 Кб
Скачать

Глава 2 основы алгоритмизации

2.1 Определение алгоритма. Способы описания алгоритмов

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

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

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

Существуют различные способы записи алгоритмов, отличающиеся друг от друга наглядностью, компактностью, степенью формализации и другими показателями. Следует выделить следующие из них: словесный (записи на естественном языке), структурно-стилизованный (записи на алгоритмическом языке псевдокода), графический (изображение схем из графических символов). Наибольшее распространение получил графический способ записи алгоритмов. Графическая запись алгоритма должна выполняться в соответствии с государственным стандартом [10, 11].

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

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

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

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

- разветвляющейся структуры;

- циклической структуры;

- со структурой вложенных циклов;

- смешанной структуры.

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

Пример 1. (Рисунок 2.1, а). Вычислить значение функции z = (ex + ey) / 2, где приa=2.15, b=1.28.

Пример 2. (Рисунок 2.1, б). Вычислить поверхность усеченного конуса:

S = [(R+r)L + R2 + r2] и его объем V = (R2 + r2 + Rr)h/3.

а) б)

Рисунок 2.1 - Схемы алгоритмов решения задач из примеров №1 и №2.

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

Пример 3. Вычислить значение функции .

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

вычислить Z = 1 / (xy), если xy <> 0 (ветвь 1);

вывести "xy = 0", если xy = 0 (ветвь 2).

Пример 4. (Рисунок 2.2, б). Вычислить значение функции z при заданном значении x по формуле:

а) б)

нет

Рисунок 2.2 - Схемы алгоритмов решения задач №3 и №4.

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

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

Пример 5. Вычислить значение функции при x, принимающем значения от xn = 0,1 до xk = 1 с шагом h = 0,1.

Алгоритм решения этой задачи требует десять раз вычислять и выводить значения y = Cos(2x)/x при различных значениях аргумента х. Этот цикл с задан-

ным числом повторений, которое определяется как n = [(xk - xn) / h]+1 (прямоугольные скобки означают целую часть от деления).

Процедура вычисления сводится к следующему: вычисляется значение y для начального значения x = xn. Затем x увеличивается на значение шага h, для него вычисляется значение y. Последний этап повторяется до тех пор, пока х не превысит конечного значения параметра х = xk (см. Рисунок 2.3 слева). С использованием блоков "границы цикла" (блоки 3-й и 6-й) схема алгоритма имеет другой вид (см. Рисунок 2.3 справа). Запись x = xn; xk; h, помещенная в блоке начала цикла, представляет собой заголовок цикла и предписывает следующие действия: "Для х, изменяющегося от xn до хk с шагом h, выполнить операции, указанные в блоках, расположенных в пределах границ цикла (это блоки 4-й и 5-й)". Выход из цикла осуществляется при выполнении условия x > xk., указанного в 6-м блоке.

Пример 6. Определить значение k, при котором ,где k=1, 2,.…

Для решения этой задачи необходимо организовать цикл, в котором изменяется параметр k от 1 с шагом 1. Это цикл с неизвестным числом повторений, так как результатом решения задачи является значение параметра k, для которого выполняется поставленное условие. Блок-схема алгоритма приведена на Рисунке 2.4.

Рисунок 2.3 - Два варианта блок-схем к задаче №5.

Рисунок 2.4 - Блок-схема алгоритма к задаче №6.

Соседние файлы в папке INFORMAT