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

avec Java Discussion :

java codage d'un losange


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Etudiant première année informatique de gestion
    Inscrit en
    Septembre 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Etudiant première année informatique de gestion

    Informations forums :
    Inscription : Septembre 2019
    Messages : 20
    Par défaut java codage d'un losange
    Bonjour, voici ce que mon code est sensé executer :

    XXXXXXXX
    XXX (2espaces) XXX
    XX (4espaces) XX
    X (6espaces) X
    X(6espaces) X
    XX (4espaces)XX
    XXX (2espaces)XXX
    XXXXXXXX

    Mais voici ce que cela me donne :
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


    Voici mon code

    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
    23
    24
    25
    26
    27
    28
       private static void losange(int n) {
     
          int nbrCroix = n;
          int nbrEspace = 0;
     
          for(int i=1; i<=n; i++){
     
          //nbrCroix
             for(int j=n/2; j>1; j--){
     
                for( j=1;j<=n;j++)
                   System.out.print('X');
             }
     
     
          //nbrEspace
             for(int j=0; j<=n-1-1;j++){
                for( j=n*2-1; j<=n-1-i;j--){
     
                   System.out.print(' '); 
                }
     
     
             } System.out.println(); 
          }     
       }    
      // TODO 
    }
    Où est l'erreur? Merci

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    1. Premièrement
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      for(int j=n/2; j>1; j--){
       
                  for( j=1;j<=n;j++)
      Les deux boucles sont sur la même variable. Donc quelque soit la valeur de j par le premier for, elle est reinitialisé dans le second, qui la fait varier. Et quand il est terminé, on repart sur le premier for, on fait j--, puis on teste la condition j>1 et on continue. Si n>2, à la fin du second for, j vaut n>2, j-- donne j>1, donc on reboucle, infiniment.
    2. Deuxièmement :
      Un losange, c'est comme deux pyramides : une première puis la même en inversant les lignes. Donc le code d'un losange n'est pas très éloigné de celui d'une pyramide (à la limite, on peut faire deux boucles successives, la première est la même que la pyramide, et la seconde la même en inversant le premier for (en allant de n à 1).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti
    Femme Profil pro
    Etudiant première année informatique de gestion
    Inscrit en
    Septembre 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Etudiant première année informatique de gestion

    Informations forums :
    Inscription : Septembre 2019
    Messages : 20
    Par défaut
    Réussi!! Merci!
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    // TODO 
          int nombreCroix = n;
          int nombreEspace = 0;
          for (int i=1; i<=n; i++) {
             for (int j=1; j<=nombreCroix; j++) {
                System.out.print ('X');
             }
               for (int k=1; k<=nombreEspace; k++) {
                System.out.print(' ');
                }
     
             for (int l=1; l<=nombreCroix; l++) {
                System.out.print ('X');
             }
             nombreCroix--;
             System.out.println();
     
             nombreEspace+=2;
          }
     
     
      int nombreCroix2 = 1;
     int nombreEspace2 = (n*2)-2;
       for (int z=1; z<=n; z++) {
     
       for (int m=1; m<=nombreCroix2; m++) {
                System.out.print ('X');
             }
          for (int p=1; p<=nombreEspace2; p++) {
                System.out.print(' ');
                }
                for (int e=1; e<=nombreCroix2; e++) {
                System.out.print ('X');
                }
                nombreCroix2++;
                System.out.println();
                nombreEspace2-=2;
    }

  4. #4
    Invité de passage
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2021
    Messages : 1
    Par défaut mon code losange
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package losange;
    import java.util.Scanner;
     
    /**
     *
     * @author Samsung
     */
    public class Losange {
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
     
            int nombreLigne = 0;
            String caractereAAfficher ="";
            int videExt = 0, videInter = 2;
     
            System.out.println("donner le caractère à afficher puis cliquer sur entrer :");
            Scanner clavier = new Scanner(System.in);
            caractereAAfficher = clavier.nextLine();
            //System.out.println("caratère = " + caractereAAfficher);
            System.out.println("donner le nombre de ligne puis cliquer sur entrer :");
            nombreLigne = clavier.nextInt();
            clavier.nextLine();
            //System.out.println("nombre de ligne  = " + nombreLigne);
     
            videExt = nombreLigne / 2;
            if (nombreLigne % 2 == 0) 
                videExt--;
            for ( int i = 0; i<videExt; i++)
                System.out.print(" ");
            System.out.print(caractereAAfficher + caractereAAfficher );
            System.out.println();
            int ligneparcouru = videExt;
     
            if (nombreLigne % 2 != 0) {// si nombre de ligne est impair
                for(int i =0; i < ligneparcouru; i++) { // dessine la partie haute du losange
                    videExt--;
     
                        for(int j =0; j < videExt ;j++)
                            System.out.print(" ");    
                    System.out.print(caractereAAfficher);
     
                    for( int k = 0; k < videInter ; k++ )
                        System.out.print(" ");
     
                    System.out.print(caractereAAfficher);
                    videInter = videInter + 2;
                    System.out.println();
                }
     
            } else {//si nombre de ligne est paire
                int j =0,k=0;
                for(int i =0; i < ligneparcouru; i++) { // dessine la partie haute du losange
                    videExt--;
     
                        for( j =0; j < videExt ;j++)
                            System.out.print(" ");    
                    System.out.print(caractereAAfficher);
     
                    for( k = 0; k < videInter ; k++ )
                        System.out.print(" ");
     
                    System.out.print(caractereAAfficher);
                    videInter = videInter + 2;
                    System.out.println();
                }
                videInter = videInter - 2;
                for( j =0; j < videExt ;j++)
                            System.out.print(" ");    
                    System.out.print(caractereAAfficher);
     
                    for( k = 0; k < videInter ; k++ )
                        System.out.print(" ");
     
                    System.out.print(caractereAAfficher);
                    System.out.println();
            }
            if (nombreLigne % 2 == 0) {// si nombre de ligne est paire
                for(int i =0; i < ligneparcouru; i++) { // dessine la partie bas du losange 
                        videExt++;
                        videInter = videInter - 2;
                            for(int j =0; j < videExt ;j++)
                                System.out.print(" ");    
                        System.out.print(caractereAAfficher);
     
                        for( int k = 0; k < videInter ; k++ )
                            System.out.print(" ");
     
                        System.out.print(caractereAAfficher);
                        System.out.println();
                    }
            }else{// si nombre de ligne est impair
     
                videInter = videInter - 2;
                for(int i =0; i < ligneparcouru; i++) { // dessine la partie bas du losange
                        videExt++;
                        videInter = videInter - 2;
                            for(int j =0; j < videExt ;j++)
                                System.out.print(" ");    
                        System.out.print(caractereAAfficher);
     
                        for( int k = 0; k < videInter ; k++ )
                            System.out.print(" ");
     
                        System.out.print(caractereAAfficher);
                        System.out.println();
                    }
     
            }
        }
     
    }

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

Discussions similaires

  1. php java codage
    Par momo8508 dans le forum Langage
    Réponses: 2
    Dernier message: 02/03/2012, 12h37
  2. pb de codage en java ?
    Par pat_gem dans le forum NetBeans
    Réponses: 1
    Dernier message: 06/05/2008, 13h42
  3. [GNU Emacs] un style de codage java correct
    Par zafo dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 23/10/2007, 15h05
  4. dessiner un losange en java
    Par gridsof dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 14/05/2007, 00h13
  5. [Caractères spéciaux][arabe]codage et java
    Par souraf dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 06/03/2006, 11h26

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