소스 검색

README-es.md edited online with Bitbucket

부모
커밋
78549c6968
1개의 변경된 파일37개의 추가작업 그리고 32개의 파일을 삭제
  1. 37
    32
      README-es.md

+ 37
- 32
README-es.md 파일 보기

6
 ![main2.png](images/main2.png)
6
 ![main2.png](images/main2.png)
7
 ![main3.png](images/main3.png)
7
 ![main3.png](images/main3.png)
8
 
8
 
9
+[Verano 2016 - Ive]
9
 
10
 
10
 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
 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
 
21
 
21
 ##Pre-Lab:
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
 
50
 
50
 ------------------------------------------
51
 ------------------------------------------
51
 
52
 
52
-##Clases y objetos en C++
53
+## Clases y objetos en C++
53
 
54
 
54
 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
 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
 sus datos (*atributos*), y los procedimientos con los que se pueden manipular los datos (*métodos*).
56
 sus datos (*atributos*), y los procedimientos con los que se pueden manipular los datos (*métodos*).
58
 
59
 
59
 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
 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
 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
 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
 
96
 
96
 Puedes ver la declaración de la clase `Bird` en el archivo `bird.h` incluido en el programado de esta experiencia de laboratorio.
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
 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
 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
 
155
 
155
 
156
 
156
 
157
 
157
-####Constructores
158
+#### Constructores
158
 
159
 
159
 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
 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
 `Bird guaraguao(200, Bird::UPSET, "blue", "red");`
186
 `Bird guaraguao(200, Bird::UPSET, "blue", "red");`
186
 
187
 
187
 
188
 
188
-####"Setters" ("mutators")
189
+#### "Setters" ("mutators")
189
 
190
 
190
 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
 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
 ```
204
 ```
204
 
205
 
205
 
206
 
206
-####"Getters" ("accessors")
207
+#### "Getters" ("accessors")
207
 
208
 
208
 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
 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
 cout << piolin.getSize();
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
 **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
 **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
 
268
 
268
 ## Sesión de laboratorio
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
 #### La familia *Birds*
273
 #### La familia *Birds*
273
 
274
 
308
 
309
 
309
 Los genes de las cejas siguen las siguientes reglas:
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
 2. Configura el proyecto.
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
 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.
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
 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:
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
 ###Ejercicio 3: Escribir el código para determinar las características de Piolín 
346
 ###Ejercicio 3: Escribir el código para determinar las características de Piolín