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

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

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

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

Добавлен: 05.12.2023

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

Скачиваний: 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 elsedec (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 рубль.
Решение.Varx, d:integer;

BeginWrite('введите натуральное число меньше 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 begina := sqr(a);b := sqr(b);c := sqr(c);end;Вложенный условный оператор:if (a <= b) and (b <= c) then begina := sqr(a);b := sqr(b);c := sqr(c);endelseif (a > b) and (b > c) then beginb := a;c := a;end;Составной оператор:begina := sqr(a);b := sqr(b);c := sqr(c);endБулево условие:a > b) and (b > c).Задачи для самостоятельного решенияВариант 1. Найти наибольшее из трех данных чисел.Решение.Program max3;Var n1, n2, n3, max: integer;Beginwrite('Введите три числа: ');readln(n1, n2, n3);if n1 > n2 then max := n1else max := n2;if n3 > max then max := n3; writeln ('Максимальное из трех чисел: ', max);end.