libri-javascript-python

Realizziamo in questa lezione una piramide di asterischi in Python, come quella mostrata nella figura sotto, avente come altezza 6 asterischi.

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

Per realizzare il nostro programma, prendiamo innanzitutto in input l’altezza della piramide.

La piramide dell’esempio ha altezza 6 e base 11, immaginiamo dunque che l’utente inserisca 6 alla domanda ‘qual è l’altezza della piramide che vuoi creare?’

Adesso, per risolvere il problema, facciamo le nostre considerazioni.

Innanzitutto notiamo che la prima riga ha un solo asterisco, mentre le altre si incrementano di due asterischi rispetto alla riga precedente.

Gli spazi non sono altro che caratteri vuoti e quelli che ci interessano sono solo quelli prima degli asterischi.

Dunque nella prima riga i primi 5 caratteri sono vuoti, mentre il successivo avrà l’asterisco.

Nella seconda riga invece saranno vuoti i primi 4 caratteri mentre i 3 caratteri successivi avranno l’asterisco. E così via.

In generale vale allora questa regola:

Per il carattere vuoto: (h-i-1) infatti nel primo caso saranno 6-0-1=5 caratteri vuoti, mentre nel secondo caso 6-1-1=4 caratteri vuoti e così via.

Per gli asterischi: (2*i+1) infatti nel primo caso si avrà 2*0+1=1 asterisco, mentre nel secondo caso 2*1+1=3 asterischi e così via.


Ecco allora il nostro algoritmo per costruire una piramide di asterischi in python con un solo ciclo for:

h=int(input(‘Inserisci l\’altezza della piramide: ‘))

for i in range(h):

print(‘ ‘ *(h-i-1) + ‘*’ *(2*i+1))


Oltre a questa soluzione, ne presento un’altra che fa uso di due cicli for annidati:

for i in range(h):

for j in range(h+i):

if (h-j-1>i):

print(‘ ‘, end=”)

else:

print(‘*’, end=”)

print()

In questa lezione abbiamo creato una piramide di asterischi in Python utilizzando uno o due cicli for, nelle prossime lezioni faremo ancora degli esempi sui cicli annidati.

Alcuni link utili

Indice argomenti linguaggio C++

1- Introduzione al linguaggio C++

2- Variabili in C++

3- Operatori di assegnazione in C++

4- Esempi in C++

5- Casting in C++

Successione di Fibonacci in C++