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 :

"Suites" d'étoiles sous Java


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 28
    Points : 16
    Points
    16
    Par défaut "Suites" d'étoiles sous Java
    Bonjour, bonsoir...

    On a le dessin suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    __*___*___*
    _*_*_*_*_*_
    *___*___*__
    Les "_" sont en réalité des espaces, mais j'ai mis "_" sinon je n'y me retrouvais plus !

    Comme vous pouvez le voir, le dessin comprend 11 colonnes.

    On doit coder ce même dessin avec 100 colonnes (je n'ai malheureusement pas l'énoncé exact sous mes yeux, mais en gros c'est ça). Vous suivez ? Je ne sais pas si je suis très claire

    Ce que j'ai pu remarquer, c'est que la deuxième ligne comprendra donc une espace, puis une étoile, ce 100 fois. Donc 50 espaces/50 étoiles !
    La première ligne comporte 2 espaces, puis une étoile, puis 3 espaces, 1 étoile, 3 espaces, etc.
    La dernière ligne comporte 1 étoile, 3 espaces, 1 étoile, etc.

    Comment faire pour coder ça ?
    Evidemment je dois utiliser les boucles, notamment for (je suppose).

    Je m'essaye... On va appeler i le nombre de colonnes (donc allant de 1 à 100), et j le nombre de lignes (donc allant de 1 à 3).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (int i=1; i<=98; i++) {
    for (int j=1; j<=3; j++) {
    Je ne vois vraiment pas comment je pourrais faire...
    Pouvez-vous me donner des indications ?

    Je vous remercie d'avance.
    PS : Je suis débutante, je n'ai jamais fait de programmation.

    Bonne soirée.

  2. #2
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Salut,

    Tu n'aurais pas l'énoncé par hasard ?

    Parce que de ce que je vois, on dirait bien que sa représente une fonction sinusoïdale affiché en console

    Ducoup avant de m'embarquer dans des problèmes de math, j'aimerais être sûr que t'a pas une indication dans ton énoncé qui pourrait faire en sorte de résoudre ça plus facilement ^^

    Cdt.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Coucou !

    Non malheureusement je ne retrouve absolument pas l'énoncé D:

    Mais oui, je croie bien que c'est une fonction sinusoïdale. En tous cas on voit bien que le dessin est "régulier".

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Comme c'est la console, tu ne peux pas commencer à écrire sur une ligne, puis sur une autre, puis revenir à la première etc. Quand tu passes à une nouvelle ligne tu ne peux plus toucher aux précédentes.

    Donc il faut,
    - d'abord écrire la première ligne
    - ensuite écrire la deuxième ligne
    - enfin écrire la troisième ligne.

    Je ne pense pas que tu doives faire des "boucles dans des boucles". Il faut une boucle, seule, pour la première ligne. Une boucle, seule, pour la deuxième ligne. Une boucle, seule, pour la troisième ligne.

    Faire une boucle de 3 pour les 3 lignes obligerait à chercher une formule mathématique. C'est faisable, mais inutilement compliqué tant que c'est pas demandé.
    (Et si tu le fais quand même, la boucle de 3 doit contenir la boucle de 100. Puisqu'il faut d'abord écrire la ligne 1, puis la ligne 2, puis la ligne 3)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Bonjour,

    Personnellement, je réaliserai une fonction qui prend une position (x, y) d'un point d'une fonction (double) et le transforme en une étoile dans l'affichage désiré (Ici , 3 lignes 11 colonnes).

    Le plus simple serai d'avoir une représentation matriciel de l'affichage final :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char[][] graphique = new char[3][11]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public abstract placePointSurGraphique(double x, double y, char[][] graphique);
    Et donc pour l'ensemble de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(double x = 0; x <11;i++){
        double y = Math.cos(Math.PI*x);
        placePointSurGraphique(x,y, graphique);
    }
    Je détail pas l'affiche des lignes ou la fonction qui transforme une coordonnée en une étoile...

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Citation Envoyé par Nico02 Voir le message
    Parce que de ce que je vois, on dirait bien que sa représente une fonction sinusoïdale affiché en console
    Moi du coup je vois une fonction "triangle" et pas "sin" Mais vu la résolution, c'est rien...


    Sinon pour l'inspiration ... (même si comme thelvin le souligne ca ne te semblait pas demander ainsi)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for (int y = -1 ; y <= 1; y++)
    		{
    			for (int x = 0 ; x <= 100; x++)
    			{
    				double c = Math.cos(Math.PI*x/2);
    			    if (Math.abs(c-y)<0.01)
    					System.err.print("*");
    				else
    					System.err.print("_");
    			}
    			System.err.println("");
    		}
    qui donne un beau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    __*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*__
    _*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_
    *___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Et comme c'est vendredi, une version améliorée pour changer aussi la hauteur.

    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
    int fact = 1; // Taille en hauteur (modifie aussi la frequence)
     
    		for ( fact = 1; fact < 8; fact++)
    		{
    			System.err.println("FACTEUR = "+fact);
    			for (int y = -1*fact ; y <= 1*fact; y++)
    			{
    				for (int x = 0 ; x <= 100; x++)
    				{
    					double c = fact*Math.cos(Math.PI*(x)/Math.pow(2, fact));
     
    				    if (Math.abs(c-y)<0.5)
    						System.err.print("*");
    					else
    						System.err.print(".");
    				}
    				System.err.println("");
    			}
    			System.err.println("");
    			System.err.println("");
    		}
    qui doit donner un truc (mais y'a une petite erreur quelque part...

    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
     
    FACTEUR = 1
    ..*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*..
    .*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.
    *...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*
     
     
    FACTEUR = 2
    ....*.......*.......*.......*.......*.......*.......*.......*.......*.......*.......*.......*.......*
    ...*.*.....*.*.....*.*.....*.*.....*.*.....*.*.....*.*.....*.*.....*.*.....*.*.....*.*.....*.*.....*.
    ..*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*..
    .*.....*.*.....*.*.....*.*.....*.*.....*.*.....*.*.....*.*.....*.*.....*.*.....*.*.....*.*.....*.*...
    *.......*.......*.......*.......*.......*.......*.......*.......*.......*.......*.......*.......*....
     
     
    FACTEUR = 3
    .......***.............***.............***.............***.............***.............***...........
    ......*...*...........*...*...........*...*...........*...*...........*...*...........*...*..........
    .....*.....*.........*.....*.........*.....*.........*.....*.........*.....*.........*.....*.........
    ....*.......*.......*.......*.......*.......*.......*.......*.......*.......*.......*.......*.......*
    ...*.........*.....*.........*.....*.........*.....*.........*.....*.........*.....*.........*.....*.
    ..*...........*...*...........*...*...........*...*...........*...*...........*...*...........*...*..
    **.............***.............***.............***.............***.............***.............***...
     
     
    FACTEUR = 4
    ..............*****...........................*****...........................*****..................
    ............**.....**.......................**.....**.......................**.....**................
    ..........**.........**...................**.........**...................**.........**..............
    .........*.............*.................*.............*.................*.............*.............
    ........*...............*...............*...............*...............*...............*............
    .......*.................*.............*.................*.............*.................*...........
    .....**...................**.........**...................**.........**...................**.........
    ...**.......................**.....**.......................**.....**.......................**.....**
    ***...........................*****...........................*****...........................*****..
     
     
    FACTEUR = 5
    ............................*********.......................................................*********
    ........................****.........****...............................................****.........
    ......................**.................**...........................................**.............
    ....................**.....................**.......................................**...............
    ..................**.........................**...................................**.................
    ...............***.............................***.............................***...................
    .............**...................................**.........................**......................
    ...........**.......................................**.....................**........................
    .........**...........................................**.................**..........................
    .....****...............................................****.........****............................
    *****.......................................................*********................................
     
     
    FACTEUR = 6
    ........................................................*****************............................
    ..................................................******.................******......................
    .............................................*****.............................*****.................
    .........................................****.......................................****.............
    ......................................***...............................................***..........
    ..................................****.....................................................****......
    ...............................***.............................................................***...
    ...........................****...................................................................***
    ........................***..........................................................................
    ....................****.............................................................................
    ...............*****.................................................................................
    .........******......................................................................................
    *********............................................................................................
     
     
    FACTEUR = 7
    .....................................................................................................
    .....................................................................................................
    .............................................................................................********
    ......................................................................................*******........
    ...............................................................................*******...............
    .........................................................................******......................
    ...................................................................******............................
    ..............................................................*****..................................
    ........................................................******.......................................
    ..................................................******.............................................
    ...........................................*******...................................................
    ....................................*******..........................................................
    ............................********.................................................................
    ................************.........................................................................
    ****************.....................................................................................
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    @wax78: On est pas sensé attendre que la personne ai un minimum compris comment résoudre son problème avant de lui donnée la solution super magique ?
    En particulier quand celle-ci nous précise qu'elle "juste" besoin d'indication et qu'elle débute en programmation :
    Je ne vois vraiment pas comment je pourrais faire...
    Pouvez-vous me donner des indications ?

    Je vous remercie d'avance.
    PS : Je suis débutante, je n'ai jamais fait de programmation.
    Sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.err.println("FACTEUR = "+fact);
    Pourquoi tu utilise à sortie d'erreur pour affiché une restitution classique ?
    Genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("FACTEUR = "+fact);
    c'est pas beaucoup plus cher...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     if (Math.abs(c-y)<0.5)
    	System.err.print("*");
    else
    	System.err.print(".");
    Sachant qu'Ennydra début en programmation, on ne devrait pas utiliser les if else sans {/* Le code de ma condition */}Car seul l'instruction suivante est prise le bloc if, ce qui mène à beaucoup d'erreur ou de confusion pour les débutants.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // code démonstration des if / else sans {}
    if(false)
        System.out.println("Je ne serai pas affiché ! Car présent dans le bloc if !");
        System.out.println("Même avec l'intention, je serai affiché ! Car je ne suis pas dans le bloc if !");
    Cordialement,
    Patrick Kolodziejczyk.

    PS: Sens la fin de semaine !
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  9. #9
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Citation Envoyé par kolodz Voir le message
    @wax78: On est pas sensé attendre que la personne ai un minimum compris comment résoudre son problème avant de lui donnée la solution super magique ?
    ça dépend.

    Parfois le lecteur va rendre le truc tel quel a son prof qui lui posera des question et il se fera "petter"
    OU
    Il va chercher a comprendre, quitte a réécrire un petit bout et sera à même de montrer et d'expliquer le pourquoi du comment et gagnera des points.

    Après à chacun de choisir... Il n'est pas obligé de prendre le bout de code magique

    Citation Envoyé par kolodz Voir le message
    Pourquoi tu utilise à sortie d'erreur pour affiché une restitution classique ?
    Parce que j'aime bien, et qu'en plus j'adore le rouge... :p (et que je veux garder l'ordre d'affichage, même si dans ce cas ci c'est inutile puisqu'il n'y a qu'un thread qui ecrit dans la console).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Re coucou et merci pour toutes vos réponses.

    J'étais en cours, désolée de n'avoir pas pu répondre plus tôt.

    Je viens d'écrire un très long message mais ça m'a déconnectée et j'ai tout perdu, frustrant

    Merci bcp Wax ainsi que pour les solutions magiques, mais j'avoue que je n'ai pas tout compris
    Donc la fonction cos(pi*2/x) est bien la fonction recherchée, entre -1 et 1.
    Mais tout ce qui est Math.abs etc, je ne l'ai pas encore fait...
    Du coup ça paraît vraiment très compliqué pour moi, et difficile à comprendre...

    Comme l'a suggéré Thelvin, ce serait peut-être mieux pour moi de m'y prendre pas à pas... Et donc de faire ligne par ligne...
    J'ai essayé, mais j'en bave haha!

    Pour la première ligne on a deux espaces donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("__");
    Et ensuite j'ai fait ça car étant données les 2 espaces précédents, i va jusqu'à 98 et plus jusqu'à 100 !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(int i=1; i<=98; i++) {
    Je remarque sur le dessin qu'il y a une étoile lorsque la colonne est la 3, 7, 11, 15, 19, etc. Selon notre boucle i, selon la colonne 1, 5, 9, 13, 17, etc. Donc avec un pas de 4. Donc selon la formule 1+i*4... Mais je n'arrive vraiment pas coder tout ça D:

    Edit : Suite dans prochain message.

  11. #11
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Je reposte, mais en réfléchissant j'ai un peu l'impression d'être partie dans un délire et m'être complètement mélangée les pinceaux dans mon message précédent...

    En fait la variable j ne sert à rien...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    System.out.print("__");
    for (int i=1; i<=98; i++){
    if (i%4==1){
    PrintString("*");
    } else {
    PrintString("_");
    }
    }
    NewLine();
    Effectivement, pour i=1,5,9,13,etc i%4=1 sinon, non...

    Est-ce juste ? (pour la première ligne)

  12. #12
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Re,

    Je n'ai toujours pas de réponse. J'ai tenté de faire le code complet. Je ne sais pas si j'ai juste, s'il y a des points à corriger, ou si je suis totalement à côté de la plaque...

    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
    class SuiteEtoiles {
     
      public static void main (String args[]) {
         System.out.print("__");
         for(int i=1; i<=98; i++) {
            if(i%4==1) {
               printString("*");
            } else {
               printString("_");
            }
          }
          newLine();
          for (int j=1; j<=100 ; j++) {
            if(j%2==0) {
               printString("*");
             } else {
               printString("_");
             }
          }
          newLine();
          for (int k=1; k<=100; k++) {
             if(k%4==1) {
                printString("*");
             } else {
                printString("_");
             }
          }
          newLine();
      }
     
      public static void printString(String s) {
        System.out.print(s);
      }
     
      public static void newLine() {
        System.out.print("\n");
      }
     
    }
    Je vous remercie d'avance pour toute aide !
    Et si le code fonction, est-ce que certains pourraient me montrer ce que donne l’exécution de mon code (je n'ai pas la possibilité de voir ) ? Merci.

    Bonne journée !

  13. #13
    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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Je crois que tu y es arrivée toute seule, car voici le résultat de l'exécution de ton code :

    __*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*_
    _*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*
    *___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___*___
    Sinon, globalement, je n'ai qu'une chose à dire sur ton code : je trouve ça étrange de traiter un cas particulier au tout début : on peut réaliser la même chose en une boucle (sans faire un print externe), comme par exemple, en décalant les bornes du for (de 2, la longueur du chaîne affichée au début) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(int i=3; i<=102; i++) {
    si tu préfères écrire, pour être plus explicite sur le pourquoi des bornes décalées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(int i=1+2; i<=100+2; i++) { // 2 est le décalage de la première étoile
    Tu peux faire également le décalage dans le calcul du modulo, si tu préfères.

    On pourrait appliquer le même raisonnement pour chaque boucle, afin d'avoir une comparaison du modulo cohérente entre les trois boucles (mais je pinaille un peu là)
    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.

  14. #14
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Le mieux étant de déclaré le 2 dans une constante pour comprends ce qu'elle représente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Déclaration
    int static final DECALAGE = 2;
    // Utilisation
    for(int i=1+DECALAGE ; i<=100+DECALAGE ; i++) { // 2 est le décalage de la première étoile
    Comme ça, 6 mois après, tu relis le code et tu sais encore pourquoi tu ne commence pas à 1.
    Et si tu veux jouer sur le décalage, tu n'as qu'une seul variable à touché !

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  15. #15
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Je vous remercie infiniment !

    Je n'avais pas pensé à ajouter une nouvelle variable constante pour faire la première boucle. C'est vrai que c'est plus clair que de faire un cas particulier!

    Du coup je peux faire passer le sujet en Résolu

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

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