Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal_учебник_3.doc
Скачиваний:
33
Добавлен:
11.04.2015
Размер:
937.47 Кб
Скачать

Логический оператор присваивания

Если в левой части оператора присваивания указана переменная типа BOOLEAN, то в правой части оператора должно быть записано логическое выражение, задающее правило вычисления логического значения (TRUE или FALSE).

В логическом выражении могут присутствовать как логические, так и арифметические операции.

Общий вид логического выражения следующий:

R операция_сравнения s

где R и S - арифметические выражения.

Логическим выражением может быть имя логической переменной, для которой применима операция NOT (логическое отрицание).

Логические выражения могут объединяться в более сложные выражения с помощью логических операций OR (или) и AND (и). В этом случае каждое логическое выражение заключается в круглые скобки.

Логическое выражение имеет значение TRUE, если заданное в нем с помощью операций сравнения соотношение имеет место, и значение FALSE - в противном случае.

Например,

логическое выражение 7>3 имеет значение TRUE;

а логическое выражение 13<5 - значение FALSE.

Примеры записи логических операторов присваивания:

a:=true;

b:=(x>y) and (h<>0). Здесь, если х будет равно 18, y=13, а h=-8, то b примет значение TRUE.

Пример 1

Присвоить логической переменной РзначениеTRUE, если по трем сторонамa,b,cможно построить треугольник.

Решение

Var

P:boolean;

a,b,c:real;

Begin

Read(a,b,c);

P:=(a+b>c) and (abs(a-b)<c);

Writeln(P)

End.

Задания

№1. Вычислить значения выражений:

а) sqr(x)+sqrt(y)<=4 при x=0.3, y=16;

б) k mod 7=k div 5-1 при k=15;

в) odd(trunc(10*p)) при p=0.182;

г) not odd(n) при n=0;

д) t and (p mod 3=0) при t=true, p=101010;

е) (x*y<>0) and (y>x) при x=2, y=1;

ж) (x*y<>0) or (y>x) при x=2, y=1;

з) a or (not b) при a=false, b=true.

№ 2. Записать на PASCALе выражение, истинное при выполнении указанного условия и ложное в противном случае:

а) 0<x<1;

б) x=max(x,y,z);

в) x^=max(x,y,z) (операцию not не использовать);

г) хотя бы одна из логических переменных a и b имеет значение true;

д) обе логические переменные a и b имеют значения true.

№3. Написать программу, в которой логическая переменная t получает значение true, если выполняется указанное условие, и значение false иначе:

а) из чисел x,y,z только два равны между собой;

б) p делится нацело на q (p и q - натуральные числа);

в) цифра 5 входит в десятичную запись двухзначного целого числа k; (k mod 10=5) or (k div 10=5)

г) поля (а1,б1) и (а2,б2) шахматной доски имеют одинаковый цвет (а1,б1,а2 и б2 - целые от 1 до 8);

д) ферзь, расположенный на поле (а1,б1) шахматной доски, «бьет» поле (а2,б2).

4. Программирование разветвляющихся структур

4.1. Использование в программах условного оператора

Общий вид условного оператора:

if B then P1 else P2



условие операторы

Перед else точка с запятой не ставится,

т.к. оператор еще не закончен, а точка с запятой разделяет различные операторы между собой.

Часть else P2 может отсутствовать.

Как работает этот оператор?

Если условие B истинно, то выполняется оператор P1, иначе - P2.

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