Mòdul 4
La calculadora Wiris com a recurs didàctic
Enrera Pràctica
1
2
6
4
5
3
 
 
   
Exercicis
Exercicis
Annex: La Wiris al Web123
 
   

Esteu passant l'equador del curs. Heu anat veient molts exemples sobre gràfics i les autores i l'autor del curs hem optat (ja ho haureu notat!) per intentar donar una visió global de la Wiris amb pinzellades de les múltiples possibilitats d'aquest nou recurs, molt especialment en l'aspecte gràfic.

Havíem pensat que podria seria útil tenir una recopilació i sistematització de totes les comandes sobre gràfics on s'expliqui la sintaxi, què poden fer i què no, etc., però com que, per una banda, aquesta sistematització la podeu trobar a l'apartat de gràfics de la guia de la Wiris i a l'índex alfabètic i com que, per altra banda, ben segur que, fins en aquest moment, hi haurà hagut moltes intervencions al fòrum del curs, amb preguntes i respostes (... i amb descobriments, ben segur!), doncs aquestes dues idees ens han portat a plantejar aquesta pàgina com si fossin preguntes amb resposta.

Moltes d'aquestes són les preguntes que ens hem fet mentre escrivíem el curs. Trobareu les qüestions , amb les respostes que els hem donat, acompanyades d'exemples en pantalles actives i d'altres reflexions complementàries ...

...i esperem que per a l'any que ve les vostres intervencions ajudaran a completar els continguts d'aquesta pràctica.

   
La sintaxi de les comandes gràfiques
   
 

Recordarem les comandes amb les convencions següents:

  • Un argument indicat amb [...] es pot ometre.
  • {LL} representa una llista d'objectes que es volen dibuixar (geomètrics o capses de text); si només és un objecte, es poden ometre les claus {...} que defineixen la llista.
  • T representa un objecte de text que es vol escriure.
  • {Opc} representa una llista d'opcions per modificar els atributs de dibuix, d'escriptura o les característiques del tauler.
  • P representa un punt.
  • r,s representen nombres reals.
 

Les comandes d'acció fonamentals són:

dibuixa ( {LL} [, {Opc}] )
representa ( {LL} [, {Opc}] )
escriu ( T, P, [, {Opc}])

 

Per establir característiques del tauler gràfic:

tauler ( [ P, r,s] [, {Opc}] )

   
Preguntes sobre els elements que podem dibuixar o representar
   

1.-

Amb una sola comanda de dibuix o escriptura es poden dibuixar o escriure diversos elements alhora?
Pel que fa a les comandes de dibuix, sí. S'han d'utilitzar llistes d'elements que poden estar definides prèviament. Algun dels elements d'aquesta llista pot ser una capsa de text que permet fer objectes de text sofisticats. Ara bé, la comanda per escriure només admet com a primer argument un objecte únic, però es poden concatenar diversos textos o nombres amb el símbol |.

És interessant conèixer aquesta possibilitat de construir una llista d'objectes abans d'ordenar una comanda de dibuix i que els objectes de la llista poden ser ben diversos (punts, polígons, capses_de_text, etc.). Si es fa així això permet dibuixar uns objectes o uns altres segons si es compleix una condició o no. Es tracta de construir l'esmentada llista amb el signe := i amb comandes de programació.

   
2.- Com és que si dibuixo un triangle no puc moure'l?
Segurament és que només has fet dibuixar el triangle; perquè puguis interactuar, també has de dibuixar els vèrtexs, perquè només es poden moure punts.

És interessant tenir en compte que si es construeix una llista d'objectes i després es fa dibuixar aquesta llista, llavors la comanda tracta aquesta llista com a objecte únic. Si ho heu fet així, encara que alguns dels objectes de la llista siguin punts, no els podreu moure.
   

3.-

Com és que si dibuixo un triangle ple i el baricentre no veig el baricentre?
Això pot ser que tingui relació amb l'ordre amb què dibuixes els objectes. Prova de dibuixar primer el triangle i després el baricentre.
   

4.-

Es poden entrar valors des del tauler gràfic?
Estrictament, no. La interactivitat sempre s'aconsegueix movent un punt. Però es pot definir un punt mòbil i fer servir les coordenades d'aquest punt com a valors d'entrada i, en la versió actual, disposem de la comanda desplaçador que hem estudiat en la pràctica 4. Podeu consultar un altre exemple.
   

5.-

Si es vol fer servir la comanda punt_més_proper, és necessari dibuixar també el punt auxiliar?
No és necessari ni, en general, gaire recomanable. De fet, si no es dibuixa, el punt mòbil auxiliar queda amagat al mateix lloc que el punt_més_proper.
   

6.-

Per què em funciona bé la comanda punt_més_proper amb la corba representativa de y = x2 i no amb y = x3? És que no es pot moure un punt per la gràfica d'una funció?
És que la comanda punt_més_proper restringeix el moviment d'un punt per una recta, un segment de recta o una cònica.

Ara bé, com heu vist en diversos exemples, podeu definir un punt que es mogui per l'eix d'abscisses i la imatge d'aquest punt es mourà per la gràfica de la funció.

   

