Bonjour;
j'ai un probléme dans un exo d'algorithmique et je souhaite trouver la solution ici. voici l'exo:
une grille autoreferente est une matrice de 5 lignes et 5 colonnes. elle est composée de 2 parties:
- une partie A composée des 2 colonnes de gauche
- une partie B composée des 3 colonnes de droite
4 2 1 2 2
5 1 2 4 5
1 1 5 6 7
2 0 8 0 0
3 6 0 0 0
dans la premiere colonne de la partie A
4 indique le nombre de 1 de la grille
5 indique le nombre de 2 de la grille
:
:
3 indique le nombre de 5 de la grille
dans la deuxieme colonne de la partie A
2 indique le nombre de 6 de la grille
1 indique le nombre de 7 de la grille
:
:
6 indique le nombre de 0 de la grille
il s’agit toujours de grille autoréférentes , mais on demande de trouver la solution qui consistera à remplir la partie A à partir de la partie B.
voila le programme fonctionne dans certain cas mais dans d'autres cas je tombe sur une boucle infinie;Code:program exo64; uses biblio; type t2d=array[1..100,1..100] of integer; var mat:t2d;l,c:integer; PROCEDURE lect_B(var mat:t2d); var i,j:integer; Begin For i:=1 to 5 do Begin For j:=3 to 5 do Begin write('mat[',i,',',j,']='); readln(mat[i,j]); End; End; End; FUNCTION nb_occ(mat:t2d; n:integer):integer; var i,j,cpt:integer; Begin cpt:=0; For j:=1 to 5 do Begin For i:=1 to 5 do Begin If mat[i,j]=n then cpt:=cpt+1; End; End; nb_occ:=cpt; End; PROCEDURE remplir_A(var mat:t2d); var n,i,j:integer; verif:boolean; Begin verif:=true; while verif=true do Begin verif:=false; n:=1; For j:=1 to 2 do Begin For i:=1 to 5 do Begin If mat[i,j]<>nb_occ(mat,n) then Begin mat[i,j]:=nb_occ(mat,n); verif:=true; End; n:=(n+1)mod 10; End; End; End; End; BEGIN writeln('Veuillez entrer les chiffres pour remplir la partie B de la table'); lect_B(mat); remplir_A(mat); l:=5;c:=5; ecrire_2d(mat,l,c); readln; END.
je veu savoir si il y a possibilité d'eviter cette boucle infinie ou de generer un message d'erreur si elle est inevitable.
SVP je me retrouve dos au mur face a ce probléme et c'est trés urgent. j'attends vos réponses.
merci d'avance
-----