• Скажите, пожалуйста, как исправить ошибку в этой программе на Паскале к следующему заданию:


    На числовой прямой даны два отрезка: P = [2, 10] и Q = [6, 14]. Какова наибольшая возможная длина интервала A, что формула

    ( (x ∈ А) → (x ∈ P) ) ∨ (x ∈ Q)

    тождественно истинна, то есть принимает значение 1 при любом значении переменной х.



    var  A_max, flag, P, Q, A:integer;   

    begin

     for A := -1000 to 1000 do 

     begin

      flag:=0;

      for P:=2 to 10 do

      for Q:=6 to 14 do

      if ((A<= P) or Q)=false then flag:=1;

      if (flag=0) then A_max:=A;

      end;  

      writeln(A_max);        

    End. 


    У меня выводится ошибка "операция or не применима к integer и boolean", но я не знаю, как исправить.

    Помогите составить правильную программу к такому типу задач


Ответы 1

  • Введем обозначения:

     

    (x ∈ А) ≡ A; (x ∈ P) ≡ P; (x ∈ Q) ≡ Q.

     

    Применив преобразование импликации, получаем:

     

    ¬A∨P∨Q.

     

    Логическое ИЛИ истинно, если истинно хотя бы одно утверждение. Выражение P ∨ Q истинно на отрезке [2; 14]. Поскольку все выражение должно быть истинно для любого x, выражение ¬A должно быть истинно на множестве (−∞; 2) ∪ (14; ∞). Таким образом, выражение A должно быть истинно только внутри отрезка [2;14]. Значит, наибольшая длина отрезка равна 14 − 2 = 12.

     

    Ответ: 12.

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years