7.-

Per què si faig representa amb les funcions sin(x) i sin(2x) em surten dos gràfics gairebé idèntics i en canvi amb dibuixa això no passa?
Perquè la comanda representa fa una optimització del tauler gràfic i marca les graduacions dels eixos de la manera que li sembla més convenient. En canvi, amb dibuixa podem controlar nosaltres les garduacions que, per defecte, són iguals en tots dos eixos.
   

8.-

Per què si faig representa amb la funció y = ex · x no se'm destaca cap element especial?
És que aquesta comanda no s'aplica a tots els objectes geomètrics ni a totes les funcions. Fixeu-vos que en aquest cas surt un missatge que diu: "Representació d'una funció usant avaluació en punts arbitraris", cosa que equival a dir que en lloc de fer l'acció de la comanda representa s'ha fet exactament el mateix que amb dibuixa.
   

9.-

Defineixo una corba en funció d'un punt mòbil que em dóna paràmetre i li aplico representa i la corba no se m'actualitza. Què faig malament?
La complexitat de la comanda representa i l'estructuració interna del programa fan que això sigui sempre així. No és que facis res malament, és que representa no permet l'actualització interactiva
.

Podeu observar com a cas més senzill d'aquest fet de no-interactivitat de la comanda representa que si l'apliqueu a un punt, aquest punt no es pot moure.

   
Preguntes i respostes sobre atributs del dibuix
   

1.-

Crec que dono correctament l'ordre per dibuixar una circumferència amb gruix_línia=3 i no me'n fa cas. Per què pot ser?
Si la Wiris dibuixa la circumferència, però el gruix de la línia no és el que li has indicat, és gairebé segur que no tens la versió de Java adequada. Però si el que passa és que et dóna un missatge d'error, és que hi tens algun error sintàctic. No deu ser que només has posat aquesta opció i has escrit gruix_línia=3 sense claus?

   

2.-

Crec que dono correctament l'ordre per dibuixar una circumferència de color="vermell" i no me'n fa cas i la dibuixa negra. Què faig malament?
La sintaxi correcta és color=vermell, sense cometes. Això és així perquè, si bé els colors s'haurien de donar en format RGB, per facilitar la feina, la Wiris ja té definits uns quants valors de colors. Així, per exemple, vermell={255,0,0} o bé cian={0,255,255}.

Això que s'acaba de comentar fa que no es pugui fer servir vermell ni cian, per exemple, per definir una variable identificadora en un problema. Com tampoc es pot fer servir RR, per exemple, que identifica el cos dels nombres reals ni cert o fals, que són els booleans bàsics. Tots aquests mots que ja estan predefinits s'escriuen sense cometes.

   

3.-

Puc fer servir una mateixa comanda dibuixa per obtenir, per exemple, una recta de color vermell i una altra de color blau?
No. L'atribut de color és comú per a tots els objectes que es dibuixen amb la mateixa comanda. Per fer el que comentaves a la qüestió, s'han d'escriure dues comandes dibuixa.

Semblantment succeeix amb el fet que no es pot fer que aparegui l'etiqueta d'alguns elements d'una comanda dibuixa i d'altres no, o bé que alguns punts d'una mateixa comanda tinguin una mida diferent dels altres. Si volem aconseguir-ho, hem d'ordenar diverses comandes.

   
3 bis.-

Tot i que en els materials del curs D112 s'explica que no es poden obtenir figures de diferents colors amb una mateixa comanda dibuixa, m'ha semblat veure alguns exemples a l'índex alfabètic on es constata que sí que és possible.
Efectivament! Possiblement aquest és un recurs nou de la comanda que està en fase experimental perquè no està documentat al manual del programa. Si apliquem una comanda dibuixa a una llista d'objectes, aleshores podem fer que les opcions de la comanda siguin una llista de llistes, que en aquest cas ha d'indicar les opcions separadament per a tots i cadscun dels objectes.

La pantalla activa anterior acaba amb una reflexió que, atenent a la resposta que hi donem les persones que hem redactat aquests materials, és la que ha fet que es mantinguessin en les nostres propostes d'activitats les comandes dibuixa "com si" el que es deia en la 3.- immediatament anterior fos encara del tot cert.

   

4.-

Ara una pregunta en certa manera inversa a l'anterior. Si he de fer diverses comandes de dibuix i en totes elles vull repetir una part de les opcions gràfiques, tinc alguna manera de simplificar la feina?
Sí, cal agrupar tots els atributs que es vulguin repetir en una llista, definir-la com a variable i afegir-la a la llista d'altres opcions.

   

5.-

Si vull que al costat d'un punt mòbil surti el rètol Punt de sortida, per exemple, com ho puc fer?
Podries anomenar el punt amb l'identificador Punt_de_sortida i posar mostrar_etiqueta=cert entre les opcions de dibuix, però això pot ser enfarfegador si has de fer servir diverses vegades el punt en la construcció del codi i d'altra banda sortiria escrit amb els subratllats enllaçant paraules, i no és estètic. La millor opció és dibuixar el punt com a únic objecte en una comanda de dibuix i escriure com a opcions etiqueta="Punt de sortida", mostrar_etiqueta=cert.

   

