domingo, 23 de agosto de 2015

ESTRUCTURA FUNCION


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