Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сидорова-004.С34.doc
Скачиваний:
91
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

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

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

Пример Л1. Вычислить:

где x = a∙t2 + 0.2 , a = 18, t – произвольное.

Графическая схема алгоритма решения этой задачи представлена на рис. 8. Программа имеет следующий вид:

Option Explicit 'Запрет использования необъявленных переменных

Sub Лин_процесс1() 'Начало процедуры

Rem Раздел описания констант

Const a = 18

Rem Раздел описания переменных

Dim x As Single, t As Single

Dim y As Single

Rem Тело программы или раздел операторов

t = Val(InputBox("Введите t"))

x = a * t ^2 + 0.2

y = (x ^ 2 + Log(x) – (x + 1) ^ 2) / (x * Sin(x))

MsgBox "Результат y=" & y

End Sub

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

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

5.1. Алгоритм разветвляющегося процесса

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

Пример У1. Необходимо вычислить значение функции при любых значениях a и b. На первый взгляд решение этой задачи можно описать алгоритмом линейной структуры, но при a·b = 0 задача не может быть решена, так как деление на ноль невозможно. Для корректного решения задачи необходимо предусмотреть вывод сообщения, если вычисление y невозможно. Тогда вычислительный процесс можно описать следующим образом:

вычислить y, если a·b ≠ 0

в ывести сообщение, если a·b = 0

В ГСА (рис. 9) решения этой задачи используется блок «Решение» (проверка условия), имеющий один вход и два выхода в зависимости от результата проверки выполнения условия – «да» и «нет».

В примере это блок 3, в котором проверяется условие a·b <> 0. В зависимости от результата проверки условия возможны два пути продолжения решения задачи. Каждый из этих путей называется ветвью, а алгоритм – разветвляющимся. Как и во всех разветвляющихся алгоритмах, в данной задаче нарушается естественный порядок следования блоков. Так, за блоком 3 могут выполняться блоки 4 и 5, образуя ветвь 1, а может и блок 6, образуя ветвь 2.

Любое изменение естественной (линейной) последовательности выполнения блоков называется переходом. Переходы бывают двух видов: условные и безусловные. Условный переход реализуется с помощью условного оператора If, который имеет блочный и однострочный формат записи, безусловный переход реализуется с помощью оператора GoTo.

5.2. Оператор условного перехода If