INSTITUTO DE EDUCACION SUPERIOR TECNOLÓGICO PÚBLICO HUANCANÉ ACTIVIDAD Nº 03 ESTRUCTURAS SELECTIVAS O CONDICIONALES Una sentencia IF, es anidada cuando la sentencia de la rama verdadera o la rama falsa, es a su vez una sentencia IF. A este tipo de estructura se le conoce como selectiva compuesta o multi-alternativa. Ejemplo. Si resolvemos el problema de la práctica anterior para saber si un número es positivo, negativo o nulo usando selección compuesta, el módulo sería el siguiente: (IF - THEN), permite realizar una determinada acción si la condición a evaluar es verdadera; seguir el flujo de control secuencial en el caso de que la condición sea falsa. Su representación es la siguiente: IF<Condición> THEN<Acción> Cuando al cumplirse la condición se debe realizar más de una acción, éstas se deben encerrar entre un INICIO y un FIN, indicando que es un bloque de instrucciones: IF <Condición> THEN INICIO ACCION ACCION ACCION ACCION 1 2 3 4 COMPUTACION E INFORMÁTICA – III SEMESTRE – LOPEZ MAMANI ADOLFO FRANCO INSTITUTO DE EDUCACION SUPERIOR TECNOLÓGICO PÚBLICO HUANCANÉ La estructura selectiva compuesta (IF - THEN - ELSE), permite elegir entre dos alternativas posibles en función del cumplimiento o no de la condición a evaluar. Su representación es: IF<condición> THEN <Acción> ELSE <Acción> Al igual que en la estructura condicional simple, cuando al cumplirse o no la condición, hay más de una acción a evaluar, éstas serán encerradas entre un INICIO y un FIN para indicar que es un bloque de Instrucciones el que se ejecutará: IF<Condición> THEN INICIO Accion1 Accion2 Accion3 FIN ELSE <Acción> CASE La estructura se conoce como CASE y permite una desviación del flujo de control hacia múltiples procesos en función del resultado de la evaluación de una expresión o indicador. La representación de esta estructura es la siguiente: COMPUTACION E INFORMÁTICA – III SEMESTRE – LOPEZ MAMANI ADOLFO FRANCO INSTITUTO DE EDUCACION SUPERIOR TECNOLÓGICO PÚBLICO HUANCANÉ CASE <Expresión>OF INICIO OP1:Acción1 OP2:Acción2 OP3:Acción3 ELSE <Acción> FIN ESTRUCTURAS REPETITIVAS O ITERATIVA En ocasiones necesitaremos que un bloque de instrucciones se ejecute varias veces seguidas; en estos casos utilizaremos estructuras repetitivas o bucles. ESTRUCTURA FOR (PARA). La estructura FOR ejecuta un bucle un número determinado de veces controlando automáticamente el número de iteraciones. La utilizaremos siempre que sepamos previamente el número de veces que se ejecutará el bucle. Ejercicio 01 Hacer el algoritmo para un programa, que calcule la máxima área de un terreno rectangular de lados 100-2x y x respectivamente, para valores de x entre 10 y 30. Algoritmo Inicio Declare x, area Desde x=10 hasta x<=30 hacer Area=100-2*x Imprimir x, area Fin Desde Fin Variable X : asume valores desde 10 hasta 30. Area : asume el valor del área. Programa #include<stdio.h> main(void) {int x; COMPUTACION E INFORMÁTICA – III SEMESTRE – LOPEZ MAMANI ADOLFO FRANCO INSTITUTO DE EDUCACION SUPERIOR TECNOLÓGICO PÚBLICO HUANCANÉ } for(x=10; x<=30;x++) printf("%d unidades, para x=%d \n",x*(100-2*x),x); NOTA: El mayor valor de área es 1250 para un valor de x =25 Ejercicio 02 Escriba el algoritmo para un programa que calcule el factorial de un número n ingresado por el teclado. Algoritmo Inicio Leer c, num, fac Leer num Fac:1 Desde c=1 hasta c<=num hacer fac=fac*c Fin Desde Imprimir num, fac Fin Variables fac : acumulador del valor del factorial del numero ingresado. c : cuenta el número de repeticiones. num : el número cuyo factorial se va ha calcular. Programa #include<stdio.h> main(void) {intc,num; floatfac; printf("ingrese el número n para calcular su factorial "); scanf("%d",&num); fac=1; for(c=1;c<=num;c++) fac=fac*c; printf("el factorial de %d es %lf",num,fac); } ESTRUCTURA WHILE (MIENTRAS). La estructura while ejecuta un bloque de instrucciones y repite dicha ejecución mientras que se cumpla una condición. COMPUTACION E INFORMÁTICA – III SEMESTRE – LOPEZ MAMANI ADOLFO FRANCO INSTITUTO DE EDUCACION SUPERIOR TECNOLÓGICO PÚBLICO HUANCANÉ Pseudocódigo: Mientras (condicion) { Instrucciones } Lenguaje C: while(condición) { instrucciones } Donde: - condición es la condición cuyo valor deberá ser true para que se produzca la entrada en el bucle y que será comprobado antes de cada nueva ejecución del bloque de instrucciones. ESTRUCTURA DO..WHILE. (HACER MIENTRAS) La estructura do..while es similar a la anterior pero en este caso la comprobación se produce después de ejecutar el bloque de instrucciones. Pseudocódigo: Hacer { instrucciones } mientras (condición) Lenguaje C: Do { instrucciones } while(condicion) La única diferencia entre la estructura while y la estructura do..while está en la primera vez que se ejecuta el bucle: - la estructura while comprueba la condición antes de entrar por primera vez en el bucle y si la condición no se cumple, no entrará. - la estructura do..while ejecuta el bucle la primera vez sin comprobar la condición. Para las demás iteraciones el funcionamiento es idéntico en ambas estructuras (únicamente se producen variaciones en el caso de utilizar la cláusula continue). WHILE Usando la instrucción mientras hacer un algoritmo para un programa que imprima la serie 1, 3, 5, 7,9. Algoritmo Inicio Declare I Leer i i1 mientras i<=9 hacer imrimir i COMPUTACION E INFORMÁTICA – III SEMESTRE – LOPEZ MAMANI ADOLFO FRANCO INSTITUTO DE EDUCACION SUPERIOR TECNOLÓGICO PÚBLICO HUANCANÉ i i+2 fin mientras Fin Variables i :Contador Programa #include<stdio.h> main(void) { int i; i=1; while(i<=9) { printf(" \n número= %d", i); i=i+2; } } Ejercicio : Hacer un algoritmo para un programa que encuentre el primer entero que haga que la suma de la serie 1, 2, 3, 4, 5, 6, 7, 8,9,...; supere 30. Algoritmo Inicio Declare i, suma leer i, suma i0 suma 0 mientras suma<=30 hacer i i+1 suma suma+i fin mientras imprimir i Fin Variables i : Contador suma : acumulador del valor de la suma Programa #include<stdio.h> main(void) { inti,suma; i=0; suma=0; while(suma<=30) { i=i+1; COMPUTACION E INFORMÁTICA – III SEMESTRE – LOPEZ MAMANI ADOLFO FRANCO INSTITUTO DE EDUCACION SUPERIOR TECNOLÓGICO PÚBLICO HUANCANÉ suma=suma+i; } printf(" \n número= %d", i); } BUCLE INFINITO COMPUTACION E INFORMÁTICA – III SEMESTRE – LOPEZ MAMANI ADOLFO FRANCO