Exercicis: Programació textual
Explica què és una variable amb el símil d'una caixa amb etiqueta i descriu què fa cada línia: puntos = 0, puntos = puntos + 1, print(puntos). Quin valor apareix a la…
Explica què és una variable amb el símil d'una caixa amb etiqueta i descriu què fa cada línia: puntos = 0, puntos = puntos + 1, print(puntos). Quin valor apareix a la pantalla i per què no és un error sumar-li alguna cosa a una variable que «ja tenia» un valor?
Classifica aquests valors segons el seu tipus de dada (enter, decimal, text o booleà) i posa un exemple d'ús per a cada tipus en un programa d'una botiga: 13, 3,75,…
Classifica aquests valors segons el seu tipus de dada (enter, decimal, text o booleà) i posa un exemple d'ús per a cada tipus en un programa d'una botiga: 13, 3,75, "Ana", True.
Explica què fan les ordres input() i print() en Python, quina diferència hi ha entre elles i escriu un programa de dues línies que et demani el nom i et saludi fent-lo…
Explica què fan les ordres input() i print() en Python, quina diferència hi ha entre elles i escriu un programa de dues línies que et demani el nom i et saludi fent-lo servir.
La figura mostra un diagrama de flux i, al seu costat, el programa que fa el mateix, però amb la condició tapada. Escriu la condició que falta a la línia de l'if (ha de…
La figura mostra un diagrama de flux i, al seu costat, el programa que fa el mateix, però amb la condició tapada.
Escriu la condició que falta a la línia de l'if (ha de comparar la variable edad amb $12$), explica què fa int(input("Edad: ")) i per què les línies dins de l'if i de l'else van sagnades cap a la dreta.
Explica què és un condicional amb un exemple de la teva vida diària (si plou agafo el parigua; si no, les ulleres de sol) i escriu-lo en tres línies de pseudocodi:…
Explica què és un condicional amb un exemple de la teva vida diària (si plou agafo el parigua; si no, les ulleres de sol) i escriu-lo en tres línies de pseudocodi: condició, què passa si es compleix i què passa si no.
Explica la diferència entre un bucle for (repetir un nombre conegut de vegades) i un bucle while (repetir mentre es compleixi una condició), i posa un exemple quotidià…
Explica la diferència entre un bucle for (repetir un nombre conegut de vegades) i un bucle while (repetir mentre es compleixi una condició), i posa un exemple quotidià de cadascun: fer deu voltes al pati enfront de continuar remant fins a arribar a la riba.
Explica què és una funció en un programa i quin avantatge té escriure una vegada def saludar(): i poder cridar-la moltes vegades, en lloc de copiar les mateixes línies…
Explica què és una funció en un programa i quin avantatge té escriure una vegada def saludar(): i poder cridar-la moltes vegades, en lloc de copiar les mateixes línies una vegada i una altra.
Aquest programa té tres errors típics: nombre = input("Tu nombre: ), if nombre = "Fátima", print("Hola"). Troba cada error (unes cometes sense tancar, un = que hauria de…
Aquest programa té tres errors típics: nombre = input("Tu nombre: ), if nombre = "Fátima", print("Hola"). Troba cada error (unes cometes sense tancar, un = que hauria de ser == i explica la diferència), reescriu el programa corregit i digues quin missatge d'error donaria l'ordinador en cada cas.
Prediu la sortida d'aquest programa sense executar-lo, seguint el valor de les variables línia a línia: a = 4, b = 3, a = a + b, b = a - b, print(a), print(b). Escriu la…
Prediu la sortida d'aquest programa sense executar-lo, seguint el valor de les variables línia a línia: a = 4, b = 3, a = a + b, b = a - b, print(a), print(b). Escriu la traça completa (què val cada variable després de cada línia) i no només el resultat.
Escriu un programa de tres línies que demani el nom i l'edat d'una persona i escrigui una frase completa usant-los (per exemple, «La Mei té 14 anys»). Explica quin tipus…
Escriu un programa de tres línies que demani el nom i l'edat d'una persona i escrigui una frase completa usant-los (per exemple, «La Mei té 14 anys»). Explica quin tipus de dada retorna sempre input() i per a què serveix int() en demanar l'edat.
Escriu un programa que demani un nombre i digui si és positiu, negatiu o zero. Indica quina estructura utilitzes (un condicional amb dues branques o tres), quines…
Escriu un programa que demani un nombre i digui si és positiu, negatiu o zero. Indica quina estructura utilitzes (un condicional amb dues branques o tres), quines comparacions fas i prova-ho mentalment amb els valors $7$, $-3$ i $0$.
Un programa converteix la nota numèrica en qualificació: menys de $5$ és «suspens», de $5$ a $6{,}9$ és «aprovat» i de $7$ en endavant és «notable». Escriu-lo amb if,…
Un programa converteix la nota numèrica en qualificació: menys de $5$ és «suspens», de $5$ a $6{,}9$ és «aprovat» i de $7$ en endavant és «notable». Escriu-lo amb if, elif i else, explica per què l'ordre de les condicions importa i què passaria si la primera condició fos nota > 5.
Escriu un bucle for que mostri la taula de multiplicar del $3$ (de l'$3 \cdot 1$ al $3 \cdot 10$), indica quantes vegades es repeteix el cos del bucle i explica què…
Escriu un bucle for que mostri la taula de multiplicar del $3$ (de l'$3 \cdot 1$ al $3 \cdot 10$), indica quantes vegades es repeteix el cos del bucle i explica què canviaries per mostrar la taula del $7$ sense reescriure tot el programa.
Llegeix aquest programa i explica què fa: n = 5, while n > 0:, print(n), n = n - 1, i al final print("¡Ya!"). Escriu la sortida completa a la pantalla i raona què…
Llegeix aquest programa i explica què fa: n = 5, while n > 0:, print(n), n = n - 1, i al final print("¡Ya!"). Escriu la sortida completa a la pantalla i raona què passaria si oblidem la línia n = n - 1.
Analitza aquesta funció: def area_cuadrado(lado): i a dins return lado * lado. Explica què és el paràmetre, què és el valor que retorna i què escriuria a la pantalla…
Analitza aquesta funció: def area_cuadrado(lado): i a dins return lado * lado. Explica què és el paràmetre, què és el valor que retorna i què escriuria a la pantalla cada crida: print(area_cuadrado(5)), print(area_cuadrado(2{,}5)).
Un company escriu un programa que demana contrasenyes fins a encertar: clave = "", while clave != "sol":, i a dins només print("incorrecta"). Explica per què el programa…
Un company escriu un programa que demana contrasenyes fins a encertar: clave = "", while clave != "sol":, i a dins només print("incorrecta"). Explica per què el programa no acaba mai, quina línia falta dins del bucle (tornar a demanar la clau) i la regla general sobre els bucles while: alguna cosa ha de poder canviar la condició.
Per seleccionar els classificats d'un torneig de robòtica, es llegeixen cinc puntuacions (del $0$ al $10$). Un company ha proposat aquest codi per comptar quantes són…
Per seleccionar els classificats d'un torneig de robòtica, es llegeixen cinc puntuacions (del $0$ al $10$). Un company ha proposat aquest codi per comptar quantes són iguals o superiors a $5{,}0$:
aprobados = 0
for i in range(5):
nota = float(input("Introduce nota: "))
if nota >= 5:
aprobados = aprobados + 1
else:
aprobados = 0
print("Total de aprobados:", aprobados)
- a) Prediu què mostrarà per pantalla si l'usuari introdueix successivament les notes: $6{,}0$, $8{,}0$, $4{,}0$, $9{,}0$ i $7{,}0$. Justifica per què el resultat final no és l'esperat localitzant l'error de lògica en l'estructura condicional.
- b) Corregeix el codi i modifica'l perquè descarti del recompte les notes errònies (menors que $0$ o majors que $10$), mostrant un missatge d'advertència específic sense sumar ni reiniciar el comptador.
En el joc «d'endevinar un número secret de l'$1$ al $100$», el teu company afirma: «Amb un bucle d'intents fixos és impossible garantir que l'usuari encerti; sempre…
En el joc «d'endevinar un número secret de l'$1$ al $100$», el teu company afirma: «Amb un bucle d'intents fixos és impossible garantir que l'usuari encerti; sempre estem obligats a utilitzar un while infinit fins que encerti».
- a) Rebat la seva afirmació: justifica matemàticament per què $7$ intents són suficients per endevinar amb total seguretat qualsevol número entre $1$ i $100$ si s'utilitza una estratègia de cerca binària (preguntar sempre pel punt mitjà).
- b) Dissenya en Python o pseudocodi el joc amb un límit de $7$ vides. El programa s'ha d'aturar tant si l'usuari encerta abans d'esgotar els intents com si es queda sense vides, mostrant missatges finals diferents. Justifica la condició lògica d'aturada que has triat.
Una botiga aplica la política següent: compres menors de $30\ \text{€}$ paguen $4{,}50\ \text{€}$ d'enviament; compres entre $30\ \text{€}$ i $50\ \text{€}$ tenen…
Una botiga aplica la política següent: compres menors de $30\ \text{€}$ paguen $4{,}50\ \text{€}$ d'enviament; compres entre $30\ \text{€}$ i $50\ \text{€}$ tenen enviament de franc; compres superiors a $50\ \text{€}$ tenen enviament de franc i un $10\ \%$ de descompte sobre el preu de la compra.
Un alumne va programar aquest codi:
precio = float(input("Total compra: "))
if precio > 50:
total = precio * 0.90
if precio >= 30:
total = precio
else:
total = precio + 4.50
print("Total a pagar:", total)
- a) Realitza la traça amb una compra de $60{,}00\ \text{€}$. Quin preu final imprimeix el programa? Justifica per què es produeix aquesta fallada de lògica en encadenar els condicionals.
- b) Reescriu el programa de manera correcta utilitzant una estructura condicional niada o amb
elif, i inclou una validació que avisi si s'introdueix un preu negatiu o zero.
Observa el programa següent, l'objectiu del qual és demanar l'edat a l'usuari i determinar si té edat legal per votar (a partir de $18$ anys complerts): a) Si intentes…
Observa el programa següent, l'objectiu del qual és demanar l'edat a l'usuari i determinar si té edat legal per votar (a partir de $18$ anys complerts):
if edad >= "18":
print("Puedes votar")
edad = input("Dime tu edad: ")
else:
print("No puedes votar")
- a) Si intentes executar el programa tal com està, en quina línia s'aturarà l'intèrpret de Python i per què no arribarà a executar la línia de l'
input? - b) Identifica i classifica tots els errors presents distingint entre errors de sintaxi (que impedeixen compilar/interpretar) i errors de tipus o lògica durant l'execució.
- c) Reescriu el codi corregit i introdueix una comprovació per evitar que el programa es pengi si l'usuari introdueix la seva edat amb text (per exemple, escrivint «divuit»).
Per regular una cruïlla escolar es proposa aquest algorisme en pseudocodi per a un semàfor amb polsador per a vianants: a) Detecta una greu fallada de seguretat viària…
Per regular una cruïlla escolar es proposa aquest algorisme en pseudocodi per a un semàfor amb polsador per a vianants:
mentre vertader:
verd_cotxes = ON, vermell_vianants = ON
si polsador_activat == 1:
esperar(5)
verd_cotxes = OFF, ambre_cotxes = ON
esperar(3)
ambre_cotxes = OFF, vermell_cotxes = ON
vermell_vianants = OFF, verd_vianants = ON
esperar(10)
verd_vianants = OFF, vermell_vianants = ON
- a) Detecta una greu fallada de seguretat viària en la transició de tornada: quan s'apaga el verd de vianants, què passa immediatament amb el trànsit rodat en la següent iteració del bucle?
- b) Dissenya una millora de l'algorisme (en pseudocodi o text estructurat) que solucioni aquesta fallada i que a més impedeixi el col·lapse del trànsit: si els vianants premen repetidament el botó, el semàfor ha de garantir sempre un mínim de $20$ segons ininterromputs en verd per als cotxes entre cicle i cicle.
Un equip desenvolupa el programari d'una caixa enregistradora utilitzant funcions: a) En executar aquest codi, Python produeix l'error: TypeError: unsupported operand…
Un equip desenvolupa el programari d'una caixa enregistradora utilitzant funcions:
def calcular_iva(precio):
total = precio * 1.21
pass # El programador va oblidar afegir l'última línia d'aquesta funció
def aplicar_descuento(total, rebaja):
resultado = total - rebaja
return resultado
precio_base = 100.0
precio_con_iva = calcular_iva(precio_base)
precio_final = aplicar_descuento(precio_con_iva, 10.0)
print("Precio final:", precio_final)
- a) En executar aquest codi, Python produeix l'error:
TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'. Interpreta el missatge i explica exactament com viatja el valorNoneper les variables del programa. - b) Un company sosté: «Per arreglar-ho n'hi ha prou amb canviar la línia de la primera funció per
print(precio * 1.21)». Rebat la seva afirmació explicant la diferència funcional entre mostrar un valor per pantalla i retornar un valor a la crida principal. - c) Corregeix el codi i afegeix una funció
es_valido(precio)que retorni un valor booleà (TrueoFalse) per verificar que l'import base no sigui negatiu abans de processar-lo.
Dissenya l'algorisme per a un terminal de recàrrega i cobrament del menjador escolar complint els requisits tècnics següents: La targeta parteix d'un saldo inicial de…
Dissenya l'algorisme per a un terminal de recàrrega i cobrament del menjador escolar complint els requisits tècnics següents:
-
La targeta parteix d'un saldo inicial de $20{,}00\ \text{€}$ i cada menú costa $4{,}50\ \text{€}$.
-
En un bucle, el programa pregunta quants menús es volen consumir durant el dia.
-
Si el saldo disponible no arriba per pagar la quantitat sol·licitada, l'operació es cancel·la, s'informa de l'import que falta i el saldo no es modifica.
-
Si hi ha saldo suficient, es descompta l'import i es comprova si el saldo restant és inferior a $5{,}00\ \text{€}$, mostrant en aquest cas l'avís «Saldo baix: recarregueu aviat».
-
El programa ha d'acabar automàticament quan el saldo restant sigui menor que el preu d'un menú individual ($4{,}50\ \text{€}$).
-
Justifica quin tipus de bucle has utilitzat i explica com evites que un usuari introdueixi un nombre negatiu de menús per augmentar artificialment el seu saldo.
Un sistema de qualificació calcula la nota final aplicant els pesos següents: Treball de classe ($20\ \%$), Pràctica de taller ($30\ \%$) i Examen teòric ($50\ \%$). El…
Un sistema de qualificació calcula la nota final aplicant els pesos següents: Treball de classe ($20\ \%$), Pràctica de taller ($30\ \%$) i Examen teòric ($50\ \%$). El professor ha programat la fórmula així:
trabajo = float(input("Nota trabajo: "))
taller = float(input("Nota taller: "))
examen = float(input("Nota examen: "))
nota_final = trabajo * 0.20 + taller * 0.30 + examen * 0.50 / 3
if nota_final > 5:
print("Aprobado")
else:
print("Suspenso")
- a) Prediu el resultat que mostrarà el programa si l'alumne obté un $10{,}0$ en tots tres apartats. Interpreta la prioritat d'operadors per justificar el valor numèric erroni que emmagatzema
nota_final. - b) Justifica per què aquest error és de lògica i no de sintaxi, i argumenta per què els errors lògics suposen un risc molt més gran en programes d'enginyeria o control que els de sintaxi.
- c) Detecta un segon error lògic en la condició de l'
ifrespecte al criteri legal habitual de qualificació (aprovar amb un $5{,}0$) i escriu la versió definitiva del programa corregit.
Repte del tema. Com a analista de dades novell, la teva missió és crear un programa en Python per analitzar l'impacte tèrmic al teu entorn i plantejar hàbits eficients.…
Repte del tema. Com a analista de dades novell, la teva missió és crear un programa en Python per analitzar l'impacte tèrmic al teu entorn i plantejar hàbits eficients.
-
Recollida de dades: Accedeix al web oficial de l'AEMET i registra la temperatura màxima registrada al teu municipi durant els darrers $5$ dies consecutius.
-
Programació textual: En un editor en línia gratuït com Trinket.io, escriu un script en Python que guardi aquests $5$ valors en una llista. Mitjançant un bucle
fori condicionalsif-else, programa el càlcul automàtic de la temperatura mitjana ($\bar{x}$) i la identificació del dia més calorós. -
Informe i proposta: Genera un document breu que inclogui el codi font comentat, una captura de pantalla del resultat a la consola i una proposta justificada amb dues mesures de climatització domèstica si la mitjana supera els $21,5$ °C.
Es valorarà:
-
Correcció sintàctica del codi textual (gestió de llistes, bucles i estructures condicionals).
-
Precisió en la importació de dades reals de l'AEMET i exactitud del càlcul matemàtic.
-
Claredat dels comentaris en el programa i viabilitat tècnica de la proposta energètica.