IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Comment definir des colonnes...


Sujet :

Algorithmes et structures de données

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 147
    Points : 144
    Points
    144
    Par défaut 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 : 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
     
    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

  2. #2
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Je n'ai pas bien compris l'affichage souhaité...
    Peux-tu préciser ce que tu attends avec la liste suivante par exemple :
    ARGENT BLANC BLEU JAUNE NOIR OR ROUGE ?

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 147
    Points : 144
    Points
    144
    Par défaut
    ok. voici la sortie souhaitee:

    ARGENT JAUNE OR
    BLANC NOIR ROUGE
    BLEU


    NOTE: les sorties que je fais sont sur la sortie standard, cest a dire un WriteLine, par exemple.

    Merci

  4. #4
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Sur trois colonnes c'est bien ça ?
    C'est bizarre quand même...
    pourquoi pas :
    ARGENT JAUNE ROUGE
    BLANC NOIR
    BLEU OR

    : :

  5. #5
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut 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 : 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
    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
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 147
    Points : 144
    Points
    144
    Par défaut ok merci
    MERCI beaucoup.
    En fait je viens de trouver une solution. Mais je pense que la tienne parait plus elegante. Je vais regarder la tienne. Merci Beaucoup

  7. #7
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Ma solution est FAUSSE !!!!

    En effet, si la dernière ligne ne doit pas être remplie, elle provoque un dépassement de tableau ... j'incrémente "element" au dela du nombre d'éléments.

    Ajouter un test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Si (element <= NbElement)
      Alors Sortir StrArray[element]
    Finsi
    C'est tout de suite moins élégant

    Ceci dit, n'hésite pas à montrer ta solution.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Comment transposer des colonnes en lignes en VBA?
    Par franckimmo dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 12/08/2009, 15h03
  2. Réponses: 4
    Dernier message: 05/02/2009, 11h45
  3. [Macro] table SAS: comment deleter des colonnes vides
    Par _debutant dans le forum Macro
    Réponses: 6
    Dernier message: 20/11/2008, 15h31
  4. awk / cut : Comment copier des colonnes avec des tests
    Par drareg06 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 16/07/2008, 11h49
  5. Réponses: 7
    Dernier message: 31/10/2007, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo