salut a tout monde
pardon je ne pas parle pas bien français
je cherche une procédure qui découpe la matrice en deux parties
les zeros en une partie et le les autres nombres dans la deuxième partie .
merci!
salut a tout monde
pardon je ne pas parle pas bien français
je cherche une procédure qui découpe la matrice en deux parties
les zeros en une partie et le les autres nombres dans la deuxième partie .
merci!
A dire vrai, je n' arrive pas du tout à comprendre ton probleme. Si quelqu' un pouvait nous le traduire.
Voici mon programe
ou le probleme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 program tab; uses wincrt; var note:array[1..2,1..2] of real; j,i,r,h:integer; a:real; b:boolean; begin {saisie du tableau} for i:=1 to 2 do for j :=1 to 2 do begin writeln ('entrez une note'); readln (note[i,j]); end; b:=false; while (i < 2) and (j<2) and b=false do begin r:=i+1; h:=j+1; if note[i,j]<>0 then begin a:= note[i,j]; note[i,j]:=note[r,h]; note[r,h]:=a; i:=i+1; j:=j+1; end else b:=true; end; for i:=1 to 2 do for j:=1 to 2 do writeln (note[i,j]);
bien que je ne comprend pas encore le probleme, je vois qu' il y a un os dans le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 program tab; uses wincrt; var note:array[1..2,1..2] of real; j,i,r,h:integer; a:real; b:boolean; begin clrscr; {saisie du tableau} for i:=1 to 2 do for j :=1 to 2 do begin write ('entrez la note[',i,',',j,'] : '); readln (note[i,j]); end; b:=false; while (i < 2) and (j<2) and (not b) do begin r:=i+1; h:=j+1; if note[i,j]<>0 then begin a:= note[i,j]; note[i,j]:=note[r,h]; note[r,h]:=a; i:=i+1; j:=j+1; end else b:=true; end; writeln; for i:=1 to 2 do begin for j:=1 to 2 do write (note[i,j]:5:2,' '); writeln; end; readln end.
A la sortie de la boucle for, i et j sont superieures à 2. Ce qui fait que la condition sera toujours false.b:=false;
while (i < 2) and (j<2) and (not b) do
Qoe,
C'est un fait, mais dans la définition du Pascal, la valeur de la variable contrôlant une boucle n'est pas garantie à la sortie de cette boucle.
C'est un fait également que je ne connais pas de compilateur Pascal conduisant à une valeur imprévisible d'une telle variable à la sortie de la boucle, donc ...
bonjour,
ben oui elle est connu, puisque l'instruction for je rappel à pour but d'incrémenter/décrémenter une variable à partir d'une borne inférieur/supérieur tout en exécutant à chaque foi les instructions qui se trouve dans la boucle.C'est un fait, mais dans la définition du Pascal, la valeur de la variable contrôlant une boucle n'est pas garantie à la sortie de cette boucle.
c'est sur ...C'est un fait également que je ne connais pas de compilateur Pascal conduisant à une valeur imprévisible d'une telle variable à la sortie de la boucle, donc ...
donc avant le while faut réinitialiser tes variables, ensuite pour ton problème si j'ai bien compris tu veux ranger ta matrice de sorte que par exemple:
Si c'est ça je n'ai pas bien regarder ton code (illisible, pas de commentaire,pas d'indentation,pas d'espaces...etc) ça ira mais y a plus simple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Si ta M=0 2 la matrice deviendra M=0 2 1 0 0 1
Cordialement,
Xoe,
Elle est connue parce que tous les compilateurs le font, mais la norme Pascal ne garantit pas sa valeur à la sortie de la boucle.
On s'en fout carrément, puisque on peux toujours compter sur sa valeur, mais attention quand même au piège du break (ou du goto, beuark) pour sortir de la boucle.
Mais je tiens à l'ordre la matrice
Un numéro zero (0) ci-dessous (a fin matrice);
Tout ça n'est pas très claire tu peux présenter l'affichage d'un résultat possible pour qu'on sache exactement ce que tu veux obtenir en sortie?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager