Файл: Лабораторная работа 1 1 логические операции not, and, or в условии.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2023
Просмотров: 41
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Лабораторная работа №1
1 ЛОГИЧЕСКИЕ ОПЕРАЦИИ NOT, AND, OR В УСЛОВИИ
Задание. Запишите в тетрадь и вычислите значения выражений при a = 10, b = 20, c = true, d = false:
а) (a > 5) and (b > 5) and (a < 20) and (b < 30);
б) not (a < 15) or not (b < 30);
в) c or d and (b = 20).
Решение.
а) (10 > 5) and (20> 5) and (10< 20) and (20< 30) =
= true and true and true and true = true;
б) not (10< 15) or not (20< 30) = not(true) or not(true) = false or false = false;
в) c or d and (20=20) = true or false and true = true or false = true.
Упражнения для самостоятельной работы
-
Вычислите значения выражения:
а) sqr(x) + sqr(y) <= 4 при x = 0.3, y = -1.6;
Решение:
(0.3)2 + (-1.6)2 = 0.09 + 2.56 = 2.65 <=4 – True.
б) k mod 7 = k div5 – 1 при k = 15;
Решение:
15 mod 7 = 1;
15 div 5 – 1 = 3 – 1 =4;
1 = 4 – False.
в) odd(trunc(10*p)) при p = 0.182;
odd(trunc(10*0.182)) = odd(1) = True.
г) not odd(n) при n = 0;
Решение:
not odd(0) = not False = True.
д) t and (p mod 3 = 0) при t = true, p = 101010;
Решение.
True and (101010 mod 3 = 0) = True and False = False.
е) (x*y <> 0) and (y > x) при x = 2, y = 1;
Решение.
(2*1 <> 0) and (1 > 2) = True and False = False.
ж) (x*y <> 0) or (y > x) при x = 2, y = 1;
Решение.
(2*1 <> 0) or (1 > 2) = True or False = True.
з) a or (not b) при a = False, b = True;
Решение.
False or (not True) = False or False = False.
-
Записать на Паскале отношение, истинное при выполнении указанного условия и ложное в противном случае:
а) целое k делится на 7;
Решение: k mod 7 = 0.
б) целое k не делится на 5
Решение: k mod 5 <> 0.
в) уравнение ax2 + bx + c = 0, (a 0) не имеет вещественных корней;
Решение: (b*b – 4*a*c) < 0
г) точка (х, у) лежит вне круга радиуса R с центром в точке (1;0);
Решение: ((x-1)*(x-1) + y*y) > R*R
д) натуральное число N является квадратом натурального числа;
Решение: a*a = N
е) 0 < x < 1;
Решение: (x >0) and (x<1).
ж) x = max(x, y, z);
Решение: (x>y) and (x>z).
з) x max (x, y,z) (операцию not не использовать);
Решение: (x <=y) or (x<=z).
и) хотя бы одна из логических переменных а и b имеет значение True;
Решение: (a=True) or (b=True).
к) обе логические переменные а и b имеют значение True.
Решение: (a=True) and (b=True).
-
Указать порядок выполнения операций при вычислении выражений:
а) a and b or not c and d;
Решение:
1) a and b; 2) not c; 3) not c and d; 4) (a and b) or (not c and d)
б) (x >= 0) or not c and d.
Решение:
1) not c; 2) not c and d; 3) (x>=0) or not c and d;
-
Вычислить следующие выражения при a = True, b = False:
а) a or b and not a;
Решение.
True or False and not True = True or False and False = True or False = True
б) (a or b) and not a;
Решение.
(True or False) and not True = True and False = False.
в) not a and b;
Решение.
not True and False = False and False = False.
г) not (a and b).
Решение.
not (True and False) = not True = False.
-
Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае:
а) х принадлежит отрезку [0; 1];
Решение: (x>=0) and (x<=1).
б) х лежит вне отрезка [0; 1];
Решение: (x<0) or (x<1).
в) х принадлежит отрезку [2; 5] или [-1; 1];
Решение: (x>=2) and (x<=5) or (x>=-1) and (x<=1).
г) х лежит вне отрезков [2; 5] и [-1; 1];
Решение: ((x<-1) or (x>5)) and ((x<-1) or (x>1)).
д) каждое из чисел х, у, z положительно;
Решение: (x>0) and (y>0) and (z>0).
ж) ни одно из чисел х, у, z не является положительным;
Решение: (x<=0) and (y<=0) and (z<=0).
з) только одно из чисел х, у, z положительно;
Решение: (x>0) and (y<=0) and (z<=0) or (x<=0) and (y>0) and (z<=0) or (x<=0) and (y<=0) and (z>0).
и) логическая переменная а имеет значение True, логическая переменная b имеет значение False;
Решение: a = True and b = False.
к) год с порядковым номером у является високосным (год високосный, если его номер кратен 4, однако из кратных 100 високосными являются лишь кратные 400, например, 1700, 1800 и 1900 – невисокосные годы, 2000 – високосный).
Решение: (y mod 4 = 0) and (y mod 100 <> 0) or (y mod 400 = 0).
-
Какими будут значения переменных j, k после выполнения условного оператора:
if j > k
then
j := k – 2
else
dec (k, 2);
если исходные значения переменных равны:
а) j= 3, k= 5;
б) j= 3, k= 3;
в) j= 3, k= 2.
Примечание – В результате выполнения оператора dec (k, 2) значение переменной k уменьшается на 2.
Решение.
а) 3>5 = False dec(k,2) = 5-2 = 3.
а) 3>3 = False dec(k,2) = 3-2 = 1.
а) 3>2 = True j = k-2 = 2-2 =0.
-
Написать программу, которая после введенного с клавиатуры числа (1 –999), обозначающего денежную единицу, дописывает слово «рубль» в правильной форме. Например, 3 рубля, 12 рублей, 21 рубль.
Решение.
Var
x, d:integer;
Begin
Write('введите натуральное число меньше 1000:');
Readln(x);
d:=x mod 10;
If d=1 Then Write(x,' рубль')
Else if (d=2)or(d=3)or(d=4) Then Write(x,' рубля')
Else Write(x,' рублей');
End.
Задание (с условными операторами).
Ответ:
Условный оператор:
if (a <= b) and (b <= c) then begin
a := sqr(a);
b := sqr(b);
c := sqr(c);
end;
Вложенный условный оператор:
if (a <= b) and (b <= c) then begin
a := sqr(a);
b := sqr(b);
c := sqr(c);
end
else
if (a > b) and (b > c) then begin
b := a;
c := a;
end;
Составной оператор:
begin
a := sqr(a);
b := sqr(b);
c := sqr(c);
end
Булево условие:
a > b) and (b > c).
Задачи для самостоятельного решения
Вариант 1. Найти наибольшее из трех данных чисел.
Решение.
Program max3;
Var
n1, n2, n3, max: integer;
Begin
write('Введите три числа: ');
readln(n1, n2, n3);
if n1 > n2 then
max := n1
else
max := n2;
if n3 > max then
max := n3;
writeln ('Максимальное из трех чисел: ', max);
end.