|
@@ -46,7 +46,7 @@ Antes de llegar al laboratorio debes:
|
46
|
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
|
51
|
Las funciones en lenguajes de programación de computadoras son similares. Una función
|
52
|
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,7 +71,7 @@ sería el encabezado de la función llamada `ejemplo`, que devuelve un valor ent
|
71
|
71
|
|
72
|
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
|
76
|
```cpp
|
77
|
77
|
x = ejemplo(2, 3.5, unCar);
|
|
@@ -94,7 +94,7 @@ y = 3 + ejemplo(2, 3.5, unCar);`
|
94
|
94
|
|
95
|
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
|
99
|
```cpp
|
100
|
100
|
int ejemplo(int, int) ;
|
|
@@ -237,7 +237,7 @@ El primer paso en esta experiencia de laboratorio es familiarizarte con las func
|
237
|
237
|
|
238
|
238
|
```
|
239
|
239
|
showMovie
|
240
|
|
- showMovies (las dos)
|
|
240
|
+ showMovies
|
241
|
241
|
getMovieName
|
242
|
242
|
getMovieByName
|
243
|
243
|
```
|
|
@@ -260,7 +260,7 @@ En este ejercicio modificarás la función `main` y algunas de las funciones pre
|
260
|
260
|
```cpp
|
261
|
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
|
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,7 +286,7 @@ Las funciones cuyos prototipos están en `movie.h` están implementadas en el ar
|
286
|
286
|
|
287
|
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
|
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,7 +313,7 @@ Utiliza "Entrega" en Moodle para entregar los archivos `main.cpp`, `movie.cpp` y
|
313
|
313
|
|
314
|
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
|
318
|
[3] http://www.soft32.com/blog/platforms/windows/keep-your-dvd-collection-up-to-date-with-emdb-erics-movie-database/
|
319
|
319
|
|