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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| ! ALLOCATION DU TABLEAU tabvie
PRINT*,"SAISIR LES DIMENSION DE LA COLONIE " ! LE PROGRAM ATTEND QUE VOUS SAISISSIEZ LA TAILLE DU TABLEAU
READ*,n
IF(.NOT. ALLOCATED (tabvie))THEN
ALLOCATE ( tabvie(n,n), STAT=ERR )
IF(err/=0)THEN
PRINT*,"PROBLEME D'ALLOCATION" ! L'ALLOCATION DU TABLEAU C'EST MAL DEROULEE
STOP
ELSE
PRINT*,"TABLEAU DEJA ALLOUE " ! TABLEAU DEJA ALLOUE
STOP
END IF
END IF
! INITIALISTAION DE LA COLONIE
DO i=1,n
DO j=1,n
tabvie(i,j)=colo()
END DO
END DO
! AFFICHAGE DE LA COLONIE INITIALE
DO i=1,n
PRINT*,tabvie(i,:)
END DO
PRINT*, "*****************COLONIE INITIALE***************** "
DO i=1,n
DO j=1,n
IF (tabvie(i,j)==0) THEN
IF (voisin().GE.3)THEN
tabvie(i,j)=1
ELSE
tabvie(i,j)=0
END IF
END IF
END DO
END DO
DO I=1,n
PRINT*,tabvie(i,:)
END DO
CONTAINS ! PROGRAMMES SECONDAIRES
INTEGER FUNCTION voisin() ! SOUS PROGRAMME DEFINISSANT LE NOMBRE DE VOISIN D'UNE CASE tabvie(i,j)
voisin =tabvie(i-1,j-1)+tabvie(i-1,j)+tabvie(i-1,j+1)& ! ON VA TESTER TOUTES LES CASE VOISINE
+tabvie(i,j-1)+tabvie(i,j+1)&
+tabvie(i+1,j-1)+tabvie(i+1,j)+tabvie(i+1,j+1) ! DE LA CASE tabvie(i,j)
END FUNCTION |
Partager