Browse Source

README-es.md edited online with Bitbucket

Jose R Ortiz Ubarri 8 years ago
parent
commit
f8963faf2c
1 changed files with 13 additions and 9 deletions
  1. 13
    9
      README-es.md

+ 13
- 9
README-es.md View File

1
 
1
 
2
-#Recursión - Figuras Recursivas
2
+# Recursión - Figuras Recursivas
3
 
3
 
4
 ![main1.jpg](images/main1.jpg)
4
 ![main1.jpg](images/main1.jpg)
5
 ![main2.jpg](images/main2.jpg)
5
 ![main2.jpg](images/main2.jpg)
6
 ![main3.png](images/main3.png)
6
 ![main3.png](images/main3.png)
7
 
7
 
8
+[Verano 2016 - Ive]
8
 
9
 
9
 Una técnica muy utilizada en programación es la *recursión*. Con esta técnica se resuelven problemas resolviendo un problema similar pero para casos más pequeños. Podemos construir conjuntos de objetos o procesos utilizando *reglas recursivas* y *valores iniciales*. Las *funciones recursivas* son funciones que se auto-invocan, utilizando cada vez conjuntos o elementos más pequeños,  hasta llegar a un punto en donde se utiliza el valor inicial en lugar de auto-invocarse. Los fractales son un ejemplo de figuras que se pueden crear usando recursión. En esta experiencia de laboratorio practicarás la definición e implementación de funciones recursivas para dibujar formas auto-similares (fractales).
10
 Una técnica muy utilizada en programación es la *recursión*. Con esta técnica se resuelven problemas resolviendo un problema similar pero para casos más pequeños. Podemos construir conjuntos de objetos o procesos utilizando *reglas recursivas* y *valores iniciales*. Las *funciones recursivas* son funciones que se auto-invocan, utilizando cada vez conjuntos o elementos más pequeños,  hasta llegar a un punto en donde se utiliza el valor inicial en lugar de auto-invocarse. Los fractales son un ejemplo de figuras que se pueden crear usando recursión. En esta experiencia de laboratorio practicarás la definición e implementación de funciones recursivas para dibujar formas auto-similares (fractales).
10
 
11
 
11
 Los ejercicios de esta experiencia de laboratorio son una adaptación de https://sites.google.com/a/wellesley.edu/wellesley-cs118-spring13/lectures-labs/lab-6-turtle-recursion.
12
 Los ejercicios de esta experiencia de laboratorio son una adaptación de https://sites.google.com/a/wellesley.edu/wellesley-cs118-spring13/lectures-labs/lab-6-turtle-recursion.
12
 
13
 
13
 
14
 
14
-##Objetivos:
15
+## Objetivos:
15
 
16
 
16
 1. Practicar el definir e implementar funciones recursivas.
17
 1. Practicar el definir e implementar funciones recursivas.
17
 
18
 
18
 
19
 
19
-##Pre-Lab:
20
+## Pre-Lab:
20
 
21
 
21
 Antes de llegar al laboratorio debes haber:
22
 Antes de llegar al laboratorio debes haber:
22
 
23
 
92
 
93
 
93
 En la experiencia de laboratorio de hoy implementarás  funciones recursivas para producir fractales.
94
 En la experiencia de laboratorio de hoy implementarás  funciones recursivas para producir fractales.
94
 
95
 
95
-###Ejercicio 1: Copo de nieve
96
+### Ejercicio 1 - Copo de nieve
96
 
97
 
97
 Una de las figuras fractales más simples es la figura de un copo de nieve. Esta figura se forma a partir de un triángulo isósceles, sustituyendo el segmento del tercio del medio de cada lado por una "V" invertida. La medida de los lados de la "V" es igual a la medida del segmento que sustituye. Usaremos el copo de nieve para ilustrar el proceso de recursión.
98
 Una de las figuras fractales más simples es la figura de un copo de nieve. Esta figura se forma a partir de un triángulo isósceles, sustituyendo el segmento del tercio del medio de cada lado por una "V" invertida. La medida de los lados de la "V" es igual a la medida del segmento que sustituye. Usaremos el copo de nieve para ilustrar el proceso de recursión.
98
 
99
 
104
 
105
 
105
 ---
106
 ---
106
 
107
 
107
-####Instrucciones
108
+#### Instrucciones:
109
+
110
+1. Carga a `QtCreator` el proyecto `RecursiveShapes`. Hay dos maneras de hacer esto:
111
+
112
+* Utilizando la máquina virtual: Haz doble “click” en el archivo `RecursiveShapes.pro` que se encuentra  en el directorio `/home/eip/labs/recursion-recursiveshapes` de la máquina virtual.
113
+* Descargando la carpeta del proyecto de `Bitbucket`: Utiliza un terminal y escribe el commando `git clone http:/bitbucket.org/eip-uprrp/recursion-recursiveshapes` para descargar la carpeta `recursion-recursiveshapes` de `Bitbucket`. En esa carpeta, haz doble “click” en el archivo `RecursiveShapes.pro`.
108
 
