Programacion en C++ : Correspondencia entre parámetros actuales y formales

En este artículo voy a darte unas pautas interesantes sobre los parámetros formales y actuales que te comente en post anteriores. Estudia bien estos pasos e intenta comprenderlos 100%. ¿Hiciste el ejercicio que te propuse en el post anterior?. Si  lo hiciste, no tendrás problemas para entender este artículo. En el caso de no haberlo realizado pulsa aquí y hazlo antes de leer este artículo. 

  • Debe haber exactamente el mismo número de parámetros actuales que de parámetros formales.
#include
#include
using namespace std;
double Resta(double valor_1, double valor_2){
return valor_1 - valor2;
}
int main(){
double un_valor = 5.0, otro_valor = 4.0;
cout << "\nResta" = << Resta(un_valor, otro_valor);
cout << "\nResta  = " << Resta(otro_valor, un_valor);
}
  • El parámetro actual puede ser una expresión. Primero se evalúa la expresión y luego se realiza la llamada a la función.
hipotenusa_A = Hipotenusa(ladoA+3 , ladoB*5);
  • Cada parámetro formal y su correspondiente parámetro actual han de ser del mismo tipo (o compatible)
double Cuadrado(double entrada){
return entrada*entrada
}
int main(){
double resultado;
int valor = 7;
resultado = Cuadrado(valor);
}
  • Problema: que el tipo del parámetro formal sea más pequeño que el actual. La conversión de tipos puede que no se realice correctamente, por lo que el parámetro formal toma un valor distinto al que pretendíamos y la función devuelve un valor erróneo
int Cuadrado(int entrada){
return entrada*entrada;
}
int main(){
int resultado;
resultado = Cuadrado(400000000000);
// devuelve basura
  • Dentro de una función, se puede llamar a cualquier otra función que esté definida con anterioridad. El paso de parámetros entre
    funciones se realiza igual independientemente de dónde esté la llamada.
#include
#include
using namespace std;
double Cuadrado(double entrada){
return entrada*entrada;
}
double Hipotenusa(double un_lado, double otro_lado){
return sqrt(Cuadrado(un_lado) + Cuadrado(otro_lado));
}
int main(){
double lado1_A, lado2_A, lado1_B, lado2_B,
hipotenusa_A, hipotenusa_B;

hipotenusa_A = Hipotenusa(lado1_A, lado2_A);
hipotenusa_B = Hipotenusa(lado1_B, lado2_B);
.............
}
  • Las modificaciones del parámetro formal no afectan al parámetro actual. Recordemos que el paso por valor conlleva trabajar con una copia del valor correspondiente al parámetro actual, por lo que éste
    no se modifica.
double Cuadrado(double entrada){
entrada = entrada*entrada;
return entrada;
}
int main(){
double resultado, valor = 3;
resultado = Cuadrado(valor);
// valor sigue siendo 3
}

Espero que hasta aquí hayas realizado un seguimiento de las funciones y de los parámetros. Todavía tengo que seguir avanzando sobre este concepto, por lo que hasta aquí debe de haberte quedado clarísimo. Si no es así dejame un comentario para poder ayudarte.

Un saludo,

Javi Pizarro.

Acerca de Javi Pizarro

Ingeniero informático dedicado a la docencia, con experiencia en creación de programas de gestión y desarrollo de aplicaciones web.
Esta entrada fue publicada en Programacion y etiquetada , , , . Guarda el enlace permanente.

3 respuestas a Programacion en C++ : Correspondencia entre parámetros actuales y formales

  1. Muy interesante! ya tengo el blog en mi Google reader para leer las futuras entradas sobre programación.
    Saludos!

  2. raul galvez cachiro dijo:

    wenas a todos

  3. ricardo dijo:

    interesante tu blog, quisiera una explicacion de dreacion de classes,destructores y constructores plz…

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s