Programmieren - alles kontrollieren 4.936 Themen, 20.625 Beiträge

Power BASIC - Probleme bei Parameterübergabe

REALdeathmeat2k / 5 Antworten / Flachansicht Nickles

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 -.-

bei Antwort benachrichtigen
Kolti REALdeathmeat2k „Power BASIC - Probleme bei Parameterübergabe“
Optionen

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.

bei Antwort benachrichtigen