Exercice 1. Commenter chaque instruction et expliquer ce que font les subroutines dans le module suivant
MODULE Janvier02 IMPLICIT NONE TYPE Postale CHARACTER (LEN = 30) :: ville INTEGER :: code END TYPE Postale CONTAINS RECURCIVE SUBROUTINE Mystere (Tab) TYPE(Postale), DIMENSION (:), INTENT(INOUT) :: Tab INTEGER :: Taille INTEGER, DIMENSION(1) :: Grand Taille= SIZE(Tab) IF (Taille > 0) THEN Grand = MAXLOC(Tab(:)%code) CALL Swap (Grand(1), Taille) CALL Mystere (Tab(1:taille-1)) ENDIF CONTAINS SUBROUTINE Swap(I,J) INTEGER, INTENT(IN) :: I,J TYPE(Postale) :: Tamp Tamp = Tab(I) Tab(I) = Tab(J) Tab(J) = Tamp END SUBROUTINE Swap END SYBROUTINE Mystere END MODULE Janvier02
Si est de taille 4, donner un exemple d'initialisation du tableau.
Ensuite, imprimer le tableau après l'appel de la subroutine Mystere(Tab).
Exercice 2.
L(J:k+1, k-1:I+k) = V( J-2:k-1, 1:I+2)*W( I+J+5:I+k+6, J+1:J+I+2)
write(*,'(I5,I5)')I,J write(*,'(I5,4/,I5)')I,J write(*,'(F8.2,2X,E12.4)')x,y
Exercice 3.
Soit une matrice creuse telle que
pour
. On stocke alors
la matrice sous la forme
REAL, DIMENSION(N,4) :: Aet on désigne par
A(i,1) | la sous-sous-diagonale | (![]() |
A(i,2) | la sous-diagonale | (![]() |
A(i,3) | la diagonale | (![]() |
A(i,4) | la sur-diagonale | (![]() |
Dans la suite de l'exercice, toutes les matrices utilisées
sont stockées sous cette forme.
Ecrire une fonction : FUNCTION Jacobi (b, A)
permettant de calculer .
On pourra écrire dans un module une surdéfinition de l'opérateur
(
), afin que l'opération suivante
soit valide.