Story Transcript
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de control El flujo secuencial de acciones en un algoritmo puede ser alterado por medio de las denominadas estructuras de control, las cuales se resumen a continuación:
Estructuras de selección
Estructuras de repetición
Simples
Si ... entonces ... sino ... Fin si
Múltiples
Según sea ... hacer ... Fin según
Repetir Para ... Fin Para Repetir Mientras ... Fin Mientras Repetir ... Hasta
Página 1 de 16
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de selección Las estructuras selectivas se utilizan para tomar decisiones. En las estructuras selectivas se evalúa una condición y en función del resultado se realiza o no un determinado conjunto de acciones. Las estructuras selectivas pueden ser:
SIMPLES (COMPLETAS O INCOMPLETAS) y MULTIPLES
SELECCION SIMPLE COMPLETA
La estructura “selección simple completa” permite elegir entre dos opciones posibles. • Si la condición es VERDADERA se ejecuta un conjunto de acciones S1 • Si la condición es FALSA se ejecuta un conjunto de acciones S2 FLUJO DEL ALGORITMO
PSEUDOCODIGO
Condición es una expresión lógica
CONDICION VERDADERA
ACCIONES S1
FALSA
ACCIONES S2
Si (condición) entonces ..... sino ..... Fin si Página 2 de 16
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de selección SELECCION SIMPLE INCOMPLETA
La estructura “selección simple incompleta” es más limitada y solamente ejecuta un conjunto de acciones cuando se cumple la condición. • Si la condición es VERDADERA, entonces se ejecuta el conjunto de acciones S1 • Si la condición es FALSA no se ejecutan las acciones S1
PSEUDOCODIGO
FLUJO DEL ALGORITMO
CONDICION FALSA
VERDADERA
Condición es una expresión lógica
Si (condición) entonces ..... Fin si
ACCIONES S1
Ejemplo:
Página 3 de 16
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de selección Ejercicios propuestos:
1) Resolución de una ecuación de primer grado. (ax+b =0). Datos?, Resultado?, Metodología? 2) Calcular el salario semanal de un empleado, el cual se calcula en base a las horas trabajadas y de acuerdo a un precio especificado por hora. Si se pasan las 40 horas semanales, las horas extras se pagan a razón de 1.5 veces la hora ordinaria. Resolver de 2 formas: a) utilizando selección simple completa b) utilizando selección simple incompleta
Página 4 de 16
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de selección SELECCION MULTIPLE
[necesidad de más de dos opciones] La estructura de selección múltiple evalúa una condición la cual puede adoptar n valores posibles. Según sea el valor dado por la condición se ejecuta un determinado conjunto de acciones Sn. FLUJO DEL ALGORITMO
PSEUDOCODIGO
CONDICION
1 2
n
La condición propuesta no verifica ninguna de la opciones posibles
3 ACCIONES S1
ACCIONES S2
ACCIONES S3
.... ...
ACCIONES Sn
Condición es una expresión numérica o caracter
Según sea (condición) Caso V1: ..... Caso V2: ..... Caso V3: ..... sino ..... Fin según Página 5 de 16
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de repetición Las estructuras repetitivas se utilizan para repetir la ejecución de un conjunto de acciones una determinada cantidad de veces. Estructura REPETIR PARA Repetir Para v vi , vf , Inc Fin Para donde: v : variable de control o índice vi : es el valor inicial que se le asigna a la variable v vf : es el valor final que debe alcanzar la variable v antes de salir de la estructura. Inc : incremento
La variable de control puede ser de tipo numérico o carácter. El valor de la variable de control no puede ser modificado dentro del bucle o iteración, pero sí puede ser utilizado, siempre que no se lo modifique En caso de omitirse el incremento, la estructura asume que el incremento es la unidad. Página 6 de 16
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de repetición Ejemplo: Hacer un algoritmo que escriba los 30 primeros números naturales algoritmo num30 Variables Entero : I Inicio Escribir (‘Números del 1 al 30’) Repetir Para I 1 , 30 Escribir ( I ) Fin Para Fin
El Incremento Inc puede ser positivo o negativo (nunca puede ser cero) Esta estructura comienza con un valor inicial de la variable de control. Las acciones se ejecutan hasta que la variable de control sea mayor que el valor final, en caso de que Inc sea positivo; o hasta que la variable de control sea menor que el valor final, en caso de que Inc sea negativo. .....
Repetir Para I 10 , 1 , –1 Escribir (‘Cuenta decreciente:’, I) Fin Para .....
Página 7 de 16
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de repetición Casos en los que las acciones dentro de la estructura “Repetir para” no se ejecutan nunca: 1) Si vi < vf y Inc < 0 Ejemplo:
Repetir Para I ..... Fin Para
1 , 10 , –1
2) Si vi > vf y Inc > 0 Ejemplo:
Repetir Para I ..... Fin Para
20 , 1, 2
Ejercicios propuestos:
1) Calcular el promedio de 100 números reales 2) Calcular la suma de los primeros N números pares. (Resolver también para los impares) 3) Calcular la suma de los números pares menores o iguales a N. (Resolver también para los impares)
Página 8 de 16
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de repetición Estructura REPETIR MIENTRAS Repetir Mientras (condición) hacer Fin Mientras
Las acciones dentro de la estructura se ejecutarán mientras la expresión lógica () dé como resultado VERDADERO; en caso contrario, se termina la estructura y se sigue con el flujo del programa. La/s variable/s que intervienen en la expresión lógica deben ser modificadas por las acciones para que la condición pueda, en algún momento, adoptar el valor FALSO. Lo primero que se evalúa en una estructura mientras es la condición. Si el resultado es VERDADERO se ejecutan las acciones y a continuación se vuelve a evaluar la condición. Mientras que si el resultado de la expresión es FALSO se termina la estructura de repetición.
Página 9 de 16
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de repetición Ejemplo: Hacer un algoritmo que escriba los 30 primeros números naturales Algoritmo Num30 Variables Entero: contador Inicio contador ← 1 Repetir Mientras (contador S 2) Idem para la cantidad de números pares. (Resolver también para los impares) 2 + 4 + 6 + ….. + N > S 1 + 3 + 5 + ….. + N > S
Página 10 de 16
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de repetición •
VALIDAR
Es muy frecuente tener que realizar validación de entrada de datos en la mayoría de las aplicaciones. Este ejemplo detecta cualquier entrada entre 1 y 12, rechazando las restantes, ya que se trata de leer los números correspondientes a los meses del año. Algoritmo ValidarMes Variables Entero: mes Inicio Escribir (‘Ingrese número del mes’) Leer (mes) Repetir Mientras (mes < 1) o (mes > 12) hacer Escribir (‘Valor debe estar acotado entre 1 y 12’) Leer (mes) Fin Mientras : Fin Ejercicios propuestos:
Resolver los ejercicios 2 y 3 propuestos en la estructura desde, validando que N sea positivo.
Página 11 de 16
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de repetición Estructura REPETIR…HASTA Repetir Hasta (condición)
Las acciones dentro de la estructura repetir de ejecutan hasta que la expresión lógica () de como resultado VERDADERO; en caso contrario, se re-ingresa a la estructura de repetición. La/s variable/s que intervienen en la expresión lógica deben ser modificadas por las acciones para que la condición pueda, en algún momento, adoptar el valor VERDADERO. Las acciones en una estructura repetir…hasta se ejecutarán al menos una vez.
Página 12 de 16
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de repetición Ejemplo: Hacer un algoritmo que escriba los 30 primeros números naturales Algoritmo Num30 Variables Entero: contador Inicio contador ← 1 Repetir Escribir (contador) contador ← contador + 1 Hasta (contador > 30) Escribir (‘Números escritos: 30’) Fin
Ejercicios propuestos:
Resolver los ejercicios propuestos en la estructura mientras, utilizando una estructura repetir.
Página 13 de 16
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de repetición DIFERENCIAS ENTRE LAS ESTRUCTURAS REPETIR MIENTRAS Y REPETIR…HASTA:
La estructura “repetir mientras” evalúa la condición antes de ejecutar las acciones, en cambio “repetir…hasta” primero ejecuta las acciones y después evalúa la condición. La estructura “repetir mientras” termina cuando la condición es falsa, mientras que “repetir…hasta” termina cuando la condición es verdadera. En la estructura “repetir…hasta” el conjunto de acciones se ejecuta siempre al menos una vez; por el contrario en el caso del “repetir mientras” permite la posibilidad de que las acciones puedan no ser ejecutadas. DIFERENCIAS ENTRE LA ESTRUCTURA REPETIR PARA Y LAS ESTRUCTURAS REPETIR MIENTRAS Y REPETIR…HASTA:
En la estructura “repetir para” se conoce antes de entrar en la estructura la cantidad de veces que se va a repetir la ejecución de las acciones, en cambio en las estructuras “repetir mientras” y “repetir… hasta” no siempre se conoce dicha cantidad.
Página 14 de 16
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de repetición REALIZACIÓN DE UNA ESTRUCTURA “Repetir Para” CON UNA ESTRUCTURA “Repetir Mientras” 1. Estructura “Repetir Para” con incrementos de la variable índice positivos. ..... v ← vi Repetir Mientras (v = vf ) hacer v ← v - incremento Fin Mientras .....
Página 15 de 16
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Estructuras de control ANIDAMIENTO
CORRECTO
CORRECTO
INCORRECTO
Las estructuras internas deben estar totalmente contenidas dentro de la externa y no puede existir solapamiento
Página 16 de 16