Programmieren - alles kontrollieren 4.934 Themen, 20.613 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
Borlander Kolti „Ich programmiere nicht in Basic, aber von der Logik her müßte es...“
Optionen

Ich habe früher mal viel in Basic (GWBasic/QBasic) programmiert, ist aber schon ne weile her.

Soweit ich mich erinnere gibt es in Basic keine lokalen und globalen Variablen.

Wenn man einen Rückgabewert bekommen will, kann man (so zumindest in QBasic) eine FUNCTION Deklaration verwenden. Wie das in PowerBasic aussieht weiß ich nicht.


Noch eine andere Idee:
Auch im SUB "Divi" die Langen Variablennamen verwenden, so dass die Variablen im gesammten Programm die selbe Bezeichnung haben. Und noch mal die Schreibweise überprüfen.


CU Borlander

bei Antwort benachrichtigen