Saltar a contenido

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

  1. Elige las actividades extra que quieras realizar después de completar la práctica obligatoria.
  2. Identifica las entradas, el procesamiento y las salidas de cada enunciado.
  3. 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:

7384 segundos son 2 horas, 3 minutos y 4 segundos.

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:

Precio original
Porcentaje de descuento

El programa debe mostrar, con dos decimales:

Precio original
Descuento aplicado
Precio después del descuento
IVA
Precio final

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:

Introduce el número de días: 45

45 días equivalen a:
6 semanas y 3 días

6.4. Ampliación: Intercambiar nombre y apellidos

Solicita un nombre completo con este formato:

Bolsom Perdido, Frodo Juan

y muestra:

Frodo Juan Bolsom Perdido

6.5. Ampliación: Generador de nombre de usuario

Solicita:

Nombre: Laura
Primer apellido: Romero
Segundo apellido: Vega
Año de nacimiento: 2004

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:

lauromv04

6.6. Ampliación: Coordenadas geográficas

Una coordenada se introduce con el siguiente formato:

36.4623,-6.2057

Extrae y muestra por separado:

Latitud: 36.4623
Longitud: -6.2057

Después conviértelas a float y calcula la suma de ambas coordenadas.

No utilices split().

Crea una función:

def obtener_latitud(coordenadas):
    ...

y otra:

def obtener_longitud(coordenadas):
    ...

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:

Hora de comienzo: 18
Minuto de comienzo: 45
Duración: 137

Calcula a qué hora termina.

El resultado debe tener formato hh:mm:

La película termina a las 21:02

6.8. Ampliación: Ocultar parte de un correo electrónico

Solicita una dirección:

diego.cano@iesrafaelalberti.es

y muestra una versión parcialmente oculta:

d*********@iesrafaelalberti.es

Debe conservar:

  • la primera letra del usuario;
  • la @;
  • el dominio completo.

Crea una función:

def ocultar_correo(correo):
    ...

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:

texto.isdigit()

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:

Contraseña válida

o:

Contraseña no válida

6.10. Ampliación: Cajero automático

Solicita una cantidad entera de euros y calcula el menor número posible de billetes utilizando:

50 €
20 €
10 €
5 €

Por ejemplo:

Cantidad: 185

Billetes de 50 €: 3
Billetes de 20 €: 1
Billetes de 10 €: 1
Billetes de 5 €: 1

Si la cantidad no puede obtenerse exactamente, por ejemplo 183, el programa deberá mostrar:

La cantidad debe ser múltiplo de 5.

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.

8. Fuentes y referencias