|
@@ -48,7 +48,7 @@ Antes de llegar al laboratorio debes:
|
48
|
48
|
##Funciones
|
49
|
49
|
|
50
|
50
|
|
51
|
|
-En matemática, una función $f$ es una regla que se usa para asignar a cada elemento $x$ de un conjunto que se llama *dominio*, uno (y solo un) elemento $y$ de un conjunto que se llama *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, la función tiene 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 el tipo de valor que tendrá el resultado que devuelve la función.
|
|
51
|
+En matemática, una función $$f$$ es una regla que se usa para asignar a cada elemento $$x$$ de un conjunto que se llama *dominio*, uno (y solo un) elemento $$y$$ de un conjunto que se llama *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, la función tiene 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 el tipo de valor que tendrá el resultado que devuelve la función.
|
52
|
52
|
|
53
|
53
|
Las funciones en lenguajes de programación de computadoras son similares. Una función
|
54
|
54
|
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 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.
|
|
@@ -209,7 +209,6 @@ El primer paso en esta experiencia de laboratorio es familiarizarte con las func
|
209
|
209
|
|
210
|
210
|
1. Carga a Qt el proyecto `DVDInfo` haciendo doble "click" en el archivo `DVDInfo.pro` que se encuentra en la carpeta `Documents/eip/Functions-DVDInfo` de tu computadora. También puedes ir a `http://bitbucket.org/eip-uprrp/functions-dvdinfo` para descargar la carpeta `Functions-DVDInfo` a tu computadora.
|
211
|
211
|
|
212
|
|
-
|
213
|
212
|
2. Configura el proyecto. El archivo `main.cpp` tiene la invocación de las funciones que usarás en los siguientes ejercicios. En los archivos `movie.h` y `movie.cpp` se encuentra la declaración y definición de las funciones que vas a invocar.
|
214
|
213
|
|
215
|
214
|
3. Haz doble "click" en el archivo `movie.h` que contiene los prototipos de las funciones de este proyecto. Ve a `movie.h` e identifica cuál o cuáles funciones son sobrecargadas y describe por qué.
|
|
@@ -233,10 +232,8 @@ En este ejercicio modificarás algunas de las funciones pre-definidas para que d
|
233
|
232
|
|
234
|
233
|
1. Abre el archivo `main.cpp` y modifica la función `main` para que despliegue en la pantalla las películas en las posiciones 80 hasta la 100.
|
235
|
234
|
|
236
|
|
-
|
237
|
235
|
2. Ahora modifica la función `main` para que despliegue en la pantalla solo las películas que contengan “forrest gump” en el título.
|
238
|
236
|
|
239
|
|
-
|
240
|
237
|
3. Modifica nuevamente la función `main` para que despliegue en la pantalla solo la película en la posición 75125 usando composición de funciones y la función `showMovie`.
|
241
|
238
|
|
242
|
239
|
4. Para la película en la parte 3 de este ejercicio, modifica la función `main` para que solo despliegue el nombre y el rating de la película.
|
|
@@ -255,7 +252,6 @@ Las funciones cuyos prototipos están en `movie.h` están implementadas en el ar
|
255
|
252
|
|
256
|
253
|
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.
|
257
|
254
|
|
258
|
|
-
|
259
|
255
|
4. Implementa una función `showMovieInLine` que **despliegue** la información de una película que despliega `showMovie` pero en una sola línea. La función debe tener un parámetro de modo que reciba el "string" de información de la película. Invoca la función `showMovieInLine` desde `main()` para desplegar la información de la película en la posición 75125 y así demostrar su funcionamiento.
|
260
|
256
|
|
261
|
257
|
5. Implementa una función `showMoviesInLine` que **despliegue** la misma información que despliega `showMovies` (todas las películas en un rango de posiciones) pero en una sola línea por película. Por ejemplo, una invocación a la función sería
|
|
@@ -337,7 +333,7 @@ Before you get to the laboratory you should have:
|
337
|
333
|
|
338
|
334
|
##Functions
|
339
|
335
|
|
340
|
|
-In mathematics, a function $f$ is a rule that is used to assign to each element $x$ from a set called *domain*, one (and only one) element $y$ from a set called *range*. This rule is commonly represented with an equation, $y=f(x)$. The variable $x$ is the parameter of the function and the variable $y$ will contain the result of the function. A function can have more than one parameter, but only one result. For example, a function can have the form $y=f(x_1,x_2)$ where there are two parameters, and for each pair $(a,b)$ that is used as an argument in the function, the function has only one value of $y=f(a,b)$. The domain of the function tells us the type of value that the parameter should have and the range tells us the value that the returned result will have.
|
|
336
|
+In mathematics, a function $$f$$ is a rule that is used to assign to each element $$x$$ from a set called *domain*, one (and only one) element $$y$$ from a set called *range*. This rule is commonly represented with an equation, $$y=f(x)$$. The variable $$x$$ is the parameter of the function and the variable $$y$$ will contain the result of the function. A function can have more than one parameter, but only one result. For example, a function can have the form $$y=f(x_1,x_2)$$ where there are two parameters, and for each pair $$(a,b)$$ that is used as an argument in the function, the function has only one value of $$y=f(a,b)$$. The domain of the function tells us the type of value that the parameter should have and the range tells us the value that the returned result will have.
|
341
|
337
|
|
342
|
338
|
Functions in programming languages are similar. A function has a series of instructions that take the assigned values as parameters and performs a certain task. In C++ and other programming languages, functions return only one result, as it happens in mathematics. The only difference is that a *programming* function could possibly not return any value (in this case the function is declared as `void`). If the function will return a value, we use the instruction `return`. As in math, you need to specify the types of values that the function's parameters and result will have; this is done when declaring the function.
|
343
|
339
|
|
|
@@ -441,7 +437,6 @@ Here `var2` is initialized to 5 and `var3` to 10.
|
441
|
437
|
|
442
|
438
|
1. **Header:** `int example(int var1, float var2=5.0, int var3 = 10)`
|
443
|
439
|
|
444
|
|
-
|
445
|
440
|
**Invocation:**
|
446
|
441
|
|
447
|
442
|
a. `example(5, , 10)` This function call is **invalid** because it leaves an empty space in the middle argument.
|
|
@@ -527,7 +522,6 @@ In this exercise you will modify some of the pre-defined functions so that they
|
527
|
522
|
|
528
|
523
|
4. For the movie in part 3 of this exercise, add the necessary code to the `main` function so that the program displays the name and the rating of the movie.
|
529
|
524
|
|
530
|
|
-
|
531
|
525
|
5. For the movie in part 3, add the necessary code to the `main` function so that, using `getMovieInfo`, it displays the name, rating, year and the genre of the movie in one line. Hint: note that the function `getMovieInfo` has parameters that are passed by reference.
|
532
|
526
|
|
533
|
527
|
###Exercise 3
|