- Mitglied seit
- 11.08.2001
- Beiträge
- 2.818
- Reaktionen
- 65
Servus Leute.
Ich schreibe morgen mein Abi über Turbo Pascal, meine Frage hat also eine gewisse Dringlichkeit.
Es handelt sich um ein Aktienprogramm. Das Problem befindet sich bei der Abbruchbedingung.
Aufgabenstellung: Die Eingabe wird beendet, wenn der Anwender beim Erfassen der Aktienbezeichnung keine weitere Aktienbezeichnung eingibt, sondern lediglich die RETURN-Taste drückt.
Dies klappt bei mir auch soweit, nur werden die restlichen Aktien als 0 Werte angezeigt. Sie sollen in der Ausgabe allerdings nicht erscheinen. Die Laufvariable I muss runter gezählt werden, nur weiss ich leider nicht wie. Vielleicht kann mir ja hier irgendwer helfen.
Hier das Programm:
Danke für jegliche Hilfe.
Ich schreibe morgen mein Abi über Turbo Pascal, meine Frage hat also eine gewisse Dringlichkeit.
Es handelt sich um ein Aktienprogramm. Das Problem befindet sich bei der Abbruchbedingung.
Aufgabenstellung: Die Eingabe wird beendet, wenn der Anwender beim Erfassen der Aktienbezeichnung keine weitere Aktienbezeichnung eingibt, sondern lediglich die RETURN-Taste drückt.
Dies klappt bei mir auch soweit, nur werden die restlichen Aktien als 0 Werte angezeigt. Sie sollen in der Ausgabe allerdings nicht erscheinen. Die Laufvariable I muss runter gezählt werden, nur weiss ich leider nicht wie. Vielleicht kann mir ja hier irgendwer helfen.
Hier das Programm:
Code:
PROGRAM aktien_pas;
USES crt;
CONST
max =20;
VAR
name :array[1..max] of string[20];
menge :array[1..max] of integer;
e_kurs :array[1..max] of real;
t_kurs :array[1..max] of real;
guv :array[1..max] of real;
summe :real;
I :integer;
PROCEDURE eingabe;
BEGIN
clrscr;
writeln ('Dieses Programm berechnet den Gewinn bzw. Verlust Ihrer Aktien.');
writeln ('Geben Sie die Aktienbezeichnung, die Stckzahl, den Einkaufskurs');
writeln ('und den Tageskurs in Euro an. Mit RETURN wird die Eingabe beendet.');
writeln;
FOR I:=1 TO max DO
BEGIN
writeln;
write (I,'. Aktienbezeichnung eingeben: ');
readln (name[I]);
IF (name[I]='') THEN
BEGIN
I:=I-1;
exit;
END
ELSE
write ('Stckzahl der Aktie: ');
readln (menge[I]);
write ('Einkaufskurs der Aktie: ');
readln (e_kurs[I]);
write ('Tageskurs der Aktie: ');
readln (t_kurs[I]);
clrscr;
END;
END;
PROCEDURE verarbeitung;
BEGIN
I:=0;
REPEAT
I:=I+1;
guv[I]:=(t_kurs[I]-e_kurs[I])*menge[I];
summe:=summe+guv[I];
UNTIL I=max;
END;
PROCEDURE ausgabe;
BEGIN
clrscr;
gotoxy(30,1); writeln ('Aktienauswertung');
gotoxy(30,2); writeln ('================');
gotoxy(5,4); writeln ('Aktienbezeichn.');
gotoxy(25,4); writeln ('Tagesk.');
gotoxy(35,4); writeln ('Einkaufsk.');
gotoxy(50,4); writeln ('Menge');
gotoxy(60,4); writeln ('Gewinn/Verlust');
gotoxy(5,5); writeln ('=======================================');
I:=0;
REPEAT
I:=I+1;
gotoxy(5,5+I); writeln (name[I]);
gotoxy(20,5+I); writeln (t_kurs[I]:10:2);
gotoxy(32,5+I); writeln (e_kurs[I]:10:2);
gotoxy(50,5+I); writeln (menge[I]);
gotoxy(60,5+I); writeln (guv[I]:10:2);
UNTIL I=max;
gotoxy(5,6+I); writeln ('========================================');
gotoxy(60,7+I); writeln (summe:10:2);
readkey;
END;
BEGIN
eingabe;
verarbeitung;
ausgabe;
END.
Danke für jegliche Hilfe.
da kann man eigentlich nix falsch machen, is ja nur tp 