Flaeche sortieren(File I/O)

Aber bei meinem 2. Programm check ich immer nicht:
Man mach die "Seiten" zum lesen auf und dann öffnen man die Flaechen zum schreiben.
Also wird die Flaeche dann zwischen Seiten = fopen("Seiten.csv","r"); und fclose(Seiten) geschrieben.

Kann man fopen("Seiten.csv","r") und dann fclose. Und dann Flaeche = fopen("Flaeche.csv","w") und dann fclose. Oder muss Flaeche = fopen("Flaeche.csv","w") in Seiten = fopen("Seiten.csv","w") reinschreiben - Warum?
...
Warum schreibt man in der while "Seiten" hinein ich wäre da nicht darauf gekommen?
Muss man NUR in de while ausgeben?
Angenommen, du hast eine Kiste voll mit Kuverts.
In jedem ist ein Blatt Papier, und außen auf dem Kuvert steht der Name, wie "Seiten.csv".

-Wenn du jetzt für jede Länge/Breite auf einen zweiten Zettel leeren Zettel den Flächeninhalt schreiben willst, nimmst du zuerst das Kuvert, in dem der Zettel mit den Längen und Breiten ist, nimmst ihn heraus und legst in auf deinen Tisch. Du willst vom Zettel nur Lesen, nichts daran ändern. (fopen zum Lesen: fopen "r").
-Dann nimmst du ein Kuvert, in dem noch ein leerer Zettel ist, herausnehmen, neben dem ersten auf den Tisch. Da du auf den leeren Zettel die Flächeninhalte schreiben willst: fopen "w"
-Auf dem ersten Zettel steht jedes Längen/Breitenpaar in einer Zeile.
Du schaust dir jetzt die erste Zeile an, multiplizierst die beiden Werte und schreibst das Ergebnis auf den leeren, zweiten Zettel
-Das machst du für jede Zeile auf dem Ersten, bzw. bis du den ganzen Ersten durchgelesen hast.
while(!(feof(...)))
Solange die Datei noch nicht aus ist (feof=File: End of File)
-Am Schluss legst du beide Zettel wieder in ihre Kuverts zurück und klappst die wieder zu. fclose.

Wenn du den ersten Zettel schon wieder ins Kuvert legen würdest, bevor du den zweiten herausnimmst, müsstest du dir die ganzen Längen/Breiten solange auswendig merken.
Wenn du beide gleichzeitig am Tisch liegen hast, gehts doch einfacher, oder?

Im 1. Programm hab ich ja gar keine while?
Dafür aber ein for. Beides sind Schleifen, also zum Wiederholen von Programmteilen.
Sind nur eine unterschiedliche Schreibweise; und jedes for kann in ein while umgeschrieben werden (und umgekehrt)

for bietet sich da eher an, wenn man die Anzahl der Wiederholungen schon von Anfang an weiß.
Du hast im ersten Programm ja MAX_ANZAHL Zahlen, die du in die Datei schreiben willst.

Im zweiten Programm weißt du nach der ersten Zeile nicht, wieviel Zeilen danach noch kommen.
Da ist while praktischer als for.
Du könntest die Zeilen zwar zählen und dann erst mit dem Flächeninhalt-Rechnen beginnen, aber wozu?
Wenn du die Zeilenanzahl weißt, wirds auch nicht weniger zum Rechnen.
Im Gegenteil wird die Arbeit sogar mehr, weil du ja die Zeilen auch noch zählst.

Nicht böse gemeint, aber wenn es in deiner Schule schwerpunktsmäßig um EDV/Programmierung geht, solltest du vielleicht wechseln.

Gruß
 
Zurück