Recursos libres para aprender a programar en español
Vamos a ahorrar para un viaje post COVID 😷. Tenemos una alcancía comunitaria (nuestro pozo) y para decidir si podemos viajar, debemos corroborar que el pozo tenga plata.
Definí una función
pozo_vacio
, que nos indique si elpozo
está en 0. Ejemplo:>>> pozo = 0 >>> pozo_vacio() True >>> pozo = 100 >>> pozo_vacio() False
Sabemos que para llegar al Chaltén necesitamos por persona 3000 pesos
Hacé una función
cuanta_gente_viaja_al_chalten
que retorne, según el monto delpozo
, la cantidad de personas que pueden viajar. ¡Tené en cuenta que media persona no puede viajar! 😛Ejemplo:
>>> pozo = 3000 >>> cuanta_gente_viaja_al_chalten() 1 >>> pozo = 1500 >>> cuanta_gente_viaja_al_chalten() 0 >>> pozo = 6000 >>> cuanta_gente_viaja_al_chalten() 2 >>> pozo = 6500 >>> cuanta_gente_viaja_al_chalten() 2
¡A quién no le gusta tener opciones! Sabemos cuánto nos sale por persona el viaje al Chaltén y nos pasaron en la agencia de viaje los valores por persona a Tilcara ($3500 por persona) y Mendoza ($2500 por persona).
Definí una función
hasta_donde_llegamos
que según la cantidad de personas que van a viajar, nos devuelva un string con el nombre de la ciudad a la que podemos llegar. Y si no nos alcanza, que nos recomiende seguir ahorrando:>>> hasta_donde_llegamos(2) 'Tilcara' >>> hasta_donde_llegamos(5) 'Seguí ahorrando'
Pero para todo esto tenga sentido, hay que poner plata 🤑
Definí un procedimiento llamada
aportar_al_pozo
, que tome como parámetro un aporte (monto de plata) y actualice el monto delpozo
:>>> pozo = 500 >>> aportar_al_pozo(1000) >>> pozo 1500
¿Pero qué pasa si alguien se quiere bajar? La agencia nos devuelve solo 500, sin importar el monto inicial (asumimos que las personas deben aportar inicialmente más de 500)
Definí el procedimiento
darse_de_baja
, que descuenta del pozo 500
Por una nueva reglamentación, todos pozos de dinero que tengan más de $15000, deberán tributar un impuesto (llamado I.V.G.: Impuesto a las Variables Globales) del 1% si el pozo. Por la misma reglamentación, el valor máximo del impuesto será de $500.
Definí:
- una función
calcular_monto_ivg
, que indique el valor del impuesto I.V.G. que el pozo debe pagar;- un procedimiento
aplicar_ivg
, que descuente delpozo
el valor del impuesto que corresponda.Ejemplos:
>>> pozo = 1000 >>> calcular_monto_ivg() 0 # porque para tributar el monto debe ser de al menos $15000 >>> pozo = 16000 >>> calcular_monto_ivg() 160 # porque es un pozo de más de $15000, y debe tributar el 1% >>> pozo = 125000 >>> calcular_monto_ivg() 500 # porque el valor máximo del impuesto es 500 (el 1% de 125000 hubiera sido $1250) >>> aplicar_ivg() >>> monto 124500 # porque le restó los $500 del impuesto
¡Otra nueva reglamentación! Después de algunas quejas contra el I.V.G. 😡, se determinó que ningún pozo deberá pagar el impuesto más de tres veces. En otras palabras, al aplicar el impuesto, sólo deberemos descontar del pozo su monto si se aplicó hasta 3 veces. Ejemplo:
>>> monto = 100000
>>> aplicar_ivg() # primera aplicación
>>> monto
99500
>>> aplicar_ivg() # segunda aplicación
>>> monto
99000
>>> aplicar_ivg() # tercera aplicación
>>> monto
98500
>>> aplicar_ivg() # cuarta aplicación
>>> aplicar_ivg() # quinta aplicación
>>> aplicar_ivg() # etc
>>> aplicar_ivg() # etc
>>> monto
98500 # a partir de la cuarta aplicación ya no se descuenta más del pozo
Modificá el procedimiento
aplicar_ivg
para que refleje estos cambios de reglamentación.💡 Sugerencia: para poder hacer estos cambios en la aplicación del impuesto I.V.G., quizás te convenga agregar nuevas variables globales (qué ironía 😜).
Parece que la recaudación no anduvo tan bien y la gente se quiere retirar del pozo 😥️. Así que definimos una nueva regla: si no llegamos a un objetivo mínimo de $1000, el pozo vuelve a cero (porque se devolverá la plata a sus participantes 💸️)
Definí un procedimiento
volver_a_empezar
, tal que si tenemos menos de $1000 en elpozo
, lo vuelva a cero.
En la clase están votando al delegado que representará al curso. Pero como esta es una clase de pensamiento computacional, vamos a crear un procedimiento declarar_delegado
que asigne en la variable global delegado
el nombre de la persona que tenga más votos:
>>> declarar_delegado("Perla", 5, "Enzo", 2)
>>> delegado
Perla 2022
Definí el procedimiento
declarar_delegado
En la comisión E están creando el registro histórico de delegados/as del curso. Para ellos quieren ahora un procedimiento que les permita registrar los/las delegados/as del curso en cada año en la variable global delegados_por_anio
>>> registrar_delegado_del_anio("Sol", 2021)
>>> registrar_delegado_del_anio("Perla", 2022)
>>> delegados_por_anio
Sol 2021, Perla 2022