Персональная страничка
Диканева Тараса
Викторовича

Главная \ Преподавательское \ Программирование для начинающих

2. Логические выражения и условный оператор

Предыдущий раздел:

Следующий раздел:

2.4. Задачи на составление логических выражений

Попробуйте самостоятельно составить логические выражения, принимающие значение true в перечисленных ниже случаях.

1) Переменная x попадает в диапазон от –2 до 1 (x \in[-2;1]). Ниже данный диапазон показан на числовой оси:


Рис. 1.

2) Переменная x лежит за пределами заданного диапазона, как показано на числовой оси:


Рис. 2.

3) Переменная x лежит в одной из показанных на числовой оси областей:


Рис. 3.

4) Запишите условия, истинные, когда точка с координатами (x, y) лежит точно на прямой, показанной на рисунке 4а, выше этой прямой (рис. 4б) и ниже этой прямой (рис. 4в):


Рис. 4.

Указание: Чтобы записать уравнение прямой в виде y=kx+b, проходящей через точки (x_1,y_1) и (x_2,y_2), необходимо решить систему уравнений:

  \left\{ \begin{array}{l}  y_1 = kx_1+b,\\  y_2 = kx_2+b.  \end{array} \right.

В результате приходим к уравнению прямой: y=\frac{\displaystyle y_2-y_1}{\displaystyle x_2-x_1}x+\frac{\displaystyle y_1 x_2-y_2 x_1}{\displaystyle x_2-x_1}.

5) Запишите условие, истинное, когда точка с координатами (x, y) лежит в заштрихованных областях (рис. 5).

6) Укажите на плоскости XY область, где истинными являются следующие логические выражения:

(abs(x — y) < 1) and (abs(x) + abs(y) > 1)

(abs(x) < 1) or (abs(y) < 1) x2 + y2 > (x + y)2

7) Пусть A и B логические выражения, принимающие значения true или false. Какие из приведенных пар составных логических выражений эквивалентны, то есть при любых значениях A и B значения выражений слева и справа совпадают?

Указание: формально проверить эквивалентность двух логических выражений можно, составив для них таблицы истинности.

а)
б)
в)
г)
д)
е)
ж)
з)
и)
к)
л)
not (A and B)
not (A and B)
not (A or B)
not (A or B)
(A and B) or ((not A) and (not B))
A <> B
A = B = true
A = B = true
A = false
(not (A or B)) and A
(A or B) and (not B)
и
и
и
и
и
и
и
и
и
и
и
A or B
(not A) or (not B)
A and B
(not A) and (not B)
A = B
((not A) and B) or (A and (not B))
A and B
A = B
false
(A or B) and (not B) and (not A)
A

8) Зарплата выдается 5-го числа каждого месяца. Составьте логическое выражение, которое истинно, если на k-е число m-го месяца зарплата уже была выдана 10 раз с начала года.

Следующий раздел:

Предыдущий раздел:

