Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
2 0 2 2 PROGRAMACIÓN ESTRUCTURADA 04 Trabajo Práctico N° 4 Estructuras de Control Apellido y Nombre: …………………………………………………………………………………….......................... Fecha: ……/……/…… Página 1 Ejercicios a Resolver 1. Utilizando los criterios de finalización de bucles, que se indican a continuación, modifica los siguientes ejercicios del TP3: a) Determinación del mínimo y máximo (ejercicio 2), finalización por centinela b) Cálculo de factorial (ejercicio 3), finalización por contador con estructuras REPETIR c) Cálculo de cociente (ejercicio 5), finalización por bandera con estructuras MIENTRAS 2. Diseñe un algoritmo que permita determinar si un valor ingresado por el usuario es primo o no. Tenga en cuenta que un número natural es primo si únicamente es divisible por la unidad y por sí mismo. Escriba 2 versiones distintas del algoritmo. 3. En el TP3, ejercicio 10, diseñaste un algoritmo para generar los términos de la serie de Fibonacci, pero, ¿podrías modificarlo para determinar si un valor es parte o no de la serie? En tu propuesta de solución aplica estructuras MIENTRAS y el criterio de finalización por BANDERA. 4. Considerando que, la extracción de los dígitos de un número entero puede realizarse siguiendo el proceso descripto a continuación (por ejemplo, para el número 1984), diseñe un algoritmo que sume los dígitos de un valor ingresado por el usuario. Aplique en su diseño el criterio de finalización por bandera. 1984 10 Proceso Paso 1: Se divide el número N en 10, conservándose el resto obtenido para la suma de dígitos. Paso 2: Se divide el cociente (entero) obtenido en la división anterior nuevamente por 10, y se conserva el resto para la suma de dígitos. Paso 3: Se repite el paso 2 hasta que el cociente obtenido sea cero, obteniéndose entonces la suma de todos los dígitos del número original. -4- 198 10 resto1 -8- 19 10 resto2 -9- 1 10 resto3 -1- 0 resto4 La suma de dígitos es 22 5. Sabías que un número es divisible por 3 si la suma de sus dígitos es exactamente divisible por 3. Por ejemplo: para saber si el número 3627 es divisible por 3 se suman sus dígitos hasta reducirlo a un valor de un dígito, es decir, 3+6+2+7=18 y luego 1+8=9. Si el valor obtenido es 3, 6 o 9, el número original es múltiplo de 3. Diseñe un algoritmo que sea capaz de determinar si un número es divisible por 3 aplicando el método descripto. ¿Qué estructuras repetitivas utilizará? ¿qué criterio de finalización de bucles elegirá? 6. Sabías que un número es divisible por 11 si la diferencia entre la suma de los dígitos que ocupan las posiciones pares y la suma de los dígitos que ocupan las posiciones impares es igual a cero. Si la diferencia obtenida (valor absoluto) es de 2 o más dígitos entonces se repite el proceso hasta reducir a un dígito. Por ejemplo, para saber si 9031 es divisible por 11 se suman 9+3 (dígitos de posiciones pares) y 0+1 (dígitos de posiciones impares), cuya diferencia |12-1| (valor absoluto) es 11. Tratándose de un valor de 2 dígitos vuelve a aplicarse el proceso siendo la diferencia |1-1|=0, verificándose que el valor original es divisible por 11. Diseñe un algoritmo que sea capaz de determinar si un número es divisible por 11 aplicando el método descripto. ¿Qué estructuras repetitivas utilizará? ¿qué criterio de finalización de bucles elegirá? 7. Sabías que el cuadrado de un número entero positivo, N, puede calcularse mediante la suma de los N primeros números impares. Por ejemplo, el cuadrado de 5 puede obtenerse al sumar los primeros 5 impares 1 + 3 + 5 + 7 + 9 = 25 .Diseñe un La serie de Fibonacci es 1, 1, 2, 3, 5, 8, 13, 21, … ¿117 será Fibonacci? Analista Programador Universitario Programación Estructurada Página 2 algoritmo que calcule, usando el método descripto, el cuadrado de un número ingresado por el usuario. Utilice estructuras MIENTRAS y finalización por CENTINELA. Además realice la prueba de escritorio para N=4 y N=6. 8. Sabías que el cubo de un número puede calcularse como se muestra en la siguiente pirámide. ¿Podrías diseñar un algoritmo que calcule el cubo de un número entero positivo N aplicando este método? En tu diseño usa la finalización por CENTINELA, realizando además la prueba de escritorio para N=3 y N=5. 9. Considerando que la potencia de un número entero positivo a elevado a otro entero positivo b, puede expresarse como el producto sucesivo de a, b veces, complete los siguientes diagramas de flujo para realizar este cálculo, teniendo en cuenta la estructura repetitiva utilizada y el criterio de finalización de bucle aplicado. FINALIZACIÓN POR CONTADOR FINALIZACIÓN POR BANDERA INICIO Ingrese 1er valor: FIN S S a E Ingrese 2do valor: S b E V F VF INICIO Ingrese 1er valor: FIN S S a E Ingrese 2do valor: S b E V F Analista Programador Universitario Programación Estructurada Página 3 FINALIZACIÓN POR BANDERA FINALIZACIÓN POR CENTINELA VF INICIO Ingrese 1er valor: FIN S S a E Ingrese 2do valor: S b E F V INICIO Ingrese 1er valor: FIN S S a E Ingrese 2do valor: S b E V F Analista Programador Universitario Programación Estructurada Página 4 FINALIZACIÓN POR CONTADOR FINALIZACIÓN POR CENTINELA 10. Dado el siguiente algoritmo: A) PROGRAMA enigma VARIABLES a, b, c, x: ENTERO INICIO ESCRIBIR “Ingrese valores: ” LEER a, b, c REPETIR SI a > b ENTONCES xa ab bx FIN_SI SI b > c ENTONCES xb bc cx FIN_SI HASTA_QUE a<b Y b<c FIN a. Realice la prueba de escritorio para a=5, b=15, c=2; y a=21, b=18, c=11. b. Determine el propósito del algoritmo. c. Modifique el algoritmo operar con 4 variables de entrada. INICIO Ingrese 1er valor: FIN S S a E Ingrese 2do valor: S b E V F INICIO Ingrese 1er valor: FIN S S a E Ingrese 2do valor: S b E V F Analista Programador Universitario Programación Estructurada Página 5 B) a. Realice la prueba de escritorio para los valores p=17 y q=6, p=25 y q=4, p=12 y q=3. b. Determine el propósito del algoritmo. c. Escriba una versión (pseudocódigo) con estructuras MIENTRAS y criterio de finalización por BANDERA. C) a. Realice la prueba de escritorio para los valores num=2, num=3 y num=5. b. Determine el propósito del algoritmo. c. Escriba una versión (pseudocódigo) con estructuras REPETIR y criterio de finalización CENTINELA.
Compartir