Selaa lähdekoodia

Como en el libro

Luis Albertorio 8 vuotta sitten
vanhempi
commit
1a9ff41dec
2 muutettua tiedostoa jossa 40 lisäystä ja 48 poistoa
  1. 27
    22
      README-en.md
  2. 13
    26
      README-es.md

+ 27
- 22
README-en.md Näytä tiedosto

@@ -1,24 +1,25 @@
1
-
2 1
 # Using Objects in C++ - Birds
3 2
 
4 3
 
5 4
 ![](images/headerBirds.png)
6 5
 
7
-<p> </p>
8 6
 
9
-Up to now we've seen how to use variables to store and manipulate data of certain types and how to structure programs by dividing their tasks into functions. An *object* is an entity that it is used in many programming languages to integrate the data and the code that operates on it, simplifying the modification of large programs. In today’s laboratory experience you will use a class called `Bird` to practice some basic skills in C++ to create and manipulate objects.
7
+[version 2016.02.10]
8
+
9
+Up to now we've seen how to use variables to store and manipulate data of certain types and how to structure programs by dividing their tasks into functions. An *object* is an entity that is used in many programming languages to integrate the data and the code that operates on it, simplifying the modification of large programs. In today’s laboratory experience you will use a class called `Bird` to practice some basic skills in C++ to create and manipulate objects.
10 10
 
11 11
 
12 12
 
13 13
 ##Objectives:
14 14
 
15 15
 1. Create objects from a class.
16
-2. Manipulate attributes of the objects using their "getter" and "setter" method functions.
16
+2. Analyze the declaration of a class to understand how to create and manipulate objects of the class.
17
+3. Practice the creation and manipulation of objects, and the invocation of "setters" and "getters".
17 18
 
18 19
 
19 20
 ##Pre-Lab:
20 21
 
21
-Before the lab session each student should have:
22
+Before arriving to the laboratory you should have:
22 23
 
23 24
 1. Reviewed the following concepts:
24 25
 
@@ -28,11 +29,10 @@ Before the lab session each student should have:
28 29
 
29 30
   c. using the "setter" method functions to modify the attributes of an object.
30 31
 
31
-2. Studied the documentation for the class `Bird` available in the documentation for this project (`eip/objetcs-birds/doc/es/html/class_bird.html`).
32
+2. Studied the documentation for the class `Bird` available in the documentation for this project (`objects-birds/doc/en/html/class_bird.html`).
32 33
 
33 34
 3. Studied the concepts and instructions for the laboratory session.
34 35
 
35
-4. Taken the Pre-Lab quiz that can be found in Moodle.
36 36
 
37 37
 ---
38 38
 
@@ -41,11 +41,11 @@ Before the lab session each student should have:
41 41
 
42 42
 ##Classes and objects in C++
43 43
 
44
-An *object* es an entity that contains data and procedures to manipulate them. Similar to how each variable has a *type* of data associated to it, each object has a *class* associated that describes the properties of the objects: its data (*attributes*), and the procedures that can be used to manipulate its data (*methods*).
44
+An *object* is an entity that contains data and procedures to manipulate them. Similar to how each variable has a *type* of data associated to it, each object has a *class* associated that describes the properties of the objects: its data (*attributes*), and the procedures that can be used to manipulate its data (*methods*).
45 45
 
46 46
 To define and use an object it is not necessary to know all of the details about the methods of the object, but you must know how to create it and how to interact with it. The necessary  information is available in the class' documentation. Before creating objects of any class we should familiarize ourselves with its documentation. The documentation indicates, among other things, what entity is trying to be represented in the class, and its interface or methods available to manipulate the objects of the class.
47 47
 
48
-Take a look at the documentation for the `Bird` class which can be found in the documentation for this project (`eip/objetcs-birds/doc/es/html/class_bird.html`).
48
+Take a look at the documentation for the `Bird` class which can be found in the documentation for this project (`objects-birds/doc/en/html/class_bird.html`).
49 49
 
50 50
 ###Classes
51 51
 
