Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабраторная работа №15 Прогр.doc
Скачиваний:
15
Добавлен:
10.11.2018
Размер:
401.92 Кб
Скачать

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

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

IF «условие» Then «оператор1» Else «оператор2»;

где «условие» – выражение логического типа;

«оператор1» выполняется, если условие верно (True),

«оператор2» выполняется, если условие не верно (False).

Например, вычисление квадратного корня из числа «a» проводится при условии a>=0, операторами:

IF a >= 0 Then b: = Sqrt(a) Else WriteLn( 'a<0' );

В условном операторе может отсутствовать блок Else оператор2; т. е. условный оператор может иметь вид:

IF «условие» Then «оператор1»;

например:

IF a<0 Then a:= abs(a);

В случае нескольких условий, соединенных логическим «И» (операция and) результирующее условие имеет значение True, если каждое условие верно, иначе – False.

В случае нескольких условий, соединенных логическим «ИЛИ» (операция or) результирующее условие имеет значение True, если хотя бы одно условие верно, иначе – False.

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

Пример По длинам трех сторон треугольника а, b, c вычислить его площадь.

Для решения задачи используется формула Герона , где p = (а + b + с)/2 – полупериметр треугольника. Исходные данные должны удовлетворять основному соотношению для сторон треугольника: длина каждой стороны должна быть меньше длин двух других сторон.

Program Geron;

Var A,B,C,P,S: Real;

Begin

WriteLn('Введите длины сторон треугольника:');

Write ('a='); ReadLn(A);

Write('b='); ReadLn(В);

Write('c='); ReadLn(C);

If (A>0) And (B>0) And (C>0) And (A+B>C) And (B+C>A) And (A+C>B)

Then Begin

P:=(A+B+C)/2;

S:=Sqrt(P*(P-A)*(P-B)*(P-C));

WriteLn('Площадь=',S)

End

Else WriteLn('Неверные исходные данные')

End.

Оператор выбора

Оператор служит для выбора одного из помеченных вариантов действия (операторов), в зависимости от значения «параметра». Оператор имеет вид:

Case «параметр» Of

«список помеченных операторов»

Else «оператор» End;

Здесь «параметр» – выражение или переменная порядкового типа.

Из «списка помеченных операторов» выполняется оператор с меткой, включающей значение «параметра», иначе оператор после слова Else. Конструкция Else «оператор» может отсутствовать.

Напомним, что «оператор» может иметь вид: Begin «операторы» end;

Пример

Приведем пример программы случайного предсказания одного из десяти вариантов ближайшего будущего с вероятностью 1/20, в остальных случаях - вы «неудачник».

PROGRAM FUTURE;

var N: word;

Begin

writeln('ПРЕДСКАЗАНИЕ БУДУЩЕГО');

Randomize; N:=Random(20)+1; { N - случайное число от 1 до 20 }

writeln; write('Вас ожидает – ');

case N of

1: writeln('счастье'); 6: writeln('здоровье');

2: writeln('пятерка'); 7: writeln('деньги');

3: writeln('дорога'); 8: writeln('любовь');

4: writeln('двойка'); 9: writeln('встреча');

5: writeln('болезнь'); 10: writeln('дети')

else writeln('неудача') end;

writeln('Нажми Enter'); readln;

END.

Здесь функция Random(x) генерирует случайное число, с равномерной плотностью распределения на заданном интервале. Для инициализации распределения в начале программы необходимо вызвать процедуру Randomize.