Précédent   Forum du club des développeurs et IT Pro > Autres langages > Pascal > Free Pascal
Free Pascal Le compilateur Pascal multiplateforme
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 02/11/2011, 03h16   #1
koliter
Invité régulier
 
Homme Jean-Philippe Vallée
Inscription : janvier 2011
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe Vallée
Localisation : Canada

Informations forums :
Inscription : janvier 2011
Messages : 26
Points : 9
Points : 9
Par défaut Matrices

Bonjour,

je voudrais savoir comment faire pour sortir d'une boucle si la matrice est vide (qu'elle ne contient plus rien). Elle contient seulement des char 'x' et rien d'autre que des espaces vides. Je fais le jeu de la vie et je doit faire cela.

Quelqu'un pourrait m'aider ?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
VAR
	matrice1: T_CASE;
	matrice2: T_CASE;
	idx:integer;
BEGIN
	idx:=1;
	lire(matrice1);
	while idx = 1 do begin
		calculvoisin(matrice1,matrice2);
		             //if matrice2 = ' ' then       Es-ce possible d'une autre 
			     //idx:=0;                        façon?
		ecrire(matrice2);	
		transmettre(matrice1,matrice2);
 
	end;
	writeln;
	writeln;
	write('Appuyer sur <Enter> pour quitter');
END.
Ça c'est le main de mon programme.

Puis j'ai une autre petite question : qu'ai-je fait de mal là-dedans ? Car la matrice1 ne remplace pas ses données par celles de la matrice 2. Et puis comment réinitialiser toutes les données de la matrice2 à rien après qu'il les ait transmises à la matrice1 ?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
procedure transmettre(matrice2:T_CASE; var matrice1:T_CASE);
var
	x,y:integer;
begin
	for y:=1 to LIM_CASEy do begin
 
		for x:=1 to LIM_CASEx do
			matrice1[x,y] := matrice2[x,y];
 
 
	end;
	readln;
Merci!
--Koliter--
koliter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2011, 07h02   #2
DOLPat®
Membre émérite
 
Avatar de DOLPat®
 
Homme Patrick
Technicien maintenance
Inscription : février 2003
Messages : 425
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 51
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Industrie

Informations forums :
Inscription : février 2003
Messages : 425
Points : 842
Points : 842
Code :
1
2
if matrice2 = ' ' then       // Es-ce possible d'une autre 
idx:=0;       // façon?
Oui en sortant de la boucle avec l'instruction Break.
Code :
1
2
3
4
5
While True do
  begin
    if matrice2 = ' ' then
      Break;
  end;
Citation:
u'ais-je fait de mal la dedans? Car la matrice1 ne remplace pas ses données par celles de la matrice 2?
Tu redéfini les variables matrice1, matrice2 en local dans ta procédure. Tu n'effectue donc tes modifications qu'en local...

Citation:
et puis comment reinitialiser toutes les données de la matrice2 a rien?
Par exemple en utilisant FillChar
Code :
  FillChar(matrice2, SizeOf(matrice2), ValeurDeRemplissage);
__________________
À +
Pat.


Si vous avez trouvé chaussure à votre pied... euh solution à votre problème, n'oubliez pas de clôturer le sujet en le marquant comme:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Delphi 2005 Édition Personnelle

Lazarus 0.9.31 r33481 FPC 2.5.1 x86_64-win64-win32/win64
DOLPat® est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/11/2011, 15h28   #3
koliter
Invité régulier
 
Homme Jean-Philippe Vallée
Inscription : janvier 2011
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe Vallée
Localisation : Canada

Informations forums :
Inscription : janvier 2011
Messages : 26
Points : 9
Points : 9
Enfait, cest vraiment cela que je ne suis pas capable de déclarer et non le break. C'est lorrque la matrice est vide, qu'il n'y a plus de x, qu'elle doit se fermer, alors le if doit reussir a comprendre qu'il n'y a plus de 'x' dans la matrice, es-ce possible? -->
Code :
1
2
if matrice2 = ' ' then
break;
Citation:
Tu redéfini les variables matrice1, matrice2 en local dans ta procédure. Tu n'effectue donc tes modifications qu'en local...
Daccord, alors comment puis-je faire pour les redéfinir? car j'utilise le var devant la matrice1 lors de ma procedure? alors elle ne devrait pas seulement etre déclarer local?

Merci
--Koliter--
koliter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2011, 17h41   #4
koliter
Invité régulier
 
Homme Jean-Philippe Vallée
Inscription : janvier 2011
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe Vallée
Localisation : Canada

Informations forums :
Inscription : janvier 2011
Messages : 26
Points : 9
Points : 9
C'est correct j'ai trouver la solution a tout mes problèmes!!

Bonne journée et merci encore
--Koliter--
koliter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 16h59   #5
amiNeVip
Invité de passage
 
Homme Amine miNov
Étudiant
Inscription : janvier 2012
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Amine miNov

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 4
Points : 4
Points : 4
question!
svp,Est ce qu'on doit construire une procédure de lecture pour chaque type de tableaux ? (les procédures sont déclarées dans une biblio)

Merci d'avance!
amiNeVip est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h18.


 
 
 
 
Partenaires

Hébergement Web