Programa 9
Descripción del problema:
Este programa va a solucionar el problema de visualización del programa 8 cambiando la cadena de texto progresivamente. Es decir, una variable de texto va a incluir el saludo y los nombres de cada uno de los presentes. Para hacerlo, aunque hay muchas posibilidades, se va a modificar el programa 8. Esto implica que se van a seguir guardando los nombres en una lista.
Materia nueva:
Aquí hay varias apreciaciones respecto a la estructura for.
Si nos paramos a pensar, el conjunto de los números enteros es como una lista. Los días de la semana forman otra lista, y un largo etcétera. Tenemos un elemento inicial y otros siguientes ordenados; eso define una lista.
Pues bien, for puede, no sólo recorrer una lista de enteros sino también una de cualquier otra cosa.
Su sintaxis es muy parecida a la que vimos en el programa 7 pero usando la lista dentro de range:
python
for i in range(lista):
Si sólo fuera cuestión de números, podríamos haber simulado una estructura for por medio de un while:
i=0
while i<numerofinal:
órdenes
i=i+1
Si for se ha ganado un puesto en Python es por la potencia que otorga esta posibilidad.
En este programa vamos a hacer referencia a dos situaciones más que van indisolublemente unidas:
- El cambio recurrente en las variables.
- La lectura de programas.
¿Por qué van unidas? Pues muy sencillo, porque para entender bien qué estamos realizando si cambiamos una variable cada vez que se ejecuta un paso en un for es necesario tener las ideas muy claras, y eso lo da la lectura de programas; debemos ser capaces de seguir la traza de las diferentes variables a lo largo del programa para saber cómo van a acabar.
¿Qué es un cambio recurrente? Es un cambio que se repite, generalmente dentro de una estructura tipo while y for.
No es algo del todo nuevo, hemos realizado cambios como veces=veces+1 donde hemos cambiado veces por su siguiente. La cuestión es que ahora lo meteremos en una estructura que va a realizar ese cambio un montón de veces. No hay ningún cambio de sintaxis, esta explicación no va a parar a ninguna orden o estructura nueva, es simplemente para que tomes conciencia del paso tan grande que se va a realizar.
A continuación te presento un método para hacer una lectura de programa. No es la única forma y cada uno puede hacerlo según le parezca, eso sí, el orden es imprescindible.
Se pone: “Situación inicial” y se escriben las variables tal y lo que valen en su inicio.
Cuando hay un cambio, se escribe debajo de la variable el nuevo valor o la salida por pantalla. Así se va realizando hasta el final.
Es necesario poner la cadena de texto entre comillas para señalar que es texto.
Se representa a continuación el del programa 7:
|Situación inicial|||||Pantalla| |--|--|--|--|--|--| |Personas (entero)|i|nombre|edad|veces|Hola, ¿Cuántos estáis?| |"3"|||||| |3|||||| ||0||||| ||||||¿Cómo te llamas?| |||"Jorge"|||| ||||||¿Cuántos años tienes?| ||||27||| |||||1|| |||||"1"|| ||||27||| ||||||Te hemos preguntado 1 veces| ||||||Pon orden, Jorge| ||1||||| ||||||¿Cómo te llamas?| |||Rodrigo|||| ||||||¿Cuántos años tienes?| ||||"asd"||| |||||1|| ||||||Pon un número, que no es tan difícil| ||||"16"||| |||||2|| |||||"2"|| ||||16||| ||||||Te hemos preguntado 2 veces| ||||||Estudia, Rodrigo| ||2||||| ||||||¿Cómo te llamas?| |||"Inés"|||| ||||||¿Cuántos años tienes?| ||||"14"||| ||||||Te hemos preguntado 1 veces| ||||||Estudia, Inés| |3|2|"Inés"|14|1|||
Situación final. En el caso de que quisiéramos ver otra situación, nos moveríamos a la línea en cuestión y miraríamos el valor de cada una de ellas. Las celdas en blanco no implican que las variables no tengan valor, su valor es el del último cambio: el primero que esté subiendo por esa columna desde la fila donde se quiere saber el valor. Simplemente se ha hecho así por limpieza e identificar fácilmente cuál es la variable que está cambiando en cada momento.
Se deja como ejercicio hacerlo para el presente programa.
Solución
Algoritmo:
1.- Saludo y pregunto cuánta gente hay
2.- Para cada uno de ellos:
2.1.- Pido el nombre y lo voy almacenando en algún sitio: Una lista.
3.- Modifico la variable donde haya puesto "Hola, " para ir añadiéndole nombres según recorro la lista.
Solución:
Comentarios:
Es necesario hacer la tabla indicada en el apartado de Materia nueva para entender qué está pasando con la variable saludo. Queda como ejercicio.
Queda como ejercicio conseguir que entre Inés y Verónica haya una y.
No Comments