Browse Source

Rafa corrigiendo algunas instrucciones README-es.md

Rafael Arce Nazario 8 years ago
parent
commit
882b94108f
1 changed files with 47 additions and 39 deletions
  1. 47
    39
      README-es.md

+ 47
- 39
README-es.md View File

55
 
55
 
56
 La primera oración de una función se llama el *encabezado* y su estructura es como sigue:
56
 La primera oración de una función se llama el *encabezado* y su estructura es como sigue:
57
 
57
 
58
-`tipo nombre(tipo parámetro01, ..., tipo parámetro0n)`
58
+```cpp
59
+tipo nombre(tipo parámetro_1, ..., tipo parámetro_n)`
60
+```
59
 
61
 
60
 Por ejemplo,
62
 Por ejemplo,
61
 
63
 
62
-`int ejemplo(int var1, float var2, char &var3)`
64
+```cpp
65
+int ejemplo(int var1, float var2, char &var3)
66
+```
63
 
67
 
64
 sería el encabezado de la función llamada `ejemplo`, que devuelve un valor entero. La función recibe como argumentos un valor entero (y guardará una copia en `var1`), un valor de tipo `float` (y guardará una copia en `var2`) y la referencia a una variable de tipo  `char` que se guardará en la variable de referencia `var3`. Nota que `var3` tiene el signo `&` antes del nombre de la variable. Esto indica que `var3` contendrá la referencia a un carácter.
68
 sería el encabezado de la función llamada `ejemplo`, que devuelve un valor entero. La función recibe como argumentos un valor entero (y guardará una copia en `var1`), un valor de tipo `float` (y guardará una copia en `var2`) y la referencia a una variable de tipo  `char` que se guardará en la variable de referencia `var3`. Nota que `var3` tiene el signo `&` antes del nombre de la variable. Esto indica que `var3` contendrá la referencia a un carácter.
65
 
69
 
66
 ###Invocación
70
 ###Invocación
67
 
71
 
68
-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:
72
+La siguiente línea asigna a la variable x el resultado de la llamada a `ejemplo`:
69
 
73
 
70
-`resultado=ejemplo(2, 3.5, unCar);`
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:
71
 
75
 
72
-Nota que al invocar funciones no incluyes el tipo de las variables en los argumentos como en la definición de la función `ejemplo`. El tercer parámetro `&var3` es una variable de referencia, esto significa que lo que se está enviando en el tercer argumento de la invocación es una *referencia* a la variable `unCar`. Los cambios que se hagan en la variable `var3` están cambiando el contenido de la variable `unCar`.
76
+```cpp
77
+x = ejemplo(2, 3.5, unCar);
78
+```
73
 
79
 
74
-También puedes usar el resultado de la función sin tener que guardarlo en una variable. Por ejemplo puedes imprimirlo:
80
+Nota que al invocar funciones no incluyes el tipo de las variables en los argumentos como en la definición de la función. El tercer parámetro `&var3` es una variable de referencia, esto significa que lo que se está enviando es una *referencia* a la variable `unCar`. Las asignaciones que se hagan a la variable `var3` dentro de la función `ejemplo` cambian el valor de `unCar`.
75
 
81
 
76
-`cout << "El resultado de la función ejemplo es:" << ejemplo(2, 3.5, unCar);`
82
+El resultado de una función puede ser dirigido al objeto `cout` para ser desplegado en el terminal, como muestra la siguiente línea:
77
 
83
 
78
-o utilizarlo en una expresión aritmética:
84
+```cpp
85
+cout << "El resultado de la función ejemplo es:" << ejemplo(2, 3.5, unCar);`
86
+```
79
 
87
 
80
-`y=3 + ejemplo(2, 3.5, unCar);`
88
+o puede ser utilizado en una expresión aritmética:
81
 
89
 
90
+```cpp
91
+y = 3 + ejemplo(2, 3.5, unCar);`
92
+```
82
 
93
 
83
 
94
 
84
 ###Funciones sobrecargadas (‘overloaded’)
95
 ###Funciones sobrecargadas (‘overloaded’)
85
 
96
 
86
-Las funciones sobrecargadas son funciones que poseen el mismo nombre, pero *firma* diferente.
87
-
88
-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.
89
-
90
-Los siguientes prototipos de funciones tienen la misma firma:
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**:
91
 
98
 
92
-```
99
+```cpp
93
 int ejemplo(int, int) ;
100
 int ejemplo(int, int) ;
94
 void ejemplo(int, int) ; 
101
 void ejemplo(int, int) ; 
95
 string ejemplo(int, int) ;
102
 string ejemplo(int, int) ;
97
 
104
 
98
 Nota que todas tienen el mismo nombre, `ejemplo`, y reciben la misma cantidad de parámetros del mismo tipo `(int, int)`.
105
 Nota que todas tienen el mismo nombre, `ejemplo`, y reciben la misma cantidad de parámetros del mismo tipo `(int, int)`.
99
 
106
 
100
-Los siguientes prototipos de  funciones tienen firmas diferentes:
107
+Los siguientes prototipos de  funciones tienen **firmas diferentes**:
101
 
108
 
102
-```
109
+```cpp
103
 int ejemplo(int) ;
110
 int ejemplo(int) ;
104
 int olpmeje(int) ;
111
 int olpmeje(int) ;
105
 ```