114
 
109
-1. Carga a QtCreator el proyecto `RecursiveShapes`  haciendo doble "click" en el archivo `RecursiveShapes.pro` en el directorio `Documents/eip/Recursion-RecursiveShapes` de tu computadora. También puedes ir a `http://bitbucket.org/eip-uprrp/recursion-recursiveshapes` para descargar la carpeta `Recursion-RecursiveShapes` a tu computadora.
110
- 
111
 2. Compila y corre el programa para que veas una figura del copo de nieve construida con 3 iteraciones de la función `snowflake`. Puedes ver el código que define esta función en el archivo `snowflake.cpp` del proyecto de `Qt`.
115
 2. Compila y corre el programa para que veas una figura del copo de nieve construida con 3 iteraciones de la función `snowflake`. Puedes ver el código que define esta función en el archivo `snowflake.cpp` del proyecto de `Qt`.
112
 
116
 
113
     En la función `main`, busca la línea en donde se declara y dá valor a la variable `level`. Cambia el valor de `level` a `0` y corre el programa de nuevo. Podrás ver el triángulo que representa el caso base de la recursión para el copo de nieve. Continúa cambiando el valor de la variable `level` y corriendo el programa para que veas el proceso de la recursión y de producir figuras auto-similares.
117
     En la función `main`, busca la línea en donde se declara y dá valor a la variable `level`. Cambia el valor de `level` a `0` y corre el programa de nuevo. Podrás ver el triángulo que representa el caso base de la recursión para el copo de nieve. Continúa cambiando el valor de la variable `level` y corriendo el programa para que veas el proceso de la recursión y de producir figuras auto-similares.
114
 
118
 
115
 
119
 
116
-###Ejercicio 2: Cajas autosimilares
120
+### Ejercicio 2 - Cajas autosimilares
117
 
121
 
118
 Tu tarea en este ejercicio es programar una función recursiva `boxes`, en el archivo `boxes.cpp`, que produzca las siguientes figuras. 
122
 Tu tarea en este ejercicio es programar una función recursiva `boxes`, en el archivo `boxes.cpp`, que produzca las siguientes figuras. 
119
 
123
 
131
 * `shrinkFactor`: un número real que determina la razón del siguiente nivel de cuadrados. Por ejemplo, si `sideLength` es `100`, y `shrinkFactor` es `0.3`, el largo de los lados del cuadrado más grande será `100` unidades, y el largo de los lados del próximo cuadrado más pequeño  será `100*.3=30` unidades. Se colocan 4 copias de ese cuadrado más pequeño dentro del cuadrado anterior, **un cuadrado en cada esquina**.
135
 * `shrinkFactor`: un número real que determina la razón del siguiente nivel de cuadrados. Por ejemplo, si `sideLength` es `100`, y `shrinkFactor` es `0.3`, el largo de los lados del cuadrado más grande será `100` unidades, y el largo de los lados del próximo cuadrado más pequeño  será `100*.3=30` unidades. Se colocan 4 copias de ese cuadrado más pequeño dentro del cuadrado anterior, **un cuadrado en cada esquina**.
132
 * `smallestLength`: es un valor entero que determina el largo del lado del cuadrado más pequeño que será dibujado. Por ejemplo, en la Figura 6, `boxes(400, 0.4, 200)` solo dibuja el cuadrado con lados de largo `400`, ya que el tamaño que le seguiría sería `400 * 0.4 = 160`, que es más pequeño que `200`. Por otro lado, `boxes(400, 0.4, 75)` dibuja el cuadrado de tamaño `400` y los cuadrados de tamaño `160`, pero no los siguientes en tamaño, porque serían de tamaño `160 * 0.4 = 64`, que es menor que `75`.
136
 * `smallestLength`: es un valor entero que determina el largo del lado del cuadrado más pequeño que será dibujado. Por ejemplo, en la Figura 6, `boxes(400, 0.4, 200)` solo dibuja el cuadrado con lados de largo `400`, ya que el tamaño que le seguiría sería `400 * 0.4 = 160`, que es más pequeño que `200`. Por otro lado, `boxes(400, 0.4, 75)` dibuja el cuadrado de tamaño `400` y los cuadrados de tamaño `160`, pero no los siguientes en tamaño, porque serían de tamaño `160 * 0.4 = 64`, que es menor que `75`.
133
 
137
 
134
-####Instrucciones
138
+#### Instrucciones:
135
 
139
 
136
 1. Estudia la función `box` incluida en el archivo `boxes.cpp`. Esta función recibe como argumentos las coordenadas de la esquina superior izquierda, el largo de los lados y el color de una caja. La función dibuja una caja con esas especificaciones.
140
 1. Estudia la función `box` incluida en el archivo `boxes.cpp`. Esta función recibe como argumentos las coordenadas de la esquina superior izquierda, el largo de los lados y el color de una caja. La función dibuja una caja con esas especificaciones.
137
 
141