@@ -89,7 +89,7 @@ An object is an entity that contains data (as well as a variable), called its `a
89 89
 
90 90
 `ClassName objectName(arguments);`
91 91
 
92
-The creation  of the objects is done by functions called `constructors` that will be explained later. By creating an object we have available the methods of the class that the object belongs to.
92
+The creation  of the objects is done by functions called `constructors` that will be explained later. Once we have created an object, we can interact with it using the methods that belong to the class.
93 93
 
94 94
 ###Methods of a class
95 95
 
@@ -147,8 +147,6 @@ To invoke a method we write the name of the object, followed by a period and the
147 147
 
148 148
 The first methods of a class that we should understand are the *constructors*. A class can have multiple constructors. One of the constructors will be invoked automatically each time an object of that class is created. In most of the cases, the constructors are used to initialize the values for the object’s attributes. To create objects of a class, we must know which are the constructors of the class.
149 149
 
150
-
151
-
152 150
 In C++, the constructors have the same name as the class. The type returned by these functions is not declared since they do not return any value. Their declaration (included in the definition of the class) is like this:
153 151
 
154 152
 `methodName(type of the parameters);`
@@ -163,13 +161,13 @@ The class `Bird` that you will be using in today's session has two constructors
163 161
 
164 162
 `Bird (int, EyeBrowType, QString, QString, QWidget *parent=0)`
165 163
 
166
-You can see the declarations of the method prototypes in the declaration of the `Bird` class in the project's `bird.h` file. The documentation for the class can be found in the documentation for this project (`eip/objetcs-birds/doc/es/html/class_bird.html`). The first constructor, `Bird (QWidget *parent=0)`, is a method that can be invoked with one or no argument. If no argument is used, the function's parameter has a value of 0.
164
+You can see the declarations of the method prototypes in the declaration of the `Bird` class in the project's `bird.h` file. The documentation for the class can be found in the documentation for this project (`objects-birds/doc/en/html/class_bird.html`). The first constructor, `Bird (QWidget *parent=0)`, is a method that can be invoked with one or no argument. If no argument is used, the function's parameter has a value of 0.
167 165
 
168 166
 A class' constructor that can be invoked without using an argument is the class' *default constructor*; that is, the constructor that is invoked when we create an object using an instruction  like:
169 167
 
170 168
 `Bird pitirre;`
171 169
 
172
-You can see the implementations of the class `Bird` in the file `bird.cpp`. Note that the first constructor, `Bird (QWidget *parent=0)`, will assign random values to each of the object's attributes. Later on there is a brief explanation for the `randInt` function.
170
+You can see the implementations of the class `Bird` in the file `bird.cpp`. Notice that the first constructor, `Bird (QWidget *parent=0)`, will assign random values to each of the object's attributes. Later on there is a brief explanation for the `randInt` function.
173 171
 
174 172
 Have a look at the documentation for the second constructor, `Bird (int, EyeBrowType, QString, QString, QWidget *parent=0)`. This function requires four arguments and has a fifth argument that is optional since it has a default value. One way to use this constructor is creating an object like this:
175 173
 
@@ -178,7 +176,7 @@ Have a look at the documentation for the second constructor, `Bird (int, EyeBrow
178 176
 
179 177
 ####Setters (mutators)
180 178
 
181
-Classes provide methods to modify the values of the attributes of an objected that has been created. These methods are called *setters* or *mutators*. Usually, we declare one setter for each attribute that the class has. The `Bird` class has the following setters:
179
+Classes provide methods to modify the values of the attributes of an object that has been created. These methods are called *setters* or *mutators*. Usually, we declare one setter for each attribute that the class has. The `Bird` class has the following setters:
182 180
 
183 181
 * `void setSize (int)`
184 182
 * `void setEyebrow (EyeBrowType)`
@@ -252,14 +250,19 @@ to generate random numbers in the range [min, max]. The method `randInt` depends
252 250
 ---
253 251
 
254 252
 !INCLUDE "../../eip-diagnostic/birds-objects/en/diag-birds-objects-01.html"
253
+<br>
255 254
 
256 255
 !INCLUDE "../../eip-diagnostic/birds-objects/en/diag-birds-objects-02.html"
256
+<br>
257 257
 
258 258
 !INCLUDE "../../eip-diagnostic/birds-objects/en/diag-birds-objects-03.html"
259
+<br>
259 260
 
260 261
 !INCLUDE "../../eip-diagnostic/birds-objects/en/diag-birds-objects-04.html"
262
+<br>
261 263
 
262 264
 !INCLUDE "../../eip-diagnostic/birds-objects/en/diag-birds-objects-05.html"
265
+<br>
263 266
 
264 267
 ---
265 268
 
@@ -276,11 +279,13 @@ In this exercise you will familiarize yourself with the `Bird` class and with so
276 279
 
277 280
 **Instructions**
278 281
 
279
-1. Load the `Birds` project onto Qt by double clicking on the `Birds.pro` filein the directory `Documents/eip/Objects-Birds` of your computer. You may also go to `http://bitbucket.org/eip-uprrp/objects-birds` to download the `Objects-Birds` folder to your computer.
282
+1. Download the `objects-birds` folder from `Bitbucket` using a terminal, moving to the `Documents/eip` directory, and writing the command `git clone http://bitbucket.org/eip-uprrp/objects-birds`.
283
+
284
+2. Load the `Birds` project onto Qt by double clicking on the `Birds.pro` file in the directory `Documents/eip/objects-birds` of your computer. Configure the project.
280 285
 
281
-2. Study the `Bird` class contained in the `bird.h` file. Identify the methods that are constructors, setters and getters.
286
+3. Study the `Bird` class contained in the `bird.h` file. Identify the methods that are constructors, setters and getters.
282 287
 
283
-3. In the `main.cpp` file (in Sources) the `main` function does the following:
288
+4. In the `main.cpp` file (in Sources) the `main` function does the following:
284 289
 
285 290
     a. Creates a Qt object application, called `a`. The only thing you need to know is that thanks to this object we can create a graphical application in Qt and interact with it.
286 291
 
@@ -292,17 +297,17 @@ In this exercise you will familiarize yourself with the `Bird` class and with so
292 297
 
293 298
     e. In programs that don't have a graphical interface, the `main()` function usually ends with the instruction `return 0;`. In this project, the `return a.exec();` instruction is used so that the object `a` takes charge of the application from that moment on.
294 299
 
295
-4. Execute the program by clicking on the green arrow in the left menu on the Qt Creator window. The program should display a blank window.
300
+5. Execute the program by clicking on the green arrow in the left menu on the Qt Creator window. The program should display a blank window.
296 301
 
297 302
 ###Exercise 2: Create objects of the `Bird` class with certain attributes
298 303
 
299
-In this exercise you will create objects of the  `Bird` class using the default constructor and using constructors where you define specific characteristics for the object. You will also practice the use of getters and setters to obtain and assign attributes to the objects.
304
+In this exercise you will create objects of the `Bird` class using the default constructor and using constructors where you define specific characteristics for the object. You will also practice the use of getters and setters to obtain and assign attributes to the objects.
300 305
 
301 306
 **Instructions**
302 307
 
303 308
 1. Create an object of the `Bird` class called `abelardo` using the default constructor and add it to the `w` window using the method `addBird(int x, int y, Bird b)`. Remember that the method's call should start with the name of the object `w` and a period.
304 309
 
305
-2. Run the program several  times and marvel at seeing `abelardo` have different sizes, colors and eyebrows.
310
+2. Run the program several times and marvel at seeing `abelardo` have different sizes, colors and eyebrows.
306 311
 
307 312
 3. Use the setters `setSize(int size)`, `setFaceColor(Qstring color)`, `setEyeColor(Qstring color)`, and `setEyebrow(EyeBrowType)` so that `abelardo` looks as in Figure 2  (its size is 200).
308 313
 
@@ -330,7 +335,7 @@ In this exercise you will create objects of the  `Bird` class using the default
330 335
 
331 336
   ![figure4.png](images/figure4.png)
332 337
 
333
-  **Figure 4.** Abelardo, Piolin, Juana and Alondra.
338
+  **Figure 4.** Abelardo, Piolin, Juana, and Alondra.
334 339
 
335 340
   ---
336 341
 

+ 13
- 26
README-es.md Näytä tiedosto

@@ -1,11 +1,8 @@
1
-
2 1
 #Utilizando objetos en C++ - Pájaros
3 2
 
4 3
 
5
-
6 4
 ![](images/headerBirds.png)
7 5
 
8
-<p> </p>
9 6
 
10 7
 [version 2016.02.10]
11 8
 
@@ -15,10 +12,7 @@ Hasta ahora hemos visto cómo utilizar variables para guardar y manipular datos
15 12
 
16 13
 1. Crear objetos de una clase.
17 14
 2. Analizar la declaración de una clase para entender cómo crear y manipular objetos de esa clase.
18
-3. Analizar la declaración de una clase para entender cómo crear y manipular objetos de esa clase.
19
-4. Practicar la creación y manipulación de objetos, y la invocación de "setters" y "getters".
20
-
21
-
15
+3. Practicar la creación y manipulación de objetos, y la invocación de "setters" y "getters".
22 16
 
23 17
 
24 18
 ##Pre-Lab:
@@ -32,9 +26,8 @@ Antes de llegar al laboratorio debes:
32 26
     b. utilización de métodos "getters" para acceder a los atributos de un objeto.
33 27
 
34 28
     c. utilización de métodos "setters" para modificar los atributos de un objeto.
35
-  
36 29
 
37
-2. Haber estudiado la documentación de la clase `Bird` disponible dentro de la documentación del proyecto (`objetcs-birds/doc/es/html/class_bird.html`).
30
+2. Haber estudiado la documentación de la clase `Bird` disponible dentro de la documentación del proyecto (`objects-birds/doc/es/html/class_bird.html`).
38 31
 
39 32
 3. Haber estudiado los conceptos e instrucciones para la sesión de laboratorio.
40 33
 
@@ -52,7 +45,7 @@ sus datos (*atributos*), y los procedimientos con los que se pueden manipular lo
52 45
 
53 46
 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.
54 47
 
55
-Una vez hayas bajado los archivos de este proyecto a tu computadora, dale un vistazo a la documentación de la clase `Bird` que se encuentra dentro de la documentación del proyecto (`objetcs-birds/doc/es/html/class_bird.html`).
48
+Una vez hayas bajado los archivos de este proyecto a tu computadora, dale un vistazo a la documentación de la clase `Bird` que se encuentra dentro de la documentación del proyecto (`objects-birds/doc/es/html/class_bird.html`).
56 49
 
57 50
 ###Clases
58 51
 
@@ -150,7 +143,7 @@ Para invocar un método escribimos el nombre del objeto, seguido de un punto y l
150 143
 
151 144
 ####Constructores
152 145
 
153
-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.
146
+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.
154 147
 
155 148
 En C++, los  constructores tienen el mismo nombre que la clase. No se declara el tipo que devuelven porque estas funciones no devuelven ningún valor. Su declaración (incluida en la definición de la clase) es algo así:
156 149
 
@@ -166,13 +159,13 @@ La clase `Bird` que estarás usando en la sesión de hoy tiene dos constructores
166 159
 
167 160
 `Bird (int, EyeBrowType, QString, QString, QWidget *parent=0)`
168 161
 
169
-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 de la clase se encuentra dentro de la documentación del proyecto (`eip/objetcs-birds/doc/es/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.
162
+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 de la clase se encuentra dentro de la documentación del proyecto (`objects-birds/doc/es/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.
170 163
 
171 164
 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:
172 165
 
173 166
 `Bird pitirre;`
174 167
 
175
-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`.
168
+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`.
176 169
 
177 170
 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:
178 171
 
@@ -225,7 +218,6 @@ cout << piolin.getSize();
225 218
 que añadirán a la pantalla un dibujo del objeto de la clase `Bird` que es recibido como argumento. El código en el siguiente ejemplo crea un objeto `w` de la clase `MainWindow`, crea un objeto `zumbador` de la clase `Bird` y lo añade a la posición (200,200) de la pantalla `w` usando el primer método.
226 219
 
227 220
 
228
-
229 221
 ```cpp
230 222
 
231 223
 MainWindow w;
@@ -261,14 +253,19 @@ para generar números enteros aleatorios ("random") en el rango [min, max]. El m
261 253
 ---
262 254
 
263 255
 !INCLUDE "../../eip-diagnostic/birds-objects/es/diag-birds-objects-01.html"
256
+<br>
264 257
 
265 258
 !INCLUDE "../../eip-diagnostic/birds-objects/es/diag-birds-objects-02.html"
259
+<br>
266 260
 
267 261
 !INCLUDE "../../eip-diagnostic/birds-objects/es/diag-birds-objects-03.html"
262
+<br>
268 263
 
269 264
 !INCLUDE "../../eip-diagnostic/birds-objects/es/diag-birds-objects-04.html"
265
+<br>
270 266
 
271 267
 !INCLUDE "../../eip-diagnostic/birds-objects/es/diag-birds-objects-05.html"
268
+<br>
272 269
 
273 270
 ---
274 271
 
@@ -285,9 +282,9 @@ En este ejercicio te familiarizarás con la clase `Bird` y con algunos métodos
285 282
 
286 283
 **Instrucciones**
287 284
 
288
-1. Descarga la carpeta `Objects-Birds` de `Bitbucket` usando un terminal, moviéndote al directorio `Documents/eip`,  y escribiendo el comando `git clone http://bitbucket.org/eip-uprrp/objects-birds`.
285
+1. Descarga la carpeta `objects-birds` de `Bitbucket` usando un terminal, moviéndote al directorio `Documents/eip`,  y escribiendo el comando `git clone http://bitbucket.org/eip-uprrp/objects-birds`.
289 286
 
290
-2. Carga a Qt el proyecto `Birds`  haciendo doble "click" en el archivo `Birds.pro` que se encuentra en la carpeta `Documents/eip/Objects-Birds` de tu computadora. Configura el proyecto.
287
+2. Carga a Qt el proyecto `Birds`  haciendo doble "click" en el archivo `Birds.pro` que se encuentra en la carpeta `Documents/eip/objects-birds` de tu computadora. Configura el proyecto.
291 288
 
292 289
 3. Estudia la clase `Bird` contenida en el archivo `bird.h`. Identifica los métodos que son constructores, "setters" y "getters".
293 290
 
@@ -367,13 +364,3 @@ Utiliza "Entrega" en Moodle para entregar el archivo `main.cpp` que contiene las
367 364
 
368 365
 
369 366
 https://sites.google.com/a/wellesley.edu/wellesley-cs118-spring13/lectures-labs/lab-2
370
-
371
----
372
-
373
----
374
-
375
----
376
-
377
-
378
-
379
-