Befehl Write < Fortran < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Hallo,
Ich muss ein in Fortran geschriebens progrämmchen erweitern! Bin aber am verzweifeln, weil selbst die einfachen Sachen bei meiner ersten Erahrung schwer fallen!
Meine Frage wäre:
Wie kann ich unter Anwendung des Befehls WRITE die Felder eines Arrays mit einem Semikolon dazwischen (für Excel später) ausgeben? Bis jetzt habe ich:
write(101,...) ARRAYnamme (1:n) gehabt!
kann einer mir helfen?
wäre cooool;)
lg
Nadine
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 20:08 Mo 19.09.2011 | Autor: | rainerS |
Hallo Nadine!
Erstmal herzlich
> Ich muss ein in Fortran geschriebens progrämmchen
> erweitern! Bin aber am verzweifeln, weil selbst die
> einfachen Sachen bei meiner ersten Erahrung schwer fallen!
>
> Meine Frage wäre:
>
> Wie kann ich unter Anwendung des Befehls WRITE die Felder
> eines Arrays mit einem Semikolon dazwischen (für Excel
> später) ausgeben? Bis jetzt habe ich:
>
> write(101,...) ARRAYnamme (1:n) gehabt!
Was steht denn da als Formatangabe? Drei Punkte gibt's in FORTRAN nicht.
> kann einer mir helfen?
Du brauchst zunächst einmal eine Formatangabe, mit der eine Zahl ausgegeben wird, z.B.
5000 FORMAT(F10.5,';')
Das besagt: gib eine Gleitkommazahl mit 5 Nachkommastellen aus, und zwar rechtsbündig in einem 10 Zeichen breiten Feld, und das gefolgt von der zwischen Hochkommas angegebenen Zeichenkette (ein Semikolon). Wenn du 1000 solcher Zahlen ausgeben willst, musst du einen Wiederholungsfaktor angeben:
5000 FORMAT(1000(F10.5,';'))
Eine write-Anweisung, die sich auf dieses Format bezieht, sieht so aus:
write(101,5000) ARRAYnamme (1:n)
Wenn dein Array mehr als 1000 Elemente hat, so wird beim 1001. Element eine neue Ausgabezeile angefangen und das Format wieder von vorne abgearbeitet. Hat dein Array weniger als 1000 Elemente, dann hört die Ausgabezeile nach dem letzten Element auf.
Statt F10.5 gibt es noch die Möglichkeit E10.5 (Exponentialdarstellung), D10.5 (Exponentialdarstellung für DOUBLE PRECISION) oder G10.5 (automatische Wahl zwischen F und E Form).
Hier ein vollständiges Beispiel:
1: | real a(10)
| 2: |
| 3: | do 10 i=1,10
| 4: | 10 a(i) = i
| 5: |
| 6: | 5000 FORMAT(5000(F10.5,';'))
| 7: | write(*,5000) a
| 8: | stop
| 9: | end |
Viele Grüße
Rainer
|
|
|
|