Explorar el Código

README-es.md edited online with Bitbucket

Jose R Ortiz Ubarri hace 8 años
padre
commit
78549c6968
Se han modificado 1 ficheros con 37 adiciones y 32 borrados
  1. 37
    32
      README-es.md

+ 37
- 32
README-es.md Ver fichero

@@ -6,6 +6,7 @@
6 6
 ![main2.png](images/main2.png)
7 7
 ![main3.png](images/main3.png)
8 8
 
9
+[Verano 2016 - Ive]
9 10
 
10 11
 En casi todas las instancias en que queremos resolver un problema hay una o más opciones que dependen  de si se cumplen o no ciertas condiciones. Los programas de computadoras se construyen para resolver problemas y, por lo tanto, deben tener una estructura que permita tomar decisiones. En C++ las  instrucciones de decisión (o condicionales) se estructuran utilizando `if`, `else`, `else if` o `switch`. Muchas veces el uso de estas estructuras también envuelve el uso de expresiones de relación y operadores lógicos. En la experiencia de laboratorio de hoy practicarás el uso de algunas  estructuras de decisión completando el diseño utilizando una clase llamada `Bird`. También repasarás conceptos relacionados a objetos.
11 12
 
@@ -20,24 +21,24 @@ En casi todas las instancias en que queremos resolver un problema hay una o más
20 21
 
21 22
 ##Pre-Lab:
22 23
 
23
-Antes de llegar al laboratorio debes:
24
+Antes de llegar al laboratorio debes haber:
24 25
 
25
-1. Haber repasado los siguientes conceptos relacionados a estructuras de decisión:
26
+1. Repasado los siguientes conceptos relacionados a estructuras de decisión:
26 27
 
27
-  a. operadores lógicos.
28
-  b. `if`, `else`, `else if`.
28
+    a. operadores lógicos.
29
+    b. `if`, `else`, `else if`.
29 30
 
30
-2. Haber repasado los siguientes conceptos relacionados a objetos y clases en C++:
31
+2. Repasado los siguientes conceptos relacionados a objetos y clases en C++:
31 32
 
32
-  a. creación de objetos de una clase.
33
-  b. utilización de métodos "getters" para acceder a los atributos de un objeto.
34
-  c. utilización de métodos "setters" para modificar los atributos de un objeto.
33
+    a. creación de objetos de una clase.
34
+    b. utilización de métodos "getters" para acceder a los atributos de un objeto.
35
+    c. utilización de métodos "setters" para modificar los atributos de un objeto.
35 36
 
