Ejercicios: Programación textual
Explica qué es una variable con el símil de una caja con etiqueta y describe qué hace cada línea: puntos = 0, puntos = puntos + 1, print(puntos). ¿Qué valor aparece en…
Explica qué es una variable con el símil de una caja con etiqueta y describe qué hace cada línea: puntos = 0, puntos = puntos + 1, print(puntos). ¿Qué valor aparece en pantalla y por qué no es un error sumarle algo a una variable que «ya tenía» un valor?
Clasifica estos valores según su tipo de dato (entero, decimal, texto o booleano) y pon un ejemplo de uso para cada tipo en un programa de una tienda: 13, 3,75, "Ana",…
Clasifica estos valores según su tipo de dato (entero, decimal, texto o booleano) y pon un ejemplo de uso para cada tipo en un programa de una tienda: 13, 3,75, "Ana", True.
Explica qué hacen las órdenes input() y print() en Python, qué diferencia hay entre ellas y escribe un programa de dos líneas que pregunte tu nombre y te salude usándolo.
Explica qué hacen las órdenes input() y print() en Python, qué diferencia hay entre ellas y escribe un programa de dos líneas que pregunte tu nombre y te salude usándolo.
La figura muestra un diagrama de flujo y, a su lado, el programa que hace lo mismo, pero con la condición tapada. Escribe la condición que falta en la línea del if (debe…
La figura muestra un diagrama de flujo y, a su lado, el programa que hace lo mismo, pero con la condición tapada.
Escribe la condición que falta en la línea del if (debe comparar la variable edad con $12$), explica qué hace int(input("Edad: ")) y por qué las líneas dentro del if y del else van sangradas hacia la derecha.
Explica qué es un condicional con un ejemplo de tu vida diaria (si llueve tomo el paraguas; si no, las gafas de sol) y escríbelo en tres líneas de pseudocódigo:…
Explica qué es un condicional con un ejemplo de tu vida diaria (si llueve tomo el paraguas; si no, las gafas de sol) y escríbelo en tres líneas de pseudocódigo: condición, qué pasa si se cumple y qué pasa si no.
Explica la diferencia entre un bucle for (repetir un número conocido de veces) y un bucle while (repetir mientras se cumpla una condición), y pon un ejemplo cotidiano de…
Explica la diferencia entre un bucle for (repetir un número conocido de veces) y un bucle while (repetir mientras se cumpla una condición), y pon un ejemplo cotidiano de cada uno: dar diez vueltas a la cancha frente a seguir remando hasta llegar a la orilla.
Explica qué es una función en un programa y qué ventaja tiene escribir una vez def saludar(): y poder llamarla muchas veces, en lugar de copiar las mismas líneas una y…
Explica qué es una función en un programa y qué ventaja tiene escribir una vez def saludar(): y poder llamarla muchas veces, en lugar de copiar las mismas líneas una y otra vez.
Este programa tiene tres errores típicos: nombre = input("Tu nombre: ), if nombre = "Fátima", print("Hola"). Encuentra cada error (una comilla sin cerrar, un = que…
Este programa tiene tres errores típicos: nombre = input("Tu nombre: ), if nombre = "Fátima", print("Hola"). Encuentra cada error (una comilla sin cerrar, un = que debería ser == y explica la diferencia), reescribe el programa corregido y di qué mensaje de error daría el computador en cada caso.
Predice la salida de este programa sin ejecutarlo, siguiendo el valor de las variables línea a línea: a = 4, b = 3, a = a + b, b = a - b, print(a), print(b). Escribe la…
Predice la salida de este programa sin ejecutarlo, siguiendo el valor de las variables línea a línea: a = 4, b = 3, a = a + b, b = a - b, print(a), print(b). Escribe la traza completa (qué vale cada variable tras cada línea) y no solo el resultado.
Escribe un programa de tres líneas que pida el nombre y la edad de una persona y escriba una frase completa usándolos (por ejemplo, «Mei tiene 14 años»). Explica qué…
Escribe un programa de tres líneas que pida el nombre y la edad de una persona y escriba una frase completa usándolos (por ejemplo, «Mei tiene 14 años»). Explica qué tipo de dato devuelve siempre input() y para qué sirve int() al pedir la edad.
Escribe un programa que pida un número y diga si es positivo, negativo o cero. Indica qué estructura usas (un condicional con dos ramas o tres), qué comparaciones haces…
Escribe un programa que pida un número y diga si es positivo, negativo o cero. Indica qué estructura usas (un condicional con dos ramas o tres), qué comparaciones haces y pruébalo mentalmente con los valores $7$, $-3$ y $0$.
Un programa convierte la nota numérica en calificación: menos de $5$ es «reprobado», de $5$ a $6{,}9$ es «aprobado» y de $7$ en adelante es «alto». Escríbelo con if,…
Un programa convierte la nota numérica en calificación: menos de $5$ es «reprobado», de $5$ a $6{,}9$ es «aprobado» y de $7$ en adelante es «alto». Escríbelo con if, elif y else, explica por qué el orden de las condiciones importa y qué pasaría si la primera condición fuera nota > 5.
Escribe un bucle for que muestre la tabla de multiplicar del $3$ (del $3 \cdot 1$ al $3 \cdot 10$), indica cuántas veces se repite el cuerpo del bucle y explica qué…
Escribe un bucle for que muestre la tabla de multiplicar del $3$ (del $3 \cdot 1$ al $3 \cdot 10$), indica cuántas veces se repite el cuerpo del bucle y explica qué cambiarías para mostrar la tabla del $7$ sin reescribir todo el programa.
Lee este programa y explica qué hace: n = 5, while n > 0:, print(n), n = n - 1, y al final print("¡Ya!"). Escribe la salida completa en pantalla y razona qué pasaría si…
Lee este programa y explica qué hace: n = 5, while n > 0:, print(n), n = n - 1, y al final print("¡Ya!"). Escribe la salida completa en pantalla y razona qué pasaría si olvidamos la línea n = n - 1.
Analiza esta función: def area_cuadrado(lado): y dentro return lado * lado. Explica qué es el parámetro, qué es el valor que devuelve y qué escribiría en pantalla cada…
Analiza esta función: def area_cuadrado(lado): y dentro return lado * lado. Explica qué es el parámetro, qué es el valor que devuelve y qué escribiría en pantalla cada llamada: print(area_cuadrado(5)), print(area_cuadrado(2{,}5)).
Un compañero escribe un programa que pide contraseñas hasta acertar: clave = "", while clave != "sol":, y dentro solo print("incorrecta"). Explica por qué el programa no…
Un compañero escribe un programa que pide contraseñas hasta acertar: clave = "", while clave != "sol":, y dentro solo print("incorrecta"). Explica por qué el programa no termina nunca, qué línea falta dentro del bucle (volver a pedir la clave) y la regla general sobre los bucles while: algo tiene que poder cambiar la condición.
Para seleccionar a los clasificados de un torneo de robótica, se leen cinco puntuaciones (del $0$ al $10$). Un compañero ha propuesto este código para contar cuántas son…
Para seleccionar a los clasificados de un torneo de robótica, se leen cinco puntuaciones (del $0$ al $10$). Un compañero ha propuesto este código para contar cuántas son iguales o superiores 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) Predice qué mostrará por pantalla si el usuario introduce sucesivamente las notas: $6{,}0$, $8{,}0$, $4{,}0$, $9{,}0$ y $7{,}0$. Justifica por qué el resultado final no es el esperado localizando el error de lógica en la estructura condicional.
- b) Corrige el código y modifícalo para que descarte del recuento las notas erróneas (menores que $0$ o mayores que $10$), mostrando un mensaje de advertencia específico sin sumar ni reiniciar el contador.
Una tienda aplica la siguiente política: compras menores de $\$30$ pagan $4{,}\$50$ de envío; compras entre $\$30$ y $\$50$ tienen envío gratis; compras superiores a…
Una tienda aplica la siguiente política: compras menores de $\$30$ pagan $4{,}\$50$ de envío; compras entre $\$30$ y $\$50$ tienen envío gratis; compras superiores a $\$50$ tienen envío gratis y un $10\ \%$ de descuento sobre el precio de la compra.
Un estudiante programó este código:
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) Realiza la traza con una compra de $60{,}\$00$. ¿Qué precio final imprime el programa? Justifica por qué se produce ese fallo de lógica al encadenar los condicionales.
- b) Reescribe el programa de forma correcta utilizando una estructura condicional anidada o con
elif, e incluye una validación que avise si se introduce un precio negativo o cero.
Para regular un cruce escolar se propone este algoritmo en pseudocódigo para un semáforo con pulsador peatonal: a) Detecta un grave fallo de seguridad vial en la…
Para regular un cruce escolar se propone este algoritmo en pseudocódigo para un semáforo con pulsador peatonal:
mientras verdadero:
verde_coches = ON, rojo_peatones = ON
si pulsador_activado == 1:
esperar(5)
verde_coches = OFF, ambar_coches = ON
esperar(3)
ambar_coches = OFF, rojo_coches = ON
rojo_peatones = OFF, verde_peatones = ON
esperar(10)
verde_peatones = OFF, rojo_peatones = ON
- a) Detecta un grave fallo de seguridad vial en la transición de vuelta: cuando se apaga el verde de peatones, ¿qué ocurre inmediatamente con el tráfico vehicular en la siguiente iteración del bucle?
- b) Diseña una mejora del algoritmo (en pseudocódigo o texto estructurado) que solucione ese fallo y que además impida el colapso del tráfico: si los peatones pulsan repetidamente el botón, el semáforo debe garantizar siempre un mínimo de $20$ segundos ininterrumpidos en verde para los carros entre ciclo y ciclo.
Un equipo desarrolla el software de una caja registradora usando funciones: a) Al ejecutar este código, Python produce el error: TypeError: unsupported operand type(s)…
Un equipo desarrolla el software de una caja registradora usando funciones:
def calcular_iva(precio):
total = precio * 1.21
pass # El programador olvidó añadir la última línea de esta función
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) Al ejecutar este código, Python produce el error:
TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'. Interpreta el mensaje y explica exactamente cómo viaja el valorNonepor las variables del programa. - b) Un compañero sostiene: «Para arreglarlo basta cambiar la línea de la primera función por
print(precio * 1.21)». Rebate su afirmación explicando la diferencia funcional entre mostrar un valor por pantalla y retornar un valor a la llamada principal. - c) Corrige el código y añade una función
es_valido(precio)que devuelva un valor booleano (TrueoFalse) para verificar que el importe base no sea negativo antes de procesarlo.
Diseña el algoritmo para un terminal de recarga y cobro del restaurante escolar cumpliendo los siguientes requisitos técnicos: La tarjeta parte de un saldo inicial de…
Diseña el algoritmo para un terminal de recarga y cobro del restaurante escolar cumpliendo los siguientes requisitos técnicos:
-
La tarjeta parte de un saldo inicial de $20{,}\$00$ y cada menú cuesta $4{,}\$50$.
-
En un bucle, el programa pregunta cuántos menús se desean consumir en el día.
-
Si el saldo disponible no alcanza para pagar la cantidad solicitada, la operación se cancela, se informa del importe que falta y el saldo no se modifica.
-
Si hay saldo suficiente, se descuenta el importe y se comprueba si el saldo restante es inferior a $5{,}\$00$, mostrando en tal caso el aviso «Saldo bajo: recargue pronto».
-
El programa debe terminar automáticamente cuando el saldo restante sea menor que el precio de un menú individual ($4{,}\$50$).
-
Justifica qué tipo de bucle has utilizado y explica cómo evitas que un usuario introduzca un número negativo de menús para aumentar artificialmente su saldo.
Un sistema de calificación calcula la nota final aplicando los siguientes pesos: Trabajo de clase ($20\ \%$), Práctica de taller ($30\ \%$) y Examen teórico ($50\ \%$).…
Un sistema de calificación calcula la nota final aplicando los siguientes pesos: Trabajo de clase ($20\ \%$), Práctica de taller ($30\ \%$) y Examen teórico ($50\ \%$). El profesor programó la fórmula así:
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) Predice el resultado que mostrará el programa si el estudiante obtiene un $10{,}0$ en los tres apartados. Interpreta la prioridad de operadores para justificar el valor numérico erróneo que almacena
nota_final. - b) Justifica por qué este error es de lógica y no de sintaxis, y argumenta por qué los errores lógicos suponen un riesgo mucho mayor en programas de ingeniería o control que los de sintaxis.
- c) Detecta un segundo error lógico en la condición del
ifrespecto al criterio habitual de calificación (aprobar con $5{,}0$) y escribe la versión definitiva del programa corregido.