ALGUNOS EJEMPLOS Estructuras condicionales Ejemplo 1 Se tienen tres esferas (A, B, C) de diferente peso, elaborar un algoritmo que determine cuál es la esfera de mayor peso. Diagrama de flujo Pseudocódigo Algoritmo esferas real: A,B,C; INICIO ESCRIBA(“Digite el peso de la primera esfera: ”); LEA(A); ESCRIBA(“Digite el peso de la segunda esfera: ”); LEA(B); ESCRIBA(“Digite el peso de la tercera esfera: ”); LEA(C); SI (A > B) ENTONCES SI (A > C) ENTONCES ESCRIBA(“La esfera más pesada es la primera”); SINO ESCRIBA(“La esfera más pesada es la tercera”); FIN_SI SINO SI (B > C) ENTONCES ESCRIBA(“La esfera más pesada es la segunda”); SINO ESCRIBA(“La esfera más pesada es la tercera”); FIN_SI FIN_SI FIN Fin(esferas) Tarea: Realizar la codificación en C de este algoritmo. Ejercicios sobre estructuras condicionales 1. Pulir el ejercicio anterior. 2. Hacer un algoritmo que determine cuál es el mayor de un grupo de 4 números diferentes. 3. Hacer un algoritmo que determine la suma del valor mayor y menor en un grupo de 4 datos. 4. Un almacén de escritorios hace los siguientes descuentos: Si el cliente compra menos de 5 unidades se le da un descuento del 10% sobre la compra; si el número de unidades es mayor o igual a cinco pero menos que 10 se le otorga un 20% y, si son 10 o más se le da un 40%. Hacer un algoritmo que determine cuanto debe pagar un cliente si el valor de cada escritorio es de $800000. 5. Cierta universidad tiene un programa para estimular a los estudiantes con un buen promedio académico. Si el promedio es de 4.5 o más y el alumno es de pregrado, entonces cursara 28 créditos y se le hará un 25% de descuento. Si el promedio es mayor o igual a 4.0 pero menor que 4.5 y el alumno es de pregrado, entonces cursara 25 créditos y se le hará un 10% de descuento. Si el promedio es mayor que 3.5 menor que 4.0 y es de pregrado, cursara 20 créditos y no tendrá ningún descuento. Si el promedio es mayor o igual a 2.5 y menor que 3.5 y es de pregrado, cursara 15 créditos y no tendrá ningún descuento. Si el promedio es menor de 2.5 y es de pregrado, no podrá matricularse. Si el promedio es mayor o igual a 4.5 y es de postgrado, cursara 20 créditos y se le hará un 20% de descuento. Si el promedio es menor de 4.5 y es de postgrado cursara 10 créditos y no tendrá descuento. Hacer un algoritmo que determine cuanto deberá pagar el estudiante y cuantos créditos registrara si el valor de cada crédito es de $50000 para el pregrado y $300000 para el postgrado. Estructuras repetitivas Ciclo Mientras ¿Cómo funciona? Hablar por encima de este (PseudoCodigo, Diagrama de flujo, C). Ejemplo 2 Hacer un algoritmo que vaya incrementando una variable que empieza en cero y termina en 9 mostrando cada incremento. Algoritmo incremento entero: i 0; INICIO MIENTRAS (i<10) HAGA i i + 1; ESCRIBA(“i va en”,i); FIN_MIENTRAS FIN Fin(incremento) Tarea: Realizar la codificación en C. Variables tipo contador La variable i es un ejemplo de este tipo de variables. El contador es una variable que se incrementa o disminuye en un valor constante cada que ocurre una acción o suceso. Un contador tiene la siguiente forma: contador = contador + <valor constante> Ejemplos: i = i + 1; j = j – 3; Ejemplo 3 Modifique el ejemplo 1 de tal manera que se realice la suma de los 10 primeros números, muestre el resultado parcial de la suma y al final muestre el resultado. Pseudocódigo Algoritmo acumulador entero: i 0, suma 0; INICIO MIENTRAS (i<10) HAGA i i + 1; suma suma + i; ESCRIBA(“En la iteración ”,i,” el valor de la suma va en ”,suma); FIN_MIENTRAS ESCRIBA(“El valor de la suma de los 10 primeros numeros”,suma); FIN Fin(acumulador) Preguntas: ¿Qué sucede si se cambia el orden de las expresiones i i + 1 con suma suma + i?, ¿El resultado a la salida es el mismo?, ¿Qué se puede hacer para lograr que e reultado sea el optimo? Tarea: Realizar la codificación en C del ejemplo anterior Variables tipo acumulador La variable suma en el ejemplo anterior es un ejemplo típico de un acumulador. Un acumulador o totalizador es un variable cuya misión es almacenar cantidades variables resultantes de procesos sucesivos. La diferencia con el contador radica en el incremento o disminución de cada suma es variable en lugar de constante, como en el caso del contador. La forma general de un acumulador es la siguiente: acumulador = acumulador + <expresión> Ejemplos: acum = acum + i; suma = suma + algo; resta = resta – algo; Ciclo Para (For) ¿Cómo funciona? Hablar por encima de este (PseudoCodigo, Diagrama de flujo, C). Un ciclo for es como un ciclo mientras solo que a diferencia de este, el ciclo para maneja la inicialización e incremento de manera automática. Ejemplo 4 Hacer el ejemplo 3 usando el ciclo para. Ejemplo 5 Hacer el ejemplo 4 usando el ciclo para. Ejercicios Los del libro de Efraín Oviedo sobre estructuras repetitivas.