|
@@ -251,29 +251,30 @@ En la introducción al tema de funciones viste que, tanto en matemáticas como e
|
251
|
251
|
|
252
|
252
|
1. Carga a `QtCreator` el proyecto `prettyPlot`. Hay dos maneras de hacer esto:
|
253
|
253
|
|
254
|
|
- *Utilizando la máquina virtual: Haz doble “click” en el archivo `prettyPlot.pro` que se encuentra en el directorio `home/eip/labs/functions-prettyplots` de la máquina virtual.
|
255
|
|
- *Descargando la carpeta de `Bitbucket`: Utiliza un terminal y escribe el comando `git clone http://bitbucket.org/eip-uprrp/functions-prettyplots` para descargar la carpeta `functions-prettyplots` de `Bitbucket`. En esa carpeta, haz doble “click” en el archivo `prettyPlot.pro`.
|
|
254
|
+ * Utilizando la máquina virtual: Haz doble “click” en el archivo `prettyPlot.pro` que se encuentra en el directorio `home/eip/labs/functions-prettyplots` de la máquina virtual.
|
|
255
|
+ * Descargando la carpeta de `Bitbucket`: Utiliza un terminal y escribe el comando `git clone http://bitbucket.org/eip-uprrp/functions-prettyplots` para descargar la carpeta `functions-prettyplots` de `Bitbucket`. En esa carpeta, haz doble “click” en el archivo `prettyPlot.pro`.
|
256
|
256
|
|
257
|
257
|
2. Configura el proyecto y ejecuta el programa marcando la flecha verde en el menú de la izquierda de la interface de `QtCreator`. El programa debe mostrar una ventana parecida a la Figura 3.
|
258
|
258
|
|
259
|
|
- ---
|
|
259
|
+ ---
|
260
|
260
|
|
261
|
|
- ![Figura3.png](images/Figura3.png)
|
|
261
|
+ ![Figura3.png](images/Figura3.png)
|
262
|
262
|
|
263
|
|
- **Figura 3.** Gráfica de un círculo de radio 5 y centro en el origen desplegada por el programa *PrettyPlot*.
|
|
263
|
+ **Figura 3.** Gráfica de un círculo de radio 5 y centro en el origen desplegada por el programa *PrettyPlot*.
|
264
|
264
|
|
265
|
|
- ---
|
|
265
|
+ ---
|
266
|
266
|
|
267
|
267
|
3. Abre el archivo `main.cpp` (en Sources). Estudia la función `illustration` y su invocación desde la función `main`. Nota que las variables `argValue` y `argRef` están inicializadas a 0 y que la invocación a `illustration` hace un pase por valor de `argValue` y un pase por referencia de `argRef`. Nota también que a los parámetros correspondientes en `illustration` se les asigna el valor 1.
|
268
|
268
|
|
269
|
|
- void illustration(int paramValue, int ¶mRef) {
|
|
269
|
+ ```cpp
|
|
270
|
+ void illustration(int paramValue, int ¶mRef) {
|
270
|
271
|
paramValue = 1;
|
271
|
272
|
paramRef = 1;
|
272
|
273
|
cout << endl << "The content of paramValue is: " << paramValue << endl
|
273
|
274
|
<< "The content of paramRef is: " << paramRef << endl;
|
274
|
|
- }
|
|
275
|
+ }```
|
275
|
276
|
|
276
|
|
-3. Ejecuta el programa y observa lo que se despliega en la ventana `Application Output`. Nota la diferencia entre el contenido las variables `argValue` y `argRef` a pesar de que ambas tenían el mismo valor inicial y que a `paramValue` y `paramRef` se les asignó el mismo valor. Explica por qué el contenido de `argValue` no cambia, mientras que el contenido de `argRef` cambia de 0 a 1.
|
|
277
|
+4. Ejecuta el programa y observa lo que se despliega en la ventana `Application Output`. Nota la diferencia entre el contenido las variables `argValue` y `argRef` a pesar de que ambas tenían el mismo valor inicial y que a `paramValue` y `paramRef` se les asignó el mismo valor. Explica por qué el contenido de `argValue` no cambia, mientras que el contenido de `argRef` cambia de 0 a 1.
|
277
|
278
|
|
278
|
279
|
### Ejercicio 2: Creación de función sobrecargada
|
279
|
280
|
|
|
@@ -282,6 +283,7 @@ En la introducción al tema de funciones viste que, tanto en matemáticas como e
|
282
|
283
|
|
283
|
284
|
1. Estudia el código de la función `main()` del archivo `main.cpp`. La línea `XYPlotWindow wCircleR5;` crea el objeto `wCircleR5` que será la ventana en donde se dibujará una gráfica, en este caso la gráfica de un círculo de radio 5. De manera similar se crean los objetos `wCircle` y `wButterfly`. Observa el ciclo `for`. En este ciclo se genera una serie de valores para el ángulo $$t$$ y se invoca la función `circle`, pasándole el valor de $$t$$ y las referencias a $$x$$ y $$y$$. La función `circle` no devuelve valor pero, usando parámetros por referencia, calcula valores para las coordenadas $$xCoord$$ y $$yCoord$$ del círculo con centro en el origen y radio 5. Además, permite que la función `main` tenga esos valores en las variables `x` , `y`.
|
284
|
285
|
|
|
286
|
+ ```cpp
|
285
|
287
|
XYPlotWindow wCircleR5;
|
286
|
288
|
XYPlotWindow wCircle;
|
287
|
289
|
XYPlotWindow wButterfly;
|
|
@@ -307,10 +309,11 @@ En la introducción al tema de funciones viste que, tanto en matemáticas como e
|
307
|
309
|
|
308
|
310
|
// añade el punto (x,y) a la gráfica del círculo
|
309
|
311
|
wCircleR5.AddPointToGraph(x,y);
|
|
312
|
+ ```
|
310
|
313
|
|
311
|
|
- Luego de la invocación, cada par ordenado $$(x,y)$$ es añadido a la gráfica del círculo por el método `AddPointToGraph(x,y)`. Luego del ciclo se invoca el método `Plot()`, que "dibuja" los puntos, y el método `show()`, que muestra la gráfica. Los *métodos* son funciones que nos permiten trabajar con los datos de los objetos. Nota que cada uno de los métodos se escribe luego de `wCircleR5`, seguido de un punto. En una experiencia de laboratorio posterior, aprenderás más sobre objetos y practicarás cómo crearlos e invocar sus métodos.
|
|
314
|
+ Luego de la invocación, cada par ordenado $$(x,y)$$ es añadido a la gráfica del círculo por el método `AddPointToGraph(x,y)`. Luego del ciclo se invoca el método `Plot()`, que "dibuja" los puntos, y el método `show()`, que muestra la gráfica. Los *métodos* son funciones que nos permiten trabajar con los datos de los objetos. Nota que cada uno de los métodos se escribe luego de `wCircleR5`, seguido de un punto. En una experiencia de laboratorio posterior, aprenderás más sobre objetos y practicarás cómo crearlos e invocar sus métodos.
|
312
|
315
|
|
313
|
|
- La función `circle` implementada en el programa es muy restrictiva ya que siempre calcula los valores para las coordenadas $$x$$ y $$y$$ del mismo círculo: el círculo con centro en el origen y radio 5.
|
|
316
|
+ La función `circle` implementada en el programa es muy restrictiva ya que siempre calcula los valores para las coordenadas $$x$$ y $$y$$ del mismo círculo: el círculo con centro en el origen y radio 5.
|
314
|
317
|
|
315
|
318
|
2. Ahora crearás una función sobrecargada `circle` que reciba como argumentos el valor del ángulo $$t$$, la referencia a las variables $$x$$ y $$y$$, y el valor para el radio del círculo. Invoca desde `main()` la función sobrecargada `circle` que acabas de implementar para calcular los valores de las coordenadas $$x$$ y $$y$$ del círculo con radio 15 y dibujar su gráfica. Gráfica el círculo dentro del objeto `wCircle`. Para esto, debes invocar desde `main()` los métodos `AddPointToGraph(x,y)`, `Plot` y `show`. Recuerda que éstos deben ser precedidos por `wCircle`, por ejemplo, `wCircle.show()`.
|
316
|
319
|
|