Реализовать функцию "Исключающее ИЛИ" двух логических переменных x и y - Turbo Pascal
Формулировка задачи:
Вот так все работает :
Но хочется, чтобы решение соответствовало поставленной задаче :
"Напишите функцию
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."
Как я не изворачиваюсь, например так :
Он почему-то пишет ошибку присвоения типов. А ведь false=0,true =1,так что не так?
Листинг программы
- program _Xor;
- var number1,number2 : byte;
- function _xor (num1,num2 : byte) : byte;
- begin
- if ((num1=1) and (num2=0)) or ((num2=1)and(num1=0)) then
- _xor:=1
- else
- if ((num1=0) and (num2=0)) or ((num2=1)and(num1=1)) then
- _xor:=0;
- end;
- begin
- Readln(number1,number2);
- Writeln(_xor(number1,number2));
- end.
Листинг программы
- program _Xor;
- var number1,number2 : boolean;
- function _xor (num1,num2 : boolean) : boolean;
- begin
- if ((num1=true) and (num2=false)) or ((num2=true)and(num1=false)) then
- _xor:=1
- else
- if ((num1=false) and (num2=false)) or ((num2=true)and(num1=true)) then
- _xor:=0;
- end;
- begin
- Readln(number1,number2);
- Writeln(_xor(number1,number2));
- end.
Готово. Забыл про применение Ord.
Листинг программы
- program _Xor;
- var number1,number2 : integer;
- bool1,bool2 : boolean;
- function _xor (num1,num2 : boolean) : boolean;
- begin
- if (((ord(num1)=1) and (ord(num2)=0)) or ((ord(num2)=1)and(ord(num1)=0))) then
- _xor:=(true)
- else
- if (((ord(num1)=1) and (ord(num2)=1)) or ((ord(num2)=0)and(ord(num1)=0))) then
- _xor:=(false);
- end;
- begin
- Readln(number1,number2);
- if (number1=1) then bool1:=true
- else bool1:=false;
- if (number2=1) then bool2:=true
- else bool2:=false;
- Writeln(ord(_xor(bool1,bool2)));
- readln;
- end.
Решение задачи: «Реализовать функцию "Исключающее ИЛИ" двух логических переменных x и y»
textual
Листинг программы
- function _xor(a, b: boolean): boolean;
- begin
- _xor := a <> b
- end;
Объяснение кода листинга программы
- Создается функция с именем
_xor
, которая принимает два аргумента типа boolean. - Внутри функции создается локальная переменная
_xor
, которая будет использоваться для хранения результата операции исключающего ИЛИ. - Операция исключающего ИЛИ выполняется над аргументами функции и сохраняется в переменной
_xor
. - Функция возвращает значение переменной
_xor
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д