Bonjour,

j'ai le programme suivant pour construire le triangle de Pascal, mais il ne m'écris correctement sue les vleurs "1", ailleurs il met des "50", des "1" ou des "0" et je ne comprends vraiment pas où est mon erreur !

Voici le programme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
PROGRAM trianglePascal
INTEGER   :: n=10     ! last row  of the triangle
CALL triangle (1,n)
END PROGRAM
 
RECURSIVE SUBROUTINE triangle (i,m)
INTEGER                                :: i,m,j
INTEGER,ALLOCATABLE,SAVE,DIMENSION(:)  :: a,b
IF (i==1) THEN
   ALLOCATE (a(m))
   ALLOCATE (b(1))
   b=1
ELSE IF (i==2) THEN
   DEALLOCATE (b)
   ALLOCATE (b(2))
   b=1
ELSE
   DEALLOCATE (b)
   ALLOCATE (b(i))
   b(1)=1
   b(i)=1
   DO j=2,i-1
      b(j)=a(j-1)+a(j-2)
   END DO
END IF
a(1)=b(i)
PRINT '(12I4)',b
IF (i==m) RETURN
CALL triangle (i+1,m)
END SUBROUTINE
Merci d'avance pour vos conseils !