El hecho de 'anidar' estructuras se refiere a colocar unas dentro de otras según se requiera, anidar estructuras o sentencias es unas práctica muy común en la programación ya que en algunas ocasiones es forzosamente necesaria y en otras ayuda a reducir y optimizar al mismo tiempo nuestro código.
► Ejemplo:
Para a <- 1 hasta 10 hacer
Si a < 6 entonces
Escribe "a es menor que 6"
Si_No
Escribe "a es mayor o igual que 6
En el ejemplo anterior se anidaron dos estructuras: un "si" (if) dentro de un "para" (for), por lo que la sentencia "si" se ejecutará tantas veces como se repita el "para".
Para que quede un poco más claro pensemos en otro ejemplo; supongamos que necesitamos leer las calificaciones finales de un grupo de 5 alumnos, del cual debemos contar y mostrar cuantos de ellos aprobaron y cuantos no lo hicieron.
Lo haremos de dos maneras, una sin recurrir a las estructuras anidadas y la segunda anidando las estructuras necesarias.
► 1) Sin anidar
Empieza
calif[5] tipo arreglo de reales
aprobados, reprobados tipo entero
Para i <-1 hasta 5 hacer
Escribe "Ingresa calificación"
Leer calif[i]
Fin_Para
Si calif[1] > 5.9 entonces
aprobados <- aprobados + 1
Si_No
reprobados <- reprobados + 1
Si calif[2] > 5.9 entonces
aprobados <- aprobados + 1
Si_No
reprobados <- reprobados + 1
Si calif[3] > 5.9 entonces
aprobados <- aprobados + 1
Si_No
reprobados <- reprobados + 1
Si calif[4] > 5.9 entonces
aprobados <- aprobados + 1
Si_No
reprobados <- reprobados + 1
Si calif[5] > 5.9 entonces
aprobados <- aprobados + 1
Si_No
reprobados <- reprobados + 1
Fin
► 2) Empleando Estructuras Anidadas
Empieza
calif tipo real
aprobados, reprobados tipo entero
Para i <- 1 hasta 5 hacer
Escribe "Ingresa calificación "
Leer calif
Si calif > 5.9 entonces
aprobados <- aprobados + 1
Si_No
reprobados <- reprobados + 1
Fin_Si
Fin_Para
Escribe "Número de aprobados: ",aprobados
Escribe "Número de no aprobados: ",reprobados
Fin
► Conclusión
Como puede observarse, el primer ejemplo requiere más líneas de código que el segundo (aún cuando ambos hacen lo mismo) puesto que las estructuras no están anidadas, es decir, en el primer ejemplo se piden las calificaciones en un ciclo pero se evalúan una por una fuera del mismo.
La ventaja de anidar estructuras radica en el hecho de que podemos pedir y evaluar las calificaciones en el mismo ciclo con solo colocar nuestra sentencia "si" dentro del mismo ciclo "para" como se observa en el segundo ejemplo.
No hay comentarios:
Publicar un comentario