Exercicis amb while


Exercici 1 — Comptar de l’1 al 10

Mostra per pantalla els números de l’1 al 10 utilitzant un bucle while.


Exercici 2 — Comptar enrere

Mostra els números del 10 al 1 utilitzant un bucle while.


Exercici 3 — Suma dels primers 10 números

Calcula la suma dels números de l’1 al 10 utilitzant un bucle while. Mostra el resultat final.


Exercici 4 — Demanar un número positiu

Demana a l’usuari un número. Mentre el número siga menor o igual que 0, torna a demanar-lo. Quan siga correcte, mostra el número introduït.


Exercici 5 — Taula de multiplicar

Demana un número a l’usuari i mostra la seua taula de multiplicar del 1 al 10 utilitzant while.


Exercici 6 — Comptar números introduïts

Demana números a l’usuari fins que escriga 0. Mostra quants números ha introduït (sense comptar el 0).


Exercici 7 — Suma fins a parar

Demana números a l’usuari i suma’ls. El programa acaba quan l’usuari introduïx un número negatiu. Mostra la suma total (sense incloure el número negatiu).


Exercici 8 — Control d’intents

Demana una contrasenya a l’usuari. Té 3 intents com a màxim per a escriure "python123".

  • Si l’encerta, mostra “Accés concedit”.
  • Si falla 3 vegades, mostra “Accés bloquejat”.

Utilitza un while.


Exercici 9 — Mitjana de notes

Demana notes a l’usuari fins que escriga -1. Calcula i mostra la mitjana de les notes introduïdes (no inclogues el -1).


Exercici 10 — Menú repetitiu

Mostra un menú amb les opcions:

1. Saludar
2. Mostrar un número
3. Eixir
  • El menú es repetix mentre l’usuari no trie l’opció 3.
  • Si tria 1, mostra un missatge de salutació.
  • Si tria 2, demana un número i mostra’l.
  • Si tria una altra opció, mostra “Opció no vàlida”.

Utilitza un bucle while.


ERRORS AMB BUCLES WHILE

Exercici 1

num = 1

while num <= 5:
    print(num)
Solució

Error: bucle infinit.

Explicació: La variable num no s’actualitza dins del bucle. Com que sempre val 1, la condició num <= 5 sempre és certa i el bucle no acaba mai.

num = 1

while num <= 5:
    print(num)
    num = num + 1

Exercici 2

num = 10

while num < 1:
    print(num)
    num = num - 1
Solució

Error: condició incorrecta.

Explicació: num val 10 i la condició num < 1 és falsa des del principi, per tant el bucle no s’executa ni una vegada.

num = 10

while num >= 1:
    print(num)
    num = num - 1

Exercici 3

num = 1

while num <= 10:
    print(num)
    num = num - 1
Solució

Error: actualització incorrecta del comptador.

Explicació: El bucle hauria d’avançar cap a 10, però num disminuïx. Això fa que la condició num <= 10 siga sempre certa i el bucle siga infinit.

num = 1

while num <= 10:
    print(num)
    num = num + 1

Exercici 4

while contador < 5:
    print(contador)
    contador = contador + 1
Solució

Error: variable no inicialitzada.

Explicació: La variable contador s’utilitza abans de donar-li cap valor, cosa que provoca un error en executar el programa.

contador = 0

while contador < 5:
    print(contador)
    contador = contador + 1

Exercici 5

num = 1

while num <= 5:
print(num)
num = num + 1
Solució

Error: error d’indentació.

Explicació: El codi dins del while ha d’estar indentat. Sense indentació, Python no sap quin codi forma part del bucle.

num = 1

while num <= 5:
    print(num)
    num = num + 1

Exercici 6

edat = int(input("Edat: "))

while edat >= 18:
    print("Major d'edat")
Solució

Error: ús incorrecte de while (bucle infinit).

Explicació: Si l’edat és 18 o més, la condició és certa i com que edat no canvia dins del bucle, el missatge es repetix sense parar. En este cas, cal un if perquè només volem comprovar una vegada.

edat = int(input("Edat: "))

if edat >= 18:
    print("Major d'edat")
else:
    print("Menor d'edat")

Exercici 7

num = int(input("Introdueix un número positiu: "))

while num < 0:
    print("Número incorrecte")
Solució

Error: el valor no s’actualitza dins del bucle (bucle infinit si és negatiu).

Explicació: Si num és negatiu, entra al bucle, però com no es torna a demanar un altre número, num no canvia i la condició continua sent certa sempre.

num = int(input("Introdueix un número positiu: "))

while num < 0:
    print("Número incorrecte")
    num = int(input("Introdueix un número positiu: "))

print("Número correcte:", num)

Exercici 8

i = 1
suma = 0

while i <= 5:
    suma = suma + i
    i = i + 2

print("Suma:", suma)
Solució

Error: actualització incorrecta del comptador.

Explicació: Amb i = i + 2, es salten valors (2 i 4). Si l’objectiu és sumar tots els números de l’1 al 5, cal incrementar d’1 en 1.

i = 1
suma = 0

while i <= 5:
    suma = suma + i
    i = i + 1

print("Suma:", suma)

Exercici 9

num = int(input("Introdueix un número (0 per acabar): "))

while num >= 0:
    print("Has escrit:", num)
    num = int(input("Introdueix un número (0 per acabar): "))
Solució

Error: condició de parada incorrecta.

Explicació: Quan num és 0, la condició num >= 0 continua sent certa, així que el bucle no acaba. Si 0 és el valor de fi, la condició correcta és num != 0.

num = int(input("Introdueix un número (0 per acabar): "))

while num != 0:
    print("Has escrit:", num)
    num = int(input("Introdueix un número (0 per acabar): "))

Exercici 10

opcio = 0

while opcio != 3:
    print("1. Saludar")
    print("2. Mostrar missatge")
    print("3. Eixir")

    if opcio == 1:
        print("Hola")
    elif opcio == 2:
        print("Missatge")
Solució

Error: la variable opcio no s’actualitza (bucle infinit).

Explicació: No es llig cap opció de l’usuari, així que opcio sempre val 0 i la condició opcio != 3 sempre es complix.

opcio = 0

while opcio != 3:
    print("1. Saludar")
    print("2. Mostrar missatge")
    print("3. Eixir")

    opcio = int(input("Tria una opció: "))

    if opcio == 1:
        print("Hola")
    elif opcio == 2:
        print("Missatge")
    elif opcio == 3:
        print("Eixint del programa")
    else:
        print("Opció no vàlida")

Cas pràctic — Calculadora amb menú

Crea un programa en Python que simule una calculadora amb menú utilitzant un bucle while.

El programa ha de fer el següent:

  • Mostrar un menú d’opcions amb estes operacions:

    • 1.Sumar
    • 2.Restar
    • 3.Multiplicar
    • 4.Dividir
    • 0.Eixir
  • Demanar a l’usuari que trie una opció del menú.

  • El programa ha de repetir-se contínuament fins que l’usuari trie l’opció 0 (Eixir).

  • Si l’usuari introduïx una opció que no està en el menú, s’ha de mostrar un missatge d’error i tornar a mostrar el menú.

  • Quan l’usuari trie una operació vàlida (1, 2, 3 o 4):

    • Demana dos números.
    • Realitza l’operació corresponent.
    • Mostra el resultat per pantalla.
  • En el cas de la divisió:

    • Si el segon número és 0, mostra un missatge indicant que no es pot dividir entre zero.