Skip to content

Instantly share code, notes, and snippets.

@AntonyMRuiz
Last active November 10, 2025 19:24
Show Gist options
  • Save AntonyMRuiz/39c691e9ed8ee576bfe49e2cf202a1bd to your computer and use it in GitHub Desktop.
Save AntonyMRuiz/39c691e9ed8ee576bfe49e2cf202a1bd to your computer and use it in GitHub Desktop.

Actividad grupal: EcoRide – Simulador de alquiler de bicicletas sostenibles

Contexto:

En la ciudad de GreenCity se ha implementado un sistema de alquiler de bicicletas eléctricas llamado EcoRide, con el objetivo de promover la movilidad sostenible y reducir la contaminación. El equipo deberá crear un programa en Python que simule el funcionamiento de una estación de autoservicio para el alquiler de bicicletas. Todo el funcionamiento del programa debe desarrollarse por terminal, sin interfaces gráficas ni librerías externas.

El programa debe permitir que un usuario interactúe con el sistema simulando un proceso real de alquiler. Deberá elegir el tipo de bicicleta, ingresar el tiempo de uso, seleccionar el método de pago y visualizar el costo final. El sistema deberá mostrar menús, procesar decisiones mediante condicionales y repetir el proceso hasta que el usuario decida salir.

El propósito de esta actividad es que los participantes apliquen los conceptos fundamentales de programación estructurada en Python. Deberán trabajar con variables simples de tipo entero, flotante, cadena y booleano. Se espera el uso de estructuras de decisión con if, elif, else y al menos una estructura de condicional anidado. Además, el flujo del programa debe ser controlado mediante un bucle while que permita repetir la simulación hasta que el usuario indique lo contrario.

Requerimientos del programa:

  1. El programa debe iniciar mostrando un menú principal con opciones como alquilar bicicleta, consultar tarifas, pagar o salir.

  2. Al seleccionar la opción de alquiler, el usuario deberá escoger el tipo de bicicleta, por ejemplo, estándar o premium. Cada tipo de bicicleta tendrá un costo por minuto diferente representado en una variable float.

  3. El usuario deberá ingresar el tiempo de uso en minutos utilizando una variable de tipo entero. Si el valor ingresado es menor o igual a cero, el programa debe mostrar un mensaje de error y solicitar nuevamente un valor válido.

  4. El programa calculará el costo base multiplicando el tiempo de uso por el valor por minuto de la bicicleta seleccionada.

  5. El sistema deberá solicitar el método de pago, que puede ser efectivo, tarjeta o puntos. Este dato se almacenará en una variable de tipo cadena.

  6. De acuerdo con el tipo de bicicleta, el tiempo de uso y el método de pago, el programa deberá aplicar condiciones y descuentos específicos mediante estructuras if, elif y else, incluyendo al menos una condición anidada.

    • Si el usuario utiliza la bicicleta durante más de sesenta minutos y paga con tarjeta, se le aplicará un descuento del diez por ciento.
    • Si el uso es menor a diez minutos y el método de pago son puntos, no habrá descuento.
    • Si el día corresponde a fin de semana, el sistema aplicará un recargo del cinco por ciento sobre el total.
    • Si el usuario devuelve la bicicleta fuera del tiempo establecido, se le aplicará una penalización fija.
  7. El programa deberá calcular y mostrar en pantalla un resumen del servicio que incluya tipo de bicicleta, tiempo de uso, precio base, descuentos o recargos aplicados y el total a pagar.

  8. Después de finalizar un alquiler, el programa deberá preguntar al usuario si desea realizar otro. La respuesta será evaluada mediante una variable booleana que controle la continuación o finalización del bucle while.

Criterios de evaluación:

  1. Uso correcto de variables de tipo entero, flotante, cadena y booleana.
  2. Implementación de un bucle while que permita la repetición del proceso de forma controlada.
  3. Uso de estructuras condicionales if, elif y else con al menos una estructura anidada.
  4. Validación de entradas y manejo adecuado de errores.
  5. Coherencia en los mensajes mostrados en consola y claridad en la interacción con el usuario.
  6. Estructura lógica del flujo del programa, desde la selección del tipo de bicicleta hasta la generación del resultado final.
  7. Orden y legibilidad del código, con comentarios que expliquen las partes más importantes.
  8. Cumplimiento del funcionamiento esperado sin el uso de librerías externas ni estructuras de datos complejas.

Entrega:

Se debe entregar un único archivo de Python que contenga el programa completo con todas las funcionalidades descritas. El programa debe ejecutarse correctamente desde la terminal, mostrando los resultados de acuerdo con las entradas ingresadas por el usuario.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment