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

JavaScript Discussion :

Réaliser l'affichage d'une pyramide


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Novembre 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2018
    Messages : 1
    Par défaut Réaliser l'affichage d'une pyramide
    Nom : Star_patternPrograms.jpg
Affichages : 5464
Taille : 119,5 Ko

    Bonjour,

    Je suis débutante en Javascript / Html, j'ai appris à codé une pyramide tel que le pattern 2 de la photo et j'aimerai savoir comment vous adapteriez mon code pour faire le pattern 1 voir le 3 et le 4 si vous savez les faire

    Code HTML : 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
    <!doctype html>
    <html>
     
    <head>
        <meta charset="UTF-8">
        <title>Triangle Pattern</title>
    </head>
     
    <body>
        <h1>05 : triangle</h1>
     
        Nombre lignes : <input type="text" id="nbLignes"><br>
     
        <button onclick="onClickDessineTriangle()">Dessiner triangle</button>
        <hr>
     
        <div id="triangle"></div>
     
        <script src="./js/script.js"></script>
    </body>
     
    </html>



    JAVASCRIPT
    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
    //............................................
    // Constantes globales
    //............................................
    const SYMBOLE = "*";
    const RETOUR_LIGNE = "<br>";
     
    //............................................
    // Variables globales
    //............................................
     
    //............................................
    // Fonctions
    //............................................
    function lireNombre (id) {
        // Récupération de la référence sur l'élément passé via le paramètre id
        var elNombre = document.getElementById(id);
     
        // Récupération de la donnée saisie
        // !! cette donnée est en format String !!
        var strNombre = elNombre.value;
     
        // Conversion de la représentation de la valeur du nombre en numérique SANS décimale integer
        var nNombre = parseInt(strNombre);
     
        // Retourner le résultat
        return nNombre;
     
        // CODE OPTIMISE en une ligne ...
        // retrun parseFloat(document.getElementById(id).value);
     
    } // lireNombre
     
     
    function forgerTriangle(nbLignes) {
        // Chaine de caractères représentant le triangle
        var strTriangle = "";
     
        // Algorithme de la création du triangle
        // Variables locales
        var noLigne = 0;
        var noColonne = 0;
     
        // Forge du triangle
        while (noLigne <= nbLignes) {
            while (noColonne < noLigne) {
                // Concaténation des symboles
                strTriangle += SYMBOLE;
     
                // Prochaine colonne
                noColonne++;
            } // while	
     
            // Ajoute le retour ligne (concaténation)
            strTriangle += RETOUR_LIGNE;
     
            // Prochaine ligne
            noLigne++;	
     
            // Recommencer du début
            noColonne = 0;
        } // while   
     
        // Retourner le résultat
        return strTriangle;    
     
    } // forgerTriangle
     
     
    function afficherTriangle(triangle) {
        // Accéder à l'élément dans lequel il faut afficher le triangle
        var elTriangle = document.getElementById("triangle");
     
        // Insérer la donnée dans le DOM sur l'élément id="triangle"
        elTriangle.innerHTML = triangle;
     
        // CODE OPTIMISE en une ligne ...
        // document.getElementById("triangle").innerHTML = triangle;
     
    } // afficherTriangle
     
     
    function onClickDessineTriangle() {
        // Récupérer les valeurs (numérique float)
        var nbLignes = lireNombre("nbLignes");
     
        // Forger le triangle
        var strTriangle = forgerTriangle(nbLignes);
     
        // Afficher le triangle
        afficherTriangle(strTriangle);    
     
        // CODE OPTIMISE en une ligne ...
        // afficherTriangle(forgerTriangle(lireNombre("nbLignes"), lireNombre("nbColonnes")));
     
    } // onClickDessineTriangle
     
     
    //............................................
    // Programme principal
    //............................................
    Je sais que le changements est sûrement minime et se fait au niveau des boucles mais je bloques.
    Merci d'avance !!

  2. #2
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    change de méthode!
    Si tes boucles imbriquées font des noeuds dans la tête, ben c'est que la méthode n'est pas adaptée.

    1 - utilise l'instruction for => https://developer.mozilla.org/fr/doc...structions/for

    2 - si tu dois répéter un caractère x fois : utilise la fonction repeat => https://developer.mozilla.org/fr/doc.../String/repeat

    dans ton cas ça donne :
    Code JavaScript : 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
    function ForgerTriangle_Type_1(nbLignes)
    {
      let strTriangle = "";
      for (let i=nbLignes; i > 0; i--)
      {
        strTriangle += SYMBOLE.repeat(i) + RETOUR_LIGNE;
      }
      return strTriangle;
    }
     
    function ForgerTriangle_Type_2(nbLignes)
    {
      let strTriangle = "";
      for (let i=1; i<=nbLignes; i++)
      {
        strTriangle += SYMBOLE.repeat(i) + RETOUR_LIGNE;
      }
      return strTriangle;
    }

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Ah intéressant cela me rappelle un exercice qu'on nous avez donné dans ce forum : "dessiner un sapin"

    Nom : sapin.PNG
Affichages : 5026
Taille : 9,4 Ko

    Voici pour tester le code : https://jsbin.com/sozafodelo/edit?js,console,output

    On peut choisir la hauteur du feuillage, la largeur et la hauteur du tronc...
    L'affichage se fait dans la console et la page html.

    Voilà cela peut donner un exemple de code...

    ---> Le pattern 2 c'est une moitié droite de feuillage, Le pattern 4 c'est une moitié gauche de feuillage et la partie haute du pattern 3 c'est un feuillage et sa partie basse c'est un feuillage inversé...

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    cette discussion pourrait également t'intéresser : Algorithme JS pour créer des formes.

Discussions similaires

  1. Comment réaliser un effet de fading lors de l'affichage d'une fiche
    Par DelphiCool dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 03/02/2013, 11h17
  2. Réponses: 9
    Dernier message: 22/12/2010, 15h14
  3. Réalisation d'une pyramide d'âges
    Par zaki64 dans le forum Débuter
    Réponses: 13
    Dernier message: 29/04/2009, 22h28
  4. Affichage d'une image sous linux
    Par Braim dans le forum x86 32-bits / 64-bits
    Réponses: 5
    Dernier message: 25/03/2003, 10h41
  5. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 09h43

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