Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
алгоритмизация павлодар.doc
Скачиваний:
14
Добавлен:
21.02.2016
Размер:
1.01 Mб
Скачать

Лабораторная работа №2

Тема: Программирование разветвляющихся структур алгоритма.

Цель работы: Ознакомиться с разветвляющимися вычислительными процессами и изучить работу операторов перехода.

1. Основные понятия

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

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

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

После вычислений, общих для обеих ветвей (блок 1), проверяется некоторое условие (блок 2). Если оно выполняется, то осуществляется переход к первой ветви – ветви ДА (блок 3), в противном случае – ко второй ветви – ветви НЕТ (блок 4). После выполнения вычислений в любой из ветвей осуществляется переход к общему участку 2 (блок 5).

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

ΙF < логическое выражение >

THEN < оператор 1 >

ELSE < оператор 2 >;

Где IF (если), THEN (то), ELSE (иначе) – служебные слова; оператор 1, оператор 2 – любые операторы языка.

Рис.1.

Порядок выполнения условного оператора поясняется рис. 2. Если значение логического выражения равно true (истинно), то выполняется оператор 1 (оператор 2 пропускается), если значение логического выражения равно false (ложно), то выполняется оператор 2 (оператор 1 пропускается). Далее в любом случае выполняется оператор, стоящий в программе непосредственно за оператором if (оператор 3).

Значение true и false получают обычно в результате выполнения операций сравнения (отношения):

< - меньше;

<= - меньше или равно;

> - больше;

>= - больше или равно;

= - равно;

< > - не равно.

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

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

Оператор, реализующий выражение для некоторого значения аргумента Х, выглядит следующим образом:

IF X>0

THEN Y: =LN (X)

ELSE Y: =EXP (X);

Здесь логическое выражение – отношение Х>0, оператор 1, оператор 2 – операторы присвоения Y: =LN (X) и Y: =EXP (X).

Примером, когда логическое выражение в операторе имеет более сложную структуру, может служить задача определения, можно ли построить треугольник из отрезков заданной длины: x,y,z (x>0, y>0, z>0).

Условный оператор имеет вид:

IF (X+Y>Z) AND (X+Z>Y) AND (Y+Z>X)

THEN WRITELN (‘треугольник построить можно’)

ELSE WRITELN (‘треугольник построить нельзя’);

Условный оператор может не иметь конструкции ELSE, такая форма оператора называется сокращенной:

IF <логическое выражение> THEN <оператор>;

Порядок выполнения оператора IF в сокращенной форме поясняется рис. 3.

Рис. 3.

Если логическое выражение принимает значение FALSE , то сразу выполняется оператор, следующий за оператором IF.

Например,

IF X>0 THEN WRITELN (X);

Z: =SQR (X);

Условные операторы могут иметь вложенную конструкцию, когда после THEN или FALSE используется так же условный оператор. При этом справедливо следующее правило: ELSE всегда относится к ближайшему слева оператору IF. Например, требуется вычислить значение функции по одной из предложенных форму:

Для программной реализации используется вложенная конфигурация условного оператора:

IF X>=1

THEN Y: =SQRT (X)

ELSE IF X>0

THEN Y: =LN (X)

ELSE Y: =EXP (X);

В состав условного оператора может входить только один оператор. Если какую либо ветвь разветвления требуется вставить несколько операторов, то они объединяются в один, составной оператор, для чего в начале группы этих операторов записывается слово BEGIN, а в конце – служебное слово END:

BEGIN

<оператор 1>;

<оператор 2>;

……………..

<оператор N>;

END;

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

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