Реализовать функцию "Исключающее ИЛИ" двух логических переменных x и y - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Вот так все работает :
Листинг программы
  1. program _Xor;
  2. var number1,number2 : byte;
  3. function _xor (num1,num2 : byte) : byte;
  4. begin
  5. if ((num1=1) and (num2=0)) or ((num2=1)and(num1=0)) then
  6. _xor:=1
  7. else
  8. if ((num1=0) and (num2=0)) or ((num2=1)and(num1=1)) then
  9. _xor:=0;
  10. end;
  11. begin
  12. Readln(number1,number2);
  13. Writeln(_xor(number1,number2));
  14. end.
Но хочется, чтобы решение соответствовало поставленной задаче : "Напишите функцию 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." Как я не изворачиваюсь, например так :
Листинг программы
  1. program _Xor;
  2. var number1,number2 : boolean;
  3. function _xor (num1,num2 : boolean) : boolean;
  4. begin
  5. if ((num1=true) and (num2=false)) or ((num2=true)and(num1=false)) then
  6. _xor:=1
  7. else
  8. if ((num1=false) and (num2=false)) or ((num2=true)and(num1=true)) then
  9. _xor:=0;
  10. end;
  11. begin
  12. Readln(number1,number2);
  13. Writeln(_xor(number1,number2));
  14. end.
Он почему-то пишет ошибку присвоения типов. А ведь false=0,true =1,так что не так?
Готово. Забыл про применение Ord.
Листинг программы
  1. program _Xor;
  2. var number1,number2 : integer;
  3. bool1,bool2 : boolean;
  4. function _xor (num1,num2 : boolean) : boolean;
  5. begin
  6. if (((ord(num1)=1) and (ord(num2)=0)) or ((ord(num2)=1)and(ord(num1)=0))) then
  7. _xor:=(true)
  8. else
  9. if (((ord(num1)=1) and (ord(num2)=1)) or ((ord(num2)=0)and(ord(num1)=0))) then
  10. _xor:=(false);
  11. end;
  12. begin
  13. Readln(number1,number2);
  14. if (number1=1) then bool1:=true
  15. else bool1:=false;
  16. if (number2=1) then bool2:=true
  17. else bool2:=false;
  18. Writeln(ord(_xor(bool1,bool2)));
  19. readln;
  20. end.

Решение задачи: «Реализовать функцию "Исключающее ИЛИ" двух логических переменных x и y»

textual
Листинг программы
  1. function _xor(a, b: boolean): boolean;
  2. begin
  3.   _xor := a <> b
  4. end;

Объяснение кода листинга программы

  1. Создается функция с именем _xor, которая принимает два аргумента типа boolean.
  2. Внутри функции создается локальная переменная _xor, которая будет использоваться для хранения результата операции исключающего ИЛИ.
  3. Операция исключающего ИЛИ выполняется над аргументами функции и сохраняется в переменной _xor.
  4. Функция возвращает значение переменной _xor.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.7 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы