Explorar el Código

README-es.md edited online with Bitbucket

Jose R Ortiz Ubarri hace 8 años
padre
commit
788367b48b
Se han modificado 1 ficheros con 22 adiciones y 21 borrados
  1. 22
    21
      README-es.md

+ 22
- 21
README-es.md Ver fichero

@@ -6,9 +6,9 @@
6 6
 ![main2.png](images/main2.png)
7 7
 ![main3.png](images/main3.png)
8 8
 
9
-[Verano 2016 - Ive]
9
+[Verano 2016 - Ive- Tatiana]
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
+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 un diseño utilizando una clase llamada `Bird`. También repasarás conceptos relacionados a objetos.
12 12
 
13 13
 ##Objetivos:
14 14
 
@@ -41,7 +41,7 @@ Antes de llegar al laboratorio debes haber:
41 41
 
42 42
 4. Estudiado los conceptos e instrucciones para la sesión de laboratorio.
43 43
 
44
-5. Tomado el quiz Pre-Lab que se encuentra en Moodle.
44
+5. Tomado el quiz Pre-Lab, disponible en Moodle.
45 45
 
46 46
 
47 47
 
@@ -58,13 +58,13 @@ Para facilitar la ejecución de esta experiencia de laboratorio, comenzaremos re
58 58
 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:
59 59
 sus datos (*atributos*), y los procedimientos con los que se pueden manipular los datos (*métodos*).
60 60
 
61
-Para definir y utilizar un objeto  no hay que saber todos los detalles de los métodos del objeto pero hay que saber cómo crearlo, y cómo interactuar con él. La  información necesaria está disponible en la documentación de la clase. Antes de crear objetos de cualquier clase debemos familiarizarnos con su documentación. La documentación nos indica, entre otras cosas, que ente se está tratando de representar con la clase, y cuáles son los interfaces  o métodos disponibles para manipular los objetos de la clase.
61
+Para definir y utilizar un objeto no hay que saber todos los detalles de los métodos del objeto pero hay que saber cómo crearlo, y cómo interactuar con él. La  información necesaria está disponible en la documentación de la clase. Antes de crear objetos de cualquier clase debemos familiarizarnos con su documentación. La documentación nos indica, entre otras cosas, que ente se está tratando de representar con la clase, y cuáles son los interfaces o métodos disponibles para manipular los objetos de la clase.
62 62
 
63 63
 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. 
64 64
 
65 65
 ### Clases
66 66
 
67
-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.
67
+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 pueden invocar.
68 68
 
69 69
 
70 70
 Si no se especifica lo contrario, los atributos y métodos definidos en una clase serán "privados". Esto quiere decir que esas variables solo se pueden acceder y cambiar por los métodos de la clase (*constructores*, *"setters"* y *"getters"*, entre otros). 
@@ -97,7 +97,7 @@ Lo siguiente es el esqueleto de la declaración de una clase:
97 97
 ```
98 98
 ---
99 99
 
100
-Puedes ver la declaración de la clase `Bird` en el archivo `bird.h` incluido en el programado de esta experiencia de laboratorio.
100
+Puedes ver la declaración de la clase `Bird` en el archivo `bird.h` incluido en el programa de esta experiencia de laboratorio.
101 101
 
102 102
 ### Objetos
103 103
 
@@ -105,11 +105,11 @@ Un objeto es un ente que contiene datos (al igual que una variable), llamados su
105 105
 
106 106
 `NombreClase nombreObjeto;`
107 107
 
108
-Una vez creamos un objeto, podemos interaccionar con él usando los métodos de la clase a la que pertenece.
108
+Una vez creamos un objeto, podemos interactuar con él usando los métodos de la clase a la que pertenece.
109 109
 
110 110
 ###Métodos de una clase
111 111
 
112
-Los métodos de una clase determinan qué acciones podemos tomar sobre los objetos de esa clase.  Los métodos son parecidos a las funciones en el sentido de que pueden recibir parámetros y regresar un resultado.  Una forma elemental de conocer los métodos de una clase es leyendo la declaración de la clase. Por ejemplo, lo siguiente es parte de la declaración de la clase `Bird` en el archivo `bird.h`. 
112
+Los métodos de una clase determinan qué acciones podemos tomar sobre los objetos de esa clase.  Los métodos son parecidos a las funciones en el sentido de que pueden recibir parámetros y regresar un resultado.  Una forma elemental de conocer los métodos de una clase es leyendo la declaración de la clase. Por ejemplo, el siguiente código es parte de la declaración de la clase `Bird` en el archivo `bird.h`. 
113 113
 
114 114
 ---
115 115
 
@@ -139,18 +139,18 @@ class Bird : public QWidget
139 139
 ```
140 140
 ---
141 141
 
142
-Una vez creado un objeto, sus métodos proveen la única forma de cambiar sus atributos u obtener información o cómputos de los mismos. Es por esto que comúnmente se llama *interface* al conjunto de métodos de una clase. Los métodos son el interface entre el usuario de un objeto y su contenido.
142
+Una vez creado un objeto, sus métodos proveen la única forma de cambiar sus atributos u obtener información o cómputos de los mismos. Es por esto que comúnmente se llama *interface* al conjunto de métodos de una clase. Los métodos son la interface entre el usuario de un objeto y su contenido.
143 143
 
144 144
 
145 145
 En general, en cada clase se definen los prototipos de los métodos para construir los objetos, y para buscar, manipular y guardar los datos. Lo siguiente es el formato general del prototipo de un método:
146 146
 
147 147
 `tipoDevolver nombreMetodo(tipo de los parámetros);`
148 148
 
149
-Luego, en el código del proyecto se escribe  la función correspondiente al método, comenzando con un encabezado que incluye el nombre de la clase a la cuál pertenece la función:
149
+Luego, en el código del proyecto se escribe la función correspondiente al método, comenzando con un encabezado que incluye el nombre de la clase a la cuál pertenece la función:
150 150
 
151 151
 `TipoDevolver NombreClase::NombreMetodo(parámetros)`
152 152
 
153
-Para que los objetos que sean instancia de una clase puedan tener acceso a las variables privadas de la clase se declaran métodos que sean públicos y que den acceso a estas clases (ver abajo "setters" y "getters"). Es preferible utilizar variables privadas y accederlas mediante los "setters" y "getters", a declararlas públicas ya que de esta manera el objeto que está asociado a estas variables tiene el control de los cambios que se hacen.
153
+Para que los objetos que sean una instancia de una clase puedan tener acceso a las variables privadas de la clase se declaran métodos que sean públicos y que den acceso a estas clases (ver abajo "setters" y "getters"). Es preferible utilizar variables privadas y accederlas mediante los "setters" y "getters", a declararlas públicas ya que de esta manera el objeto que está asociado a estas variables tiene el control de los cambios que se hacen.
154 154
 
155 155
 Para invocar un método escribimos el nombre del objeto, seguido de un punto y luego el nombre del método:
156 156
 
@@ -176,15 +176,15 @@ La clase `Bird` que estarás usando en la sesión de hoy tiene dos constructores
176 176
 
177 177
 `Bird (int, EyeBrowType, QString, QString, QWidget *parent=0)`
178 178
 
179
-Puedes ver las declaraciones de los prototipos de estos métodos en la declaración de la clase `Bird` en el archivo `bird.h` del proyecto. La documentación se encuentra en http://ada.uprrp.edu/~ranazario/bird-html/class_bird.html. El primer constructor, `Bird (QWidget *parent=0)`, es un método  que se puede invocar con uno o ningún argumento. Si al invocarlo no se usa argumento, el parámetro de la función toma el valor 0. 
179
+Puedes ver las declaraciones de los prototipos de estos métodos en la declaración de la clase `Bird` en el archivo `bird.h` del proyecto. La documentación se encuentra en http://ada.uprrp.edu/~ranazario/bird-html/class_bird.html. El primer constructor, `Bird (QWidget *parent=0)`, es un método que se puede invocar con uno o ningún argumento. Si al invocarlo no se usa argumento, el parámetro de la función toma el valor 0. 
180 180
 
181 181
 El constructor de una clase que se puede invocar sin usar argumentos es el *constructor* "*default*" de la clase; esto es, el constructor que se invoca cuando creamos un objeto usando una instrucción como:
182 182
 
183 183
 `Bird pitirre;`
184 184
 
185
-Puedes ver las implementaciones de los métodos de la clase Birden el archivo `bird.cpp`. Nota que el primer constructor, `Bird (QWidget *parent=0)`, asignará valores aleatorios ("random") a cada uno de los atributos del objeto. Más adelante hay una breve explicación de la función `randInt`.
185
+Puedes ver las implementaciones de los métodos de la clase Bird en el archivo `bird.cpp`. Nota que el primer constructor, `Bird (QWidget *parent=0)`, asignará valores aleatorios ("random") a cada uno de los atributos del objeto. Más adelante hay una breve explicación de la función `randInt`.
186 186
 
187
-Dale un vistazo a la documentación del segundo constructor, `Bird (int, EyeBrowType, QString, QString, QWidget *parent=0)`. Esta función requiere cuatro argumentos y tiene un quinto argumento que es opcional porque tiene un valor por defecto. Una manera para usar este constructor es creando un objeto como el siguiente:
187
+Dale un vistazo a la documentación del segundo constructor, `Bird (int, EyeBrowType, QString, QString, QWidget *parent=0)`. Esta función requiere cuatro argumentos y tiene un quinto argumento que es opcional porque tiene un valor predeterminado. Una manera para usar este constructor es creando un objeto como el siguiente:
188 188
 
189 189
 `Bird guaraguao(200, Bird::UPSET, "blue", "red");`
190 190
 
@@ -199,7 +199,7 @@ Las clases proveen métodos para modificar los valores de los atributos de un ob
199 199
 * `void setEyeColor (QString)` 
200 200
 
201 201
 
202
-Puedes ver las declaraciones de los métodos en la Figura 1 y en la declaración de la clase `Bird` en  `bird.h`, y la implementación de algunos de los métodos en `bird.cpp`. El código en el siguiente ejemplo crea el objeto `bobo` de la clase `Bird` y luego cambia su tamaño a 333.
202
+Puedes ver las declaraciones de los métodos en la Figura 1 y en la declaración de la clase `Bird` en `bird.h`, y la implementación de algunos de los métodos en `bird.cpp`. El código en el siguiente ejemplo crea el objeto `bobo` de la clase `Bird` y luego cambia su tamaño a 333.
203 203
 
204 204
 ```
205 205
 Bird bobo;
@@ -209,7 +209,7 @@ bobo.setSize(333);
209 209
 
210 210
 #### "Getters" ("accessors")
211 211
 
212
-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":
212
+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":
213 213
 
214 214
 * `int getSize ()` 
215 215
 * `EyeBrowType getEyebrow ()` 
@@ -217,7 +217,7 @@ Las clases también proveen métodos para acceder  ("get") el valor del atributo
217 217
 * `QString   getEyeColor ()` 
218 218
 
219 219
 
220
-Puedes ver las declaraciones de los métodos en la Figura 1 y en la declaración de la clase `Bird` en  `bird.h`, y las implementaciones de algunos de métodos en `bird.cpp`. El código en el siguiente ejemplo crea el objeto `piolin` de la clase `Bird` e imprime su tamaño.
220
+Puedes ver las declaraciones de los métodos en la Figura 1 y en la declaración de la clase `Bird` en `bird.h`, y las implementaciones de algunos de métodos en `bird.cpp`. El código en el siguiente ejemplo crea el objeto `piolin` de la clase `Bird` e imprime su tamaño.
221 221
 
222 222
 ```
223 223
 Bird piolin;
@@ -324,13 +324,11 @@ Los genes de las cejas siguen las siguientes reglas:
324 324
 1. Carga a `QtCreator` el proyecto `BirthOfABird`. Hay dos maneras de hacer esto:
325 325
 
326 326
     * 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.
327
-    * 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`.
327
+    * Descargando la carpeta del proyecto de `Bitbucket`: Utiliza un terminal y escribe el comando `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`.
328 328
 
329 329
 2. Configura el proyecto.
330 330
 
331
-       **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á.
332
-
333
-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.
331
+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, ya que tiene características aleatorias.
334 332
 
335 333
 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:
336 334
     
@@ -385,3 +383,6 @@ https://sites.google.com/a/wellesley.edu/wellesley-cs118-spring13/lectures-labs/
385 383
 
386 384
 ---
387 385
 
386
+
387
+
388
+