6.-

Com puc control·lar el lloc on s'escriu l'etiqueta d'un objecte?
Si es fa com una etiqueta no es pot control·lar. Si ho vols fer realment has de definir una capsa_de_text amb el text que vulguis que acompanyi l'objecte i llavors sí que tens moltes opcions que ajuden a col·locar el rètol on t'interessi.

   

7.-

Hi ha alguna manera d'interactuar sobre el color d'un objecte o sobre altres atributs de dibuix?
No. Encara que els atributs de dibuix es poden definir amb variables, passa com amb la comanda representa. Els atributs de dibuix s'adjudiquen la primera vegada que s'executa la comanda i no s'actualitzen, perquè són propis de la comanda i no de l'objecte que és el que en realitat s'actualitza.

   
   
Preguntes i respostes sobre la preparació del tauler gràfic
   

1.-

Com és que si vull que no em dibuixi la malla i poso mostrar_malla(fals) i després defineixo el tauler em crea dos taulers?
Has de definir primer el tauler i després afegir mostrar_malla(fals)o bé afegir al tauler aquesta opció {mostrar_malla=fals}

Totes les opcions del tauler tenen les dues maneres que es poden veure en aquesta pregunta per ser indicades, ja sigui passant directament la dada (és el cas de mostrar_malla(fals), o bé proporció(0.5) o bé altura_finestra(100))ja sigui definint-les en la llista d'opcions del tauler (cosa que en els exemples faríem com mostrar_malla=fals, proporció=0.5, altura_finestra=100); però si es vol fer servir l'opció directa, ha de ser alternativa a la definició del tauler o bé després de definir-lo.

   

2.-

És possible que en moure el ratolí pel tauler gràfic no es vegi el nom de les figures ni cap altra informació?
És possible. Has de posar entre les opcions de tauler (d'una de les dues maneres vistes en el comentari anterior) informació("cap")o {informació="cap"}

Per aclarir-ho, heu de saber que lopció per defecte és informació("nom")i per això està activada la icona corresponent. També podem posar informació("valor"), o bé informació("definició") i així activem una icona o una altra del tauler gràfic.

   

3.-

És possible que, en lloc del nom del punt (o l'etiqueta) que podem fer aparèixer automàticament en un dibuix, el que fem que es mostri de manera fixa sigui el valor o la definició?
No és possible tal com s'ha formulat. Tanmateix, a part d'activar les icones corresponents del tauler gràfic, hi ha maneres d'aconseguir-ho fent servir capses_de text o la comanda escriu.
   

4.-

És possible que apareguin en el tauler o la finestra de treball resultats irracionals en aproximació decimal?
La comanda constants_reals(fals) presenta aquests valors en forma aproximada. Estudieu també l'efecte sobre el que es pregunta que estigui la malla a la vista (la Wiris ho interpreta sovint com un càlcul amb valors exactes) o que no ho estigui (sinònim, sovint, de valors aproximats).
   
   
Preguntes i respostes sobre escriu/capsa_de_text
   

1.-

Per què la comanda escriu("text") no condueix a cap acció?
Alerta amb la sintaxi! Cal afegir sempre un punt: escriu("text",punt(a,b)). Els altres atributs són opcionals, però el punt s'ha de posar sempre.

   

2.-

Són equivalents les comandes escriu i capsa_de_text?
La comanda escriu és una manera ràpida de dibuixar un objecte de tipus capsa_de_text. És a dir, capsa_de_text (que en realitat és una funció que defineix un objecte) és el fonament sintàctic de la comanda escriu. Es pot dir que escriu("text", punt, opcions) és equivalent a definir amb tot detall un objecte de tipus capsa_de_text i dibuixar-lo; en el cas anterior s'hauria d'actuar així: T=capsa_de text("text", punt, opcions);
dibuixa(T, altres opcions)
.

Ara bé, el treball amb capses de text dóna moltes més possibilitats de definir textos i rètols sofisticats amb l'ajut de amb..en; això no es pot fer amb la comanda d'escriptura simple, que obliga a un text únic.

   

3.-

Com puc controlar la posició d'un text respecte d'un punt mòbil?
Hi ha unes opcions d'escriptura que podeu consultar al manual de la Wiris i que permeten modificar la posició relativa del text i el punt de referència, però sempre queda el recurs de controlar-ho a mà, sumant o restant al punt un vector i així definim exactament el punt on volem que comenci el text.

   

4.-

He provat de fer un programa perquè si es compleix una condició s'escrigui una cosa i si no es compleix se n'escrigui una altra i no em funciona. Com puc fer que una resposta de la Wiris al tauler sigui diferent segons si es verifiquen o no unes condicions?
Definint prèviament una variable que tingui valors diferents segons les condicions.

És interessant, per acabar, recordar aquesta característica del llenguatge de programació i de la manera de treballar de la Wiris. A dintre de les sentències condicionals o de repetició no hi poden anar comandes per fer una acció visible, únicament les que serveixen per construir o modificar els objectes. La mostra de resultats en el tauler gràfic és única, per això s'han de definir abans tots les objectes.

   
 
Amunt