Aufbereitung | * | freies Format |
nA[w] | n mal CHARACTER der Länge w | |
nFw.d | n mal REAL, DOUBLE PRECISION, COMPLEX | |
nIw | n mal INTEGER mit w Stellen | |
nX | n Leerzeichen | |
Steuerung | ADVANCE = 'NO' | kein Zeilenvorschub |
IOSTAT = variable | variable (INTEGER) enthält einen Wert, | |
der Statusinformation angibt: i.a. 0 für ok | ||
ERR = marke | verzweige im Falle eines Fehlers zur Marke "marke" | |
Zeichenketten | H, ', " |
PROGRAM in_output IMPLICIT NONE REAL :: r REAL, PARAMETER :: pi = 3.14 INTEGER :: i, ios !------------------------------------------------------- loop: DO WRITE (*,'(A)',ADVANCE='NO') & 'geben Sie eine max. 3-stellige INTEGER-Zahl ein: ' READ (*,'(i3)',ERR=50,IOSTAT=ios) i IF (ios /= 0) EXIT r = pi*i**2.0 WRITE (*,60) i, r 60 FORMAT ('Die Flaeche eines Kreises mit Radius ',i3,' ist ',f10.2) CYCLE 50 WRITE (*,*) 'Fehlerhafte Eingabe!' ENDDO loop WRITE (*,*) STOP 'Programm wurde beendet!' END PROGRAM in_outputDieses Programm liefert folgende Ausgabe:
geben Sie eine max. 3-stellige INTEGER-Zahl ein: 999 Die Flaeche eines Kreises mit Radius 999 ist 3133723.25 geben Sie eine max. 3-stellige INTEGER-Zahl ein: 1000 Die Flaeche eines Kreises mit Radius 100 ist 31400.00 geben Sie eine max. 3-stellige INTEGER-Zahl ein: 34 Die Flaeche eines Kreises mit Radius 34 ist 3629.84 geben Sie eine max. 3-stellige INTEGER-Zahl ein: * Fehlerhafte Eingabe! geben Sie eine max. 3-stellige INTEGER-Zahl ein: STOP: Programm wurde beendet!und zwar aus folgendem Grund:
Das Programm ADD_2_REALS nun mit formatierter Ein- und Ausgabe:
PROGRAM ADD_2_REALS_AGAIN IMPLICIT NONE ! verhindert Tippfehler! REAL :: X, Y WRITE (*,'(A15)',ADVANCE='NO') 'Input data X:' READ (*,'(f2.2)') X ! lies zwei Positionen; falls kein Komma WRITE (*,*) "Input data X = ", X ! dabei, interpretiere die letzten beiden WRITE (*,'(A15)',ADVANCE='NO') 'Input data Y:' ! Zahlen als Nachkommastellen READ (*,'(f3.2)') Y ! lies drei Psitionen und falls kein Komma WRITE (*,*) "Input data Y = ", Y ! dabei -> 2 Nachkommastellen WRITE (*,*) 'X + Y =', X + Y END PROGRAM ADD_2_REALS_AGAINliefert zur Laufzeit: 2. Eingabe 3. Eingabe
Input data X:56.78 1.3 .56 Input data X = 0.5600000 1.0000000 0.5000000 Input data Y:4.567 456 .56 Input data Y = 4.5000000 4.5599999 0.5600000 X + Y = 5.0599999 5.5599999 1.0599999