ejercicios_esquemas_v1

Páginas: 8 (1880 palabras) Publicado: 22 de septiembre de 2015
Esquemas algorítmicos de un nivel


EJERCICIOS

En los ejercicios siguientes la secuencia subyacente es 1, 2, 3, 4, ….Resuélvelos aplicando el esquema adecuado.
1. Calcular la suma de los divisores de n.
2. Determinar si el número n es primo.
3. Escribir en pantalla los tres primeros divisores de n.
4. Calcular el factorial de n.
5. Calcular la suma de todos los enteros pares o múltiplos de 5inferiores a n
6. Calcular el producto entre n y su primer divisor mayor que 20.

En los ejercicios siguientes, la secuencia a recorrer es la formada por los números que el usuario va introduciendo por el teclado. La secuencia acaba cuando el usuario introduce el número 0. Resuélvelos aplicando el esquema adecuado.
7. Calcular la suma de todos los elementos pares de la secuencia
8. Determinar sitodos los números de la secuencia son pares
9. Determinar el número mayor de la secuencia
10. Escribir en pantalla el tercer múltiplo de 5 de la secuencia.

En los ejercicios siguientes, la secuencia subyacente es la formada por los dígitos de un número entero, recorridos desde el dígito de menor peso al de mayor peso. Por ejemplo, si el número entero es el 3509, la secuencia de dígitos es: 9, 0, 5y 3.
Para recorrer los dígitos de un número entero almacenado en la variable n se usará la siguiente estrategia:

Para obtener el primer dígito de la secuencia:
d = n%10;

Para obtener cada uno de los dígitos siguientes, repetir las siguientes operaciones:
n = n/10;
d = d%10; /* d tiene ahora el siguiente dígito */

La secuencia habrá acabado cuando n sea 0.

En el ejemplo anterior:
d = n%10;/* d es 9 */

n = n/10; /* n es 350 */
d = n%10; /* d es 0 */

n = n/10; /* n es 35 */
d = n%10; /* d es 5 */
n = n/10; /* n es 3 */
d = n%10; /* d es 3 */
n = n/10; /* n es 0 y hemos llegado al final
de la secuencia */

Resuelve los ejercicios siguientes aplicando el esquema adecuado.
11. Calcular el número de dígitos que tiene el número entero que hay en la variable n.
12. Determinar siel número entero n tiene dos o más dígitos pares.
13. Determinar si todos los dígitos de n son pares.
14. Calcular la suma de todos los dígitos de n que sean pares.
15. Escribir en pantalla todos los dígitos de un número anteriores al primer dígito par..
16. Determinar el dígito mayor y el dígito menor del número entero almacenado en n.
17. Determinar el número de dígitos de n que sean mayoresque 5.
18. Determinar si un número cumple la siguiente propiedad: la suma de sus dígitos es 100, pero ninguno de ellos es el 5.






SOLUCION A LOS EJERCICIOS

1 (recorrido)
/* Preparar secuencia */
i = 1;

/* Inicio de tratamiento */
suma_divisores = 0;

while ( i < n) /* !FinSecuencia*/
{
/*Tratar Elemento */
if (n%i==0) /* i es divisor de n */
suma_divisores = suma_divisores +1;

/*Avanzar secuencia */
i = i+1;
}

/* tratamiento final */
printf (“La suma de divisores de %d es %d\n”,n,suma_divisores);

Alternativa mejor


/* Inicio de tratamiento */
suma_divisores = 1; /* contamos ya la 1 como divisor */

for (i=2; i /*Tratar Elemento */
if (n%i==0) /* i es divisor de n */
suma_divisores = suma_divisores +1;

/* tratamientofinal */
printf (“La suma de divisores de %d es %d\n”,n,suma_divisores);


2 (búsqueda)

/* Preparar secuencia */
i=2;

encontrado = FALSO; /* en este caso busco un divisor de n */

/* Inicio de tratamiento: no hay que hacer nada */

while ( (i {
/* Actualizar encontrado */
if (n%i==0)
encontrado = CIERTO; /* encontre un divisor de n */
if (!encontrado)
{
/*Tratar Elemento:no hay que hacer nada */

/* Avanzar secuencia */
i=i+1;
}
}

/* tratamiento final */
if (encontrado)
printf (“EL numero %d NO es primo\n”,n);
else
printf (“EL numero %d ES primo\n”,n);


3 (búsqueda)

/* Preparar secuencia */
i=1;

encontrado = FALSO;

/* Inicio de tratamiento */
divisores=0;

while ( (i<=n/2) && !encontrado)
{
/* Actualizar encontrado */
if (n%i==0)
{ divisores =...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS