Предмет: Информатика,
автор: kulovanas
Почему пишет, что операция '=' не применима к типу 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.
Ответы
Автор ответа:
0
Именно потому и пишет, что операция '=' не применима к типу boolean. Переменные этого типа могут принимать значения True и False, и как можно сравнивать их с единицей?
kulovanas:
Это понятно, но я не понимаю, приношу извинения за тавтологию, как по другому оформить опретор if.
bool Xor (bool x, bool y) (C/C++),
function _Xor (x, y:boolean): boolean (Pascal),
def xor(x, y):(Python)
реализующую функцию "Исключающее ИЛИ" двух логических переменных x и y. Функция Xor должна возвращать true, если ровно один из ее аргументов x или y, но не оба одновременно равны true.
Автор ответа:
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
Интересные вопросы
Предмет: Математика,
автор: denis70824321
Предмет: Литература,
автор: 17554007
Предмет: Математика,
автор: shabarovn
Предмет: История,
автор: SuperОтличница
Предмет: Математика,
автор: ksjuschakalini