FUNCION
Una funcion es un modulo de un programa separado del cuerpo principal, que realiza una tarea especifica y que puede regresar un valor a la parte principal del programa u otra funcion o procedimiento que la invoque.
EXISTEN 3 CLASES USUALES DE FUNCIONES.
Las primeras son de tipo computacional que son diseñadas para realizar operaciones con los argumentos y regresan un valor basado en el resultado de esa operación.
Las segundas funciones son aquellas que manipulan información y regresan un valor que indican la terminacion o la falla de esa manipulacion.
Las terceras son aquellas que no regresan ningun valor, es decir son estrictamenta procedurales.
Esto quiere decir que en general toda operación o calculo en un programa debera convertirse a una o muchas funcíones y el resto deberan ser procedimientos.
Normalmente, las funciones operan sobre ciertos valores pasados a las mismas ya sea como constantes literales o como variables, aunque se pueden definir funciones que no reciban parámetros. Existen dos formas en C++ de pasar parámetros a una función; por referencia o por valor. El hecho es que si en una declaración de función se declaran parámetros por referencia, a los mismos no se les podrá pasar valores literales ya que las referencias apuntan a objetos (variables o funciones) residentes en la memoria; por otro lado, si un parámetro es declarado para ser pasado por valor, el mismo puede pasarse como una constante literal o como una variable. Los parámetros pasados por referencia pueden ser alterados por la función que los reciba, mientras que los parámetros pasados por valor o copia no pueden ser alterados por la función que los recibe, es decir, la función puede manipular a su antojo al parámetro, pero ningún cambio hecho sobre este se reflejará en el parámetro original.
EJEMPLOS :
#include<iostream>
#include<math.h>
using namespace std;
//ZONA DE DECLARACION DE VARIABLES PUBLICAS
double N1, N2, X1, Y1,X2, Y2, PHI, S, R,Resp;
const double PI=3.141592;
// ZONA DE DECLARACION DE FUNCIONES
double sumar(double x1, double x2);
void Polares(double a1, double b1);
void Rectangulares(double m, double n);
void SumaPolares(double x1, double y1, double x2, double y2);
int main ()
{
int opcion;
do
{ //INICIO DEL DO - WHILE
cout<<"********* MENU DE FUNCIONES **********\n\n";
cout<<" 1) SUMA CON FUNCIONES \n";
cout<<" 2) FASORES DE RECTANGULARES A POLAR \n";
cout<<" 3) FASORES DE POLARES A RECTANGULARES \n";
cout<<" 4) SUMA DE FASORES \n\n";
cout<<" DIGITE <0> PARA SALIR \n\n";
cout<<"*************************************\n\n";
cout<<" ELIJA UNA OPCION : "; cin>>opcion;
//2)ASIGNACION
switch (opcion)
{ //INICIO DEL CASO 1
case 1:
{// CONTENIDO 1 (INICO)
cout<<"******* SUMA CON FUNCIONES *******************\n\n";
cout<<"Ingrese el primer numero N1: "; cin>>N1;
cout<<"Ingrese el segundo numero N2: "; cin>>N2;
//invocación
Resp = sumar(N1,N2);
cout<<"La suma de "<<N1<< " + "<<N2<<" es: "<< Resp<<endl;
cout<<"*************************************************\n\n";
} //FIN DEL CASO 1
break;
case 2:
{//INICIO DEL CASO 2
cout<<"******* FASORES DE RECTANGULARES A POLAR ***************\n\n";
cout<<"Ingrese la coordenada X: "; cin>> X1;
cout<<"Ingrese la coordenada Y: "; cin>> Y1;
Polares(X1,Y1);
cout<<"*********************************************************\n\n";
} //FIN DEL CASO 2
break;
case 3:
{//INICIO DEL CASO 2
cout<<"******* FASORES DE POLARES A RECTANGULARES ***************\n\n";
cout<<"Ingrese el RADIO R: "; cin>> R;
cout<<"Ingrese el angulo S: "; cin>> S;
Rectangulares(R,S);
cout<<"*********************************************************\n\n";
} //FIN DEL CASO 3
break;
case 4:
{//INICIO DEL CASO 4
cout<<"******* SUMA DE FASORES ******************************\n\n";
cout<<"Ingrese X1: "; cin>> X1;
cout<<"Ingrese Y1: "; cin>> Y1;
cout<<"Ingrese X2: "; cin>> X2;
cout<<"Ingrese Y2: "; cin>> Y2;
SumaPolares(X1,Y1,X2,Y2);
cout<<"*********************************************************\n\n";
} //FIN DEL CASO 2
}// FIN DE SWITCH
}while (opcion !=0); // FIN DEL DO - WHILE
cout<<endl;cout<<"\n";
system("pause");
return 0;
} //FIN DEL PROGRAMA
// ZONA DE DESARROLLO DE FUNCIONES
double sumar(double x1, double x2)
{
return x1+x2;
}
void Polares(double a1, double b1)
{
double R;
R = sqrt(pow(a1,2) + pow(b1,2));
PHI = atan(b1/a1);
S = (PHI*360)/(2*PI);
cout<<"La solucion en POLARES ES: \n";
cout<<"El radio es: "<< R << endl;
cout<<"El Angulo es: "<< S << endl;
cout<<"R= "<< R << " Angulo: "<< S <<endl;
}// FIN DE POLARES
void Rectangulares(double m, double n)
{
R = (n*2*PI)/360; // CONVERSION
X1 = m * cos(R);
Y1 = m * sin(R);
cout<<"\n La solucion en COORDENADA RECTANGULAR ES: \n";
cout<<"El RADIO R = "<< m <<endl;
cout<<"La coordenada es X = "<<X1<<endl;
cout<<"La coordenada es Y = "<<Y1<<endl;
}
void SumaPolares(double x1, double y1, double x2, double y2)
{
cout<<"Parte Real es: "<< sumar(x1,x2) <<endl;
cout<<"Parte Imaginaria es: "<<sumar(y1,y2) <<endl;
cout<<"LA SUMA ES: "<<sumar(x1,x2) <<" + j "<<sumar(y1,y2) <<endl;
}
No hay comentarios:
Publicar un comentario