Задать вопрос
17 мая, 01:20

Почему пишет, что операция '=' не применима к типу boolean в программе?

Ошибка здесь: if ((x=1) or (y=1)) then

Вся программа:

program pr1;

function _Xor (x, y:boolean) : boolean;

begin

if ((x=1) or (y=1)) then

_Xor:=1

else

_Xor:=0;

end;

begin

readln (x, y) ;

writeln (_Xor (x, y)) ;

end.

+2
Ответы (2)
  1. 17 мая, 02:18
    0
    Именно потому и пишет, что операция '=' не применима к типу boolean. Переменные этого типа могут принимать значения True и False, и как можно сравнивать их с единицей?
  2. 17 мая, 05:02
    0
    Если Вы хотите вместо логических значений True и False использовать 1 и 0, то можно сделать так:

    program pr1;

    function _Xor (x, y:byte) : byte;

    begin

    if x+y=1 then

    _Xor:=1

    else

    _Xor:=0;

    end;

    var x, y: byte;

    begin

    readln (x, y) ;

    writeln (_Xor (x, y)) ;

    end.

    Пример:

    1 0

    1
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «Почему пишет, что операция '=' не применима к типу boolean в программе? Ошибка здесь: if ((x=1) or (y=1)) then Вся программа: program pr1; ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы
Похожие вопросы по информатике
Сделать так чтобы Writeln был заменен другим словом и повторялься не больше двух раз program choise; var N_M:integer; writeln (' введи номер месяца ') ; readln (N_M) ; case N_M of 1:writeln (' январь ') ; 2:writeln (' февраль ') ;
Ответы (1)
Имеется условный оператор:if D10 then writeln ('ура!') else writeln ('плохо ...') ; Какими операторами его можно заменить? Выберите несколько из 4 вариантов ответа: 1) if D=10 then writeln ('ура!') else writeln ('плохо ...
Ответы (1)
Задание Определить без компьютера, что будет напечатано при выполнении следующих фрагментов программ: 1. k:=20; k:=k+10; if k+1030 then k:=8 else k:=k-1; WriteLn (k) Ответ: 2. k:=20; k:=k+10; if k+10 = 30 then k:=8 else k:=k-1; WriteLn (k) Ответ: 3.
Ответы (2)
Помогите найти ошибку в паскале пишет false Program Math1; var a, b, c, D, x, x1, x2: real; begin readln (a, b, c) ;
Ответы (1)
Как сделать теперь без массива (паскале) ? var nm:array of integer; j, l:integer; begin nm: = new integer[3] (random (20), random (20), random (20)) ; writeln ('nm[0] = ', nm[0]) ; writeln ('nm[1] = ', nm[1]) ; writeln ('nm[2] = ', nm[2]) ;
Ответы (1)