unsigned long int

Anuncio
PROGRAMACIÓN
MODULAR
Lic. Gladys Chuquimia
¿En qué consiste la programación
modular?
S
M u
O b
D p
U r
L o
O b
S l
e
m
a
s
Elaborado por Lic. Gladys
Chuquimia
Características
Permite resolver problemas dividiéndolo en
subproblemas más sencillos de resolver mediante
el diseño descendente.
Los módulos deben tener alta cohesión y mínimo
acoplamiento.
PROBLEMA
Subproblema_1
Subproblema_1_1
Subproblema_2
Subproblema_1_2
Elaborado por Lic. Gladys
Chuquimia
Subproblema_N
Tipos de Módulos
Procedimientos
Elaborado por Lic. Gladys
Chuquimia
Funciones
Funciones
Devuelve siempre un solo valor.
Paso de parámetros por valor
Elaborado por Lic. Gladys
Chuquimia
En diagrama de flujo
Elaborado por Lic. Gladys
Chuquimia
Invocando una función
Tome en cuenta
que siempre
devuelve un valor,
por tanto:
Asignar el valor a
una variable.
Realizar
operaciones con el
valor.
Imprimir el valor
Elaborado por Lic. Gladys
Chuquimia
Declaraciones en Lenguaje C
Tipo_dato_devuelto nombre_funcion (tipo v1, tipo vn)
{ //Cuerpo del subprograma
return val; //Devuelve valor que debe pertenecer al mismo
// tipo de dato devuelto.
}
Elaborado por Lic. Gladys
Chuquimia
Elaboración de un programa sin
emplear la programación modular
Diseñar un programa para encontrar el factorial de
un número entero positivo.
N, número entero positivo
El factorial de N
Elaborado por Lic. Gladys
Chuquimia
#include “stdio.h”
#include “conio.h”
void main()
{
int n, fac, i; clrscr();
do{
printf(“Digite un número entero positivo”);
scanf(“%d”,&n);
} while (n <0);
fac = 1;
for(i=1; i<=n;i++)
{
fac = fac * i; }
printf(“El factorial es: %d”, fac); getch();
}
Elaborado por Lic. Gladys
Chuquimia
#include “iostream.h”
#include “conio.h”
void main()
{
int n, fac, i; clrscr();
do{
cout <<“Digite un número entero positivo”;
cin >> n;
} while (n <0);
fac = 1;
for(i=1; i<=n; i++)
{
fac = fac * i; }
cout <<“El factorial es:” << fac; getch();
}
Elaborado por Lic. Gladys
Chuquimia
ANALISIS: Trabajando con
Procesos bien definidos
Encontrar el factorial de un #
Leer un número
N (>0)
Encontrar el
factorial
Elaborado por Lic. Gladys
Chuquimia
Mostrar el resultado
Codificando en Lenguaje C
int leenum ( )
{
int n;
do{
cin >> n;
} while (n <= 0 );
return n;
}
Elaborado por Lic. Gladys
Chuquimia
Diseñando la función factorial
Siempre devuelve
UN VALOR
Llamada a la
función
Elaborado por Lic. Gladys
Chuquimia
Codificando en Lenguaje C
unsigned long int facto (int n)
{ unsigned long int fac;
int i;
fac = 1;
for(i = 1; i <= n ;i++ )
fac = fac * i;
return fac;
}
Elaborado por Lic. Gladys
Chuquimia
Llamando al programa principal
en lenguaje C
void main ( )
{ int N;
cout <<“Digite un número entero positivo”;
N = leenum ( ); //Llamada a la función leenum
cout << “El factorial de: ”<<N<<“ es:”<<factorial(N);
}
Elaborado por Lic. Gladys
Chuquimia
Inclusión de cabeceras y Prototipos
#include <iostream.h>
#include <conio.h>
//Prototipos
int leenum ( );
unsigned long int facto (int n);
//Cuerpo de los módulos
int leenum ( )
{….
} //Todos los cuerpos de módulos
void main ( ) //Todo el
programa
principal
Elaborado
por Lic. Gladys
Chuquimia
El programa: facto.cpp
#include <iostream.h>
#include <conio.h>
//Prototipos
int leenum ( );
unsigned long int facto (int n);
//Cuerpo de los módulos
int leenum ( )
{ int n;
do{
cin >> n;
Elaborado por Lic. Gladys
Chuquimia
} while (n <= 0 );
return n;
}
unsigned long int facto (int n)
{ unsigned long int fac;
int i;
fac = 1;
for(i = 1; i <= n ;i++ )
fac = fac * i;
return fac;
}
void main ( )
{ int N;
cout <<“Digite un número entero positivo”;
N = leenum ( );
Elaborado por Lic. Gladys
Chuquimia
cout << “El factorial de: ”<<N<<“ es:”<<factorial(N);
getch();
}
Elaborado por Lic. Gladys
Chuquimia
Ejercicio
Evaluar la siguiente función:
F(a, b) = a! + b!
Ejemplo:
Si a = 3 y b = 5 Æ Salida es 126 (3! + 5!)
Elaborado por Lic. Gladys
Chuquimia
ANALISIS: Trabajando con
Procesos bien definidos
F(a,b)
Leer un número
(>0) a, b
Calcular la función
Encontrar el
factorial
Elaborado por Lic. Gladys
Chuquimia
Mostrar el resultado
De manera tradicional sería:
Elaborado por Lic. Gladys
Chuquimia
Con módulos todo se simplifica:
int leenum ( )
{
int n;
do{
cin >> n;
} while (n <= 0 );
return n;
}
Elaborado por Lic. Gladys
Chuquimia
Contamos con la función factorial
unsigned long int facto (int n)
{ unsigned long int fac;
int i;
fac = 1;
for(i = 1; i <= n ;i++ )
fac = fac * i;
return fac;
}
Siempre devuelve
UN VALOR
Elaborado por Lic. Gladys
Chuquimia
El programa principal, es:
void main ( )
{ int a, b;
unsigned long int fa, fb, r;
cout <<“A : ”; a = leenum ( );
cout <<“B : ”; b = leenum ( );
fa = facto (a );
fb = facto (b );
r = fa + fb ;
cout <<“Resultado: ”<<r;
getch();
}
Elaborado por Lic. Gladys
Chuquimia
Elaborado por Lic. Gladys
Chuquimia
Descargar