Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1) Objetivo.
Lee un numero "n"(>0 y <= 33) y obtiene el factorial.
Tiene las características:
1) Puede ejecutarse las veces deseadas dentro del mismo proceso.
2) Checa que "n" sea un valor valido.
3) Imprime los valores intermedios hasta obtener el resultado.
Termino: 1 Resul: 1
Termino: 2 Resul: 2
Termino: 3 Resul: 6
Termino: 4 Resul: 24
limpiarPantalla
num (xx)
fac *= ter
Termino : ter
Resultad: fac
sn
! (sn==’s’ || sn==’n’)
sn==’n’ fin
SI
4) Codificación.
/* P03FactN.c
Lee un numero "n"(>0 y <= 33) y obtiene el factorial.
Tiene las caracteristicas:
1) Puede ejecutarse las veces deseadas dentro del mismo proceso.
2) Checa que "n" sea un valor valido.
Ing. Leopoldo Ortega Rios
*/
#include<stdio.h>
int main() {
int num, ter;
float fac=1; //para poder dar un rango mayor
char sn;
while(1){
do{
system("cls");
printf("\nALIMENTAR EL NUMERO \"n\" (>0 Y <= 33):\t");
scanf("%d", &num);
}while(!(num>0 && num<34));
5) Requerimientos:
Enviar al eMail correspondiente del grupo,
1 Archivo tipo “.c” con el código del programa (copia de la codificación del punto 4).
2 Imagen de la pantalla con la ejecución del programa. La captura de una pantalla
se obtiene al digitar simultáneamente las teclas “Windows” e “ImpPt”; el archivo con
la imagen se encuentra en el directorio …\Pictures\CapturaDePantalla (una
aproximación, depende del S.O. instalado y el equipo).
6) Observaciones:
float fac=1; define la variable fac tipo “float” (con punto decimal) y la inicializa con 1.
num y ter son variables int; sn es una variable tipo “char” (carácter).
while(1){ Como “1” en “c” se interpreta como verdadero, todas las instrucciones
delimitadas por su correspondiente “{}” se repiten por siempre. Esto controla se
repita TODO el proceso. Ciclo externo.
do{ repite todas las instrucciones delimitadas por “{“ y }while(!(num>0 &&
num<34)); mientras la expresión sea verdadera. En este caso si alimentamos un
100 a num, la expresión num>0 && num<34 es falsa, con “!” se vuelve verdadera y
se repite el ciclo “interno”; si a num le valor de 20, la expresión es verdadera pero
con “!” se vuelve falsa y se sale del ciclo iterativo.
Con el for se repiten las instrucciones delimitadas por “{}” correspondientes. Dentro
de ellas printf("\nTermino: %d\tResul: %g", ter,fac); imprime resultados intermedios
“%d” para el valor de ter, “%g” para el valor de fac.
De manera similar se controla la repetición o terminación del programa por medio
de la variable “sn” (mnemónicamente para valores “s” o “n”). Se captura su valor, se
convierte a minúsculas se checa que sean valores aceptables y saliendo de “do” se
checa con if(sn=='n')break; con “break” se sale del ciclo iterativo correspondiente y
se termina. En el otro caso llega a “}” y se regresa hasta el “{“ correspondiente (inicio
de proceso “while(1)”