Comment definir des colonnes...
Desole, je n'ai pas trouve de nom de sujet explicite.
Un petit souci d'algo. J'ai une liste de chaines triee. Je dois afficher toutes les chaines sur plusieurs colonnes (NbCols). Le truc c'est que pour faire l'affichage je ne peux utiliser que WriteLine (c'est pour faire une sortie sur ecran DOS).
Donc voila ce qu'il me faut:
A G M
B H N
C K O
F L
Je connais le nombre de colonnes, le nombre d'elements de ma liste, et je sais que ma liste est triee. JE n'arrive pas a trouver un code elegant. Voici ou j'en suis:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
i:entier
Col:Entier
StrArray:Tableau de Chaines (il est trie)
MaChaine:Chaine
i=0
Tant que i<=NbElements(StrArray) -1 Faire
Col=1
MaChaine=""
Tant que (Col<NbCols) ET (i<NbElements(StrArray)-1) Faire
MaChaine=MaChaine+StrArray(i*Col)
col=col+1
Fin Tq
Ecrire(MaChaine)
i=i+1
Fin Tq |
C'est nul... Je ne trouve pas la solution... Pourriez vous me donner quelques pistes, PLEASE?
Merci
Re: Comment definir des colonnes...
Ce n'est pas forcément très élégant ... mais c'est relativement fonctionnel et compréhensible quant au déroulement ...
Ca remplit, à bloc, les premières lignes, avec la variation d'incrément qui va bien pour que la dernière ligne soit correcte ...
A toi de déclarer les variables et d'éliminer celles qui peuvent être inutiles.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| n = NbElements
c = NbColonnes
excedent = n mod m
n = n - excedent
pas = n / m
lignes = pas
Si excedent != 0
Alors lignes = lignes + 1
Finsi
Pour l de 1 à lignes
element = l
Pour el de 1 à m
Sortir StrArray[element]
element = element + pas
Si el <= excedent
Alors element = element + 1
Finsi
Finpour
SauterLigne
Finpour |