ugrás a tartalomhoz

logikai kapu

cica · 2013. Aug. 11. (V), 11.30
Üdv!

Szeretnék készíteni egy logikai feladatot.

pl. Ha a=1, b=0, c=1.

a and b or (a xor c)=?

Elindultam több irányba, ilyet szerettem volna de ez nem működik. Tudom.
  1. <?  
  2. function sz() {  
  3.   $d=rand(0,2);  
  4.   switch ($d) {  
  5.     case 0:  
  6.         return and;  
  7.         break;  
  8.     case 1:  
  9.         return or;  
  10.         break;  
  11.     case 2:  
  12.         return xor;  
  13.         break;  
  14.   }  
  15.   }  
  16.   $a=rand(0,1);$b=rand(0,1);$c=rand(0,1);  
  17.   print $a sz() ($b sz() $c) sz() !$b;  
  18. ?>  


Probálkoztam ezzel is:
  1. <?  
  2. $c='';  
  3. function sz($x$y) { global $c;  
  4.   $d=rand(0,2);  
  5.   switch ($d) {  
  6.     case 0:  
  7.         $c.='$a and $b';  
  8.         return $x and $y;  
  9.         break;  
  10.     case 1:  
  11.         $c.='$a or $b';  
  12.         return $x or $y;  
  13.         break;  
  14.     case 2:  
  15.         $c.='$a xor $b';  
  16.         return $x xor $y;  
  17.         break;  
  18.   }  
  19.   }  
  20.   $a=rand(0,1);$b=rand(0,1);  
  21.   print "Ha a= ".$a." b= ".$b."<br/>";  
  22.   $d=sz($a,$b);   
  23.   print $c.'  ='.$d;   
  24. ?>  
Itt meg a feladatbővítésben akadtam el.
Másik gond az eredmény nullát nem írja ki. Az 1-et igen.
Köszi a segítséget.
 
1

A legkönnyebb (de a hibát

hunkris · 2013. Aug. 11. (V), 20.31
A legkönnyebb (de a hibát kerülőúton javító) út az, hogy a második kódod végére odabiggyesztesz egy if-et, ami nézi, hogy 1-e a kimenet, ha igen, kiírja, ha nem, nullát ír.

A feladatbővítés alatt mit értesz?