certes.....
2006-12-22 01:49:01
·
answer #1
·
answered by delvauxvinciane 4
·
0⤊
0⤋
Et moi je cherche un algorythme qui me permettrait de déchiffrer ce que tu dis :p
2006-12-22 09:46:33
·
answer #2
·
answered by lorenzo_sky 3
·
2⤊
0⤋
Je n'ai pas envie de me creuser la cervelle mais utilise deux boucle tant que
avec compteur i , j
Comme initialisation
i =1
tant que i <= taille( matrice)-1 alors
j=i+1
tant que j <= taille( matrice) alors
...
ftq i
ftq j
quelque chose comme ça
2006-12-22 09:49:45
·
answer #3
·
answered by salima b 5
·
1⤊
0⤋
c'est terriblement clair dis moi
2006-12-22 09:44:34
·
answer #4
·
answered by SerendipitY 5
·
1⤊
0⤋
je te conseille de passer par la récursivité.
2006-12-23 02:58:13
·
answer #5
·
answered by Ramis V 7
·
0⤊
0⤋
c'est trés intéressant. Si c'est ce que j'ai compris ce sera une solution du type
//------------------------------------
const ncol = 10;
const nlig = 10;
procedure mettre_valeur(x, y : entier ; valeur : entier)
debut
si (x >= 0) et (x < ncol) et (y >= 0) et (y < nlig) alors
t[y][x] = valeur
// remplir les huits cases voisines
mettre_valeur(x + 1, y, valeur + 1)
mettre_valeur(x - 1, y, valeur + 1)
mettre_valeur(x + 1, y + 1, valeur + 1)
mettre_valeur(x - 1, y + 1, valeur + 1)
mettre_valeur(x + 1, y - 1, valeur + 1)
mettre_valeur(x - 1, y - 1, valeur + 1)
mettre_valeur(x, y + 1, valeur + 1)
mettre_valeur(x, y - 1, valeur + 1)
fin si
fin
// --- Programme principal
lire(x, y)
lire(valeur)
mettre_valeur(x, y, valeur)
//--------------------------------------------------
2006-12-22 15:17:30
·
answer #6
·
answered by hammadi 3
·
0⤊
0⤋
C'est sûr qu'avec aussi peu de clarté tu dois avoir du mal en algorithmie.
2006-12-22 12:39:49
·
answer #7
·
answered by pfff 2
·
0⤊
0⤋
Je te donnerai ton algorithme quand j'aurai trouvé celui qui permet de gagner au loto a coup sur.... fait attention, ca risque de prendre du temps
2006-12-22 09:53:48
·
answer #8
·
answered by Anonymous
·
0⤊
0⤋
Voilà, j'ai finalement écrit le programme entier mais utilisant en Visual Basic For Application pour que tu puisse voir le resultat de tes yeux. Pour cela j'ai dû ajouter des lignes de code pas utiles pour le remplissage de la matrisse mais qui permettent de voir le resultat du programme dans un classeur Excel. Pour pouvoir faire tourner ce programme dans VB6 sans avoir de probleme faudrat juste eliminer toutes les lignes qui commencent par "Cells(", y en pas beaucoup (environ 10).
Pour voir le resultat dans Excel faudrat coller le code ci-dessous dans un Module VBA pour Excel. Si l'algo ne semble pas clair t'aura qu'à me contacter... J'ai trouver un meilleur algo que le précedent. Je remplace donc l'ancien par le nouveau.
La j'viens de me rendre compte qu'il n'y a pas de controle des valeurs que l'utilisateurs entre pour voir si elles sont bien dans les valeurs ligne et colone de la matrice, mais c'est pas l'objet principal de cet algo.
Sub FillMatrix2()
'Variable des boucles for
Dim i As Integer
Dim j As Integer
'Valeur de remplissage de la cellule d'origine
Dim OrgVal As Integer
'Créer la matrice
Const m As Integer = 16
Const n As Integer = 12
Dim Matrix(1 To m, 1 To n) As Integer
'Position de depart
Dim OrgColone As Integer 'Colonne de la cellule de depart
Dim OrgLigne As Integer 'Ligne de la cellule de départ
OrgLigne = InputBox("Entez la valeur de la ligne de départ", "Fill in the Matrix")
OrgColone = InputBox("Entez la valeur de la colonne de départ", "Fill in the Matrix")
'Attribuer une valeur à la position de depart
OrgVal = InputBox("Entez la valeur de départ", "Fill in the Matrix")
'Explication de l'Algo suit
'On recalcule les coordonnées des cellues
'comme si on effectuait un changement de repaire.
'Ce nouveau repaire ayant pour origine notre cellule de depart.
'Les nouvelles coordonnées de chaques cellule deviennent:
' - En ligne : i - OrgLigne (avec i le numero normale de ligne de la cellule)
' - En colonne : j - OrgColone (avec j le numero normale de colonne de la cellule)
'On compare ainsi les valeurs absolues des nouvelles coordonnées obtenue
'La plus grande des coordonnées pour une cellule donnée represente son niveau d'éloignement
'par rapport à la cellule de depart.
'On obtien donc la valeur de chaque cellule de la matrice en ajoutant à son niveau
'd'éloignement la valeur de la cellule de depart
'Remarque, si les coordonnées recalculés en ligne et en colonne ont la même valeur
'les ligne de code qui suivent le Else restent toujours valables.
'Voilà, j'espère que c'est assez clair.
For i = 1 To m
For j = 1 To n
If Abs(i - OrgLigne) > Abs(j - OrgColone) Then
Matrix(i, j) = Abs(i - OrgLigne) + OrgVal
Cells(i, j) = Abs(i - OrgLigne) + OrgVal
Cells(i, j).Interior.ColorIndex = Abs(i - OrgLigne) + 2
Else
Matrix(i, j) = Abs(j - OrgColone) + OrgVal
Cells(i, j) = Abs(j - OrgColone) + OrgVal
Cells(i, j).Interior.ColorIndex = Abs(j - OrgColone) + 2
End If
Next
Next
End Sub
2006-12-22 11:40:36
·
answer #9
·
answered by VD 1
·
0⤊
1⤋