En aquest capítol, tractem sobre un conjunt de recursos que fan que les possibilitats de wiris s’incrementin notablement.
Recomanem a una bona part d'usuaris que els estudiïn i així, tal vegada, podran servir-los per a iniciar-se o iniciar als seus alumnes
en el món de la programació. Aquest capítol pressuposa un coneixement previ de programació. Així, el llenguatge que ara usem pot resultar una mica més tècnic que el dels anteriors.
Els apartats del capítol són els següents:
La informació sobre booleans i operadors lògics entre booleans, que tenen un paper fonamental en la programació, es troba més endavant.
mentre...:
Icona
, sentència
mentre
B
fer
A
fi
Repeteix les instruccions de
A
mentre es compleix la condició
B
.
|
per...:
Icona
, sentència
per
R
fer
A
fi
Repeteix les instruccions de
A
seguint el recorregut de
R
.
|
Completem la descripció d'estructures de dades del capítol
Objectes matemàtics.
recorreguts: Són objectes de la forma a..b o a..b..d on a, b i d són
nombres reals ( a..b equival a a..b..1). Si d és diferent de 0 el recorregut
a..b..d representa la llista formada pels elements de la progressió aritmètica a, a+d, a+2d, ... mentre no
sobrepassem b. Si d és zero el recorregut representa la llista buida. Per exemple 1..6 representa
{1,2,3,4,5,6}, 1..6..2 representa {1,3,5} i 6..1..-3 representa {6,3}.
La funció llista aplicada a un recorregut torna la llista que representa.
|
booleans: Són les constants lògiques cert o fals que corresponen als valors cert i fals, respectivamente. Principalment, els obtenim aplicant l'operador ? a equacions i inequacions.
Els operadors lògics, bàsics a l'hora de definir condicions en les sentències de control, són:
Operador lògic |
Símbol |
conjunció - i |
|
disjunció - o |
|
negació - no |
no
|
Veiem uns exemples del seu comportament:
|
dominis: Els objectes matemàtics de wiris es poden classificar en conjunts matemàtics. A aquests conjunts els anomenem dominis. Alguns exemples de dominis són Enter, Racional, Irracional, Real i Polinomi. Amb la comanda és?, poden saber si un objecte pertany a un domini.
A l'hora de treballar amb dominis, wiris disposa dels operadors (equivalents als lògics) &
,
| ,
no, que actuen com ho fan els operadors intersecció, unió i complementari amb els conjunts. Així doncs, disposem de la següent relació entre operadors, que ens permet treballar de manera similar en diferents estructures matemàtiques.
Operador lògic |
Operador de conjunts |
Símbol |
conjunció - i :
|
intersecció:
|
& |
disjunció - o :
|
unió :
|
| |
negació - no |
complementari |
no
|
Finalment, cal esmentar que la funció implica? permet conèixer si un domini està contingut en un altre o no, i que
obtenir_domini ens proporciona el domini al qual pertany un objecte.
És especialment interessant utilitzar els dominis en les definicions de funcions. Això permet tant definir funcions a trossos (segons el domini) com també restringir els valors en els quals una funció està definida.
|
regles i substitucions: Des del punt de vista sintàctic, una regla és una llista d'objectes del tipus x=>y o x:=>y.
Anomenem variable o patró a x depenent de si és una variable o no, respectivament; anomenem imatge a yi a x=>y i anomenem parell a x:=>y. Una substitució és una regla definida exclusivament per a variables. Si triem => usem el valor de y per a definir la regla i, en canvi, a l'escollir :=>, considerem y com a variable a l'hora de definir la regla.
Els símbols => i :=> es poden crear amb les icones
i , respectivament.
En aplicar una regla a una expressió, totes les ocurrències de cada patró (o variable) en aquesta expressió són substituïdes per
la imatge de seu el patró (o variable). Els termes que no encaixen amb el patró (o variable) no es modifiquen. Més informació a comanda Regla o Substitució
.
|
divisors: Des del punt de vista sintàctic, un divisor és un vector d'objectes del tipus x->y. Diem que x és un índex, y el seu valor associat i x->y un parell del divisor. Per recuperar el valor associat a un índex s'aplica l'objecte al divisor; si no té índex associat el resultat d'aplicar-lo és 0. El símbol -> es pot crear amb la icona .
Els divisors són especialment rellevants en diversos contextos. Per exemple, l'estructura que retorna la funció factoritza és
un Divisor que té per índexs els divisors primers de l'objecte factoritzat (com ara un nombre enter o un polinomi) i per
valors els exponents dels divisors primers esmentats.
Un altre aspecte important dels divisors és que es poden sumar, i que aquesta suma està definida de manera que els valors d'un
mateix índex queden sumats. Per exemple, la factorització d'un producte és la suma dels divisors donats per la factorització dels
factors.
Més informació a Divisor.
|
relacions: Des del punt de vista sintàctic, la relació és una llista d'objectes del tipus x->y. Diem que x és un índex, y el seu valor associat i x->y un parell de la relació. L'aspecte més important de les relacions és que ens permet recuperar el valor (o seqüència de valors) associat a un índex; això es fa aplicant l'objecte a la relació. Si un objecte no té índex associat en una relació, el resultat d'aplicar-lo a la relació és nul. El símbol -> es pot crear amb la icona .
Més informació a Relació.
|
|