|
|
|
|
4
|
![main2.png](images/main2.png)
|
4
|
![main2.png](images/main2.png)
|
5
|
![main3.png](images/main3.png)
|
5
|
![main3.png](images/main3.png)
|
6
|
|
6
|
|
|
|
7
|
+[Verano 2016 - Rafa - Ive]
|
|
|
8
|
+
|
7
|
Una de las ventajas de utilizar programas de computadoras es que podemos realizar tareas repetitivas fácilmente. Los ciclos como `for`, `while`, y `do-while` son estructuras de control que nos permiten repetir un conjunto de instrucciones. A estas estructuras también se les llama *estructuras de repetición*.
|
9
|
Una de las ventajas de utilizar programas de computadoras es que podemos realizar tareas repetitivas fácilmente. Los ciclos como `for`, `while`, y `do-while` son estructuras de control que nos permiten repetir un conjunto de instrucciones. A estas estructuras también se les llama *estructuras de repetición*.
|
8
|
|
10
|
|
9
|
Los algoritmos son uno de los conceptos más fundamentales en la Ciencia de Cómputos. Dado un pequeño conjunto de instrucciones y las estructuras básicas de programación, podemos resolver una gran cantidad de problemas. En esta experiencia de laboratorio vas a practicar la creación de algoritmos simulando un robot que debe explorar un espacio utilizando un conjunto bien limitado de instrucciones.
|
11
|
Los algoritmos son uno de los conceptos más fundamentales en la Ciencia de Cómputos. Dado un pequeño conjunto de instrucciones y las estructuras básicas de programación, podemos resolver una gran cantidad de problemas. En esta experiencia de laboratorio vas a practicar la creación de algoritmos simulando un robot que debe explorar un espacio utilizando un conjunto bien limitado de instrucciones.
|
|
|
|
|
24
|
1. Repasado las estructuras básicas de decisión y repetición en C++.
|
26
|
1. Repasado las estructuras básicas de decisión y repetición en C++.
|
25
|
2. Repasado la creación de objetos e invocación de sus métodos.
|
27
|
2. Repasado la creación de objetos e invocación de sus métodos.
|
26
|
3. Estudiado los conceptos e instrucciones para la sesión de laboratorio.
|
28
|
3. Estudiado los conceptos e instrucciones para la sesión de laboratorio.
|
|
|
29
|
+4. Tomado el quiz Pre-Lab, disponible en Moodle.
|
27
|
|
30
|
|
28
|
|
31
|
|
29
|
---
|
32
|
---
|
|
|
|
|
150
|
|
153
|
|
151
|
**Instrucciones**
|
154
|
**Instrucciones**
|
152
|
|
155
|
|
153
|
-1. Descarga la carpeta `Repetitions-CountingSquares` de `Bitbucket` usando un terminal, moviéndote al directorio `Documents/eip`, y escribiendo el comando `git clone http://bitbucket.org/eip-uprrp/repetitions-countingsquares`.
|
|
|
|
|
156
|
+1. Carga a `QtCreator` el proyecto `CountingSquares`. Hay dos maneras de hacer esto:
|
154
|
|
157
|
|
155
|
-2. Carga a Qt creator el proyecto `CountingSquares` haciendo doble "click" en el archivo `CountingSquares.pro` que se encuentra en la carpeta `Documents/eip/Repetitions-CountingSquares` de tu computadora.
|
|
|
|
|
158
|
+ * Utilizando la máquina virtual: Haz doble “click” en el archivo `CountingSquares.pro` que se encuentra en el directorio `/home/eip/labs/repetitions-countingsquares` de la máquina virtual.
|
|
|
159
|
+ * Descargando la carpeta del proyecto de `Bitbucket`: Utiliza un terminal y escribe el commando `git clone http:/bitbucket.org/eip-uprrp/repetitions-countingsquares` para descargar la carpeta `repetitions-countingsquares` de `Bitbucket`. En esa carpeta, haz doble “click” en el archivo `CountingSquares.pro`.
|
156
|
|
160
|
|
157
|
-3. Configura el proyecto. El proyecto consiste de varios archivos. **Solo escribirás código en el archivo** `main.cpp`. Los demás archivos contienen funciones que implementan la funcionalidad de las instrucciones que entiende el robot.
|
|
|
|
|
161
|
+2. Configura el proyecto. El proyecto consiste de varios archivos. **Solo escribirás código en el archivo** `main.cpp`. Los demás archivos contienen funciones que implementan la funcionalidad de las instrucciones que entiende el robot.
|
158
|
|
162
|
|
159
|
-4. Al escribir tu algoritmo debes asegurarte de que el objeto `MainGameWindow` es creado usando el argumento `Mode::SQUARE_TOP_LEFT`. Recuerda, el robot no sabe de antemano cuantos cuartos hay. Prueba tu algoritmo con algunos ejemplos.
|
|
|
|
|
163
|
+3. Al escribir tu algoritmo debes asegurarte de que el objeto `MainGameWindow` es creado usando el argumento `Mode::SQUARE_TOP_LEFT`. Recuerda, el robot no sabe de antemano cuantos cuartos hay. Prueba tu algoritmo con algunos ejemplos.
|
160
|
|
164
|
|
161
|
-5. Si el tamaño de la cuadrícula es 3x3, ¿cuántos cuartos debe visitar el robot para completar tu algoritmo? ¿Qué tal 4x4? ¿Qué tal $$n \times n$$ cuartos?
|
|
|
|
|
165
|
+4. Si el tamaño de la cuadrícula es 3x3, ¿cuántos cuartos debe visitar el robot para completar tu algoritmo? ¿Qué tal 4x4? ¿Qué tal $$n \times n$$ cuartos?
|
162
|
|
166
|
|
163
|
-6. Presume que deseamos ahorrar en la energía que utiliza el robot. ¿Puedes hacer un algoritmo que utilice menos movidas para el mismo tamaño de cuadrícula?
|
|
|
|
|
167
|
+5. Presume que deseamos ahorrar en la energía que utiliza el robot. ¿Puedes hacer un algoritmo que utilice menos movidas para el mismo tamaño de cuadrícula?
|
164
|
|
168
|
|
165
|
-7. Una vez hayas terminado el algoritmo, lo hayas hecho correcto y eficiente, entrégalo usando Entrega 1 en Moodle. En el encabezado del algoritmo escribe y explica la expresión que hallaste sobre cuántos cuartos debe visitar el robot para completar su tarea para una cuadrícula $$n \times n$$ (algo así como "El robot toma 2n+5 movidas, 5 para llegar al medio y 2n para contar el resto")
|
|
|
|
|
169
|
+6. Una vez hayas terminado el algoritmo, lo hayas hecho correcto y eficiente, entrégalo usando Entrega 1 en Moodle. En el encabezado del algoritmo escribe y explica la expresión que hallaste sobre cuántos cuartos debe visitar el robot para completar su tarea para una cuadrícula $$n \times n$$ (algo así como "El robot toma 2n+5 movidas, 5 para llegar al medio y 2n para contar el resto")
|
166
|
|
170
|
|
167
|
|
171
|
|
168
|
### Ejercicio 2 - Cuadrícula rectangular de cuartos
|
172
|
### Ejercicio 2 - Cuadrícula rectangular de cuartos
|