Esercizi sul ciclo for in Python

Svolgeremo altri esercizi sul ciclo for in Python al fine di consolidare quanto studiato finora.

Esercizio sul ciclo for in Python

Progettate un algoritmo che scriva tutte le coppie di numeri naturali la cui somma è 20.

Dunque l’algoritmo dovrà stampare le coppie (20,0), (19,1), (18,2), (17,3), (16,4) ecc…

Per progettare questo algoritmo quindi basta far decrementare di uno il numero della prima coppia e incrementare di 1 il numero della seconda coppia.

Impostando n uguale a 20, utilizzo poi un ciclo for con l’indice i che parte da 0 fino ad n+1 e dunque si incrementa di 1. Dopo decrementiamo n di 1.

Ecco quindi una possibile soluzione:

n=20

for i in range(n+1):
    print(n,i)
    n-=1

Se non vogliamo ripetizioni basta mettere:

n=20

for i in range(n//2+1):
    print(n,i)
    n-=1

Possiamo anche generalizzare l’algoritmo chiedendo all’utente di inserire il valore di n.

n=int(input('Inserisci n: '))

for i in range(n//2+1):
    print(n,i)
    n-=1

Secondo esercizio sul ciclo for in Python

Date N coppie di numeri reali contare quelle che generano un prodotto negativo, positivo o uguale a zero senza eseguire l’operazione. 

Il prodotto di due numeri è positivo quando i numeri sono entrambi positivi oppure entrambi negativi. Il prodotto tra due numeri è nullo quando uno solo dei due numeri è uguale a zero.

Negli altri casi è negativo.

Ecco dunque l’algoritmo completo:

N =int(input('Quante coppie? '))
p,n,z=0,0,0

for i in range(N):

    a = int(input('Inserire il primo numero: '))
    b = int(input('Inserire il secondo numero: '))

    if a > 0 and b > 0 or a < 0 and b < 0:
        p+=1
    elif a == 0 or b == 0:
        z+=1
    else:
        n+=1

print('Prodotto positivo: ', p, '. Negativo: ', n, '. Nullo: ', z)

Terzo esercizio

Date n coppie di numeri reali contare quelle che generano una somma positiva, negativa o nulla senza eseguire l’operazione.

Realizziamo una prima soluzione facendo alcune considerazioni.

Quindi ad esempio osserviamo queste operazioni:

7+3 , 3+7, -5+6, 5-4 somma positiva

-7-3, -3-7, -5+4, 5-6 somma negativa

6-6 somma nulla

Da questi esempi deduciamo che la somma è positiva in questi casi:

i termini sono tutti e due positivi oppure

solo a è maggiore di zero e contemporaneamente è maggiore del valore assoluto di b oppure

solo b è maggiore di zero e contemporaneamente è maggiore del valore assoluto di a.

In definitiva allora vale la regola se a è maggiore del valore assoluto di b oppure b è maggiore del valore assoluto di a.

La somma invece è nulla quando a è l’opposto di b e questo include anche lo zero.

In tutti gli altri casi la somma è negativa.

Ecco dunque l’algoritmo completo:

N =int(input('Quante coppie? '))
p,n,z=0,0,0

for i in range(N):
    a = int(input('Inserire il primo numero: '))
    b = int(input('Inserire il secondo numero: '))
   
    if a>abs(b) or b>abs(a):
        p+=1
    elif a == -b:
        z+=1
    else:
        n+=1

print('Somma positiva: ', p, '. Negativa: ', n, '. Nulla: ', z)

Per semplificare la risoluzione dell’algoritmo possiamo scambiare a e b se il valore della variabile a è inferiore a b.

Dopo controlliamo se a è maggiore del valore assoluto di b e se è vero incrementiamo la variabile p. Altrimenti controlliamo se a è l’opposto di b e incrementiamo il valore di z. Se nessuna di queste condizioni è vera allora incrementiamo la variabile n.

Ecco dunque una possibile soluzione all’algoritmo proposto:

N =int(input('Quante coppie? '))
p,n,z=0,0,0

for i in range(N):
    a = int(input('Inserire il primo numero: '))
    b = int(input('Inserire il secondo numero: '))
   
    if a<b:
        a,b=b,a

    if a>abs(b):
        p+=1
    elif a==-b:
        z+=1
    else:
        n+=1

print('Somma positiva: ', p, '. Negativa: ', n, '. Nulla: ', z)

Abbiamo risolto alcuni semplici esercizi sul ciclo for in Python, nella prossima lezione approfondiremo ancora l’argomento.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

11 – Modulo math

Autore dell'articolo: Cristina

Avatar per Coding Creativo

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *