Stampare una piramide di asterischi in C

La stampa di forme geometriche mediante l'uso di caratteri è uno dei modi più efficaci per introdurre i concetti di programmazione, come cicli e controllo del flusso, a chi è alle prime armi. In particolare, la creazione di una piramide di asterischi è un esercizio classico che aiuta a comprendere il funzionamento dei cicli annidati in C.

Questa pagina guida passo dopo passo nella realizzazione di una piramide di asterischi, spiegando ogni aspetto in dettaglio.

Fondamenti teorici

Prima di tuffarci nel codice, è importante capire la struttura di una piramide di asterischi. Consideriamo una piramide alta 5 righe:
    *
   ***
  *****
 *******
*********
Ogni riga ha un numero dispari di asterischi, centrati rispetto alla base. Il numero di asterischi in ogni riga segue una sequenza: 1, 3, 5, 7, 9, ecc., che può essere espressa come 2n−1, dove n è il numero della riga partendo da 1. Lo spazio prima degli asterischi diminuisce man mano che si sale sulla piramide, iniziando da 4 spazi nella prima riga e diminuendo di uno per ogni riga successiva.

Implementazione in C

Per stampare una piramide di asterischi in C, seguiremo questi passi:

  • Chiedere all'utente l'altezza della piramide.
  • Usare cicli annidati per stampare gli spazi e gli asterischi in ogni riga.

Iniziamo chiedendo all'utente di inserire l'altezza della piramide:

#include <stdio.h> int main() { int altezza; printf("Inserisci l'altezza della piramide: "); scanf("%d", &altezza); // Il codice per la stampa della piramide verrà inserito qui return 0; }

Per stampare la piramide, usiamo tre cicli for annidati: uno per le righe, uno per gli spazi, e uno per gli asterischi.

for (int riga = 1; riga <= altezza; riga++) { // Stampa degli spazi for (int spazio = 1; spazio <= altezza - riga; spazio++) { printf(" "); } // Stampa degli asterischi for (int asterisco = 1; asterisco <= 2 * riga - 1; asterisco++) { printf("*"); } // Vai alla nuova riga dopo ogni riga completata printf("\n"); }
  • Il primo ciclo for esterno itera per ogni riga della piramide da 1 fino all'altezza specificata.
  • Il secondo ciclo for, annidato all'interno del primo, gestisce la stampa degli spazi. Il numero di spazi è calcolato come altezza - riga, che diminuisce ad ogni iterazione del ciclo esterno, creando l'effetto di centratura degli asterischi.
  • Il terzo ciclo for, anch'esso annidato, si occupa della stampa degli asterischi. Il numero di asterischi per riga segue la formula 2n−1, dove n è il numero della riga corrente.
  • Dopo aver stampato gli spazi e gli asterischi per una riga, si procede alla nuova riga con printf("\n").

Conclusione

La stampa di una piramide di asterischi in C è un esercizio eccellente per comprendere i concetti di base della programmazione, come i cicli e il controllo del flusso. Attraverso la realizzazione di questo semplice programma, è possibile apprendere l'importanza della logica computazionale e della pianificazione nel risolvere problemi di programmazione.

Indice pagine linguaggio C: