|
|
|
|
46
|
##Funciones
|
46
|
##Funciones
|
47
|
|
47
|
|
48
|
|
48
|
|
49
|
-En matemática, una función $$f$$ es una regla que se usa para asignar a cada elemento $$x$$ de un conjunto llamado *dominio*, uno (y solo un) elemento $$y$$ de un conjunto llamado *campo de valores*. Por lo general, esa regla se representa como una ecuación, $$y=f(x)$$. La variable $$x$$ es el parámetro de la función y la variable $$y$$ contendrá el resultado de la función. Una función puede tener más de un parámetro pero solo un resultado. Por ejemplo, una función puede tener la forma $$y=f(x_1,x_2)$$ en donde hay dos parámetros y para cada par $$(a,b)$$ que se use como argumento de la función, y la función tendrá un solo valor de $$y=f(a,b)$$. El dominio de la función te dice el tipo de valor que debe tener el parámetro y el campo de valores dice el tipo de valor que tendrá el resultado que devuelve la función.
|
|
|
|
|
49
|
+En matemática, una función $$f$$ es una regla que se usa para asignar a cada elemento $$x$$ de un conjunto llamado *dominio*, un (y solo un) elemento $$y$$ de un conjunto llamado *campo de valores*. Por lo general, esa regla se representa como una ecuación, $$y=f(x)$$. La variable $$x$$ es el parámetro de la función y la variable $$y$$ contendrá el resultado de la función. Una función puede tener más de un parámetro pero solo un resultado. Por ejemplo, una función puede tener la forma $$y=f(x_1,x_2)$$ en donde hay dos parámetros y para cada par $$(a,b)$$ que se use como argumento de la función, y la función tendrá un solo valor de $$y=f(a,b)$$. El dominio de la función te dice el tipo de valor que debe tener el parámetro y el campo de valores dice el tipo de valor que tendrá el resultado que devuelve la función.
|
50
|
|
50
|
|
51
|
Las funciones en lenguajes de programación de computadoras son similares. Una función
|
51
|
Las funciones en lenguajes de programación de computadoras son similares. Una función
|
52
|
tiene una serie de instrucciones que toman los valores asignados a los parámetros y realiza alguna tarea. En C++ y en algunos otros lenguajes de programación, las funciones solo pueden devolver un resultado, tal y como sucede en matemáticas. La única diferencia es que una función en programación puede que no devuelva un valor (en este caso la función se declara `void`). Si la función va a devolver algún valor, se hace con la instrucción `return`. Al igual que en matemática tienes que especificar el dominio y el campo de valores, en programación tienes que especificar los tipos de valores que tienen los parámetros y el resultado que devuelve la función; esto lo haces al declarar la función.
|
52
|
tiene una serie de instrucciones que toman los valores asignados a los parámetros y realiza alguna tarea. En C++ y en algunos otros lenguajes de programación, las funciones solo pueden devolver un resultado, tal y como sucede en matemáticas. La única diferencia es que una función en programación puede que no devuelva un valor (en este caso la función se declara `void`). Si la función va a devolver algún valor, se hace con la instrucción `return`. Al igual que en matemática tienes que especificar el dominio y el campo de valores, en programación tienes que especificar los tipos de valores que tienen los parámetros y el resultado que devuelve la función; esto lo haces al declarar la función.
|
|
|
|
|
71
|
|
71
|
|
72
|
La siguiente línea asigna a la variable x el resultado de la llamada a `ejemplo`:
|
72
|
La siguiente línea asigna a la variable x el resultado de la llamada a `ejemplo`:
|
73
|
|
73
|
|
74
|
-Si queremos guardar el valor del resultado de la función `ejemplo` en la variable `resultado` (que deberá ser de tipo entero), invocamos la función pasando argumentos de manera similar a:
|
|
|
|
|
74
|
+Si queremos guardar el valor del resultado de la función `ejemplo` en la variable `x` (que deberá ser de tipo entero), invocamos la función pasando argumentos de manera similar a:
|
75
|
|
75
|
|
76
|
```cpp
|
76
|
```cpp
|
77
|
x = ejemplo(2, 3.5, unCar);
|
77
|
x = ejemplo(2, 3.5, unCar);
|
|
|
|
|
94
|
|
94
|
|
95
|
###Funciones sobrecargadas (‘overloaded’)
|
95
|
###Funciones sobrecargadas (‘overloaded’)
|
96
|
|
96
|
|
97
|
-Las funciones sobrecargadas son funciones que poseen el mismo nombre, pero tiene *firmas* diferente.La firma de una función se compone del nombre de la función, y los tipos de parámetros que recibe, pero no incluye el tipo que devuelve. Los siguientes prototipos de funciones tienen **firmas iguales**:
|
|
|
|
|
97
|
+Las funciones sobrecargadas son funciones que poseen el mismo nombre, pero tienen *firmas* diferente.La firma de una función se compone del nombre de la función, y los tipos de parámetros que recibe, pero no incluye el tipo que devuelve. Los siguientes prototipos de funciones tienen **firmas iguales**:
|
98
|
|
98
|
|
99
|
```cpp
|
99
|
```cpp
|
100
|
int ejemplo(int, int) ;
|
100
|
int ejemplo(int, int) ;
|
|
|
|
|
237
|
|
237
|
|
238
|
```
|
238
|
```
|
239
|
showMovie
|
239
|
showMovie
|
240
|
- showMovies (las dos)
|
|
|
|
|
240
|
+ showMovies
|
241
|
getMovieName
|
241
|
getMovieName
|
242
|
getMovieByName
|
242
|
getMovieByName
|
243
|
```
|
243
|
```
|
|
|
|
|
260
|
```cpp
|
260
|
```cpp
|
261
|
filemanip file("dvd_csv.txt") ;
|
261
|
filemanip file("dvd_csv.txt") ;
|
262
|
```
|
262
|
```
|
263
|
- Su propósito es asociar el objecto llamado `file` con el archivo de datos `dvd_csv.txt`. Cuando estamos abriendo un archivo para leer sus datos en un program, comúnmente es necesario especificar la **ruta absoluta** del archivo. De esa forma, el programa encontrará al archivo sin importar desde donde sea ejecutado.
|
|
|
|
|
263
|
+ Su propósito es asociar el objeto llamado `file` con el archivo de datos `dvd_csv.txt`. Cuando estamos abriendo un archivo para leer sus datos en un programa, comúnmente es necesario especificar la **ruta absoluta** del archivo. De esa forma, el programa encontrará al archivo sin importar desde donde sea ejecutado.
|
264
|
|
264
|
|
265
|
Averigua la **ruta absoluta** de `dvd_csv.txt` y copiala reemplazando el string `"dvd_csv.txt"`. Por ejemplo, luego del remplazo la linea podría lucir así:
|
265
|
Averigua la **ruta absoluta** de `dvd_csv.txt` y copiala reemplazando el string `"dvd_csv.txt"`. Por ejemplo, luego del remplazo la linea podría lucir así:
|
266
|
|
266
|
|
|
|
|
|
286
|
|
286
|
|
287
|
1. Estudia las funciones que ya están implementadas en `movie.cpp` para que te sirvan de ejemplo para las funciones que vas a crear.
|
287
|
1. Estudia las funciones que ya están implementadas en `movie.cpp` para que te sirvan de ejemplo para las funciones que vas a crear.
|
288
|
|
288
|
|
289
|
-2. Implementa una función llamada `getMovieStudio` que reciba una cadena de caracteres ("string") con la info de una película y **devuelva** el nombre del estudio de la película. Recuerda añadir el prototipo de la función en el archivo `movie.h`. Invoca la función `getMovieStudio` desde `main()` para desplegar el nombre y el estudio de la película en la posición 75125 y así demostrar su funcionamiento.
|
|
|
|
|
289
|
+2. Implementa una función llamada `getMovieStudio` que reciba una cadena de caracteres ("string") con la información de una película y **devuelva** el nombre del estudio de la película. Recuerda añadir el prototipo de la función en el archivo `movie.h`. Invoca la función `getMovieStudio` desde `main()` para desplegar el nombre y el estudio de la película en la posición 75125 y así demostrar su funcionamiento.
|
290
|
|
290
|
|
291
|
3. Implementa una función sobrecargada `getMovieInfo` que **devuelva** el nombre del estudio además del nombre, rating, año y género. Invoca la función `getMovieInfo` desde `main()` para desplegar el nombre, estudio, rating, año y género de la película en la posición 75125 y así demostrar su funcionamiento.
|
291
|
3. Implementa una función sobrecargada `getMovieInfo` que **devuelva** el nombre del estudio además del nombre, rating, año y género. Invoca la función `getMovieInfo` desde `main()` para desplegar el nombre, estudio, rating, año y género de la película en la posición 75125 y así demostrar su funcionamiento.
|
292
|
|
292
|
|
|
|
|
|
313
|
|
313
|
|
314
|
[1] http://mathbits.com/MathBits/CompSci/functions/UserDef.htm
|
314
|
[1] http://mathbits.com/MathBits/CompSci/functions/UserDef.htm
|
315
|
|
315
|
|
316
|
-[2] http://www.digimad.es/autoria-dvd-duplicado-cd-video.html
|
|
|
|
|
316
|
+[2] http://www.digimad.es/autoria-bluray-dvd-duplicado-cd-video.html
|
317
|
|
317
|
|
318
|
[3] http://www.soft32.com/blog/platforms/windows/keep-your-dvd-collection-up-to-date-with-emdb-erics-movie-database/
|
318
|
[3] http://www.soft32.com/blog/platforms/windows/keep-your-dvd-collection-up-to-date-with-emdb-erics-movie-database/
|
319
|
|
319
|
|