소스 검색

README-es.md edited online with Bitbucket

부모
커밋
788367b48b
1개의 변경된 파일22개의 추가작업 그리고 21개의 파일을 삭제
  1. 22
    21
      README-es.md

+ 22
- 21
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
+[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
 ##Objetivos:
13
 ##Objetivos:
14
 
14
 
41
 
41
 
42
 4. Estudiado los conceptos e instrucciones para la sesión de laboratorio.
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
 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:
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
 sus datos (*atributos*), y los procedimientos con los que se pueden manipular los datos (*métodos*).
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
 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. 
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
 ### Clases
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
 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). 
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
 ```
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
 ### Objetos
102
 ### Objetos
103
 
103
 
105
 
105
 
106
 `NombreClase nombreObjeto;`
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
 ###Métodos de una clase
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
 ```
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
 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:
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
 `tipoDevolver nombreMetodo(tipo de los parámetros);`
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
 `TipoDevolver NombreClase::NombreMetodo(parámetros)`
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
 Para invocar un método escribimos el nombre del objeto, seguido de un punto y luego el nombre del método:
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
 
176
 
177
 `Bird (int, EyeBrowType, QString, QString, QWidget *parent=0)`
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
 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:
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
 `Bird pitirre;`
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
 `Bird guaraguao(200, Bird::UPSET, "blue", "red");`
189
 `Bird guaraguao(200, Bird::UPSET, "blue", "red");`
190
 
190
 
199
 * `void setEyeColor (QString)` 
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
 Bird bobo;
205
 Bird bobo;
209
 
209
 
210
 #### "Getters" ("accessors")
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
 * `int getSize ()` 
214
 * `int getSize ()` 
215
 * `EyeBrowType getEyebrow ()` 
215
 * `EyeBrowType getEyebrow ()` 
217
 * `QString   getEyeColor ()` 
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
 Bird piolin;
223
 Bird piolin;
324
 1. Carga a `QtCreator` el proyecto `BirthOfABird`. Hay dos maneras de hacer esto:
324
 1. Carga a `QtCreator` el proyecto `BirthOfABird`. Hay dos maneras de hacer esto:
325
 
325
 
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.
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
 2. Configura el proyecto.
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
 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:
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
 
383
 
386
 ---
384
 ---
387
 
385
 
386
+
387
+
388
+