| |
|
|
p.specht
| In el de George Boole begründeten zweiwertigen Logik hay sólo Wahr y Falsch. Was aber, si uno lo simplemente todavía no entscheiden kann, aber soweit weiterarbeiten se, como eben en Grund el Datenlage ya posible es? Dann benötigt uno en lugar de zwei eben drei Werte: Hinzu kommt el Valor "M" (engl. Maybe: Tal vez, möglicherweise, kann_sein/wäre_erlaubt/weiss_nicht").
Un Rosettacode-Tarea [...] fordert nun el geeignete Realisierung dieser dreiwertigen Logikfunktionen, el Yo en el nachfolgenden 3NOT(), 3AND(), 3O(), 3XOR(), 3Equ() para el Gleichheitsfunktion y 3Imp() para el Implikationsfunktion (Wenn a entonces b) genannt habe. Sie mentira nun en XProfan-11 antes, wobei Yo, el en el Literatur verwendeten Valor "M" oder "?" por "2" angenähert habe. 0 restos weiterhin "false" y 1 weiterhin "true/Wahr). Valor wurde auch en el Logiknormierung gelegt: una Funktionswert 0 oder 2 restos obtener, cada otro Valor se a logisch verdadero = 1 normiert. El Características harren nun uno vernünftigen Anwendung.
Windowtitle "Ternäre (Dreiwertige) Logikfunktionen"
Cls
proc 3val :parámetros a%
caso a%=0:volver 0
caso a%=2:volver 2
volver 1
ENDPROC
proc 3not :parámetros a%
caso a%=2:volver 2
volver not(a%)
ENDPROC
proc 3and :parámetros a%,b%
if a%=0
volver 0
elseif a%=2
caso b%=0:volver 0
volver 2
más
volver 3val(b%)
endif
ENDPROC
proc 3or :parámetros a%,b%
if a%=0
volver 3val(b%)
elseif a%=2
caso (b%=0) or (b%=2):volver 2
volver 1
más
volver 1
endif
ENDPROC
proc 3Equ :parámetros a%,b%
if a%=0
volver 3not(b%)
elseif a%=2
volver 2
más
volver 3val(b%)
endif
ENDPROC
proc 3xor :parámetros a%,b%
if a%=0
volver 3val(b%)
elseif a%=2
volver 2
más
volver 3not(b%)
endif
ENDPROC
proc 3Imp :parámetros a%,b%
if a%=0:volver 1
elseif a%=2
caso b%=1:volver 1
volver 2
más
volver 3val(b%)
endif
ENDPROC
Test:
appendmenubar 100," 0 = falso (F), 1 = true (T), ?=2: "+\
"weiss-no/möglicherweise/erlaubt/kann_sein/tal vez (M, Maybe)"
declarar a%,b%
imprimir
imprimir " -------------------------------"
imprimir " a b not_a and or xor <=> ==>"
whileloop 0,4,2:a%=3val(&Loop)
whileloop 0,4,2:b%=3val(&Loop)
imprimir " -------------------------------"
imprimir " |",a%,b%,"|",3Not(a%),"|",3and(a%,b%),"|",3or(a%,b%),"|",
imprimir 3xor(a%,b%),"|",3Equ(a%,b%),"|",3Imp(a%,b%),"|"
endwhile
endwhile
imprimir " -------------------------------"
beep
waitinput
End
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 29.05.2021 ▲ |
|
|
|