************************************************************************
* File: giusti.for
* Scopo: soluzione compito esame Fondamenti di Informatica del 08-06-2000

      INTEGER FUNCTION GIUSTI (MAT, R, C)
* MAT,R,C sono parametri di INPUT
      IMPLICIT NONE
* dichiarazioni dei tipi dei parametri formali
      INTEGER R, C, MAT(R,C)
* dichiarazioni di variabili locali
      INTEGER I, J, TOT/0/
* istruzioni eseguibili

      DO 10 I = 1,R
        DO 20 J = 1,C
          IF (MAT(I,J) .EQ. (I + J)) TOT = TOT + 1
 20     CONTINUE
 10   CONTINUE
      GIUSTI = TOT
      RETURN
      END

************************************************************************
* PARTE NON RICHIESTA DAL TESTO
      PROGRAM MAIN
      IMPLICIT NONE
      INTEGER RIGHE, COLONNE
      PARAMETER (RIGHE = 2, COLONNE = 3)
      INTEGER MATRICE(RIGHE,COLONNE) 
      INTEGER GIUSTI

* ESEMPIO DEL TESTO
      MATRICE(1,1) = 2
      MATRICE(1,2) = 3
      MATRICE(1,3) = 4
      MATRICE(2,1) = 2
      MATRICE(2,2) = 3
      MATRICE(2,3) = 5
      WRITE(*,*) 'NUMERO ELEMENTI GIUSTI : '
      WRITE(*,*) GIUSTI(MATRICE, RIGHE, COLONNE)
      STOP
      END
