Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория.pdf
Скачиваний:
467
Добавлен:
11.05.2015
Размер:
1.15 Mб
Скачать

(компьютер или язык программирования).

А<B Сравнить

А>B

X=

 

А, В

 

 

 

 

 

А=B

 

1

А

 

 

 

 

 

 

 

2

В

 

 

 

 

 

3

С

 

 

 

 

 

4

Д

 

 

 

Рисунок 2.30 – Графическое представление нескольких выходов из символа с условиями переходов по конкретной ветви

В настоящее время существуют технологии разработки исходного текста программ без предварительного создания схем алгоритмов. Одну из них описывает раздел 8.

2.3.Разновидности структур алгоритмов

Различают следующие структуры алгоритмов:

1)линейные;

2)разветвляющиеся;

3)циклические.

2.3.1. Линейный вычислительный процесс

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

33

Пример 2.2.

Вычислить значение функции

Y = (sin X + 2 cos( X Z ) + 3 XZ )

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

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

Начало

1

Ввод X,Z

Y:=Y+sinX

A := X/Z

Y := 3*A

Y:=Y+2*cosA

1

_____

Y := √Y

Вывод Y

Конец

Рисунок 2.31 – Детализированная схема линейного алгоритма вычисления функции Y

Символом * в языках программирования и на схемах алгоритмов (см. рисунок 2.31) принято обозначать операцию умножения.

Рисунок 2.32 содержит укрупненную схему того же алгоритма.

Для повышения эффективности алгоритма желательно, чтобы выражения, участвующие в вычислениях несколько раз, вычислялись один раз, а затем использовались уже вычисленные их значения (см. рисунок 2.31 и рисунок 2.32, где один раз вычислено значение X/Z, полученное значение присвоено переменной A, которая затем используется в вычислениях).

34

Начало

A

Ввод X, Z

_________________________________________

Y:=√sinX+2*cosA+3*A

 

A := X/Z

Вывод Y

 

A

Конец

 

Рисунок 2.32 – Укрупненная схема линейного алгоритма

вычисления функции Y

2.3.2.Разветвляющийся вычислительный процесс

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

Пример 2.3.

Вычислить значение функции

0,еслиX < 0;

1,еслиX = 0;

Y = 2,если0 < X < 0,5;3,если0,5 X < 1;

4,иначе.

Подробная схема алгоритма имеет вид, который представляет рисунок 2.33. На данном рисунке используется набор вложенных символов «Решение» с двумя выходами.

35

 

Начало

 

 

 

 

Ввод X

 

 

 

да

X<0

нет

 

 

 

 

 

 

Y := 0

да

X=0

нет

 

 

 

 

 

 

Y := 1

да

X<0,5

нет

 

 

 

 

 

 

 

 

 

Y := 2

да

нет

 

 

 

 

X<1

 

 

 

Y := 3

Y:= 4

 

 

 

Вывод Y

 

 

 

 

Конец

 

Рисунок 2.33 – Схема разветвляющегося алгоритма вычисления функции Y

 

(используется символ «Решение» с двумя выходами)

36

Этот же алгоритм может быть представлен так, как иллюстрирует

рисунок 2.34. На данном рисунке применен один символ «Рещение» со

многими выходами.

 

 

 

 

Начало

 

 

 

 

Ввод X

 

 

 

 

X

 

 

 

 

X < 0

 

 

 

 

X = 0

 

 

 

 

0<X<0,5

 

 

 

 

0,5≤X<1

 

 

 

 

X≥1

 

 

 

 

Y := 4

Y := 3

Y := 2

Y := 1

Y := 0

Вывод Y

 

 

 

 

Конец

 

 

 

Рисунок 2.34 - Схема разветвляющегося алгоритма вычисления функции Y

(используется символ «Решение» с многими выходами)

 

37

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]