Affichage d'une matrice en pascal
Résolu
Pogan
Messages postés
2
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Salut à tous !
Voilà mon projet à faire en pascal : je dois convertir un fichier texte de la forme :
en une matrice, pour ensuite l'afficher.
Voici le code que j'ai utilisé :
Seulement, pour une raison qui m'échappe complètement, lorsque j'augmente le nombre de colonnes dans mon fichier texte (en changeant aussi les valeurs dans le array et les valeurs finales de i et j), il m'affiche absolument n'importe quoi !
Merci d'avance pour votre aide :D
Voilà mon projet à faire en pascal : je dois convertir un fichier texte de la forme :
abcd efgh ijkl
en une matrice, pour ensuite l'afficher.
Voici le code que j'ai utilisé :
program texte_matrice;
uses crt;
var F : text;
ligne : string;
t_matrice : array[1..4, 1..3] of char;
i,j : integer;
begin
//Création de la matrice
assign (F, 'car.txt');
reset(F);
for i:=1 to 3 do
begin
readln(F,ligne);
for j:=1 to 4 do t_matrice[i,j]:=ligne[j];
end;
close(F);
//Affichage de la matrice
for i := 1 to 3 do
begin
for j := 1 to 4 do
write(t_matrice[i,j], ' ');
writeln;
end;
end.
Seulement, pour une raison qui m'échappe complètement, lorsque j'augmente le nombre de colonnes dans mon fichier texte (en changeant aussi les valeurs dans le array et les valeurs finales de i et j), il m'affiche absolument n'importe quoi !
Merci d'avance pour votre aide :D
1 réponse
-
Remarque : avec ce code, cela ne marche déjà pas. Cela affiche :
a b c e e f g i i j k l
Le problème est dans la définition de t_matrice, tu as inversé le 3 et le 4.
Le mieux serait d'utiliser des constantes pour ne pas avoir à tout modifier à chaque fois et éviter ce genre d'erreurs de recopie :
program texte_matrice; const imin=1; imax=3; jmin=1; jmax=4; var t_matrice : array[imin..imax, jmin..jmax] of char; //... begin // ... for i:=imin to imax do for j:=jmin to jmax do // ... end.