112
 ```
113
+
106
 Nota que a pesar de que las funciones tienen la misma cantidad de parámetros con mismo tipo `int`, el nombre de las funciones es distinto.
114
 Nota que a pesar de que las funciones tienen la misma cantidad de parámetros con mismo tipo `int`, el nombre de las funciones es distinto.
107
 
115
 
108
 Los siguientes prototipos de funciones son versiones sobrecargadas de la función `ejemplo`:
116
 Los siguientes prototipos de funciones son versiones sobrecargadas de la función `ejemplo`:
109
 
117
 
110
-```
118
+```cpp
111
 int ejemplo(int) ;
119
 int ejemplo(int) ;
112
 void ejemplo(char) ;
120
 void ejemplo(char) ;
113
 int ejemplo(int, int) ;
121
 int ejemplo(int, int) ;
115
 int ejemplo(int, char) ;
123
 int ejemplo(int, char) ;
116
 ```
124
 ```
117
 
125
 
118
-Todas las funciones de arriba tienen el mismo nombre, `ejemplo`, pero distintos parámetros.  La primera y segunda función tienen la misma cantidad de parámetros, pero los argumentos son de distintos tipos.  La cuarta y quinta función tienen argumentos de tipo `char` e `int`, pero en cada caso están en distinto orden.
126
+Todas las funciones de arriba tienen el mismo nombre, `ejemplo`, pero distintos tipos y/o ordenes de parámetros.  La primera y segunda función tienen la misma cantidad de parámetros, pero los argumentos son de distintos tipos.  La cuarta y quinta función tienen argumentos de tipo `char` e `int`, pero en cada caso están en distinto orden.
119
 
127
 
120
-En este último ejemplo la función `ejemplo` es sobrecargada ya que hay cinco funciones con firmas distintas pero con el mismo nombre.
128
+En este último ejemplo la función `ejemplo` es sobrecargada ya que hay cinco funciones con firmas distintas pero con el mismo nombre.
121
 
129
 
122
 
130
 
123
 ###Valores predeterminados
131
 ###Valores predeterminados
169
 
177
 
170
 ##Películas DVD y base de datos DVD
178
 ##Películas DVD y base de datos DVD
171
 
179
 
172
-DVD son las siglas para “digital versatile disk” o “digital video disk” que en español significa disco versátil digital o disco de video digital. Este es un formato de disco óptico para almacenamiento digital  inventado por Philips, Sony, Toshiba, y Panasonic en 1995.  Los DVD ofrecen una capacidad de almacenamiento mayor que los discos compactos (CD), pero tienen las mismas dimensiones.  Los DVD pueden ser utilizados para almacenar cualquier dato digital, pero son famosos por su uso en la distribución de películas en los hogares.
180
+DVD son las siglas para “digital versatile disk” o “digital video disk” que en español significa disco versátil digital o disco de video digital. Este es un formato de disco óptico para almacenamiento digital  inventado por Philips, Sony, Toshiba, y Panasonic en 1995.  Los DVD ofrecen una capacidad de almacenamiento mayor que los discos compactos (CD), pero tienen las mismas dimensiones.  Los DVD pueden ser utilizados para almacenar cualquier dato digital, pero son famosos por su uso en la distribución de películas.
173
 
181
 
174
 
182
 
175
 ---
183
 ---
195
 
203
 
196
 ## Sesión de laboratorio:
204
 ## Sesión de laboratorio:
197
 
205
 
198
-En esta sesión de  laboratorio vamos a utilizar una base de datos de películas DVD mantenida por http://www.hometheaterinfo.com/dvdlist.htm. Esta base de datos contiene 44MB de información de películas que han sido distribuidas en DVD. Alguna de la información almacenada en esta base de datos es: título del DVD, estudio de publicación, fecha de publicación, tipo de sonido, versiones, precio, clasificación, año y  género.  Los campos de la información de cada película son almacenados en texto con el siguiente formato:
199
-
206
+En esta sesión de  laboratorio vamos a utilizar una base de datos de películas DVD mantenida por [http://www.hometheaterinfo.com/dvdlist.htm](http://www.hometheaterinfo.com/dvdlist.htm). Esta base de datos contiene 44MB de información de películas que han sido distribuidas en DVD. Algunos de los campos de esta base de datos son: título del DVD, estudio de publicación, fecha de publicación, tipo de sonido, versiones, precio, clasificación, año y  género.  Los campos de cada película están almacenados en un archivo de texto usando el siguiente formato:
200
 
207
 
201
-`DVD_Title|Studio|Released|Status|Sound|Versions|Price|Rating|Year|Genre|Aspect|UPC|DVD_ReleaseDate|ID|Timestamp`
208
+```
209
+DVD_Title|Studio|Released|Status|Sound|Versions|Price|Rating|Year|Genre|Aspect|UPC|DVD_ReleaseDate|ID|Timestamp`
210
+```
202
 
