- •Тема 2: операции и выражения
- •5). Lоga(b): ln(b)/ln(a);
- •2). Функции преобразования типа.
- •3). Функции для величин
- •4 A false
- •6 C false
- •2.2 Операции отношения
- •2.3. Логические операции.
- •2. Операции and(X) и or(X) :
- •Тема3. Операторы языка tp
- •1. Оператор присваивания.
- •2. Составной оператор.
- •3. Условный оператор.
- •Оператор выбора case.
- •1: 2: Out: v1: writeln(‘ ошибка‘);
- •Var X, y, z, Min, u: real;
- •1:Writeln('Не выполняется ооф для f1');
- •2:Writeln('Не выполняется ооф для f2');
3. Условный оператор.
Условный оператор позволяет реализовать программу разветвляющихся вычислительных процессов, изменяя порядок выполнения операторов в зависимости от истинности или ложности некоторого условия.
Формат записи:
1).
I F <условие> THEN <оп1> ELSE оп2>;
true
false
2).
I F <условие> THEN <оператор>;
true
false
к следующему оператору программы
Кодовые слова
IF – если, THEN – то, ELSE – иначе.
Условный оператор IF является единым предложением, поэтому перед кодовыми словами THEN и ELSE точку с запятой ставить нельзя.
Фрагменты программ:
1). If x>0 then y:=x+2 else y:=x-3;
Writeln(y);
2). If x=0 then
begin
writeln(‘деление на 0’);
Writeln(‘Введите новые данные’);
end;
3) x1:=5; x2:=10;
y:=x2>x1; {Y- типа boolean}
if y then Z:=x1 else Z:=x2;
Операторы <оп1> и <оп2> могут быть операторами любого типа, в том числе и составными, и условными.
Оператор выбора case.
Данный оператор является обобщением условного оператора и позволяет выбрать одно из нескольких предложений программы.
Параметром, по которому осуществляется выбор, служит так называемый <ключ выбора>, значение которого вычисляется.
Формат записи:
CASE < ключ выбора > OF
< список выбора >
ELSE < оператор>
END;
где:
< ключ выбора > - выражение любого порядкового типа ( кроме real и string) ;
< список выбора > - одна или более конструкций вида:
< константа > : < оператор >;
Константа должна быть того же типа что и <ключ выбора>.
Алгоритм работы оператора:
1). Вычисляется значение <ключ выбора >.
2). Это значение сопоставляется с константами (метками) из < списка выбора >;
3). при совпадении значения < ключ выбора > с одной из констант выполняется оператор, “помеченный” данной константой, после чего оператор CASE завершает свою работу;
4). если в списке выбора не будет найдена константа, равная значению < ключ выбора>, то управление передается на ветвь
ELSE < оператор >;
Эта часть оператора может быть опущена (короткий оператор), тогда при отсутствии совпадения значения < ключа выбора> и константы в < списке выбора> оператор CASE завершает свою работу.
Если для нескольких констант нужно выполнить один и тот же оператор, их можно перечислить через запятую (или даже указать тип-диапазон, если это возможно), сопроводив их одним оператором.
Примеры:
1).По номеру месяца определите сезон.
Program Sezon;
Var N : integer;
Begin
writeln(‘введите номер месяца’);
readln(N);
CASE N OF
1,2,12 : writeln(‘зима’);
3,4,5 : writeln(‘весна’);
6..8 : writeln(‘лето’);
9..11: writeln(‘осень’)
ELSE writeln(‘нет такого месяца ’)
END
END.
2)Вычислить:
Program Lab1_Primer1;
Var x, y: real;
k: integer;
Begin
K:=0;
Read(x);
If (x>=0)and(x<=10)
then
if x-5>0 then y:=Ln(x-5)
else k:=1
else
if x+2>=0 then y:=sqrt(x+2)
else k:=2;
Case K of
1: Writeln(Нет ООФ для F1);
2: Writeln(Нет ООФ для F2);
0: Writeln(‘y=’,y:5:2); {или с Else}
End;
End.
5. Оператор безусловного перехода .
( GOTO )
Формат записи: GOTO < метка > ;
Метки:
целые числа от 0 до 9999;
обычные идентификаторы;
Все используемые метки должны быть
описаны в разделе объявления меток
после кодового слова LABEL.
Label 5, M2, out, 10k, метка;
Одной меткой можно пометить только
один оператор.
Метку от помеченного оператора отделяет
двоеточие. 5: writeln(‘ ошибка‘);
Один оператор можно пометить несколь-
кими метками: