Ich hatte vor einiger Zeit schonmal gepostet!
Auch wegen Probs mit PowerBASIC!
Diese Probleme haben sich gelöst! Nochmal danke an die Leutz, die uns geholfen haben!
Jetzt haben wir ("wir" weil es ja ein Projekt ist... :P) mal wieder ein Problem!
Unser Programm besteht aus drei Teilen! Von Interesse ist momentan eigentlich nur Teil zwei, die anderen Teile laufen einwandfrei! Im zweiten Programmteil kann der Benutzer einen Darlehensbetrag, einen Zinssatz, einen Tilgungssatz und die Bankgebühren und anschließend noch einen Monat eingeben! Es soll der Aufwand, der durch die Zahlung von Zinsen und Tilgungen entstanden ist bis zum eingelesenen Monat berechnet werden und die Restschuld berechnet werden! Die hierfür verwendete Schleife läuft, allerdings scheint sich wohl ein logischer Fehler eingeschlichen zu haben! :(
Gibt man z.B. als Monat "341" ein, erhält man einen Aufwand von ca. 230000 €, richtig wäre aber ca. 294000 €!
Ich poste einfach mal den Code hier rein, vielleicht weiß einer von euch, worans liegt! *hoff* :P
Also, hier erstmal der eigentliche zweite Programmeil:
REM *** Unterprogramme: Zwischenstand ausgeben ***
SUB Eingabe2 (Darlehensbetrag, Zinssatz, Tilgungssatz, Gebuehren, Monat)
CLS
COLOR 4,0
LOCATE 1,30
PRINT"Zwischenstand berechnen"
LOCATE 2,30
PRINT"-----------------------"
COLOR 7,0
LOCATE 8,5
INPUT"Bitte geben Sie den Darlehensbetrag in Euro ein: ",Darlehensbetrag
LOCATE 8,61
PRINT"Euro"
LOCATE 10,5
INPUT"Bitte geben Sie den Zinssatz in Prozent ein: ",Zinssatz
LOCATE 10,54
PRINT"%"
LOCATE 12,5
INPUT"Bitte geben Sie den Tilgungssatz in Prozent ein: ",Tilgungssatz
LOCATE 12,58
PRINT"%"
LOCATE 14,5
INPUT"Bitte geben Sie die Bankgebhren ein: ",Gebuehren
IF Gebuehren LOCATE 14,50
PRINT"%"
ELSE
LOCATE 14,50
PRINT"Euro"
END IF
LOCATE 16,5
INPUT"Bitte geben Sie den aktuellen Monat an: ",Monat
END SUB
SUB Verarbeitung2 (Dar, Zin, Til, Geb, Mon, Rest, Gez, Bel)
X=Dar
Z=0
Bel=Dar*(Zin+Til)/100/12
DO
Z=Z+1
Y=Bel-(((X*Zin)/100)/12)
X=X-Y
LOOP UNTIL Z=Mon
DauJ=(Z/12)
IF Geb Geb=Geb*Dar
END IF
REM *** Irgendwas falsch ANFANG ***
Rest=Geb+Dar+((Zin*Dar)/100)*(DauJ-(Mon/12))-Dar
Gez=Geb+Dar+((Zin*Dar)/100)*DauJ-Rest-Dar
REM *** Irgendwas falsch ENDE ***
END SUB
SUB Ausgabe2 (NochZuZahlen, BereitsGezahlt, Monatsbelastung )
CALL Rechne
LOCATE 20,5
PRINT USING"Die monatliche Belastung betr„gt: ######.## Euro";Monatsbelastung
LOCATE 21,5
PRINT USING"Der aktuelle Aufwand betr„gt: ######.## Euro";BereitsGezahlt
LOCATE 22,5
PRINT USING"Die Restschuld betr„gt: ######.## Euro";NochZuZahlen
END SUB
Jetzt das Hauptmenü! Interessandt lediglich der Teil zu CASE 2:
REM *** Hauptprogramm ***
DO
91 CALL AUTHEN
CALL Tastendruck
CALL Menueaufbau
CALL HMFirst
COLOR 4,1
99 LOCATE 18,25
PRINT" Ihre Wahl: "
LOCATE 18,31
INPUT"Ihre Wahl: ",Auswahl
COLOR 4,0
SELECT CASE Auswahl
CASE 1
CALL Eingabe1 (Ein1, Ein2, Ein3, Ein4)
CALL Verarbeitung1 (Ein1, Ein2, Ein3, Ein4, Bel, DauJ, DauM, Ges)
CALL Ausgabe1 (Bel, DauJ, DauM, Ges)
CALL Tastendruck
CALL Menueaufbau
GOTO 99
CASE 2
CALl Eingabe2 (Ein1, Ein2, Ein3, Ein4, Ein5)
CALL Verarbeitung2 (Ein1, Ein2, Ein3, Ein4, Ein5, Rest, Gezahlt, Belastung)
CALL Ausgabe2 (Rest, Gezahlt, Belastung)
CALL Tastendruck
CALL Menueaufbau
GOTO 99
CASE 3
CALL Eingabe3 (Ein1, Ein2, Ein3, Ein4)
CALL Verarbeitung3 (Ein1, Ein2, Ein3, Ein4 )
CALL Menueaufbau
GOTO 99
CASE 4
CALL ChangeUser
CASE 5
CALL Beenden
CASE ELSE
CALL WrongChoice
GOTO 99
END SELECT
LOOP UNTIL Auswahl=5
So, einige Umlaute hat der Windowseditor "umgestaltet" aber das sollte ja kein Prob sein! Wie gesagt: Unserer Meinung nach isses irgendwo ein logischer Fehler!
Könnt ihr uns helfen?
cya
-.- DeAtHmEaT 2k -.-
Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge
Vielleicht?
CASE 2
CALl Eingabe2 (Ein1, Ein2, Ein3, Ein4, Ein5)
CALL Verarbeitung2 (Ein1, Ein2, Ein3, Ein4, Ein5, Rest, Gezahlt, Belastung)
CALL Ausgabe2 (Rest, Gezahlt, Belastung)
CALL Tastendruck
CALL Menueaufbau
GOTO 99
Zur Logik:
Du hast ein Darlehen.
Du hast eine mtl. Belastung, die setzt sich zusammen aus Zinsen und Tilgung und bleibt immer gleich. Beim Tilgen wird der Zinsanteil immer kleiner und der Tilgungsanteil immer größer.
Belastung = Darlehen * (Zins + Tilgung) / 100 / 12
Rest = Darlehen
Du hast eine Laufzeit von ? Monaten.
Schleife bis Monat = 0
Zinsanteil = Rest * Zins / 100 / 12
Tilgungsanteil = Belastung - Zinsanteil
Im ersten Monat bezahlst Du den errechneten Wert, das bedeutet:
Zinsen = Zinsen + Zinsanteil
Tilgung = Tilgung + Tilgungsanteil
Jetzt muß der Darlehensbetrag um den Tilgungsanteil verringert werden.
Rest = Rest - Tilgungsanteil
zurück zur Schleife
Dann mußt Du noch die Gebühren einbauen.
Umsetzen mußt Du das selber.