211
 
203
 Por ejemplo, 
212
 Por ejemplo, 
204
 
213
 
205
 ```
214
 ```
206
-Airplane! (Paramount/ Blu-ray/ Checkpoint)|Paramount||Discontinued|5.1 DTS-HD|LBX, 16:9, BLU-RAY|21.99|PG|1980|Comedy|1.85:1|097361423524|2012-09-11 00:00:00|230375|2013-01-01 00:00:00
215
+Airplane! (Paramount/ Blu-ray/ Checkpoint)|Paramount||Discontinued|5.1 DTS-HD|
216
+LBX, 16:9, BLU-RAY|21.99|PG|1980|Comedy|1.85:1|097361423524|2012-09-11 00:00:00|
217
+230375|2013-01-01 00:00:00
207
 ```
218
 ```
208
 
219
 
209
 
220
 
230
     getMovieName
241
     getMovieName
231
     getMovieByName
242
     getMovieByName
232
     ```
243
     ```
233
-    
244
+
234
     En el archivo `movie.cpp` encontrarás las definiciones de las funciones. Nota que algunas versiones de la función `showMovie` usan el objeto llamado `fields` de clase `QStringList`. El propósito de ese objeto es poder acceder cada uno de los campos de información de la película usando un índice entre 0 y 14.  Por ejemplo, fields[0] accede al título de la película, fields[1] accede el estudio, fields[8] al año, etc.  
245
     En el archivo `movie.cpp` encontrarás las definiciones de las funciones. Nota que algunas versiones de la función `showMovie` usan el objeto llamado `fields` de clase `QStringList`. El propósito de ese objeto es poder acceder cada uno de los campos de información de la película usando un índice entre 0 y 14.  Por ejemplo, fields[0] accede al título de la película, fields[1] accede el estudio, fields[8] al año, etc.  
235
 
246
 
236
 ----
247
 ----
241
 
252
 
242
 ### Ejercicio 2 - Invocar y modificar funciones
253
 ### Ejercicio 2 - Invocar y modificar funciones
243
 
254
 
244
-En este ejercicio modificarás la función `main` y algunas de las funciones pre-definidas para que desplieguen solo algunas de las películas en la base de datos, desplieguen solo parte de la información contenida, o que desplieguen la información en un formato específico.
255
+En este ejercicio modificarás la función `main` y algunas de las funciones pre-definidas para que desplieguen información sobre una o más películas de la base de datos.
245
 
256
 
246
 #### Instrucciones
257
 #### Instrucciones
247
 
258
 
248
-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.
249
-
250
-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.
251
-
252
-3. Modifica nuevamente la función `main` para que despliegue en la pantalla solo la película en la posición 75125 usando la composición de funciones y la función `showMovie`.
253
-
254
-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
-
256
-5. Modifica la función `getMovieInfo` que se encuentra en el archivo `movie.cpp` para que también reciba por referencia el nombre de la película y le asigne un valor. Recuerda que también debes modificar el prototipo de esta función que se encuentra en `movie.h`.
259
+1. Realiza las siguientes implementaciones en la función `main` (archivo `main.cpp`):
260
+    * Añade código para que despliegue en el terminal las películas en las posiciones 80 hasta la 100.
261
+    * Añade código para que despliegue en el terminal solo las películas que contengan “forrest gump” en el título.
262
+    * Añade código para que despliegue en el terminal solo la película en la posición 75125 usando  composición de funciones y la función `showMovie`.
263
+    * Añade código para que despliegue en el terminal el nombre y el rating de la película en la posición 75125.
264
+1. Modifica la función `getMovieInfo` que se encuentra en el archivo `movie.cpp` para que en adición a los parámetros que ya recibe también reciba por referencia el **nombre** de la película y le asigne un valor. Recuerda que también debes modificar el prototipo de esta función que se encuentra en `movie.h`.
257
 
265
 
258
-6. Para la película en la parte 3, modifica la función `main` para que, utilizando `getMovieInfo`,  despliegue el nombre, el rating, el año y el género de la película en una sola línea. Ayuda: nota que la función `getMovieInfo` tiene parámetros por referencia.
266
+1. Para la película en la posición 75125, añade código a la función `main` para que, utilizando `getMovieInfo`,  despliegue el nombre, el rating, el año y el género de la película en una sola línea. Ayuda: nota que la función `getMovieInfo` tiene parámetros por referencia.
259
 
267
 
260
 ### Ejercicio 3 - Definir e implementar funciones
268
 ### Ejercicio 3 - Definir e implementar funciones
261
 
269
 
265
 
273
 
266
 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. 
274
 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. 
267
 
275
 
268
-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.
276
+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.
269
 
277
 
270
-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.
278
+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.
271
 
279
 
272
 4. Implementa una función `showMovieInLine` que **despliegue** la información 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.
280
 4. Implementa una función `showMovieInLine` que **despliegue** la información 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.
273
 
281