![]() |
|
||||||||||||||||
![]() |
||||||||||||||||
![]() |
Pràctica |
![]() |
|
|
Exercicis
|
|||||||||||
|
Gràfics amb recursos avançats de la Wiris |
En la pràctica En el mòdul 2 vam presentar les llistes com un element de treball avançat amb la Wiris que, juntament amb l'ús de amb..en..on.. per generar-les, poden substituir moltes vegades procediments que a primera vista sembla que s'haurien de fer amb la programació. Ara veurem que també va molt bé tenir en compte les llistes a l'hora de fer gràfics sofisticats.
|
|
Després d'uns exemples lúdics, analitzarem amb tot detall una activitat que ja coneixeu i completarem la pràctica amb una reflexió sobre l'ús de la comanda punt_més_proper per construir gràfics tipificats, per exemple, un quadrilàter que permeti moure (alguns) vèrtexs i sempre es mantingui com un rectangle. La feina ja la continuareu en els exercicis! | |
![]() |
Ús de amb..en.. per a la generació de llistes d'objectes dibuixables |
En un dels exemples de la primera pràctica del mòdul 2 vau poder fer un gràfic que recorda el logotip del Campionat del Món de Natació - BCN 2003. Amb l'ús d'una única llista les línies de codi poden ser aquestes: Per explicar quin és el funcionament, heu de saber quin és el punt (r·cos(a), r·sin(a)) i llavors us podeu adonar que, perquè s'aconsegueixi l'efecte espiral:
Vegeu que amb les consideracions anteriors construïm una llista de circumferències que després dibuixem totes de cop. Podeu escriure el codi que us hem mostrat i fer-hi variacions. Recordeu, també, que, si volguéssiu dibuixar les circumferències de colors diferents, no seria possible fer-ho amb una sola ordre. Ara bé, és molt interessant constatar que amb la Wiris la construcció d'una llista pot substituir eficaçment sentències iteratives de la programació. Amb caràcter d'ampliació, expliquem seguidament que també ho podríem fer "programant". S'ha de tenir en compte que el mètode de treball de la Wiris (construcció del gràfic que es dibuixa al final de le slínies de codi) no permet fer-ho tant directament com a la primera proposta:
Si escriviu les línies de codi anteriors i les executeu veureu que només es dibuixa una circumferència. Per què? La Wiris emmagatzema l'ordre que ha de dibuixar una circumferència de centre c i radi r. Això sí, rep l'ordre 10 vegades, però la circumferència és sempre cfr(c,r). Quan acaba de llegir tot el codi fa el dibuix: el de la cfr(c,r) amb els valors actuals (els "del final del codi", els que corresponen al valor i=10) La primera manera de solventar aquest problema és incloure una opció avalua=cert en la comanda dibuixa. Això indica que volem que es dibuixi efectivament, amb els valors de cada moment, el que s'indica en la comanda. Tanmateix, en la nova versió de la Wiris, l'opció avalua=cert en les sentències repetitives de programació ja es dóna per sobreentesa si en la comanda dibuixa hi intervé la variable del per: En el segon exemple que us proposem veureu una manera de dibuixar un engraellat 6 x 6 amb algunes caselles acolorides, com aquest: L'exemple servirà per recordar l'ús de condicionals en la generació de llistes i per explicar alguns aspectes de la comanda tauler. Si cliqueu a la icona de la fletxa, activareu una finestra de la Wiris on veureu una manera d'aconseguir l'objectiu indicat, que comença per situar els eixos i la graduació de les unitats com podeu veure en el gràfic següent. |
|
![]() |
![]() |
Us proposem que, com una de les múltiples possibilitats per als exercicis d'aquest mòdul, feu les variacions oportunes a l'exemple que acabem de presentar per obtenir un tauler d'escacs com el que mostra la imatge il·lustrativa de la capçalera de la pràctica. |
|
Estudi detallat d'una aplicació didàctica
generada amb la Wiris: visualització de les arrels n-simes d'un nombre complex de mòdul 1 |
|
En acabar la pràctica 6 del mòdul 2, que tracta el tema dels nombres complexos, heu pogut veure una aplicació generada amb la Wiris que s'ha presentat justament com a aplicació didàctica. Podeu revisar-la tal com l'hem presentat allà si cliqueu a la icona que indica el començament de l'activitat o bé a la mateixa imatge. Experimenteu!
|
|
|
![]() |
![]() |
Ara ha arribat el moment d'estudiar amb detall el codi d'aquest exemple. Veurem la creació de llistes amb l'ajut de amb..en per a la generació d'objectes sofisticats que després dibuixarem; a més, incorporarem dos desplaçadors per a triar el nombre complex i l'índex de l'arrel. Amb la icona de l'esquerra podeu obrir una finestra activa amb el codi
molt detallat que també comentem tot seguit . I si us interessa
més baixar-vos-el per treballar-hi amb la Wiris-Desktop aquí
ho podeu fer |
Segur que amb aquestes indicacions i una bona dosi de paciència per a l'anàlisi ja heu tret l'entrellat del codi que analitzàvem. Ara no us en demanarem cap exercici relacionat... però ben segur que alguna de les coses que heu estudiat us donarà idees per a les vostres aplicacions que hauran de formar part del treball de fi de curs. |
|
![]() |
Gràfics subjectes a condicions |
De vegades, en les aplicacions didàctiques és interessant que una figura compleixi sempre unes determinades condicions. En la pràctica 6 del mòdul 1 ja vam veure la construcció interactiva d'un paral·lelogram. Es podien moure tres dels vèrtexs i la figura sempre es manetnia com a paral·lelogram. El quart no era lliure, no el podíem controlar, sinó que era el que ens ajudava a aconseguir que el quadrilàter fos un paral·lelogram. Us proposo, tot seguit, que analitzeu l'exercici de dibuixar un quadrilàter
que sempre sigui un rectangle... però naturalment no tots els vèrtexs
es podran moure lliurement. Vegeu-ne primer de tot una animació. |
|
I ja podeu ordenar de fer el dibuix, posar algun rètol explicatiu... i provar si funciona. |
|
I si no ha sortit bé, podeu fer clic a la fletxa de l'esquerra i veureu una manera de fer el codi d'aquesta activitat seguint les instruccions anteriors que sí que funciona. | |
Consulteu-lo i us servirà, perquè a la llista d'exercicis d'aquest mòdul, trobareu com a proposta opcional la construcció d'un quadrilàter que sempre sigui un rombe. | |
![]() |
|