Реферат: Условный оператор

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

IF <логическое выражение> THEN серия1 ELSE серия2;

Если логическое выражение, выступающее в качестве условия, принимает значение False, то выполняются операторы, расположенные после else (серия2), если True, — операторы, следующие за then. При записи логического выражения следует избегать знака = (равно) для действительных переменных, так как они представляются неточно, а поэтому может не произойти совпадений значений выражений, стоящих слева и справа от знака равно. Для устранения указанного недостатка следует требовать выполнения условия с заданной точностью, т.е. вместо отношения X = Y рекомендуется, например,

Abs(X - Y) < 1E-8.

Поскольку развилка может быть неполной, то возможна и неполная форма записи условного оператора:

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

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

Задача 1. Даны действительные числа x, y. Если x и y отрицательны, то каждое значение заменить модулем; если отрицательно только одно из них, то оба значения увеличить на 0,5; если оба значения неотрицательны и ни одно из них не принадлежит отрезку [0,5; 2,0], то оба значения уменьшить в 10 раз; в остальных случаях x и y оставить без изменения.

Разработаем алгоритм решения задачи, после чего напишем программу.

Алгоритм запишем словесно:

1) ввести значения x, y;

2) если x<0 и y<0, найти их модули и перейти к п. 5, иначе перейти к следующему пункту;

3) если x<0 или y<0, увеличить каждую величину на 0,5 и перейти к п. 5,

иначе перейти к следующему пункту;

4) если ни x, ни y не принадлежат отрезку [0,5; 2,0], уменьшить их в 10 раз;

5) вывести значения x и y;

6) конец.

Program Usl;

Var X, Y : Real;

Begin

Write('Введите два действительных числа '); ReadLn(X, Y);

If (X < 0) AND (Y < 0) THEN

Begin

X = ABS(X);

Y = ABS(Y)

End

ELSE

IF (X < 0) OR (Y < 0) THEN

Begin

--> ЧИТАТЬ ПОЛНОСТЬЮ <--

К-во Просмотров: 597
Бесплатно скачать Реферат: Условный оператор