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

Langage Java Discussion :

Utilisation de la fonction Printf


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Par défaut Utilisation de la fonction Printf
    Bonjour,
    j'ai un tableau à 2d de 5 lignes.
    La première ligne comporte une case, la deuxième 2 cases, la troisième 3 cases et la dernière 4 cases, etc. Toutes les cases contiennent un entier.

    Après affichage du tableau (à l'aide d'une double boucle for et de System.out.print et println), j'obtiens la présentation suivante:
    1
    2 3
    4 5 6
    7 8 9 10
    11 12 13 14 15

    Mais j'aimerais utiliser la fonction printf() afin d'avoir une présentation en pyramide. C'est à dire:
    *****1*****
    ****2 3****
    ***4 5 6****
    **7 8 9 10**
    11 12 13 14 15

    Pouvez vous m'aider à utiliser cette fonction?

    Merci d'avance.

    edit: étoiles à remplacer par des espaces

  2. #2
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Bonjour,

    Les deux sorties sont identiques oO, que cherches-tu à faire ?

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Par défaut
    En effet, les espaces ne sont pas apparus..
    J'ai modifiés la sortie: les étoiles sont à remplacer par des espaces.
    En gros, j'aimerais que ça s'affiche centré (en pyramide).

    Merci d'avance.

  4. #4
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Bonjour,

    C'est une question de presentation de tes donnees (une sorte de List si je comprends bien).

    Tu dois ecrire une/des fonction(s) qui va/vont faire :

    - rechercher le nombre max de colonnes dans ta liste (pour positionner au centre si celui si est un nombre impair).
    - afficher ta liste (element par element) en tenant compte de:
    a) le nombre max de colonnes
    b) nombre d'elements de la ligne a afficher

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Par défaut
    Bonjour,
    ce n'est pas vraiment une liste, c'est un simple tableau à 2D, mais la ligne 1 comporte 1 élément, la ligne 2 comporte 2 éléments, etc.

    Dans ce cas, vu que j'ai 5 lignes: le nombre maximum de colonnes est 5.

    Pour le moment, j'affiche à l'aide de deux for imbriqués et de system.out.println().

    Je dois utiliser la fonction Printf(), pourriez vous m'aider à le faire?

    Merci d'avance

  6. #6
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Bonjour,

    La structure utilisee pour represente tes donnees depend de toi (un array/List ...).

    Si tu veux utiliser c'est un simple tableau à 2D, mais la ligne 1 comporte 1 élément, la ligne 2 comporte 2 éléments, etc. Montre-nous ton code.

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Par défaut
    Voici la partie du code concernée pour l'affichage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (int i=0; i< tab.length; i++){
       for (int valeur : tab[i])
            System.out.print(valeur + " ");
       System.out.println(" ");
    }
    J'aimerais donc remplacer les System.out.println() par printf() afin d'avoir l'affichage décrit plus haut...

    Et la création du tableau ressemble à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    tab = new int[5][];
    for ( int i=0; i< 5 ; i++) {
         tab[i] = new int[i+1];
         //la suite du code concerne la mise des valeurs dans les cases
    }
    Merci d'avance...

  8. #8
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    D'apres ton exemple:

    *****1*****
    ****2 3****
    ***4 5 6***
    **7 8 9 10**
    11 12 13 14 15

    Plusieurs remarques:
    a)
    La 1ere, 2eme et 3eme ligne contientient 11 caracteres.
    La 4eme 12 caracteres
    La 5eme 14 caracteres

    b) utiliser des blancs entre les caracteres

    Ce que tu pourrait faire comme ceci, il y a d'autres solutions:

    - Transformer ta liste int en une liste de caracteres avec un blanc entre chaque element
    {1} ----> {"1"}
    {2,3} ----> {"2 3"}
    {4,5,6} ----> {"4 5 6"}
    {7,8,9,10} ----> {"7 8 9 10"}
    {11,12,13,14,15} ----> {"11 12 13 14 15"}


    - determiner le nombre max de caracteres de la derniere ligne de ta novelle liste.

    - Pour chaque ligne de ta nouvelle liste, remplir les * a gauche et a droit en fonction des caracteres dans cette ligne.

Discussions similaires

  1. [MASM32] Comment utiliser la fonction printf
    Par _Michel dans le forum x86 32-bits / 64-bits
    Réponses: 26
    Dernier message: 08/11/2007, 12h09
  2. Utilisation de la fonction qsort
    Par Jsmeline dans le forum C
    Réponses: 8
    Dernier message: 28/01/2005, 13h40
  3. [LG]librairies : utiliser seulement quelques fonctions
    Par wwwroom dans le forum Langage
    Réponses: 13
    Dernier message: 14/05/2004, 23h50
  4. Fonction printf personnalisee
    Par Bob dans le forum C
    Réponses: 2
    Dernier message: 20/12/2003, 23h20
  5. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 12h24

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