📘 Cicli e condizioni applicati a problemi pratici

Questi esempi mostrano come usare if e for per:

  • confrontare valori numerici
  • controllare input non validi
  • generare figure con schemi regolari

Esempio 1 — Massimo tra tre numeri

(livello: base — condizioni annidate)

# Programma che legge tre numeri interi
# e stampa il valore massimo tra i tre.
# Utilizza solo istruzioni if ed elif.

a = int(input("Inserisci il primo numero "))
b = int(input("Inserisci il secondo numero "))
c = int(input("Inserisci il terzo numero "))

if a > b:
    if a > c:
        print(a)
    else:
        print(c)
elif a == b:
    if a > c:
        print(a)
    else:
        print(c)
else:
    if b > c:
        print(b)
    else:
        print(c)

👉 Serve per capire:

  • confronti multipli
  • if annidati
  • gestione di casi uguali (a == b)

Esempio 2 — Massimo di N numeri

(livello: medio — ciclo + confronto progressivo)

# Programma che legge N numeri interi
# e determina il valore massimo usando un ciclo for.

n = int(input("Quanti numeri vuoi confrontare? "))

# Il primo numero viene usato come valore iniziale del massimo
massimo = int(input("Inserisci il primo numero "))

# Il ciclo legge gli altri n-1 numeri
for i in range(n - 1):
    num = int(input("Inserisci il nuovo numero "))
    if num > massimo:
        massimo = num

print("Il massimo è", massimo)

👉 Introduce il concetto di:

  • variabile accumulatrice di massimo
  • confronto ripetuto dentro un ciclo

Esempio 3 — Quadrato pieno con controllo dell’input

(livello: medio — ciclo for + validazione)

# Programma che stampa un quadrato pieno di lato x.
# Prima verifica che la dimensione inserita sia valida.

x = int(input("Inserisci la dimensione del quadrato "))

if x > 0:
    for i in range(x):
        print("O" * x)
else:
    print("ERRORE! Valore inserito non valido")

print("Termine!")

👉 Qui lo studente impara:

  • a validare l’input
  • a separare il caso corretto da quello di errore
  • a usare il ciclo per evitare ripetizioni manuali

Esempio 4 — Quadrato pieno alternato con due caratteri

(livello: medio-avanzato — ciclo + if sul contatore)

# Programma che stampa un quadrato pieno di lato x
# alternando due caratteri su righe pari e dispari.

x = int(input("Inserisci la dimensione del quadrato "))
c1 = input("Inserisci il primo carattere ")
c2 = input("Inserisci il secondo carattere ")

if x > 0:
    for i in range(x):
        # Se l'indice i è pari stampa il primo carattere
        if i % 2 == 0:
            print(c1 * x)
        else:
            print(c2 * x)
else:
    print("Errore")

👉 Questo esempio consolida:

  • uso del contatore del ciclo
  • operatore modulo %
  • combinazione di for + if

📌 Percorso di apprendimento

  1. Confronti semplici (max tra 3 numeri)
  2. Generalizzazione con il ciclo (max tra N numeri)
  3. Validazione degli input
  4. Schemi regolari con condizioni sul ciclo