Epimetheus
Cadet 1st Year
- Registriert
- Dez. 2006
- Beiträge
- 11
Schönen guten Tag... ich habe eine kleine Frage in Sachen Informatik...
Im Informatikunterricht arbeiten wir mit Turbo Pascal (7). Ich hab folgende Aufgabe:
Im Vorfeld solltet ihr wissen das wir eine "Einkaufsliste" programmieren.. folgender Quelltext:
Dies hat eben verschiedene Spielereien. Es rechnet den Preis zusammen und ordnet nach Namen..
Das eigentliche Problem ist, dass ich dies in einer externen Datei speichern soll und es wieder aufrufen lassen soll...
Letzteres bereitet mir Probleme.
Für das Speichern vereinbare ich bei VAR --> datei : text;
die Prozedur sieht so aus:
Wenn ich die entstandene "liste.dat" mit editor öffne, findet sich alles!
Wie muss ich nun die Laden-Prozedur schreiben?
So hab ich es versucht, aber es klappt nicht! -.-
kann mir wer helfen? bitte bitte! ?
lg epi
EDIT: hat sich erledigt. habe eine lösung gefunden.
Im Informatikunterricht arbeiten wir mit Turbo Pascal (7). Ich hab folgende Aufgabe:
Im Vorfeld solltet ihr wissen das wir eine "Einkaufsliste" programmieren.. folgender Quelltext:
Code:
PROGRAM einkaufsliste; { zeilenpreise je zeile und gesamtsumme letzte spalte}
USES crt;
VAR anzahl,zaehler1,zaehler2 : integer;
tausch1 : string;
tausch2 : integer;
tausch3 : real;
artikel : ARRAY[1..50] OF string[15];
stueck : ARRAY[1..50] OF integer;
preis : ARRAY[1..50] OF real;
summe : real;
{---------------------------------------------------------}
PROCEDURE eingaben;
BEGIN
writeln('Artikelzahl eingeben...');
readln(anzahl);
FOR zaehler1 := 1 TO anzahl DO
BEGIN
writeln('Name des ',zaehler1,'. Artikels eingeben...');
readln(artikel[zaehler1]);
writeln('Stckzahl eingeben...');
readln(stueck[zaehler1]);
writeln('Preis eingeben...');
readln(preis[zaehler1]);
END;
END;
{---------------------------------------------------------}
PROCEDURE sortieren;
BEGIN
zaehler1 := 0;
zaehler2 := 0;
FOR zaehler2 := 1 TO (anzahl - 1) DO
FOR zaehler1 := (zaehler2 + 1) TO anzahl DO
IF artikel[zaehler2] > artikel[zaehler1] THEN {wenn artikel2 grӇer als artikel1 dann}
BEGIN
tausch1 := artikel[zaehler2]; {tausch1 nimmt 2.artikel auf}
artikel[zaehler2] := artikel[zaehler1]; {artikel2 durch artikel 1 ersetzt}
artikel[zaehler1] := tausch1; {artikel1 erh„lt artikel2 aus tausch1}
tausch2 := stueck[zaehler2]; {tausch2 nimmt 2.stueckzahl auf}
stueck[zaehler2] := stueck[zaehler1]; {stueckzahl2 durch stueckzahl 1 ersetzt}
stueck[zaehler1] := tausch2; {stueckzahl1 erh„lt stueckzahl2 aus tausch2}
tausch3 := preis[zaehler2]; {tausch3 nimmt 2.preis auf}
preis[zaehler2] := preis[zaehler1]; {preis2 durch preis 1 ersetzt}
preis[zaehler1] := tausch3; {preis1 erh„lt preis2 aus tausch3}
END;
END;
{---------------------------------------------------------}
PROCEDURE ausgabe_liste;
BEGIN
writeln('------------------------------------------------------------------');
writeln('³ Nr.: ³ Artikel ³ Stck ³ Einzelpreis/Euro ³ Gesamtpreis/Euro ³');
writeln('------------------------------------------------------------------');
FOR zaehler1:= 1 TO anzahl DO
BEGIN
write(zaehler1:5,artikel[zaehler1]:13,stueck[zaehler1]:10,preis[zaehler1]:21:2);
writeln((stueck[zaehler1]*preis[zaehler1]):20:2);
END;
END;
{---------------------------------------------------------}
PROCEDURE ausgabe_summe;
BEGIN
summe:= 0;
writeln;
FOR zaehler1:= 1 TO anzahl DO
summe := summe + stueck[zaehler1] * preis[zaehler1];
writeln('Summe: ',summe:57:2,' Euro');
END;
{------------------------HP-------------------------------}
BEGIN
clrscr;
eingaben;
sortieren;
clrscr;
ausgabe_liste;
ausgabe_summe;
readln
END.
Dies hat eben verschiedene Spielereien. Es rechnet den Preis zusammen und ordnet nach Namen..
Das eigentliche Problem ist, dass ich dies in einer externen Datei speichern soll und es wieder aufrufen lassen soll...
Letzteres bereitet mir Probleme.
Für das Speichern vereinbare ich bei VAR --> datei : text;
die Prozedur sieht so aus:
Code:
PROCEDURE liste_speichern;
BEGIN
assign (datei,'liste.dat');
{$I-} rewrite (datei); {$I+}
IF ioresult = 0 THEN
FOR zaehler1 := 1 TO anzahl DO
writeln(datei,zaehler1:5,artikel[zaehler1]:13,stueck[zaehler1]:10,preis[zaehler1]:21:2,
(stueck[zaehler1]*preis[zaehler1]):20:2);
writeln(datei,'Summe: ',summe:57:2,' Euro');
close (datei);
END;
Wenn ich die entstandene "liste.dat" mit editor öffne, findet sich alles!
Wie muss ich nun die Laden-Prozedur schreiben?
So hab ich es versucht, aber es klappt nicht! -.-
Code:
PROCEDURE liste_laden;
BEGIN
assign (datei,'liste.dat');
{$I-} reset (datei); {$I+}
IF ioresult = 0 THEN
FOR zaehler1 := 1 TO anzahl DO
readln(datei,zaehler1:5,artikel[zaehler1]:13,stueck[zaehler1]:10,preis[zaehler1]:21:2,
(stueck[zaehler1]*preis[zaehler1]):20:2);
readln(datei,'Summe: ',summe:57:2,' Euro');
close (datei);
END;
kann mir wer helfen? bitte bitte! ?
lg epi
EDIT: hat sich erledigt. habe eine lösung gefunden.
Zuletzt bearbeitet: