|
@@ -25,18 +25,18 @@ En casi todas las instancias en que queremos resolver un problema seleccionamos
|
25
|
25
|
Antes de llegar al laboratorio debes haber:
|
26
|
26
|
|
27
|
27
|
1. Repasado los siguientes conceptos relacionados a estructuras de decisión:
|
|
28
|
+
|
|
29
|
+ a. operadores lógicos.
|
28
|
30
|
|
29
|
|
- a. operadores lógicos.
|
30
|
|
-
|
31
|
|
- b. `if`, `else`, `else if`.
|
|
31
|
+ b. `if`, `else`, `else if`.
|
32
|
32
|
|
33
|
33
|
2. Repasado los siguientes conceptos relacionados a objetos y clases en C++:
|
34
|
34
|
|
35
|
|
- a. la creación de objetos de una clase.
|
|
35
|
+ a. la creación de objetos de una clase.
|
36
|
36
|
|
37
|
|
- b. la utilización de métodos "getters" para acceder a los atributos de un objeto.
|
|
37
|
+ b. la utilización de métodos "getters" para acceder a los atributos de un objeto.
|
38
|
38
|
|
39
|
|
- c. la utilización de métodos "setters" para modificar los atributos de un objeto.
|
|
39
|
+ c. la utilización de métodos "setters" para modificar los atributos de un objeto.
|
40
|
40
|
|
41
|
41
|
3. Estudiado la documentación de la clase `Bird` disponible en [este enlace](doc/es/html/index.html).
|
42
|
42
|
|
|
@@ -74,27 +74,26 @@ Lo siguiente es el esqueleto de la declaración de una clase:
|
74
|
74
|
|
75
|
75
|
---
|
76
|
76
|
|
77
|
|
-```
|
78
|
|
- class NombreClase
|
79
|
|
- {
|
|
77
|
+```cpp
|
|
78
|
+class NombreClase {
|
80
|
79
|
// Declaraciones
|
81
|
80
|
|
82
|
|
- private:
|
83
|
|
- // Declaraciones de variables o atributos y
|
84
|
|
- // prototipos de métodos
|
85
|
|
- // que sean privados para esta clase
|
|
81
|
+private:
|
|
82
|
+ // Declaraciones de variables o atributos y
|
|
83
|
+ // prototipos de métodos
|
|
84
|
+ // que sean privados para esta clase
|
86
|
85
|
|
87
|
|
- tipo varPrivada;
|
88
|
|
- tipo nombreMetodoPrivado(tipo de los parámetros);
|
|
86
|
+ tipo varPrivada;
|
|
87
|
+ tipo nombreMetodoPrivado(tipo de los parámetros);
|
89
|
88
|
|
90
|
|
- public:
|
91
|
|
- // Declaraciones de atributos y
|
92
|
|
- // prototipos de métodos
|
93
|
|
- // que sean públicos para todo el programa
|
|
89
|
+public:
|
|
90
|
+ // Declaraciones de atributos y
|
|
91
|
+ // prototipos de métodos
|
|
92
|
+ // que sean públicos para todo el programa
|
94
|
93
|
|
95
|
|
- tipo varPública;
|
96
|
|
- tipo nombreMetodoPúblico(tipo de los parámetros);
|
97
|
|
- };
|
|
94
|
+ tipo varPública;
|
|
95
|
+ tipo nombreMetodoPúblico(tipo de los parámetros);
|
|
96
|
+};
|
98
|
97
|
```
|
99
|
98
|
---
|
100
|
99
|
|
|
@@ -115,9 +114,8 @@ Los métodos de una clase determinan qué acciones podemos tomar sobre los objet
|
115
|
114
|
---
|
116
|
115
|
|
117
|
116
|
|
118
|
|
-```
|
119
|
|
-class Bird : public QWidget
|
120
|
|
-{
|
|
117
|
+```cpp
|
|
118
|
+class Bird : public QWidget {
|
121
|
119
|
.
|
122
|
120
|
.
|
123
|
121
|
.
|
|
@@ -220,7 +218,7 @@ Las clases también proveen métodos para acceder ("get") el valor del atributo
|
220
|
218
|
|
221
|
219
|
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.
|
222
|
220
|
|
223
|
|
-```
|
|
221
|
+```cpp
|
224
|
222
|
Bird piolin;
|
225
|
223
|
cout << piolin.getSize();
|
226
|
224
|
```
|
|
@@ -237,7 +235,7 @@ que añadirán a la pantalla un dibujo del objeto de la clase `Bird` que es reci
|
237
|
235
|
|
238
|
236
|
|
239
|
237
|
|
240
|
|
-```
|
|
238
|
+```cpp
|
241
|
239
|
MainWindow w;
|
242
|
240
|
Bird zumbador;
|
243
|
241
|
w.addBird(200,200,zumbador);
|
|
@@ -349,17 +347,17 @@ Los genes de las cejas siguen las siguientes reglas:
|
349
|
347
|
|
350
|
348
|
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:
|
351
|
349
|
|
352
|
|
- i. Crea los tres pájaros y añade dos de ellos a la pantalla.
|
|
350
|
+ i. Crea los tres pájaros y añade dos de ellos a la pantalla.
|
353
|
351
|
|
354
|
|
- 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.
|
|
352
|
+ 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.
|
355
|
353
|
|
356
|
|
- ---
|
|
354
|
+ ---
|
357
|
355
|
|
358
|
|
- ![funcionMain.png](images/funcionMain.png)
|
|
356
|
+ ![funcionMain.png](images/funcionMain.png)
|
359
|
357
|
|
360
|
|
- **Figura 2.** Función `main`.
|
|
358
|
+ **Figura 2.** Función `main`.
|
361
|
359
|
|
362
|
|
- ---
|
|
360
|
+ ---
|
363
|
361
|
|
364
|
362
|
|
365
|
363
|
### Ejercicio 3 - Escribir el código para determinar las características de Piolín
|