Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal_лекция4.doc
Скачиваний:
15
Добавлен:
30.03.2015
Размер:
101.38 Кб
Скачать

If «условие1» then

If «условие2» then

If «условиеЗ» then «оператор3»

ELSE «оператор4»

ELSE «оператор2» ELSE «оператор1»;

В качестве «оператор1» или «оператор2» может использоваться толь­ко один, причем любой оператор Турбо Паскаля. Для объединения несколь­ких операторов в один блок используются операторные скобки (BEGIN …END), т.е. составной оператор.

Во многих программах в зависимости от некоторого условия часто требуется выполнить не одно, а последовательность действий. Однако оператор IF в ТР обеспечивает выполнение единственного оператора, присутствующего после зарезервированного слова THEN или ELSE. Выйти из положения можно, применив составные операторы:

If <условие> then

begin

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

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

.

.

<оператор SN>

end

else

begin

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

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

.

.

<оператор VN>

end;

здесь <оператор S1>… <оператор SN> и <оператор V1>… <оператор VN> - некоторые операторы, образующие составные операторы.

Для записи логических условий используют следующие знаки логических отношений <, >, <>, <=, >=, =. Для записи сложных логических выражений используют операции AND, OR, NOT (И, ИЛИ, НЕТ) например:

4<x<10 → (x>4) and (x<10)

a<5 или a>10 → (a<5) or (a>10)

Примеры:

Дано значение x. Вычислите , если x>=0;

, если x<0.

-------------------------------------------------------------

Program funk;

Var

x: integer;

y: real;

begin

writeln(‘введите x’);

read(x);

if x>=0 then y:=sqrt(x)

else y:=sqr(x);

writeln(‘y=’,y:10:4);

end.

------------------------------------------------------------

Даны три числа, найти максимальное из них.

------------------------------------------------------------

Program max;

Var

a, b, c: integer;

begin

writeln(‘введите a, b, c’);

read(a, b, c);

if (a>b) and (a>c) then

writeln(‘a-max=’,a);

if (b>a) and (b>c) then

writeln(‘b-max=’,b);

if (c>a) and (c>b) then

writeln(‘c-max=’,c);

end.

-------------------------------------------------------

Часто бывает необходимо при выполнении того или иного условия вычислить несколько операторов программы. Это легко осуществить, объединив данные операторы в блок, начинающийся со слова Begin и заканчивающийся словом End, например:

.

.

if a>2 then begin

x:=a+z;

y:=a/5;

end;

.

.

В этом случае говорят о составном операторе и операторных скобках BeginEnd.

Пример:

Протабулировать функцию

если шаг изменения x dx=0.2

------------------------------------------------------------

Program tab;

const dx=0.2;

label met;

var x, y: real;

begin

x:=0;

met: if (x>=0) and (x<=2)

then

y:=sqr(sin(x*x))

else y:=exp(x);

weiteln(‘x=’, x:6:2, ‘y=’, y:12:4);

x:=x+dx;

if x>=4 then goto met;

end.

------------------------------------------------------------------

Оператор варианта CASE

Рассмотренный выше оператор IF позволяет осуществить выбор одной из двух альтернатив. Но что если число вариантов нужно иметь больше? Выйти из положения позволит оператор CASE.

Оператор CASE позволяет в зависимости от значения какой-либо переменной или выражения порядкового типа выполнить те или иные действия. Его структура:

CASE <ключ_выбора> OF

<конст. выбора1>:<оператор1>;

<конст. выбора2>:<оператор2>,

<конст. выборaN>:<oпepaтopN>

ELSE <оператор>

END;

CASE – «вариант», OF – «из», ELSE – «иначе».

где <ключ выбора> - выражение (переменная) любого порядкового типа; <конст.выбора> - константа того же типа, что и <ключ_ выбора>;

<оператор> - произвольный оператор ТП.

Порядковый тип – тип, имеющий конечное значение, например:

integer, boolean, char

Принцип действия. Вычисляется <ключ выбора>, затем в списке констант выбора отыскивается константа, равная <ключу выбора>. и выполняется соответствующий ей оператор. Затем оператор CASE завершает работу. Если в списке не найдена константа, совпадающая с "ключом", выполняется оператор части ELSE.

Пример:

Выполнить операцию в зависимости от введенного символа.

---------------------------------------------------------------

Program l_w;

var oper: char;

x, y, z: real;

begin

writeln(‘введите x, y’);

read (x, y);

writeln(‘введите oper’);

read(oper);

case oper of

'+': z:=x+y;

'-': z:=x-y;

'*': z:=x*y;

'/' : z:=x/y

else

write(‘нет операций');

end;

writeln (‘z=', z)

end.

----------------------------------------------------------------------------

Пример:

По введённому символу определить название реки.

----------------------------------------------------------------------------

Program l_13;

var a: char;

begin

writeln(‘введите символ’);

read(a);

case a of

‘B’ : writeln(‘Волга’);

‘И’ : writeln(‘Иртыш’)

else

writeln(‘на эту букву слова нет’);

end;

end.

------------------------------------------------------------------------------

Часть ELSE <оператор> является не обязательной. Тогда при отсутствии в списке выбора нужной константы оператор выбора завершает свою работу.

Любому из операторов <списка выбора> может предшествовать несколько <констант выбора>. В этом случае они разделяются запятыми или представляют собой диапазон значений.

Пример:

CASE <ключ> OF

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

2,3:<оператор2>;

4..6: <оператор3>

ELSE <оператор>

END;

<Константа выбора> не является меткой оператора, поэтому в разделе меток ее описывать не нужно.

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