Файл: Лабораторная работа 1 1 логические операции not, and, or в условии.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.12.2023

Просмотров: 41

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лабораторная работа №1

1 ЛОГИЧЕСКИЕ ОПЕРАЦИИ NOT, AND, OR В УСЛОВИИ
Задание. Запишите в тетрадь и вычислите значения выражений при = 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.
Упражнения для самостоятельной работы

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

а) 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.


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

а) целое 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).

  1. Указать порядок выполнения операций при вычислении выражений:


а) 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;

  1. Вычислить следующие выражения при 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.

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

а) х принадлежит отрезку [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).

  1. Какими будут значения переменных 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. Написать программу, которая после введенного с клавиатуры числа (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.