Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика программирование, учебник.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
22.08 Mб
Скачать

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

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

Разветвление процесса обозначается в блок-схемах алгоритма условным блоком.

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

Формализуем условие задачи.

Дано:

Найти: – значение релейной функции.

Приведем таблицу имен объектов решаемой задачи.

Имя объекта в задаче

Имя объекта в программе

Тип объекта

X

вещественное число

Y

вещественное число

Блок схема алгоритма решения задачи приведена на рис. 2.3.

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

  • Для выполняются блоки 1, 2, 6, 5, 8

  • для выполняются блоки 1, 2, 3, 7, 5, 8

  • для выполняются блоки 1, 2, 3, 4, 5, 8

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

Рис. 2.3 Блок-схема разветвляющегося вычислительного процесса

Таблица трассировки для , .

№ действия

№ блока

Результат

1

1

ввод

2

2

, да

3

6

4

5

Вывод

5

8

конец

Таблица трассировки для ; .

№ действия

№ блока

Результат

1

1

ввод

2

2

, нет

3

3

, нет

4

7

5

5

вывод

6

8

конец

Таблица трассировки для , .

№ действия

№ блока

Результат

1

1

ввод

2

2

, нет

3

3

, нет

4

4

5

5

вывод

6

8

Конец

Поясним процесс программирования разветвляющегося вычислительного процесса. Блоку начала ставим в соответствие предложение PROGRAM – заголовок программы. Блоку описания – рубрику VAR декларативной части для описания используемых величин. Далее следует описания действия, объединенные в составной оператор, заключенный в операторные скобки BEGINEND и представляющий собой исполняемую часть. Блоку ввода ставим в соответствие оператор вызова процедуры вывода информации на экран дисплея WRITELN для вывода приглашения ко вводу и вызов процедуры ввода информации от клавиатуры READLN для ввода значения . Далее программируем ветвление. В условном операторе конструкции THEN соответствует ветка "да", а конструкции ELSE ветка "нет". В первом ветвлении конструкция ELSE (ветка "нет") представляет собой тоже ветвление. Блоку вывода ставим в соответствие вызов оператора вывода информации на экран дисплея WRITELN для вывода результата – y. В результате получается следующая программа.

PROGRAM RAZV;

VAR X,Y:REAL;

BEGIN

WRITELN('ВВЕДИ X');

READLN(X);

IF X<=-1 THEN Y:=-1

ELSE IF X<=1 THEN Y:=X

ELSE Y:=1;

WRITELN('Y=', Y:10:4);

END.

Для программирования задач этого раздела необходимо использовать операторы IF … THEN … ELSE или CASE … OF. Оператор GOTO использовать запрещается! Для всех заданий этого раздела следует разработать алгоритм и программу.