TU Chemnitz, Fakultät für Mathematik, 09107 Chemnitz
Copyright © 2024 by TU Chemnitz. Alle Rechte vorbehalten.
https://www-user.tu-chemnitz.de/~pester/Lehre/LV/fortran/uebung.php?nr=12 - 18. Mai 2024 15:03
Formatanweisungen |
- Welche Ausgaben liefert das folgende Programm - theoretisch und praktisch?
(Notieren Sie sich die erwartete Ausgabe und überprüfen Sie die Richtigkeit Ihrer Erwartung erst danach.)PROGRAM Iformat REAL A(5,5) DATA A / 25*0. / N=10 J=1 write(*,1) N,J write(*,'(I4)') (N**I,I=0,5) write(*,'(1X,I4)') (N**I,I=0,5) write(*,'(6I4)') (N**I,I=0,5) write(*,2) (N**I,I=0,5) 1 FORMAT (' N=',Z8.8,', J=',Z8.8) 2 FORMAT (I4,(/3X,2I6)) write(*,*) DO 3 I = 1,5 DO 3 J = 5 A(I,J) = I+1.0 3 CONTINUE write(*,*) A END
-
Zu folgendem (Beispiel-)Hauptprogramm ist das
Unterprogramm AUSGABE so zu vervollständigen, dass es jeweils einen
Matrixblock beginnend mit dem
Matrixelement aij ausgibt.
Das Format ist so zu berechnen, dass möglichst viele Spalten
rechts von aij angezeigt werden können.
Die Anzahl der maximal auszugebenden Matrixzeilen soll (entsprechend der
Fenstergröße) bis zu 20 Zeilen unterhalb von aij
umfassen,
(d.h., Ausgabe aller Elemente mit demselben, vorher zu berechnenden
I-Format, das gerade genügend Stellen für das betragsgrößte Element
von A vorsieht
(1 Leerzeichen + Vorzeichen zwischen den Matrixspalten, max. 79 Zeichen
pro Zeile).
Die Indizes I,J der linken oberen Ecke sollen oberhalb des Matrixblocks
als erste Zeile ausgegeben werden.
PROGRAM fmt_test PARAMETER (MEMSIZE=1000000) Integer A(MEMSIZE) 1 write(*,100) 'Matrixdimension=' read (*,*,ERR=1) N DO J=1,N K=(J-1)*N DO I=1,N A(K+I)=I*100+J ENDDO ENDDO 2 write(*,100) 'Ausgabe ab Position i,j =' read (*,*,ERR=2) I,J IF ( I.GT.0 .AND. J.GT.0 ) THEN call AUSGABE(I,J,N,A) GOTO 2 ENDIF 100 FORMAT(1X,A,$) END SUBROUTINE AUSGABE(Zeile,Spalte,N,A) INTEGER Zeile, Spalte, N, A(N,N) ...
File translated from TEX by TTH, version 3.05.