jueves, 27 de noviembre de 2014

Ejemplo de un programa en C usando sentencias repetitivas

En este ejemplo de aplicación de sentencias selectivas múltiples tomaremos un ejercicio del libro: "Fundamentos de programacíon Piensa en C" (Cairó) el cual dice:

Se dice que un número N es primo si los únicos enteros positivos que lo dividen son exactamente 1 y N. Construye un diagrama de flujo y el correspondiente programa en C que lea un número entero positivo NUM y escriba todos los números primos menores a dicho número.

Dato: NUM (variable de tipo entero que representa al número entero positivo que se ingresa).

Aplicando los pasos para realizar un diagrama de flujo:

Paso 1: Definición del problema.
Se quiere realizar un programa que al ingresar un numero entero positivo el programa imprima los números primos que sean menores a dicho numero ingresado.

Paso 2: Planeación de la solución.

Datos de entrada: Un número entero positivo
Datos de salida: Números primos inferiores al número ingresado.
Datos adicionales: Ninguno.

Proceso:
Lo primero que se debe hacer es conocer el número que va a servir de límite para calcular los números primos, después el programa procede a evaluar si el número es mayor que 0, si esta condición no se cumple imprime “Numero invalido”. Si la condición es verdadera se procede a declarar contador 2 igual a 1 y contador de la división igual a 0. El programa después evalúa si el contador dos es menor o igual que el contador, si esta condición es verdadera procede a evaluar el residuo que hay entre el contador y el contador 2 y este mismo debe ser igual a cero. Si esto se cumple el contador de la división aumenta uno, también el contador dos aumenta uno. Este proceso se repite hasta que el contador 2 sea mayor al contador, cuando esto ocurre se evalúa si el contador de la división es menor que dos e imprime el contador y después aumenta el mismo en uno. Este proceso se repite hasta que el contador sea mayor que el número ingresado. Se utiliza sentencias do if, do while y while para realizar este programa de repeticiones. El programa imprime los números que pasaron todas estas evaluaciones, es decir los números primos.

Diagrama de flujo:

Programa en lenguaje C:

/* CABECERA
Nombres: Juan Diego Mantilla
Fecha: 22-Noviembre-2014
Descripción: Lo primero que se debe hacer es conocer el número que va a servir de límite para calcular los números primos, después el programa procede a evaluar si el número es mayor que 0, si esta condición no se cumple imprime "Numero invalido". Si la condición es verdadera se procede a declarar contador 2 igual a 1 y contador de la división igual a 0. El programa después evalúa si el contador dos es menor o igual que el contador, si esta condición es verdadera procede a evaluar el residuo que hay entre el contador y el contador 2 y este mismo debe ser igual a cero. Si esto se cumple el contador de la división aumenta uno, también el contador dos aumenta uno. Este proceso se repite hasta que el contador 2 sea mayor al contador, cuando esto ocurre se evalúa si el contador de la división es menor que dos e imprime el contador y después aumenta el mismo en uno. Este proceso se repite hasta que el contador sea mayor que el número ingresado. Se utiliza sentencias do if, do while y while para realizar este programa de repeticiones. El programa imprime los números que pasaron todas estas evaluaciones, es decir los números primos.
*/

#include <stdio.h>
main()
{
int cont=1, cont2=1, contd=0, num;
printf("Ingrese el numero:\n");
scanf("%d", &num);
if(num>0){
do{
cont2=1;
contd=0;
while(cont2<=cont)
{
if(cont%cont2==0)
contd++;
cont2++;
}
if(contd<=2)
printf("\nEl numero primo es: %d\n", cont);
cont++;
}while(cont<=num);
}
else{
printf("Ingrese un numero valido");
}
getch();
}
CAPTURAS DE PANTALLA:


1 comentario:

  1. tendrá el diagrama de flujo y que me lo pueda proporcionar porfavor?

    ResponderEliminar