Remplir une matrice [Résolu]

violent_ken 1822 Messages postés mardi 31 mai 2005Date d'inscription 26 octobre 2010 Dernière intervention - 13 mai 2006 à 15:11 - Dernière réponse : f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention
- 14 mai 2006 à 07:10
Violent Ken
Salut à tous !
J'aurais une question : comment remplir une matrice de valeurs particulières ?
En fait, j'aimerais pourvoir éviter d'utiliser des boucles For imbriquées pour remplir case après case, amis tout remplir d'un coup dans l'affectation de la valeur.

Exemple ; voilà ce que j'aimerais :

Type Game_Matrix = Array[1..3,1..3] Of Integer;
Var iP : Game_Matrix;
iP:=[[1,0,1][0,0,1][2,1,4]];

Bien sur, la syntaxe de la troisième ligne est fausse, et c'est elle que j'aimerais modifier.
Auriez vous une idée de la structure à utiliser ?
Merci.
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 13 mai 2006 à 15:52
3
Merci
"J'ai supposé que la syntaxe était identique à celle du Delphi"
Ben je crois que non

Dans ce cas il ne te reste plus qu'a faire une boucle

Procedure My_Procedure;
Var I : Integer;
Begin
For I := 1 to 3 do
Case I of
1: Begin
IP[I,1] : = 1;
IP[I,2] := 0;
IP[I,3] := 1;
End ;
2:Begin
IP[I,1] : = 0;
IP[I,2] := 0;
IP[I,3] := 1;
End ;
3:Begin
IP[I,1] : = 2;
IP[I,2] := 1;
IP[I,3] := 4;
End;
End; // End Case
End;

@+
Cirec

Merci Cirec 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de Cirec
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 13 mai 2006 à 15:25
0
Merci
Salut,

Essaye comme ceci :

Type Game_Matrix = Array[1..3,1..3] Of Integer;
Var iP : Game_Matrix = ((1,0,1),(0,0,1),(2,1,4));

@+
Cirec
Commenter la réponse de Cirec
violent_ken 1822 Messages postés mardi 31 mai 2005Date d'inscription 26 octobre 2010 Dernière intervention - 13 mai 2006 à 15:31
0
Merci
Violent Ken

Salut.
J'ai essayé, mais mon compilateur refuse la ligne "Var iP : Game_Matrix = ((1,0,1),(0,0,1),(2,1,4));" (attend un ';' à la place du '=')

Mais si j'affecte la valeur en constante dans le Var, ne sera t-il pas plus possible de la changer dans le programme par la suite ?

Merci de m'aider !
Commenter la réponse de violent_ken
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 13 mai 2006 à 15:38
0
Merci
Attention pour pouvoir déclarer une variable comme ceci il faut qu'elle soit globale

Ex:

Type Game_Matrix = Array [1..3,1..3] Of Integer;

Var
Form1 : TForm;
iP : Game_Matrix = ((1,0,1),(0,0,1),(2,1,4));

Implementation

Procedure My_Procedure;
Var iP : Game_Matrix = ((1,0,1),(0,0,1),(2,1,4)); // ceci ne fonctionne pas
Begin
// ...
End;

@+
Cirec
Commenter la réponse de Cirec
violent_ken 1822 Messages postés mardi 31 mai 2005Date d'inscription 26 octobre 2010 Dernière intervention - 13 mai 2006 à 15:41
0
Merci
Violent Ken

Ahem, j'ai oublié de dire que je programmais en Pascal. J'ai supposé que la syntaxe était identique à celle du Delphi.

Oui, j'ai bien déclaré la variable en global.
Voici l'exemple essayé, et qui ne marche pas :

Program Untitled;


Type Game_Matrix = Array[1..3,1..3] Of Integer;
Var iP : Game_Matrix = ((1,0,1),(0,0,1),(2,1,4));

Procedure My_Procedure;
Begin
//
End;


Begin
//
End.
Commenter la réponse de violent_ken
violent_ken 1822 Messages postés mardi 31 mai 2005Date d'inscription 26 octobre 2010 Dernière intervention - 13 mai 2006 à 15:54
0
Merci
Violent Ken

D'accord ! Merci beaucoup pour ta réponse précise et ta vitesse.
Merci ! @+
Commenter la réponse de violent_ken
cs_jfs59 184 Messages postés mardi 29 avril 2003Date d'inscription 2 février 2010 Dernière intervention - 13 mai 2006 à 16:18
0
Merci
IP[1,1] := 1; IP[1,2] := 0; IP[1,3] := 1;
IP[2,1] : = 0; IP[2,2] := 0; IP[2,3] := 1;
IP[3,1] := 2; IP[3,2] := 1; IP[3,3] := 4;

ca va aussi sinon plus vite ...
Cordialement jfs.

Tout est en tout et réciproquement ...
Commenter la réponse de cs_jfs59
violent_ken 1822 Messages postés mardi 31 mai 2005Date d'inscription 26 octobre 2010 Dernière intervention - 13 mai 2006 à 16:21
0
Merci
Violent Ken

Oui, c'est aussi rapide, voire plus dans ce cas.
C'est dommage de voir qu'en Pascal, aucun remplissage complet d'une matrice est possible en une ligne de code (comme en Delphi).
Merci, @+
Commenter la réponse de violent_ken
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 14 mai 2006 à 07:10
0
Merci
type
TMatrix3i = array [1..3] of integer;
TDblMatrix3i = array [1..3] of TMatrix3i;

var
VMX : TDblMatrix;

function PushMatrix3i(const v1,v2,v3 : integer) : TMatrix3i;
begin
result[1] := v1;
result[2] := v2;
result[3] := v3;
end;

procedure InitMatrix;
begin
VMX[1] := PushMatrix3i(11,12,13);

VMX[2] := PushMatrix3i(21,22,23);

VMX[3] := PushMatrix3i(31,32,33);

end;
Commenter la réponse de f0xi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.