39 комментариев

  1. Дмитрий

    Тарас Викторович, посмотрите, пожалуйста 4 задание, Указание. Координаты (x1,y1) дублируются.

  2. Taras

    Спасибо, исправил.

  3. Дмитрий

    Также посмотрите задание 5-б. Уравнение «(abs(x — y) 1)» повторяется.

  4. Taras

    И еще раз спасибо )

  5. Владимир

    Первые три еще решил, а дальше непонятно как делать((((

  6. Dainis

    Pokazhite primer po 5 zadanju odin, :)naprimer a)

  7. Taras

    Прямые на рисунке 5a задаются уравнениями

    y=x+1,
    y=-x+1

    Заштрихованная область лежит ниже обоих прямых (то есть ниже и той и другой). Соответствующее логическое выражение:

    (y < x + 1)and(y < -x + 1)
  8. Сергей

    Добрый день помогите пожалуйста с записью 4 б уравнение прямой я нашел через отрезки y=0,5x+1, но как записать логическое выражение с определением точки в плоскости не могу мозг вскипает. Спасибо.

  9. Taras

    Множество точек на прямой удовлетворяет равенству y = 0.5x + 1. Значит во всех остальных точках это равенство нарушается. Стоит подумать, где будут лежать точки, для которых оно нарушается в одну (правая часть больше левой) или другую (правая меньше левой) сторону.

  10. Лиза

    Здравствуйте помогите пожалуйста с лого мирами

  11. Лиза

    Какие команды надо писать чтобы черепашка сделала хотя бы одну фигуру из 5-го задания

  12. Маша

    И мне тоже)

  13. Taras

    Честно говоря, не разбираюсь в лого-мирах. А почему вы решили рисовать эти фигуры? Кто-то дал такое задание? Просто любопытно.

  14. Егор

    Здравствуйте, Тарас. Верно ли моё решение задания 4а?

    program Summa;
    var
    x,y: integer;
    begin
    writeln(‘x,y’);
    readln(x,y);
    if y=0.5*x+1 then
    writeln(‘true’)
    else
    writeln(‘false’)
    end.

  15. Алексанлдр

    верно?

    program log;
    var
    x,y: real;
    b:boolean;
    begin
    readln(x);
    y:= 0.5*x+1;
    b:= y=0.5*x+1 ;
    writeln(b);
    end.

    program log;
    var
    x1,x,y1,y,d: real;
    b:boolean;
    begin
    readln(x);
    y:= 0.5*x+1;
    readln(x1);
    readln(y1);
    b:= (x1>x) and (y1>y) ;
    writeln(b);
    end.

    program log;
    var
    x1,x,y1,y,d: real;
    b:boolean;
    begin
    readln(x);
    y:= 0.5*x+1;
    readln(x1);
    readln(y1);
    b:= (x1<x) and (y1<y) ;
    writeln(b);
    end.

  16. Алексанлдр

    № 7

    б, в, г, д, з, к

    №8
    k>=5 , m>=10

  17. Алексанлдр

    № 8 в паскале

    program rt;
    var
    b: boolean;
    k,m: integer;
    begin
    readln(k);
    readln(m);
    b:= (k>=5) and (m>=10);
    writeln(b);
    end.

  18. АленА

    4a
    program Chetvertaya_a;
    var
    x, y: real;
    begin
    write(‘x=’);
    readln(x);
    write(‘y=’);
    readln(y);
    if (y=0.5*x+1) then
    writeln(‘true’) else
    writeln(‘false’)
    end.


    program Chetvertaya_b;
    var
    x, y: real;
    begin
    write(‘x=’);
    readln(x);
    write(‘y=’);
    readln(y);
    if (x1) then
    writeln(‘true’) else
    writeln(‘false’)
    end.


    program Chetvertaya_v;
    var
    x, y: real;
    begin
    write(‘x=’);
    readln(x);
    write(‘y=’);
    readln(y);
    if (x>-2) and (y<1) then
    writeln('true') else
    writeln('false')
    end.

    Я не пойму почему задачи 4Б и 4В нельзя решить без множества точек, данных уравнением y=0.5x+1<, где у меня нарушается логика решения?

  19. АленА

    Неправильно напечаталась почему-то 4Б

    program Chetvertaya_b;
    var
    x, y: real;
    begin
    write(‘x=’);
    readln(x);
    write(‘y=’);
    readln(y);
    if (x1) then
    writeln(‘true’) else
    writeln(‘false’)
    end.

  20. АленА

    ??? if (x1) then

  21. АленА

    Сама поняла ошибку в Б и В, а у вас не печатает всю программу, сделайте, пожалуйста, возможность исправления своего комментария )

  22. АленА

    5.к)
    program Pyataya_k;
    var
    x, y: real;
    begin
    write(‘x=’);
    readln(x);
    write(‘y=’);
    readln(y);
    if (x>1-y) and (y>1-x) and (x<0) or
    (x<1-y) and (y0) and (x>0) or
    (x>y-1) and (y<x+1) and (y<0)and (x<0) then
    writeln('true') else
    writeln('false')
    end.

  23. АленА

    Опять утерян элемент программы при размещении, что-то у вас здесь не работает… Кто будет смотреть, решение 5k не все отображено, после первого OR еще (Y.
    P.S. Если не отразится полностью и этот текст, я не виновата ) Тарас, отредактируйте, пожалуйста .

  24. АленА

    Решила с кругами 5(н) и 5(о), а в 5(п) какие координаты центров кругов и какой радиус каждого круга? Или это тоже следует заложить в алгоритм? В 5(н), понятно, что радиус 2, а в 5(о) — радиус 1,5, центры (-1;0) и (1;0). Или я ошибаюсь?

  25. АленА

    Александр, в задаче №7 ты допустил ошибки, правильный ответ:
    б, г, д, е, з, к

  26. Роман

    задача 4 а
    var
    z: boolean;
    k,b: real;
    begin
    writeln(‘введите абсциссу k’);
    write(‘k= ‘);
    readln(k);
    writeln(‘введите ординату b’);
    write(‘b= ‘);
    readln(b);
    z:=(k/-2+b/1)=1;
    writeln(‘точка с координатами ‘ , k,’ и ‘,b,’ лежит на заданной прямой — ‘,z);

    end.
    задача 4 б
    var
    z: boolean;
    k,b: real;
    begin
    writeln(‘введите абсциссу k’);
    write(‘k= ‘);
    readln(k);
    writeln(‘введите ординату b’);
    write(‘b= ‘);
    readln(b);
    z:=(k/-2+b/1)>=1;
    writeln(‘точка с координатами ‘ , k,’ и ‘,b,’ лежит на или выше заданной прямой — ‘,z);

    end.
    задача 4 с
    var
    z: boolean;
    k,b: real;
    begin
    writeln(‘введите абсциссу k’);
    write(‘k= ‘);
    readln(k);
    writeln(‘введите ординату b’);
    write(‘b= ‘);
    readln(b);
    z:=(k/-2+b/1)<=1;
    writeln('точка с координатами ' , k,' и ',b,' лежит на или ниже заданной прямой — ',z);

    end.

  27. Роман

    Подскажите, плиз, правильна ли задача 5 н ,спасибо.
    var
    y,x: boolean;
    k,b,r: real;
    begin
    writeln(‘введите радиус окружности r’);
    write(‘r= ‘);
    readln(r);
    writeln(‘введите абсциссу k’);
    write(‘k= ‘);
    readln(k);
    writeln(‘введите ординату b’);
    write(‘b= ‘);
    readln(b);
    x:=(b=-k+1)and(r*r>=b*b+k*k);
    y:=(b=k+1)and(r*r>=b*b+k*k);

    writeln(‘точка с координатами ‘ , k,’ и ‘,b,’ лежит в заштрихованной области — ‘, x or y);

    end.

  28. Сергей

    Добрый день, Тарас Викторович! Проверьте пожалуйста задание 4а:
    program zadanie_4a;
    var
    x,y:real;
    a:boolean;
    begin
    write(‘введите значение х=’);
    readln(x);
    write(‘введите значение у=’);
    readln(y);
    a:=y/0.5-x=2;
    writeln(a);
    end.

  29. Сергей

    program zadanie_4b;
    var
    x,y:real;
    a:boolean;
    begin
    write(‘введите значение х=’);
    readln(x);
    write(‘введите значение у=’);
    readln(y);
    a:=(y/0.5-x)>2;
    writeln(a);
    end.

  30. Сергей

    program zadanie_4в;
    var
    x,y:real;
    a:boolean;
    begin
    write(‘введите значение х=’);
    readln(x);
    write(‘введите значение у=’);
    readln(y);
    a:=(y/0.5-x)<2;
    writeln('заданная точка лежит ниже',a);
    end.

  31. Сергей

    program zadanie_5a;
    var
    x,y:real;
    a:boolean;
    begin
    write(‘введите значение х=’);
    readln(x);
    write(‘введите значение у=’);
    readln(y);
    a:=(y-x<=1) and (y=-1);
    writeln(‘заданная точка лежит в зашрихованной области ‘,a);
    end.

  32. Сергей

    program zadanie_5b;
    var
    x,y:real;
    a:boolean;
    begin
    write(‘введите значение х=’);
    readln(x);
    write(‘введите значение у=’);
    readln(y);
    a:=(y-x>=1) and (y>=1) and (x*(-1)-y<=-1);
    writeln('заданная точка лежит в зашрихованной области ',a);
    end.

  33. Сергей

    в 5а почемуто не вся строка опубликовалась

  34. Сергей

    Задание 5ж:
    a:=((y-x<=1) and (y=-1)) or ((y-x>=1) and (y>=1) and (x*(-1)-y<=-1));
    writeln('заданная точка лежит в зашрихованной области',a);

  35. Сергей

    опять не полностью вставляет

  36. Ruslan

    Задание 5н.
    program пять_н;
    var x,y: real;
    b: boolean;
    begin
    write (‘Введите x ‘);
    read (x);
    write (‘Введите y ‘);
    read (y);
    b:= (y(x+1)) and (y0) or (y>(-sqrt(4-x*x))) and (y>(x+1)) and (x<0) or (y<(sqrt(4-x*x))) and (y(1-x)) and (x>0) or (y>(-sqrt(4-x*x))) and (y>(1-x)) and (x>0);
    write (b);
    end.

  37. Ruslan

    Ошибка на сайте. последний комментарий мой.

  38. Alla

    Подскажите верно ли решение

    a:= ((y1<x1+1) and (y2<-1*x2+1) and x<0 and y<0) or((y1<x1+1) and (y20 and y>0) or ((y1>x1+1) and (y2>-1*x2+1) and x<0)

  39. Nord

    N5 (д)
    Var y,x:real;
    B:boolean;
    begin;
    readln(x);
    readln(y);
    B:=not((x=0.5)and(y=0)or(x=-0.5)and (y=0))or(y>x+1)and(y<-x+1);
    writeln('B bydet ',B);
    end.

Добавить комментарий