Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПАСКАЛЬ_лекции.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
400 Кб
Скачать
☆
  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;

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

Пример: Вычислить корни квадратного уравнения общего вида а <>0, ax2+bx+c=0 в области действительных чисел. Введем следующие обозначения: A, B, C – коэффициенты уравнения;

D – дискриминант;

X1, X2 – корни;

E – допустимая погрешность вычислений.

{ОПРЕДЕЛЕНИЕ КОРНЕЙ КВАДРАТНОГО УРАВНЕНИЯ}

PROGRAM KU;

CONST

E=1E-4; {погрешность вычислений}

VAR

A, B, C, X1, X2, D: REAL;

BEGIN

READ (A, B, C);

WRITELN (‘A=’, A,’B=’, B,’C=’, C);

D: =SQR (B)-4*A*C;

IF D <0

THEN WRITELN (‘корни мнимые’)

ELSE BEGIN

IF ABS (D)<E

THEN BEGIN

X1: =-B/(2*A);

X2: =X1;

END

ELSE BEGIN

X1: =(-B+SQRT (D))/(2*A);

X2: =(-B-SQRT (D))/(2*A);

END;

WRITELN (‘X1=’, X1, ’X2=’, X2);

END;

END.

Для каждого условного оператора конструкции THEN, ELSE записаны под соответствующим IF; операторы, ограниченные операторными скобками BEGIN – END, записаны так же друг под другом и смещены вправо относительно BEGIN и END.

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