Retourne à la ligne automatique

Fermé
plopy - 29 mars 2012 à 11:58
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 30 mars 2012 à 07:49
Bonjour,


j'ai écris un programme en pascal qui permet d'afficher un tableau qui contient des chaînes de caractères, alors quand j'affiche le tableau à chaque fois il fait un retourne à la linge pour insérer l'élément suivant(la chaîne suivant), or que moi j'ai besoin de ces chaînes de caractère sur la même ligne l'une adjacente à l'autre;
alors svp si vous pouvez me répondre poster moi ici merci d'avance.
A voir également:

4 réponses

KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
29 mars 2012 à 12:04
C'est sûrement parce que tu utilises writeln, mais si tu utilises write, ça devrait aller.
0
non je ne l'utilise pas :/
0
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
29 mars 2012 à 13:44
Alors comment fais tu ton affichage de tableau ?
0
salut,
voilà le programme:
program ppp;
var
t1:array[1..15] of longint;
t2:array[1..15] of integer;
t,i,m,j:integer;
begin
write('comme bien votre tableau comporte_il de valeurs?');
read(m);
for i:=1 to m do
begin
write('comme bien l''entier contient-il de chiffres?');
read(t2[i]);
write('taper l''entier');
read(t1[i]);
end;
for i:=1 to m do
begin
write(chr(218));
for j:=1 to t2[i] do
write(chr(196));
writeln(chr(191));
write(chr(179));
write(t1[i]);
writeln(chr(179));
write(chr(192));
for j:=1 to t2[i] do
write(chr(196));
end;
end.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
29 mars 2012 à 21:45
Je vois deux writeln dans ton code pourtant :
writeln(chr(191));
writeln(chr(179));
0
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
29 mars 2012 à 22:06
En fait l'affichage du tableau est super-kikoo.
Par exemple pour 1, 23, et 4567 dans le tableau, cela affiche (en simplifiant) :
+-+
|1|
+-+--+
|23|
+--+----+
|4567|
+----

J'imagine (grâce à mon super-pouvoir de divination) que le résultat attendu est ceci :
+-+--+----+
|1|23|4567|
+-+--+----+

Dans ce cas il faudrait inverser l'ordre des boucles pour y arriver.
0
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
30 mars 2012 à 07:49
Voici comment on pourrait s'y prendre. Par contre j'ai fait quelques changements lorsque que je trouvais ça mieux. Par exemple remplacer les integer t1[i] par des string t[i] et les t2[i] qui contenaient le nombre de chiffres de t1[i] seront calculé directement par length(t[i]). Comme cela l'utilisateur n'a pas à rentrer au clavier des informations que le programme peut calculer tout seul (les t2[i]), et de plus il est beaucoup plus général en acceptant non seulement des nombres, mais aussi des lettres !

program ppp;

var
   t:array[1..15] of string;
   i,j,m:integer;
begin
     // remplissage tableau

     write('Nombre de valeurs du tableau : ');
     readln(m);

     for i:=1 to m do
     begin
          write('Valeur ',i,' : ');
          readln(t[i]);
     end;

     // affichage ligne 1

     write(chr(218));
     for i:=1 to m do
     begin
          for j:=1 to length(t[i]) do
              write(chr(196));
          if (i<m)
          then write(chr(194))
          else writeln(chr(191));
     end;           

     // affichage ligne 2
     
     for i:=1 to m do
     begin
          write(chr(179));
          write(t[i]);
     end;
     writeln(chr(179));
                     
     // affichage ligne 3

     write(chr(192));
     for i:=1 to m do
     begin
          for j:=1 to length(t[i]) do
              write(chr(196));
          if (i<m)
          then write(chr(193))
          else writeln(chr(217));
     end;

     readln;
end.
0