Ein Kumpel von mir und ich sind gerade dabei uns BASIC-Projekt für die Schule fertig zu machen! War bisher alles kein Prob, Passwortabfrage funzt, Animationen funzen, etc.! Doch ein Problem haben wir schon noch! Die Funktion zur Parameterübergabe macht irgendwie nicht das, was wir wollen...
Ich poste hier mal ein total simples Beispiel dafür, vielleicht könnt ihr mir das sagen worans gelegen hat! Bei diesem Beispiel kommt z.B. als Ergebnis IMMER "0.00" raus, wenn N NICHT = 0 ist...
CODE ANFANG
CLS
SUB Eingabe (Zaehler, Nenner)
INPUT"Zähler eingeben: ", Zaehler
INPUT"Nenner eingeben: ", Nenner
END SUB
SUB Divi (Zaehler, Nenner, FLAG, Ergebnis)
IF N=0 THEN
F=1
ELSE
E=Z/N
F=2
END IF
END SUB
SUB Aus (Fl, Erg)
IF FL=1 THEN
PRINT"Nicht lösbar!"
ELSE
PRINT USING"######.##"; Erg
END IF
END SUB
CALL Eingabe (Zaehler, Nenner)
CALL Divi (Zaehler, Nenner, FLAG, Ergebnis)
CALL Aus (FLAG, Ergebnis)
CODE ENDE
So! Bei diesem Code meckert PowerBasic nich, rechnet korrekt, wenn N=0 ist, ansonsten gibt es aber IMMER als Ergebnis "0.00" aus!
Und das 1/2 nich 0.00 sondern 0.5 is, dürfte ja klar sein...
Könnt ihr uns helfen? Wäre schön, da wir das Proggie bald fertig haben müssen!
cya
-.- DeAtHmEaT 2k -.-
Programmieren - alles kontrollieren 4.936 Themen, 20.625 Beiträge
Ich programmiere nicht in Basic, aber von der Logik her müßte es folgendermaßen sein:
Du übergibst die Werte Zaehler und Nenner an die Subroutine. Diese übernimmt die Werte in ihre eigenen Variablen zum Berechnen.
Das Problem ist, es gibt Variablen, die sind nur der SUB bekannt und andere sind im ganzen Programm (global) bekannt.
CALL Divi (Zaehler, Nenner)
SUB Divi (Z, N)
IF N=0 THEN
FLAG=1
ELSE
Ergebnis=Z/N
FLAG=2
END IF
Nomalerweise müßte jetzt hier noch irgendwas sein, das heißt:
>>>>>>>>>>Return FLAG, Ergebnis : Du mußt die Berechnung ja wieder zur Verfügung haben.
END SUB
Also 100% ist meine Erklärung nicht, denn ich kenne nicht die Syntay von Basic.