UD 1 - P2: Actividades extra de ampliación
P2 - Actividades extra de ampliación¶
Estas diez actividades complementan la Práctica 1.2: Ejercicios progresivos de Python.
Actividades extra y opcionales. Realiza estos ejercicios si quieres profundizar después de completar la práctica.
No sustituyen los 32 ejercicios de la Práctica 1.2 ni forman parte de su entrega obligatoria.
1. Objetivos¶
- Profundizar en las conversiones, los operadores y el formato de salida.
- Resolver pequeños problemas descomponiendo entradas, procesamiento y salidas.
- Probar casos normales y valores que requieran una validación específica.
2. Relación con RA y criterios de evaluación¶
| Código | Descripción literal de la normativa |
|---|---|
| RA 1 | Reconoce la estructura de un programa informático, identificando y relacionando los elementos propios del lenguaje de programación utilizado. |
| CE 1.a | Se han identificado los bloques que componen la estructura de un programa informático. |
| CE 1.d | Se han identificado los distintos tipos de variables y la utilidad específica de cada uno. |
| CE 1.e | Se ha modificado el código de un programa para crear y utilizar variables. |
| CE 1.f | Se han creado y utilizado constantes y literales. |
| CE 1.g | Se han clasificado, reconocido y utilizado en expresiones los operadores del lenguaje. |
| CE 1.h | Se ha comprobado el funcionamiento de las conversiones de tipo explícitas e implícitas. |
Las diez ampliaciones aportan evidencias de estos criterios mediante programas ejecutables, conversiones, operadores, variables, literales y comprobaciones de los casos indicados en cada enunciado.
3. Requisitos y recursos¶
- Haber completado la Práctica 1.2.
- Python 3, un editor o IDE y una terminal.
- Conocimientos de variables, tipos, operadores, conversiones y cadenas.
- No se necesitan bibliotecas externas.
4. Pasos a seguir¶
- Elige las actividades extra que quieras realizar después de completar la práctica obligatoria.
- Identifica las entradas, el procesamiento y las salidas de cada enunciado.
- Implementa cada solución en un archivo independiente y prueba sus ejemplos y casos límite.
5. Comprobaciones de finalización¶
- Cada actividad elegida se ejecuta sin errores con los datos del enunciado.
- Las conversiones y operaciones producen los resultados esperados.
- Las entradas inválidas indicadas por cada actividad reciben una respuesta comprensible.
- Las soluciones se guardan separadas de la entrega obligatoria de P2.
6. Ejercicios y entregables¶
6.1. Ampliación: Conversor de segundos¶
Escribe un programa que solicite una cantidad entera de segundos y la convierta a horas, minutos y segundos.
Por ejemplo, para 7384 segundos deberá mostrar:
6.2. Ampliación: Desglose de una compra¶
Una tienda vende un producto y aplica un determinado porcentaje de descuento y posteriormente un 21 % de IVA.
Solicita:
El programa debe mostrar, con dos decimales:
6.3. Ampliación: Conversión de días¶
Solicita una cantidad de días y exprésala en semanas y días restantes.
Por ejemplo:
6.4. Ampliación: Intercambiar nombre y apellidos¶
Solicita un nombre completo con este formato:
y muestra:
6.5. Ampliación: Generador de nombre de usuario¶
Solicita:
Genera un identificador utilizando:
- las tres primeras letras del nombre;
- las tres primeras letras del primer apellido;
- la primera letra del segundo apellido;
- los dos últimos dígitos del año.
El resultado debe mostrarse completamente en minúsculas.
Por ejemplo:
6.6. Ampliación: Coordenadas geográficas¶
Una coordenada se introduce con el siguiente formato:
Extrae y muestra por separado:
Después conviértelas a float y calcula la suma de ambas coordenadas.
No utilices split().
Crea una función:
y otra:
6.7. Ampliación: Duración de una película¶
Una película comienza a una determinada hora y conocemos su duración en minutos.
Solicita:
Calcula a qué hora termina.
El resultado debe tener formato hh:mm:
6.8. Ampliación: Ocultar parte de un correo electrónico¶
Solicita una dirección:
y muestra una versión parcialmente oculta:
Debe conservar:
- la primera letra del usuario;
- la
@; - el dominio completo.
Crea una función:
6.9. Ampliación: Validador básico de contraseña¶
Solicita una contraseña y comprueba que:
- tenga al menos 8 caracteres;
- contenga al menos un número;
- no contenga espacios.
Puedes utilizar:
Y una característica que todavía no hemos estudiado:
temperaturas = [12, 18, 31]
if any(t > 30 for t in temperaturas):
print("Alguna temperatura supera los 30 grados")
El programa deberá mostrar:
o:
6.10. Ampliación: Cajero automático¶
Solicita una cantidad entera de euros y calcula el menor número posible de billetes utilizando:
Por ejemplo:
Si la cantidad no puede obtenerse exactamente, por ejemplo 183, el programa deberá mostrar:
7. Solución orientativa¶
No existe una única implementación. Una solución correcta identifica las entradas, usa las conversiones y operaciones adecuadas, muestra el formato solicitado y valida las condiciones indicadas en cada enunciado. Como apoyo, puedes consultar las soluciones de P2.