ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 13 Fév 2010 8:59 Sujet du message: |
|
|
Bonjour,
Il suffit d'effectuer des boucles imbriquées. Pour chaque position (i,j) dans le tableau T, on regarde grace aux boucles for k... for l ... si la matrice 3x3 placée à cette position dans T est égale à P (dans ce cas l'entier nb vaut 9). Si c'est le cas on affiche la position (i,j) obtenue et on augmente l'entier nbfois (nombre de fois où P est dans T) de 1.
Code: |
> P:=array([[1,0,-1],[0,-1,1],[-1,1,0]]);
[ 1 0 -1]
[ ]
P := [ 0 -1 1]
[ ]
[-1 1 0]
> T:=array([[1, 1, 1, 1, 1, 1, 0, -1, 1, 1], [1, 1, 0, -1, 1, 0, -1, 1, 1, 1], [1, 0, -1, 1, 1, -1, 1, 0, -1, 1], [1, -1, 1, 0, -1, 1, 0, -1, 1, 1], [1, 1, 0, -1, 1, 1, -1, 1, 0, 1], [1, 0, -1, 1, 0, 1, 0, -1, 1, 1], [0, -1, 1, 1, 1, 0, -1, 1, 1, 1], [-1, 1, 0, 1, 1, -1, 1, 0, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 0, -1], [1, 1, 1, 1, 1, 1, 1, 0, -1, 1]]);
[1 , 1 , 1 , 1 , 1 , 1 , 0 , -1 , 1 , 1]
[ ]
[1 , 1 , 0 , -1 , 1 , 0 , -1 , 1 , 1 , 1]
[ ]
[1 , 0 , -1 , 1 , 1 , -1 , 1 , 0 , -1 , 1]
[ ]
[1 , -1 , 1 , 0 , -1 , 1 , 0 , -1 , 1 , 1]
[ ]
[1 , 1 , 0 , -1 , 1 , 1 , -1 , 1 , 0 , 1]
T := [ ]
[1 , 0 , -1 , 1 , 0 , 1 , 0 , -1 , 1 , 1]
[ ]
[0 , -1 , 1 , 1 , 1 , 0 , -1 , 1 , 1 , 1]
[ ]
[-1 , 1 , 0 , 1 , 1 , -1 , 1 , 0 , 1 , 1]
[ ]
[1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , -1]
[ ]
[1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , -1 , 1]
> nbfois:=0:
> for i to 10 do
> for j to 10 do
> nb:=0:
> for k from 0 to 2 do
> for l from 0 to 2 do
> if i+k<=10 and j+l<=10 and T[i+k,j+l]=P[k+1,l+1] then nb:=nb+1 fi
> od
> od:
> if nb=9 then nbfois:=nbfois+1: print(cat(`P est dans T à la position (`,i,`,`,j,`)`)) fi
> od:
> od:
> print(cat(`Au total, P est dans T `,nbfois,` fois`));
P est dans T à la position (1,6)
P est dans T à la position (2,2)
P est dans T à la position (3,7)
P est dans T à la position (4,3)
P est dans T à la position (6,1)
P est dans T à la position (6,6)
Au total, P est dans T 6 fois
|
Cela répond-il à votre problème? |
|