Logo Studenta

PE22 - TP4 Estructuras Estructuras de Control

¡Estudia con miles de materiales!

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 
 xa 
 ab 
 bx 
 FIN_SI 
 SI b > c ENTONCES 
 xb 
 bc 
 cx 
 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. 


Continuar navegando