M. Pester - LV im SS 2017
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.