Seite 1 von 1

Wert x wird nicht erkannt

Verfasst: 22.10.2005 17:22
von PB42
Hallo,

folgender Code:

Code: Alles auswählen

OpenWindow(0,300,300,500,250,#PB_Window_SystemMenu|#PB_Window_screencentered|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget,"") And CreateGadgetList(WindowID(0))

arial=LoadFont(#PB_any, "Arial", 15, #PB_Font_Highquality)

x = Random(100) + 1
y = Random(10) + 1

x + y = z

StringGadget(1,180,80,50,30,"")
ButtonGadget(2,240,80,50,30,"OK")
SetGadgetState(1,2)
ActivateGadget(1)

StartDrawing(WindowOutput())
FrontColor(0,0,200)
DrawingMode(1)
Locate(50,10)
DrawingFont(UseFont(arial))
DrawText("")

Locate(50, 80)
DrawText(Str(x) + "   +   " + Str(y) + "   = ")
StopDrawing()

Repeat
EventID = WaitWindowEvent()
Until EventID = #PB_EventCloseWindow
Wenn dieser Code ausgeführt wird, wird der Wert x in der Zeile

Code: Alles auswählen

DrawText(Str(x) + "   +   " + Str(y) + "   = ")
konsequent als 0 interpretiert, obwohl der Wert x oben bei Random alles andere als 0 ist. Wie kommt das?

PB42

Verfasst: 22.10.2005 17:25
von Franky
Das liegt an der Zeile x+y=z
mach da mal z=x+y ;)

Verfasst: 22.10.2005 17:25
von Amon
ja, du hast die formel oben verkehrt rum stehen

richtig ist

Code: Alles auswählen

z = x+y
so wie sie jetzt dasteht weist du x den wert der variable z zu - und das ist zu dem zeitpunkt 0 :)

Verfasst: 22.10.2005 17:31
von PB42
Boah! Da hab' ich aber geschlafen. :D Danke! Das obige Programm macht natürlich keinen besonderen Sinn, es geht mir aber darum, den Einsatz von Gadgets zu üben und deshalb eröffne ich nun gleich den nächsten Thread.

PB42

Verfasst: 22.10.2005 17:34
von Pelagio
@PB42

Dein Fehler liegt in der 8.ten Zeile:

Code: Alles auswählen

 X + Y = Z
Hierbei wird Y X aufgegeschlagen (X= X+Y)
und hernach wird abgefragt ob X gleich Z ist X=Z.
Da X nicht Z ist wird 0 ausgegeben, wäre X gleich Z würde wahrscheinlich 1 an X ausgegeben worden.
Mich wundert es zwar das PB hier keinen Fehler ausgibt aber trotzalledem ist dies das Problem und ich hoffe ich habe meine Erklärung für das Problem verständlich ausgedrückt.
:allright: