e3jercicos resueltos

download e3jercicos resueltos

of 17

Transcript of e3jercicos resueltos

EJERCICIOS RESUELTOS9. Estructuras Selectivas o Estructuras de Decisin Las estructuras selectivas o de seleccin se clasifican en:

Estructura de seleccin simple (SI). Estructura de seleccin doble (SI - SINO). Estructura de seleccin mltiple (EN CASO - SEA)

5.2 Estructura de Seleccin Simple SI En la estructura de seleccin simple SI, evala una condicin lgica y:

Si la condicin es verdadera se ejecuta la accin A. La accin A puede ser una accin simple (una sola accin) o una accin compuesta (un conjunto de acciones). Si la condicin es falsa, no se hace nada.

Ejemplo 9.1:- En una playa de estacionamiento cobran S/. 2.5 por hora o fraccin. Disee un algoritmo que determine cuanto debe pagar un cliente por el estacionamiento de su vehculo, conociendo el tiempo de estacionamiento en horas y minutos. Algoritmo INICIO ENTERO horas, minutos REAL pago LEER horas, minutos SI( minutos > 0 ) horas = horas + 1 pago = horas * 2.5 IMPRIMIR pago FIN Ejemplo 9.2:- Disee un algoritmo que determine si n nmero es o no, par positivo. Algoritmo INICIO REAL n LEER n SI( (n%2==0) y (n>0) ) IMPRIMIR "El nmero es par positivo" SINO IMPRIMIR "El nmero no es par positivo" FIN Ejemplo 9.3:- Disee un algoritmo que determine el mayor valor de cuatro nmeros a, b, c, d. Algoritmo INICIO REAL a, b, c, d, mayor LEER a, b, c, d mayor = a SI( b > mayor )

mayor = b SI( c > mayor ) mayor = c SI( d > mayor ) mayor = d IMPRIMIR mayor FIN Observacin En caso que los cuatro nmeros sean iguales entre s, el algoritmo da como mayor a cualquiera de los cuatro. Ejemplo 9.4:- Una tienda ha puesto en oferta la venta al por mayor de cierto producto, ofreciendo un descuento del 15% por la compra de ms de 3 docenas y 10% en caso contrario. Adems por la compra de ms de 3 docenas se obsequia una unidad del producto por cada docena en exceso sobre 3. Disee un algoritmo que determine el monto de la compra, el monto del descuento, el monto a pagar y el nmero de unidades de obsequio por la compra de cierta cantidad de docenas del producto. Algoritmo INICIO REAL montopag, montocom, montodes, precio ENTERO docenas, obsequio LEER docenas, precio montocom = docenas*precio SI( docenas > 3 ){ montodes = 0.15*montocom obsequio = docenas-3 } SINO{ montodes = 0.10*montocom obsequio = 0 } montopag = montocom - montodes IMPRIMIR montocom, montodes, montopag FIN

9.5 Seleccin Doble en Cascada Se dice que varias estructuras de seleccin doble estn en cascada cuando la instruccin que sigue a un SINO es otro SI a excepcin del ltimo SINO. No hay lmite en cuanto al nmero de estructuras de seleccin doble que pueden ponerse en cascada. En las figuras 9.3 y 9.4 se muestran dos formas de seleccin doble en cascada. Funcionamiento Las condiciones se evalan en orden descendente pasando de una a otra si la anterior resulta falsa. En el momento que se encuentra una condicin verdadera, se efecta la accin correspondiente a dicha condicin y se corta el resto de la estructura. Si todas las condiciones resultan falsas se efecta la accin correspondiente al ltimo SINO Nota.- En el caso de acciones compuestas, estas sern encerradas entre llaves.

SI( condicin C1 ) accin A1 SINO SI( condicin C2 ) accin A2 SINO SI( condicin C3 ) accin A3 . . . SINO accin AnFigura 9.3 Seleccin doble en cascada: Forma 1

SI( condicin C1 ) accin A1 SINO SI( condicin C2 ) accin A2 SINO SI( condicin C3 ) accin A3 . . . SINO accin AnFigura 9.4 Seleccin doble en cascada: Forma 2 Ejemplo 9.5:- Disee un algoritmo que determine si un nmero es negativo, positivo o cero. Algoritmo ( Formato 1 ) INICIO REAL n LEER n SI( n > 0 ) IMPRIMIR "Positivo" SINO SI( n < 0 ) IMPRIMIR "Negativo" SINO IMPRIMIR "Cero" FIN Algoritmo ( Formato 2 ) INICIO

REAL n LEER n SI( n > 0 ) IMPRIMIR "Positivo" SINO SI( n < 0 ) IMPRIMIR "Negativo" SINO IMPRIMIR "Cero" FIN Ejemplo 9.6:- Considerando que las estaciones del ao se numeran como 1 para primavera, 2 para verano, 3 para otoo y 4 para invierno; disee un algoritmo que determine el nombre de la estacin del ao conociendo el nmero de la estacin. Algoritmo INICIO ENTERO numero CADENA nombre LEER numero SI( numero == 1 ) nombre = "Primavera" SINO SI( numero == 2 ) nombre = "Verano" SINO SI( numero == 3 ) nombre = "Otoo" SINO nombre = "Invierno" IMPRIMIR nombre FIN 9.6 Estructuras de Seleccin Anidadas Se dice que una estructura SI ( o SI-SINO ) esta anidada cuando esta contenida dentro de otra estructura SI o dentro de otra estructura SI-SINO. No existe lmite en cuanto al nivel de anidamiento. Por ejemplo, una estructura SI con tres niveles de anidamiento tendra el siguiente formato: SI( condicin C1 ){ accin A1 SI( condicin C2 ){ accin A2 SI( condicin C3 ) accin A3 } } En general, el anidamiento podra evitarse usando el operador lgico "y". As, la anterior seleccin SI anidada puede descomponerse en tres estructuras de seleccin simple no anidadas consecutivas, como se muestra a continuacin. SI( condicin C1 ) accin A1 SI( condicin C1 y condicin C2 ) accin A2 SI( condicin C1 y condicin C2 y condicin C3 )

accin A3 La estructura de seleccin doble en cascada es un caso especial de la estructura SI..SINO anidada. Ejemplo 9.7:- Disee un algoritmo que lea un nmero de tres cifras y determine si es o no capica. Un nmero es capcua si es igual al revs del nmero. Observacin Observe que al ser el nmero de tres cifras, para ser capica es suficiente comprobar que la cifra de las unidades sea igual a la cifra de las centenas. Algoritmo INICIO ENTERO numero, unidad, centena LEER numero SI(numero >= 100 && numero 0 ){ // Aqu a, b y c podran ser positivos menor = a SI( b > 0 y b < menor ) menor = b SI( c > 0 y c < menor ) menor = c

IMPRIMIR menor } SINO SI( b > 0 ){ // Aqu slo b y c podran ser positivos menor = b SI( c > 0 y c < menor ) menor = c IMPRIMIR menor } SINO SI( c > 0 ){ // Aqu slo c podra ser positivo menor = c IMPRIMIR menor } SINO IMPRIMIR "No hay nmeros positivos" FIN Ejercicio 7:- Disee un algoritmo que lea tres nmeros y los imprima de mayor a menor y de menor a mayor. Algoritmo INICIO REAL n1, n2, n3, mayor, menor, medio LEER n1, n2, n3 // Determina el menor menor = n1 SI( n2 < menor ) menor = n2 SI( n3 < menor ) menor = n3 // Determina el mayor mayor = n1 SI( n2 > mayor ) mayor = n2 SI( n3 > mayor ) mayor = n3 // Determina el medio medio = n1+n2+n3-mayor-menor // Imprime en orden ascendente IMPRIMIR menor, medio, mayor // Imprime en orden descendente IMPRIMIR mayor, medio, menor FIN Ejercicio 8:- Disee un algoritmo para obtener el grado de eficiencia de un operario de una fbrica de tornillos, de acuerdo a las siguientes condiciones, que se le imponen para un perodo de prueba: - Menos de 200 tornillos defectuosos. - Ms de 10000 tornillos producidos. El grado de eficiencia se determina de la siguiente manera: - Si no cumple niguna de las condiciones, grado 5.

- Si slo cumple la primera condicin, grado 6. - Si slo cumple la segunda condicin, grado 7. - Si cumple las dos condiciones, grado 8. Algoritmo 1 INICIO ENTERO torpro, tordef, grado LEER torpro, tordef // Determina el grado de eficiencia SI( tordef < 200 ){ SI( torpro > 10000 ) grado = 8 SINO grado = 6 } SINO{ SI( torpro > 10000 ) grado = 7 SINO grado = 5 } IMPRIMIR grado FIN Algoritmo 2 INICIO ENTERO torpro, tordef, grado LEER torpro, tordef // Determina el grado de eficiencia SI( tordef < 200 y torpro > 10000 ) grado = 8 SINO SI( tordef < 200 ) grado = 6 SINO SI( torpro > 10000 ) grado = 7 SINO grado = 5 IMPRIMIR grado FIN Ejercicio 9:- Se cuenta con los votos obtenidos por Juan, Pedro y Maria en una eleccin democrtica a la presidencia de un club. Para ganar la eleccin se debe obtener como mnimo el 50% de los votos ms 1. En caso que no haya un ganador se repite la eleccin en una segunda vuelta. Van a la segunda vuelta los dos que obtengan la ms alta votacin , los tres en caso de producirse un empate doble (entre los dos con menor votacin) o un empate triple. Disee un algoritmo que determine el resultado de la eleccin. Algoritmo INICIO ENTERO vjuan, vpedro, vmaria LEER vjuan, vpedro, vmaria // Determina la votacin total

vtotal = vjuan + vpedro + vmaria // Determina la votacin mxima vmax = vjuan SI( vpedro > vmax ) vmax = vpedro SI( vmaria > vmax ) vmax = vmaria // Determina el resultado de la eleccin SI( vmax > vtotal/2 + 1 ){ // Hay ganador SI( vjuan == vmax ) IMPRIMIR "Gan Juan" SINO SI( vpedro == vmax ) IMPRIMIR "Gan Pedro" SINO IMPRIMIR "Gan Mara" } SINO{ // No hay ganador SI( vjuan < vpedro y vjuan < vmaria ) IMPRIMIR "Debe haber segunda vuelta entre Pedro y Mara" SINO SI( vpedro < vjuan y vpedro < vmaria ) IMPRIMIR "Debe haber segunda vuelta entre Juan y Mara" SINO SI( vmaria < vjuan y vmaria < vpedro ) IMPRIMIR "Debe haber segunda vuelta entre Juan y Pedro" SINO IMPRIMIR "Debe haber segunda vuelta entre los tres" } FIN Ejercicio 10:- Disee un algoritmo que lea un nmero entero de 3 cifras, y forme el mayor nmero posible con las cifras del nmero ingresado. El nmero formado debe tener el mismo signo que el nmero ingresado. Algoritmo INICIO ENTERO num1, num2, numaux, uni, dec, cen, menor, mayor, medio LEER num1 SI( ( num1 >= 100 y num1 = -999 y num1 mayor ) mayor = dec SI( uni > mayor ) mayor = uni // Determina la cifra del medio medio = cen+dec+uni-mayor-menor // Forma el nuevo nmero SI( numaux > 0 ) num2 = mayor*100 + medio*10 + menor SINO num2 = -1*(menor*100 + medio*10 + mayor*100) // Imprime el nuevo nmero IMPRIMIR num2 } SINO IMPRIMIR "El nmero no tiene tres cifras" FIN 11.- Determinar cual es el cuadrado, de un determinado nmero, primero haga la lista de pasos a utilizar, luego el algoritmo en pseudocdigo y finalmente el diagrama de flujo. Pasos: Inicio Ingrese un nmero: a Lea numero: a Cuadrado = a^2; Escriba el resultado Fin

12.- Elaborar un diagrama de flujo que permita determinar si un nmero es Positivo o Negativo.

13.- Elabore en pseudocdigo y en diagrama de flujo un algoritmo que halle el rea de un triangulo.

14.- Ejercicio de conversin, desarrollar un algoritmo en pseudocdigo y luego un diagrama, que permita ingresar una cantidad en metros y la convierta a Centmetros, Kilmetros, Pies, pulgadas (utilice las sentencias de seleccin). PSEUDOCODIGO 1. algoritmo de conversin de metros a: centmetros, kilometros, pies, pulgadas; 2. var 3. m,km,cm,pies,pulgadas:real 4. inicio 5. escriba(por favor ingrese un numero); 6. lea(m); 7. cm = m*100; 8. escriba(el valor es:,cm); 9. km = m*0.001; 10. escriba(el valor es:,km); 11. pies = m*3.281; 12. escriba(el vlor es:,pies); 13. pulgadas = m*39.37; 14. escriba(el valor es:,pulgadas); 15. imprimir(c,km,pies,pulgadas) 16. fin

15.- Leer una determinada temperatura en grados centgrados y convertirla a Fahrenheit PSEUDOCODIGO 1. leer una temperatura en grado centigrados y convertirla en grados fahreheit. 2. var 3. c = (grados centigrados); real 4. inicio 5. ingrese(el valor en grados); 6. lea(c); 7. Fahrenheit = c(9/5)+32; 16. escriba(grados Fahrenheit es:,f); 9. fin

17.- Elabore un algoritmo en pseudocdigo y un diagrama de flujo que teniendo como datos de entrada el radio y la altura de un cilindro calcule el rea total y el volumen del cilindro.

10.- Elaborar un diagrama de flujo, que permita ingresar 3 valores y los imprima en forma

descendente.