Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porLucas Torregrosa Gómez Modificado hace 8 años
1
Corporación Universitaria del Caribe CECAR Fundamentos de programación II
2
Hasta el momento se han hecho funciones que reciben parámetros por valor Se puede pedir que los pase por referencia utilizando &. Por valor: int FijateSiEsCincoVal(int x); Por referencia: int FijateSiEsCincoRef(int &x);
3
Las referencias sirven para definir "alias" o nombres alternativos para un mismo objeto. Para ello se usa el operador de referencia (&).
4
#include void elevarCuadrado (int &); //prototipo de función que recibe una referencia a un int void main() { int x = 0; //Declaracio e inicializacion en 0. cout > x; cout << "antes de elevarse es " << x << " \n "; elevarCuadrado(x); //Notar que la llamada no es diferente a un paso por valor. cout << "x despues de elevarse es " << x << endl;//muestra el valor modificado por la función getche(); } void elevarCuadrado (int &y ) //recibe una referencia a un int en este caso (x) { y = y*y; //La funcion no devuelve ningun valor, pero modifica el argumento original (x) //ya que estamos trabajando con una referencia. }
5
#include void IncrementarVal(int x) { x=x+1; } void IncrementarRef(int &x) { x=x+1; } void main() { int a; a=5; cout<<a<<"\n"; IncrementarVal(a); cout<<a<<"\n"; IncrementarRef(a); cout<<a<<"\n"; IncrementarVal(a); cout<<a<<"\n"; IncrementarRef(a); cout<<a<<"\n"; }
6
cuando se llama a la función incluyendo valores para esos parámetros opcionales, funcionará como cualquiera de las funciones que hemos usado hasta ahora. Pero si se omiten todos o algunos de estos parámetros la función trabajará con los valores por defecto para esos parámetros que hemos definido.
7
#include double VelocidadFinal(double h, double v0=0.0, double g=9.8); void main() { cout << "Velocidad final en caida libre desde 100 metros,\n" <<"partiendo del reposo en la Tierra" << VelocidadFinal(100) << "m/s" << endl; cout << "Velocidad final en caida libre desde 100 metros,\n" << "con una velocidad inicial de 10m/s en la Tierra" << VelocidadFinal(100, 10) << "m/s" << endl; cout << "Velocidad final en caida libre desde 100 metros,\n" << "partiendo del reposo en la Luna" << VelocidadFinal(100, 0, 1.6) << "m/s" << endl; cout << "Velocidad final en caida libre desde 100 metros,\n" << "con una velocidad inical de 10m/s en la Luna" << VelocidadFinal(100, 10, 1.6) << "m/s" << endl; getche(); } double VelocidadFinal(double h, double v0, double g) { double t = (-v0+sqrt(v0*v0 + 2*g*h))/g; return v0 + g*t; } Como no hemos indicado ningún valor para la velocidad inicial, se tomará el valor por defecto de 0 m/s. Y como tampoco hemos indicado un valor para la gravedad, se tomará el valor por defecto, correspondiente a la fuerza de la gravedad en la Tierra.
8
Este método tiene algunas limitaciones Sólo los últimos argumentos de las funciones pueden tener valores por defecto. Sólo los últimos argumentos pueden ser omitidos en una llamada. Cada uno de los valores por defecto debe especificarse bien en los prototipos, o bien en las declaraciones, pero no en ambos.
9
Cuando se declaren valores de parámetros por defecto en prototipos, no es necesario indicar el nombre de los parámetros. void funcion(int = 1); // Legal void funcion1(int a, int b=0, int c=1); // Legal void funcion2(int a=1, int b, int c); // Ilegal void funcion3(int, int, int=1); // Legal... void funcion3(int a, int b=3, int c) // Legal { }
10
Los argumentos por defecto empiezan a asignarse empezando por el último. int funcion1(int a, int b=0, int c=1);... funcion1(12, 10); // Legal, el valor para "c" es 1 funcion1(12); // Legal, los valores para "b" y "c" son 0 y 1 funcion1(); // Ilegal, el valor para "a" es obligatorio
11
podemos definir varias funciones con el mismo nombre, con la única condición de que el número y/o el tipo de los argumentos sean distintos. El compilador decide cual de las versiones de la función usará después de analizar el número y el tipo de los parámetros.
12
#include int mayor(int a, int b); char mayor(char a, char b); double mayor(double a, double b); void main() { cout << mayor('a', 'f') << endl; cout << mayor(15, 35) << endl; cout << mayor(10.254, 12.452) << endl; getche(); } int mayor(int a, int b) { if(a > b) return a; else return b; } char mayor(char a, char b) { if(a > b) return a; else return b; } double mayor(double a, double b) { if(a > b) return a; else return b; }
13
#include int mayor(int a, int b); int mayor(int a, int b, int c); int mayor(int a, int b, int c, int d); void main() { cout << mayor(10, 4) << endl; cout << mayor(15, 35, 23) << endl; cout << mayor(10, 12, 12, 18) << endl; getche(); } int mayor(int a, int b) { if(a > b) return a; else return b; } int mayor(int a, int b, int c) { return mayor(mayor(a, b), c); } int mayor(int a, int b, int c, int d) { return mayor(mayor(a, b), mayor(c, d)); }
14
Escriba un programa que calcule el área de distintas figuras geométricas(triángulo, Cuadrado, rectángulo, círculo, trapecio, etc.) sobrecargando la función área con el número y tipo de argumentos necesarios para cada tipo de figura.
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.