Documente Academic
Documente Profesional
Documente Cultură
CENTRO DE SISTEMAS
8 PROGRAMACIN MODULAR
La gran mayora de los programas que desarrolla normalmente un programador, son mucho
ms largos que los desarrollados hasta el momento. La mejor forma de escribirlos y
mantenerlos es a partir de piezas menores, mdulos o funciones de usuario; siendo cada una
de ellas ms fciles de manipular que un programa extenso que contenga la totalidad del
cdigo del programa.
Utilizar funciones en la elaboracin de un programa en C++, facilita el diseo, implementacin,
operacin y mantenimiento de programas grandes.
La programacin modular, tambin llamada programacin estructurada, se realiza cuando el
programador define funciones de usuario, donde cada una realiza una tarea sencilla.
En el siguiente diagrama la funcin main se comunica con varias funciones en forma jerrquica y
estas a su vez pueden llamar otras funciones.
Para utilizar en un programa funciones, se requiere tres pasos: Que la funcin se declare antes
de su uso (prototipo), que se haga la llamada de la funcin y finalmente que se defina o escriba
la funcin (estructura).
A continuacin se muestra un programa que usa una funcin definida por el programador para
calcular el cuadrado de un nmero. Observe las tres partes que conforman la funcin:
Ejemplo:
CENTRO DE SISTEMAS
Nombre de la funcin:
Lista de parmetros:
CENTRO DE SISTEMAS
"<<cuadrado(x)<<endl;
imprimir(a,b,c);
titulos();
Al ser llamada la funcin se redirigir el control del programa a la funcin nombrada hasta que
retorne el resultado. Normalmente la llamada a una funcin se realizar desde la funcin
principal main(), aunque tambin podra ser llamada desde otra funcin. Cuando no se envan
datos en la llamada para la funcin, se deja vaco el parntesis.
Las funciones de programador no se pueden anidar, esto significa que una funcin no se puede
declarar dentro de otra funcin.
En el ejemplo, la funcin de nombre ec uacin proporciona los datos almacenados en x y y, para
que se realice la tarea y retorne el resultado para almacenarlo en la variable z.
En la segunda lnea del ejemplo, se llama la funcin Area_del_circulo y se le proporciona el dato
almacenado en x, para ser impreso el resultado.
En C++ todas las funciones son externas o globales, es decir, pueden ser llamadas desde
cualquier punto del programa ya sea desde la funcin principal o desde otra funcin.
CENTRO DE SISTEMAS
Tipo de retorno:
Nombre de la funcin:
Lista de parmetros:
{ }:
Ejemplos:
int cuadrado(int y)
{
return y*y;
}
void imprimir(int a,long int b,float c)
{
cout<<"EDAD: "<<a<<endl;
cout<<"IDENTIFICACION: "<<b<<endl; cout<<"SUELDO BASICO: "<<c<<endl;
cout<<"SUELDO A PAGAR: "<<c*0.88<<endl;
}
CENTRO DE SISTEMAS
funciones.
/*programa que muestra variables globales y locales*/
#include<iostream>
double z;
int cuadrado(int);
void imprimir(void);
using namespace std;
int main()
{
int x;
cout<<"Ingrese un valor para x:"<<endl;
cin>>x; z=cuadrado(x); imprimir();
system("pause");
return 0;
}
int cuadrado(int y)
{
return y*y;
}
void imprimir(void)
{
cout<<"El cuadrado es: "<<z<<endl;
return;
}
CENTRO DE SISTEMAS
double a =5;
double b=a+a; double
c=::a+::a;
cout << "Local a:
" << a << endl;
cout << "Local b:
" << b << endl;
cout << "Global a: " << ::a << endl; cout <<
"Local c: " << c << endl; system("pause");
return 0;
}
CENTRO DE SISTEMAS
int a,b,c;
cout<<"Digite tres enteros: ";
cin>>a>>b>>c;
cout<<"El Maximo es:
"<< maximo(a,b,c)<<endl;
system("pause");
}
int maximo(int x,int y,int z)
{
int max=z;
if (x>y&&x>z)
max=x;
if (y>x&&y>z)
max=y;
return max;
}
Ejercicio 2
En el siguiente ejemplo se presente un programa que usa funciones con retorno vaco para
imprimir resultados:
/*Programa que intercambia los dgitos para nmeros entre 10 y 99
utilizar una funcin con retorno vaco para imprimir*/
#include<iostream>
void intercambio(int);
using namespace std;
int main()
{
7
CENTRO DE SISTEMAS
int a;
cout<<"Entre UN NUMERO ENTRE 10 Y 99: "<<endl;
cin>>a;
if (a>=10&&a<=99)
intercambio(a);
else
cout<<"\n DATO INVALIDO: ";
cout<<"\n FIN DEL PROGRAM ";
system("pause");
}
void intercambio(int x)
{
int z, y;
z=x%10;
y=x-z;
y=y/10;
cout<<x<<" invertido es:
"<<z*10+y;
Como el prototipo de la funcin intercambio inicia con void, indica que no hay retorno de valor
en esta funcin; as mismo, se le declara un parmetro de tipo entero.
En caso de que se cumpla la condicin se hace la llamada a la funcin intercambio, con el
argumento a, de lo contrario cuando no se cumple la condicin llama el flujo de salida: DATO
INVALIDO.
Como en la definicin de la funcin se encuentra el encabezado void, se indica que no retorna
valor.
el nombre de la funcin y el argumento, as esta funcin recibe el parmetro en la variable
x. La Instruccin de retorno es sin parmetros.
RESUMEN
-
C++ permite
funciones.
realizar
programas
estructurados o modulares,
con la
utilizacin de
CENTRO DE SISTEMAS
Las funciones de usuario son mini programas dentro de un programa. Las funciones
permiten realizar diferentes tareas especficas que pueden ser utilizadas varias veces por el
programa
Los programas en C++ contienen la funcin main() y por lo general varias funciones
de biblioteca y funciones definidas por el programador, cada una de las cuales realiza una
tarea.
Las funciones no se pueden anidar, esto significa que una funcin no se puede declarar
dentro de otra funcin.
Una funcin con retorno vaco, no devuelve valores, por lo tanto inicia con la palabra
void.
Las funciones con retorno vaco siguen las mismas reglas que las funciones con retorno de
datos: Se debe definir antes de su uso (prototipo), se hace la llamada a la funcin y
finalmente se define o escribe la funcin (estructura).
C++ reconoce el mbito de una variable, segn haya sido declarada como local o global,
las variables globales suelen definirse en las declaraciones globales del programa, mientras
que las variables locales se definen en los cuerpos de las funciones iniciando como
primeras instrucciones.
Cuando una funcin tiene un parmetro por valor esta recibe una copia de los valores de
los parmetros, mientras que cuando tiene parmetros por referencia reciben la direccin
de los argumentos pasados y cambia los valores de los argumentos originales.