(Débutant) Javascript simple pyramide pattern HELP

Fermé
LaryssaX Messages postés 2 Date d'inscription vendredi 9 novembre 2018 Statut Membre Dernière intervention 17 mai 2019 - Modifié le 9 nov. 2018 à 20:50
Jithel Messages postés 843 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 31 août 2021 - 9 nov. 2018 à 17:02


Bonjour,


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

HTML
<code html><!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>//............................................
// 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
//............................................


</code>

Je sais que le changements est sûrement minime et se fait au niveau des boucles mais je bloques.
Merci d'avance !!
A voir également:

1 réponse

Jithel Messages postés 843 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 31 août 2021 171
9 nov. 2018 à 17:02
Je suis pas sûr mais pour le pattern 1, il suffit de remplacer
while (noColonne < noLigne) {


par

while (noColonne < nbLignes - noLigne) {
0