Stampare un rombo di asterischi in JavaScript

La programmazione offre strumenti potenti per visualizzare modelli e strutture, giocando con semplici concetti come ciclo e condizioni. In questo tutorial, esploreremo come utilizzare JavaScript per disegnare un rombo composto da asterischi, un esercizio eccellente per affinare la comprensione dei cicli e del controllo del flusso in programmazione.

Introduzione al problema

Il rombo di asterischi è una figura geometrica simmetrica che possiamo costruire utilizzando righe di caratteri. Il nostro obiettivo è creare un programma in JavaScript che stampi un rombo, dato un numero intero n che rappresenta il numero di asterischi nella riga più lunga del rombo. Ecco un esempio di come dovrebbe apparire un rombo per n = 5:

    *    ***   *****  ******* *********  *******   *****    ***     *

Comprendere la struttura del rombo

Prima di iniziare a scrivere il codice, è importante comprendere la struttura del rombo. Possiamo suddividere il rombo in due parti:

  • Parte superiore (inclusa la riga centrale): in questa sezione, il numero di asterischi aumenta da 1 fino a n.

  • Parte inferiore: in questa sezione, il numero di asterischi diminuisce da n fino a 1.

Ogni riga ha un certo numero di spazi prima degli asterischi per mantenere la simmetria. Il numero di spazi diminuisce man mano che ci spostiamo verso il centro del rombo e aumenta quando ci allontaniamo dal centro.

Iniziamo scrivendo il codice per stampare il rombo. Utilizzeremo due cicli principali: uno per la parte superiore e uno per la parte inferiore.

Passo 1: Stampare la parte superiore del rombo

Iniziamo con la parte superiore del rombo, incluso il centro.

    // Parte superiore del rombo     for (let i = 1; i <= n; i++) {         // Stampa gli spazi         for (let j = 0; j < n - i; j++) {             output += " ";         }         // Stampa gli asterischi         for (let k = 0; k < 2 * i - 1; k++) {             output += "*";         }         output += "\n";     }

Nel codice sopra, il primo ciclo for itera sulle righe. I due cicli interni servono per stampare prima gli spazi e poi gli asterischi. 

Nota: Da notare che il numero di asterischi in ogni riga è dispari, seguendo la formula 2 * i - 1.

Passo 2: Stampare la parte inferiore del rombo

Dopo aver stampato la parte superiore, procediamo con la parte inferiore.

    // Parte inferiore del rombo     for (let i = n - 1; i >= 1; i--) {         // Stampa gli spazi         for (let j = 0; j < n - i; j++) {             output += " ";         }         // Stampa gli asterischi         for (let k = 0; k < 2 * i - 1; k++) {             output += "*";         }         output += "\n";     }

La parte inferiore è quasi un riflesso della parte superiore, con la differenza che il ciclo itera in direzione opposta.

Passo 3: Completare la funzione e stampare il risultato

A questo punto non resta che unire i due codice e stampare l’output:

function stampaRombo(n) {   let output = "";   // Parte superiore del rombo   for (let i = 1; i <= n; i++) {     // Stampa gli spazi     for (let j = 0; j < n - i; j++) {         output += " ";     }     // Stampa gli asterischi     for (let k = 0; k < 2 * i - 1; k++) {         output += "*";     }     output += "\n";   }   // Parte inferiore del rombo   for (let i = n - 1; i >= 1; i--) {     // Stampa gli spazi     for (let j = 0; j < n - i; j++) {         output += " ";     }     // Stampa gli asterischi     for (let k = 0; k < 2 * i - 1; k++) {         output += "*";     }     output += "\n";   }     console.log(output); } stampaRombo(3);

Creare un rombo di asterischi in JavaScript è un ottimo esercizio per comprendere il funzionamento dei cicli e della manipolazione delle stringhe. Attraverso questo esercizio, abbiamo esplorato come controllare il flusso del programma e come utilizzare cicli annidati per creare modelli complessi.