36
-3. Haber estudiado la documentación de la clase `Bird` disponible en [este enlace] (http://ada.uprrp.edu/~ranazario/bird-html/class_bird.html).
37
+3. Estudiado la documentación de la clase `Bird` disponible en [este enlace] (http://ada.uprrp.edu/~ranazario/bird-html/class_bird.html).
37 38
 
38
-4. Haber estudiado los conceptos e instrucciones para la sesión de laboratorio.
39
+4. Estudiado los conceptos e instrucciones para la sesión de laboratorio.
39 40
 
40
-5. haber tomado el quiz Pre-Lab que se encuentra en Moodle.
41
+5. Tomado el quiz Pre-Lab que se encuentra en Moodle.
41 42
 
42 43
 
43 44
 
@@ -49,7 +50,7 @@ Para facilitar la ejecución de esta experiencia de laboratorio, comenzaremos re
49 50
 
50 51
 ------------------------------------------
51 52
 
52
-##Clases y objetos en C++
53
+## Clases y objetos en C++
53 54
 
54 55
 Un *objeto* es un ente que contiene datos y procedimientos para manipularlos. Al igual que cada variable tiene un *tipo* de dato asociada a ella, cada objeto tiene una *clase* asociada que describe las propiedades de los objetos:
55 56
 sus datos (*atributos*), y los procedimientos con los que se pueden manipular los datos (*métodos*).
@@ -58,7 +59,7 @@ Para definir y utilizar un objeto  no hay que saber todos los detalles de los m
58 59
 
59 60
 Dale un vistazo a la documentación de la clase `Bird` que se encuentra en http://ada.uprrp.edu/~ranazario/bird-html/class_bird.html. 
60 61
 
61
-###Clases
62
+### Clases
62 63
 
63 64
 Una clase es un pedazo de código en donde se describe cómo serán los objetos. La declaración de una clase establece los atributos que tendrá cada objeto de esa clase y los métodos que puede invocar.
64 65
 
@@ -95,7 +96,7 @@ Lo siguiente es el esqueleto de la declaración de una clase:
95 96
 
96 97
 Puedes ver la declaración de la clase `Bird` en el archivo `bird.h` incluido en el programado de esta experiencia de laboratorio.
97 98
 
98
-###Objetos
99
+### Objetos
99 100
 
100 101
 Un objeto es un ente que contiene datos (al igual que una variable), llamados sus `atributos`, y también contiene procedimientos, llamados `métodos`, que se usan para manipularlos. Los objetos son "instancias" de una clase que se crean de manera similar a como se definen las variables:
101 102
 
@@ -154,7 +155,7 @@ Para invocar un método escribimos el nombre del objeto, seguido de un punto y l
154 155
 
155 156
 
156 157
 
157
-####Constructores
158
+#### Constructores
158 159
 
159 160
 Los primeros métodos de una clase que debemos entender son los *constructores*.Una clase puede tener múltiples constructores. Uno de los constructores será invocado automáticamente cada vez que se crea un objeto de esa clase. En la mayoría de los casos, los constructores se utilizan para inicializar los valores de los atributos del objeto. Para poder crear objetos de una clase, debemos conocer cuáles son sus constructores. 
160 161
 
@@ -185,7 +186,7 @@ Dale un vistazo a la documentación del segundo constructor, `Bird (int, EyeBrow
185 186
 `Bird guaraguao(200, Bird::UPSET, "blue", "red");`
186 187
 
187 188
 
188
-####"Setters" ("mutators")
189
+#### "Setters" ("mutators")
189 190
 
190 191
 Las clases proveen métodos para modificar los valores de los atributos de un objeto que se ha creado. Estos métodos se llaman "*setters*" o "*mutators*". Usualmente se declara un "setter" por cada atributo que tiene la clase. La clase `Bird` tiene los siguientes "setters":
191 192
 
@@ -203,7 +204,7 @@ bobo.setSize(333);
203 204
 ```
204 205
 
205 206
 
206
-####"Getters" ("accessors")
207
+#### "Getters" ("accessors")
207 208
 
208 209
 Las clases también proveen métodos para acceder  ("get") el valor del atributo de un objeto. Estos métodos se llaman "*getters*" o "*accessors*". Usualmente se declara un "getter" por cada atributo que tiene la clase. La clase `Bird` tiene los siguientes "getters":
209 210
 
@@ -220,7 +221,7 @@ Bird piolin;
220 221
 cout << piolin.getSize();
221 222
 ```
222 223
 
223
-####Otras funciones o métodos que utilizarás en esta experiencia de laboratorio
224
+#### Otras funciones o métodos que utilizarás en esta experiencia de laboratorio
224 225
 
225 226
 **MainWindow:** El archivo `mainwindow.h` contiene la declaración de una clase llamada `MainWindow`. Los objetos que sean instancias de esta clase podrán utilizar los métodos sobrecargados
226 227
 
@@ -267,7 +268,7 @@ para generar números enteros aleatorios ("random") en el rango [min, max]. El m
267 268
 
268 269
 ## Sesión de laboratorio
269 270
 
270
-###Ejercicio 1: Estudiar las reglas de herencia de la familia *Birds*
271
+### Ejercicio 1 - Estudiar las reglas de herencia de la familia *Birds*
271 272
 
272 273
 #### La familia *Birds*
273 274
 
@@ -308,34 +309,38 @@ La dominancia de los genes de las cejas está dada por la siguiente lista (en in
308 309
 
309 310
 Los genes de las cejas siguen las siguientes reglas:
310 311
 
311
-a. Si ambos padres tienen cejas "angry", el bebé tendrá cejas "unibrow".
312
-b. Si ambos padres tienen cejas "unibrow", el bebé tendrá cejas "upset".
313
-c. En los otros casos, el bebé heredará las cejas más dominantes de las cejas de sus padres. 
312
+* Si ambos padres tienen cejas "angry", el bebé tendrá cejas "unibrow".
313
+* Si ambos padres tienen cejas "unibrow", el bebé tendrá cejas "upset".
314
+* En los otros casos, el bebé heredará las cejas más dominantes de las cejas de sus padres. 
314 315
 
315 316
 
316
-###Ejercicio 2: Estudiar la función `main`
317
+### Ejercicio 2 - Estudiar la función `main`
317 318
 
318
-**Instrucciones**
319
+#### Instrucciones:
319 320
 
320
-1. Carga a Qt el proyecto `Conditionals-BirthOfABird`  haciendo doble "click" en el archivo `Conditionals-BirthOfABird.pro` que se encuentra en la carpeta `Documents/eip/Conditionals-BirthOfABird` de tu computadora. También puedes ir a `http://bitbucket.org/eip-uprrp/conditionals-birthofabird` para descargar la carpeta `Conditionals-BirthOfABird` a tu computadora.
321
+1. Carga a `QtCreator` el proyecto `BirthOfABird`. Hay dos maneras de hacer esto:
322
+
323
+    * Utilizando la máquina virtual: Haz doble “click” en el archivo `BirthOfABird.pro` que se encuentra  en el directorio `/home/eip/labs/conditionals-birthofabird` de la máquina virtual.
324
+    * Descargando la carpeta del proyecto de `Bitbucket`: Utiliza un terminal y escribe el commando `git clone http:/bitbucket.org/eip-uprrp/conditionals-birthofabird` para descargar la carpeta `conditionals-birthofabird` de `Bitbucket`. En esa carpeta, haz doble “click” en el archivo `BirthOfABird.pro`.
321 325
 
322 326
 2. Configura el proyecto.
323 327
 
324
- **Importante:** En la pantalla "Configure Project", selecciona la configuración Qt 5.3 o Qt 5.4 clang 64 bit. Si usas otra configuración el proyecto no compilará.
328
+   **Importante:** En la pantalla "Configure Project", selecciona la configuración Qt 5.3 o Qt 5.4 clang 64 bit. Si usas otra configuración el proyecto no compilará.
325 329
 
326 330
 3. Compila y corre el proyecto. Debes ver una pantalla con dos pájaros que representan a Juana y Abelardo. Luego de un segundo, serás testigo del nacimiento de su bebé Piolín. Sin embargo, este Piolín pudo ser haber volado de otro nido y no ser su hijo, tendrá características aleatorias.
327 331
 
328 332
 4. Abre el archivo `main.cpp` (no harás cambios a ningún otro archivo de este proyecto). Estudia la función `main`. NO harás cambios a la función `main`. Nota que la función `main` esencialmente hace dos cosas:
329
-    a. Crea los tres pájaros y añade dos de ellos a la pantalla.
330
-b. Crea un cronómetro ("timer") que espera un segundo y luego invoca a la función `birth` pasándole una referencia a la ventana y a los tres pájaros.
333
+    
334
+       i. Crea los tres pájaros y añade dos de ellos a la pantalla.
335
+       ii. Crea un cronómetro ("timer") que espera un segundo y luego invoca a la función `birth` pasándole una referencia a la ventana y a los tres pájaros.
331 336
 
332
----
337
+       ---
333 338
 
334
-![funcionMain.png](images/funcionMain.png)
339
+       ![funcionMain.png](images/funcionMain.png)
335 340
 
336
-**Figura 2.** Función `main`. 
341
+       **Figura 2.** Función `main`. 
337 342
 
338
----
343
+      ---
339 344
 
340 345
 
341 346
 ###Ejercicio 3: Escribir el código para determinar las características de Piolín