![]() |
Daten von einer Datei aufaddieren durch FOR TO DO
Hallo,
beim vorliegenden Programm möchte ich die eingegebenen Werte (jeder Stunde) addieren. So das ich zum Schluss die Gesamteinnahmen aller Stunden habe. Das habe ich auch schon mit einer zweiten For-to-do Schleife probiert, leider ohne Erfolg. In der Vergangenheit, hatte ich dieses Problem schon einmal gelöst, jedoch finde ich die passende Datei nicht mehr. Es wäre nett, wenn sich das mal Jemand ansehen könnte. Ich danke euch bereits im voraus!
Delphi-Quellcode:
program In_Out;
{$APPTYPE CONSOLE} uses SysUtils; var Datei_X:file of real; Wert,Ergebnis:real; i:integer; {------------------------------------------------------------------------------} procedure Eingabe; var i:integer; begin ASSIGN (Datei_X,'C:\Dokumente und Einstellungen\File.DAT'); REWRITE(Datei_X); for i:=10 to 19 do begin write(' ',i,':00 Uhr! Wie hoch waren die Einnahmen?:'); readln(Wert); WRITE(Datei_X,Wert); end; CLOSE(Datei_X); writeln;writeln(' ENTER dr',#129,'cken...'); readln; end; {------------------------------------------------------------------------------} procedure Ausgabe; Begin for i := 1 to 20 do writeln(' '); writeln(' Ihre Einnahmen...:'); writeln; ASSIGN (Datei_X, 'C:\Dokumente und Einstellungen\File.DAT'); {$I-} RESET(Datei_X); {$I+} if IOResult <>0 then writeln('Datei ist weg') else begin While not EoF(Datei_X) do begin READ(Datei_X, Wert); write(' ');writeln(Wert:10:2,' Euro'); for i:=10 to 19 do Ergebnis:=Wert+1; end; writeln;writeln(Ergebnis:10:2); CLOSE(Datei_X); writeln;writeln;writeln;writeln(' ENTER dr',#129,'cken...'); readln; End;end; |
Re: Daten von deiner Datei aufaddieren durch FOR TO DO
Zitat:
|
Re: Daten von einer Datei aufaddieren durch FOR TO DO
Zitat:
Delphi-Quellcode:
for i:=10 to 19 do
Ergebnis := Ergebnis + Wert + 1; |
Re: Daten von einer Datei aufaddieren durch FOR TO DO
Hi,
danke erstmal für die schnelle Antwort. Ich habe die Rechnung durch die von DeddyH ersetzt, und es kommt trotzdem das falsche Ergebnis raus. Wenn ich für alle Stunden 25 eingebe, müsste ja 250 Euro rauskommen...es kommt aber 2600 Euro raus... Und zu Der.Kaktus, ich weiß nicht ganz warum ich da noch einmal read schreiben sollte, denn die Datei ist ja noch offen...das Close kommt doch erst danach. :wiejetzt: . |
Re: Daten von einer Datei aufaddieren durch FOR TO DO
Hmmm, das ist etwas "verwurstelt in meinen Augen:
Delphi-Quellcode:
1. Wo wird "Ergebnis" initialisiert? VOR das Einlesen gehört ein "Ergebnis:=0"
While not EoF(Datei_X) do
begin READ(Datei_X, Wert); write(' ');writeln(Wert:10:2,' Euro'); for i:=10 to 19 do Ergebnis:=Wert+1; //----> hier fehlt das naechste Read !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! end; 2. Wozu ist die for-Schleife überhaupt gut? Löschen! 3. Detlef hat ja den entscheidenden Tip bereits gegeben! Sofern in der Datei überhaupt die richtigen Daten enthalten sind, sollte es so funktionieren:
Delphi-Quellcode:
Ergebnis:=0;
while not eof(Datei_X) do begin read(Datei_X, Wert); Ergebnis:=Ergebnis+Wert; end; |
Re: Daten von einer Datei aufaddieren durch FOR TO DO
Vielen Dank taaktaak, DeddyH und Der.Kaktus,
entschuldige bitte das meine Programmierkenntnisse noch nicht so ausgereift sind, dass es reicht ein Tipp zu geben. :oops: Ich ging an die Lösung logisch heran und dachte: wenn bei der Eingabe eine For-To-Do Schleife habe, brauche ich die bestimmt auch bei der Ausgabe. Das das nicht der Fall ist, hätten wir ja damit geklärt. Dankeschön :) . |
Re: Daten von einer Datei aufaddieren durch FOR TO DO
Hallo coly546
Nee, also entschuldigen brauchst du dich nicht!! Das ist doch Ok, wenn ein Anfänger Schwierigkeiten hat. Also weiterhin noch viel Spaß! :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz