Главная страница
Навигация по странице:

  • Упражнения для самостоятельной работы

  • Лабораторная работа Паскаль. ПАСКАЛЬ Лабораторная работа. Лабораторная работа 1 1 логические операции not, and, or в условии


    Скачать 26.37 Kb.
    НазваниеЛабораторная работа 1 1 логические операции not, and, or в условии
    АнкорЛабораторная работа Паскаль
    Дата07.05.2023
    Размер26.37 Kb.
    Формат файлаdocx
    Имя файлаПАСКАЛЬ Лабораторная работа.docx
    ТипЛабораторная работа
    #1112979

    Лабораторная работа №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.


    написать администратору сайта