domingo, 3 de noviembre de 2013

2.5. Ejercicios con Mientras y Para

Cuando se hacen programas normalmente necesitamos diferentes bucles, dependiendo de las necesidades que se tienen, en este caso es necesario hacer un análisis que nos permita identificar la estructura a utilizar.



Ejercicio 1. El Número Primo

Desarrolle un programa que indique si un número es primo o no lo es, un numero primo es todo aquel numero que es divisible por si mismo y por la unidad, por ejemplo:
  • 7 es primo porque solo se puede dividir entre 7 y entre 1.
  • 9 no es primo porque se puede dividir entre 9, 3 y 1, por lo tanto no es primo.
  • 13 es primo porque solo se puede dividir entre 13 y 1.
  • 27 no es primo porque se puede dividir entre 27, 9, 3, 1.
Análisis:
En los ejemplos podemos ver que los que los números primos tienen dos divisores exactos, si por ejemplo tenemos el 6, podemos hacer lo siguiente:

  • 1, 2, 3, 4, 5, 6, aquí tenemos todos los números si nos preguntamos  cuales son los divisores podemos analizar uno a uno verificando cuales tienen un residuo de cero en su división.
  • Al tener un numero divisor, entonces lo contamos, de esta forma en el caso del 6, tendremos los números 1, 2, 3, 6, por tanto no es primo.
  • Para este caso tenemos la necesidad de usar un bucle que genere los números por ejemplo del 1 al 6, luego dentro una condición para verificar si el numero es divisible entre estos y contarlos.
  • Al terminar el conteo deveremos verificar cuantos numeros son divisores y si teneos dos entonces si es primo, sino no lo es.
Variables de Entrada: numero
Variables de Salida: No se tienen, solo se mostrara un mensaje que indique si el numero es primo o no.

Diseño:
Algoritmo ElNumeroPrimo
Inicio
         Entero numero, contador, k
         Leer(numero)
         contador = 0
         k = 1
         Mienstras k<= numero
                  Si numero MOD k == 0 Entonces
                           contador = contador + 1
                  FinSi
                  k = k +1
         FinMientras
         Si contador == 2 Entonces
                  Escribir("Es un numero Primo")
         Sino
                  Escribir("El numero no es primo")
         FinSi
Fin

Código:

Notas:
...



Ejercicio 2. El Número Perfecto

Un número es perfecto si la suma de sus divisores menores a el es el mismo número, por ejemplo:
  • 28 = 1+2+4+7+14
  • 496 = 1+2+4+8+16+31+62+124+248
  • 8128 = 1+2+4+8+16+32+64+127+254+508+1016+2032+4064
Análisis:

  • Como podemos observar en los ejemplos tenemos al 28, y sus divisores, si observas bien el número, llegamos hasta 14 por que es la mitad de 28 y no existen divisores mayores a 14.
  • Al observar esto podemos ver que necesitamos un bucle que recorra desde 1 hasta la mitad del numero analizado, también necesitamos un condicional que indique si el numero es divisible.
  • Cuando al verificar que un numero es divisor procedemos a acumular este numero.
  • Cuando el bucle finaliza debemos comparar el acumulado con el numero original, si resultan ser iguales mostramos el mensaje que es numero perfecto, caso contrario no lo es.


Diseño:
Algoritmo ElNumeroPerfecto
Inicio
          Entero dato, k, suma
          Leer(dato)
          k = 1
          suma = 0
          Mientras (k <= dato DIV 2)
                    Si dato MOD k == 0 Entonces
                              suma = suma + k
                    FinSi
                    k = k + 1
          FinMientras
          Si suma == dato Entonces
                    Escribir("Es numero perfecto..")
          Sino
                    Escribir("No es perfecto..")
          FinSi
Fin

--En construcción Código:
--En Construcción Notas:

--En construcción afuera

--En Construcción afuera
--En construcción Ejercicio
--En construcción Análisis:

--En construcción Diseño:

--En construcción Código:
--En Construcción Notas:
--En construcción afuera

Actividad 2. 

No hay comentarios:

Publicar un comentario