Aktuelle Zeit: 08.07.2020 15:25

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Operator NOT
BeitragVerfasst: 30.10.2009 22:46 
Offline
Benutzeravatar

Registriert: 04.08.2009 17:24
kann mir bitte einer erklären, warum der nachfolgende code nur mit den klammern funktioniert? irgendwie ergibt das für mich keinen sinn.

Code:
Define Test

Test = 0
Test = (Not Test)
Debug test


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Operator NOT
BeitragVerfasst: 30.10.2009 22:57 
Offline
Benutzeravatar

Registriert: 23.12.2005 12:41
Wohnort: München
Obiger Code sollte imho gar nicht funktionieren. Auch nicht mit Klammern. Not 0 ist nicht 1, sondern alles außer 0. Deshalb kann Not nicht Teil einer Definition sein, sondern nur Teil eines Vergleichs.

_________________
BildKarte der Pureboard-Mitglieder


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Operator NOT
BeitragVerfasst: 30.10.2009 23:39 
Offline
Benutzeravatar

Registriert: 04.08.2009 17:24
funktioniert aber und ist auch praktisch, wenn ich einen merker (z.b. true/false) umkeheren will.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Operator NOT
BeitragVerfasst: 30.10.2009 23:48 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
nein ist nicht praktisch, sondern zufall,
Ein NOT, AND OR , usw hat ich Termen (offiziell) nix zu suchen !

Nutze dafür bitte:
Code:
Define Test

Test = 0
Test = 1-Test
Debug Test
Test = 1
Test = 1-Test
Debug Test


_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Operator NOT
BeitragVerfasst: 31.10.2009 00:04 
Offline
Benutzeravatar

Registriert: 28.07.2005 12:39
Josh hat geschrieben:
funktioniert aber und ist auch praktisch, wenn ich einen merker (z.b. true/false) umkeheren will.

dafuer kannst du xor benutzen
Code:
Define Test

Test = 0
Test ! #true
Debug test
Test ! #True
Debug test

_________________
Suche


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Operator NOT
BeitragVerfasst: 31.10.2009 04:21 
Offline
Benutzeravatar

Registriert: 12.06.2005 11:15
Wohnort: Germany
Wieso sollte man NOT so nicht verwenden können?
Das ist ein ganz normaler Binär-Operator, der auch in der Hilfe als solcher beschrieben ist.

Wobei aber NOT 0 = -1 sein müsste. Da ja alle Bits umgekehrt werden.

_________________
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Operator NOT
BeitragVerfasst: 31.10.2009 15:38 
Offline
Benutzeravatar

Registriert: 23.12.2005 12:41
Wohnort: München
Hä? Wenn Not 0 = -1, dann ergibt doch folgende If-Abfrage False

Code:
test = 123
If test = Not 0 ;If Test = -1
    Debug "True"
Else
    Debug "False"
Endif


Außerdem: Was heißt alle Bits werden umgekehrt? Dann ist das Ergebnis doch das Maximale für den jeweiligen Typ.

Für einen Typ, der aus 2 Bits besteht: XX
0=00
1=01
2=10
3=11 (Alle Bits wurden von 0 auf 1 gekippt -> Ergebnis ist 3)

_________________
BildKarte der Pureboard-Mitglieder


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Operator NOT
BeitragVerfasst: 31.10.2009 16:10 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Thorium hat geschrieben:
Wieso sollte man NOT so nicht verwenden können?
Das ist ein ganz normaler Binär-Operator, der auch in der Hilfe als solcher beschrieben ist.

Wobei aber NOT 0 = -1 sein müsste. Da ja alle Bits umgekehrt werden.

Du meinst das Binäre NOT : nämlich die ~
Dort ist ~0 = -1

Aber das Schlüsselwort NOT ist kein binärOperator

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Operator NOT
BeitragVerfasst: 31.10.2009 17:13 
Offline
Benutzeravatar

Registriert: 04.08.2009 17:24
also jetzt mal ganz unabhängig von resultat, dass NOT liefern sollte:

wenn ich schreibe If 1 = 2, dann wird doch ein vergleich durchgeführt und der daraus resultierende boolean vom if ausgewertet.

wenn ich schreibe If NOT 1 = 2, dann wird der daraus resultierende boolean vor der auswertung noch umgekehrt.

wenn ich schreibe Debug Not 1, dann funktioniert das problemlos

in der hilfe steht "Das Resultat dieses Operators". also wenn ein resultat geliefert wird, dann sollte ich das auch einer variablen zuweisen können und zwar ohne diese komische klammer.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Operator NOT
BeitragVerfasst: 31.10.2009 17:31 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
PureBaisc ist nicht dafür gedach AussagenLogik in einer Variable zu speichern.

Wenn das so wären (was vllt bei NOT geht) dann muss auch sowas gehen:
statt so:
Code:
A = 1
B = 2
If A = B
 Debug "WAHR"
Else
 Debug "FALSCH"
EndIf

kann ich die Aussage A = B auch als Variable speichern:
Code:
A = 1
B = 2
C = (A=B)
If C
 Debug "WAHR, weil c="+Str(C)
Else
 Debug "FALSCH"
EndIf


Aber das versteht PB nicht, für PB wird (A=B) nicht als Aussage aufgewerte, sonden einfach C = A gesetzt.
Damit ist C = 2 und nicht FALSE wie in der aussagenlogik.

Deswegen Aussagen immer mit IF auswerten und dann daraufhin eine Variable setzen:
Code:
A = 1
B = 2
If A = B : C = #True : Else : C = #False : EndIf

If C
 Debug "WAHR"
Else
 Debug "FALSCH"
EndIf


Wenn dir das immer zu "nervig" ist schreib n Macro:
Code:
Macro Wahrheitswert(Aussage, Wert)
 If Aussage : Wert = #True : Else : Wert = #False : EndIf
EndMacro


Dann ist C mit sicherheit 1 oder 0
Code:
Macro Wahrheitswert(Aussage, Wert)
 If Aussage : Wert = #True : Else : Wert = #False : EndIf
EndMacro

A = 1
B = 1
Wahrheitswert(A=B, C)

Debug C

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: jacdelad und 12 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye