SlideShare uma empresa Scribd logo
1 de 5
Estudis d’Informàtica, Multimèdia i Telecomunicacions
                                 Grau de multimèdia

Programació web

PAQUITA RIBAS TUR
   Per a dubtes i aclariments sobre l’enunciat, adreceu-vos al consultor responsable de la
    vostra aula.
   Cal lliurar la solució en un fitxer doc i la pràctica en arxius html, js i css si és el cas.
    Podeu comprimir els arxius en un .rar o .zip. Adjunteu el fitxer a un missatge adreçat a
    la bústia Lliurament i registre d’AC.
   El nom del fitxer ha de ser CognomsNom_PW_PAC3 amb l’extensió .doc, .dot o .pdf.
   Consulteu la data de lliurament al calendari.



PAC3
Teòrica

1.- . Com contribueixen les funcions locals a la POO?

Els objectes estan formats per propietats i mètodes.

En JavaScript les funcions globals equivalen a objectes, les variables locals a propietats i per tant
les funcions locals equivalen als mètodes d’aquests objectes.


2.- Programar una actualització de l'objecte String amb una funció “esBoolea()”que retorni si el
contingut de la cadena String es pot considerar un valor booleà (es a dir, si conté el text “Si” “No”
“Yes””-1” “0” o els que considereu convenients) Quina propietat de l'objecte String s'ha utilitzat per
poder realitzar aquest exercici? A quins altres objectes existeix?

    -   Introduirem una cadena mitjançant prompt
    -   Comprovarem si la cadena està formada NOMÉS per les paraules “SI”, “NO”, “YES”,
        “VERTADER” “FALS” i les seves combinacions de majúscules i minúscules i els números
        “-1” i “0”.
    -   Si troba coincidències apareixerà una alerta de tipus “SI és un valor booleà”
    -   Si no troba coincidències apareixerà una alerta de tipus “no és un valor booleà”.

        REVISAR EXERCICI ADJUNT: Paquita_Ribas_pregunta2_teorica_PAC3
3.- Utilitza (i explica) una expressió regular per detectar si una entrada de teclat té el format d'un
mail i una altra que validi si l'entrada té un format de nom propi.

Correu electrònic:

      /^[a-zA-Z][a-zA-Z0-9._]*[@][a-zA-Z][a-zA-Z0-9.-]*[.][a-zA-Z]{2-6}$/

/^[a-zA-Z]             L’entrada ha de començar per qualsevol lletra minúscula o majúscula.
[a-zA-Z0-9._]*         Seguit de zero o més lletres minúscules, zero o més lletres majúscules,
                       zero o més números, zero o més punts o zero o més guions baixos.
[@]                    Seguint d’una “arroba”
[a-zA-Z]               Seguit per una lletra majúscula o minúscula
[a-zA-Z0-9.-]*        Seguit de zero o més lletres minúscules, zero o més lletres majúscules,
                       zero o més números, zero o més punts o zero o més barres inclinades o
                       zero o més guions baixos.
[.]                    Seguit d’un punt
[a-zA-Z]{2-6}$/        Finalitzant amb de dos a sis lletres minúscules y/o majúscules.


Nom propi

      /^[A-ZÀÁÈÉÍÒÓÚ]{1}[a-zàáèéíòóú]+(s[A-ZÀÁÈÉÍÒÓÚ]{1}[a-zàáèéíòóú]+)+$/

/^[A-ZÀÁÈÉÍÒÓÚ]{1}          L’entrada ha de començar obligatòriament amb una lletra majúscula,
                            acceptant també lletres accentuades.
[a-zàáèéíòóú]+              Seguit d’una o més lletres minúscules, acceptant també lletres
                            accentuades.

Existia la problemàtica de trobar-nos amb un nom propi compost o un nom anglès (que només té
un llinatge). Per la qual cosa segueix amb el següent:

                         (s[A-ZÀÁÈÉÍÒÓÚ]{1}[a-zàáèéíòóú]+)+$/

Significa que continuarà amb un o més d’un grup de lletres que comenci amb una lletra majúscula
i continuï amb una o més lletres minúscules, totes les lletres accepten accentuació. Davant del
grup de lletres ha d’haver un espai i és obligatori acabar amb un grup com aquest.

Aquesta expressió regular accepta un Nom+ 1 llinatge com a mínim. Si volguéssim que acceptés
només el nom, hauríem d’utilitzar el parèntesis tal i com ho hem fet en la línia de dalt, però amb tot
el codi sencer.

         REVISAR EXERCICI ADJUNT: Paquita_Ribas_pregunta3B_teorica_PAC3


4.- Quins són els models d'esdeveniments existents i posa un exemple d'utilització del mètode
stopPropagation de l'objecte Event.

Existeixen tres models d’esdeveniments:
   - Dos que ha evolucionat paral·lelament a l’evolució dels models d’objectes dels navegadors
        principals. Eren molt bàsic fins que va aparèixer la versió 4.x dels navegadors.
            o Model bàsic de control d’esdeveniments
                     En un primer moment s’implementaven els controladors d’esdeveniments en
                       les etiquetes HTML, però només si l’etiqueta o l’objecte admetien
                       l’esdeveniment.
   Amb les versions Netscape 3 i Internet Explorer 4 es va poder implementar
                       els controladors d’esdeveniments amb JavaScript

            o Model dinàmic de control d’esdeveniments
                    Amb Netscape 4.x els esdeveniments es propagaven mitjançant la jerarquia
                       del document fins arribar a l’objecte en què s’havia de generar
                       l’esdeveniment. Així s’evitava la repetició de controladors
                    Amb Internet Explorer 4.x, els esdeveniments també es propagaven
                       mitjançant una jerarquia, però en sentit contrari, és a dir, des de l’objecte en
                       que s’han creat fins a l’objecte Window.
   -   L’altre és el model d’esdeveniments del DOM estàndard del W3C. Aquest model
       adquireix els avantatges dels models anteriors (Netscape 4.x i Internet Explorer 4.x). És un
       model d’esdeveniments molt complet.

stopPropagation evita la propagació d’un event.
Exemple:
Tenim un camp on s’ha d’introduir un número de telèfon. Només volem que es puguin introduir
dades numèriques i que rebutgi un altre tipus de dades.
Amb stopPropagation podem aturar el comportament que té un event per defecte.

       REVISAR EXERCICI ADJUNT: Paquita_Ribas_pregunta4_teorica_PAC3

Pràctica

L'Hortènsia, que sempre ha estat preocupada pel canvi climàtic i l'alimentació sana, darrerament
s'ha aficionat a l'agricultura i ha decidit crear un hort urbà que, a part de per menjar sa, també
utilitzarà com escola i centre de divulgació de l'alimentació sana. Ja veieu que l'Hortènsia té el
model de negoci força clar, fins i tot té el nom de l'associació que pretén crear “Hort i cultura”, el
problema és que no en sap gens d'informàtica i vol començar amb una web útil als possibles
interessats i interessades.

Per començar “Horticultura” començarà oferint una llista de les verdures i llegums més comuns a
la zona amb algunes dades bàsiques associades

1.- Dissenyar la classe “planta” amb les següents dades: nom, grup, varietat, mesos de plantada,
mesos de recollida, paràsits). Afegiu un mètode que carregui a les propietats de la classe les
dades d'una determinada posició dels arrays de dades d'exemple

       Els grups principals són: tubercles, umbel·líferes, liliàcees, lleguminoses, hortalisses de
       fulla (asteràcees o crucíferes), i plantes de fruit carnós (solanàcees)
       Els mesos sempre són 12, poden ser plantables i/o recollibles, i s'indicarà amb un booleà
       Per fer aquest exercici definiu paràsits com a un booleà (true/false)

       Nota: Disposeu de les dades necessàries a l'arxiu dades.js

Segons el document adjunts dades.js, a la posició 0 de Nom, li correspon la posició 0 de Grup,
Varietat, Mesos_plantada, Mesos_recollida i Parasits; a la posició 1 de Nom, li correspon la
posició 1 de Grup, Varietat, Mesos_plantada, Mesos_recollida i Parasits; i així successivament.
Segons això sabem, per exemple, que el Tomàquet, és del Grup de les solanàcies, de la varietat
raf, es planta de maig a juliol, es recull de juny a setembre i és sensible a tots els paràsits que es
troben en la posició 0 de l’array de Parasits.

Com que tant els mesos de plantada com els mesos de recollida s’han d’indicar amb un booleà, al
igual que els paràsits, necessitarem tenir mesos i paràsits per separat.

Primerament crearem un array amb tots els noms del mesos de l’any separats per comes.
L’anomenarem Noms_Mesos.
Després crearem un array amb tots els noms del paràsits existents separats per comes.
L’anomenarem Noms_Parasits.

Crearem la classe “planta” i agafarem el nom, grup i varietat des de la posició “n” de cada array.

Obtindrem també la cadena paràsits que es troben en la posició “n”. Però abans de fer res s’han
de convertir tots els caràcters en minúscules, ja que, per exemple, el paràsit Pugó apareix en
majúscules i minúscules i podria donar error.
string_parasits és l’array de paràsits de cada planta.
Per a poder comparar els paràsits de cada planta amb la nostra cadena de paràsits
Noms_Parasits hem de separar cada element. Ho farem amb split. Aquest paràsits separats de
cada planta els anomenarem paràsits_individual.
Quan hem separar els paràsits per les comes, ens ha quedat un espai davant de cada paràsit.
Aquest s’ha d’eliminar amb trim, perquè o si no donaria error. El mètode trim elimina els espais en
blanc del principi i final d’una cadena.
Després compararem l’array Noms_parasits de l’arxiu dades.js amb paràsits_individuals per
trobar-ne coincidències. Si és així ens retornarà true, i si no false.

Seguirem les mateixes pautes per als mesos de plantada i de recollida.
string_mesos és l’array de mesos de cada planta.
En aquest cas hem de separar els mesos que vagin amb guionet. Ho farem amb Split(“-“) i
anomenarem array_mesos a aquest nou array.
Hi ha plantes que tenen dos mesos i en hi ha d’altres que nomes en tenen un. Per això hem de fer
que en les plantes que tinguin només un mes, més d’inici ha de ser igual a mes del final.
Si una planta té els mesos de plantada entre juny i setembre, ha de donar true juny, juliol i
setembre. Els mesos anteriors i posteriors serien false.
mesos_plantada és l’array nou que tindrà true o false.

Repetim el mateix procediment amb els mesos de recollida.

       REVISAR EXERCICI ADJUNT: Paquita_Ribas_pregunta1_practica_PAC3


2.- Crear un array d'instàncies de la classe “planta” amb les dades emplenades (pe de nom
ll_plantes) i dissenyar una pàgina que permeti visualitzar l'array de plantes. Com a mínim hem de
poder navegar per les dades de les diferents plantes amb els botons: primera, anterior, següent i
última

Primerament, crearem una instància per a cada planta dintre d’un array de denominarem plantes.
Aquest, per a cada nom de planta, carregarà les seves dades.
Desprès crearem la funció mostrar_planta. Aquesta fa el següent:
    - Obre una nova finestra on mostra una taula amb totes les dades de les plantes
    - Mostra el nom, grup i varietat de la planta en la seva corresponent cel·la
    - En les cel·les de mesos de plantada i mesos de recollida es mostrarà el llistat dels dotze
       mesos amb Si o No segons correspongui a la planta
    - En la cel·la de paràsits es mostrarà el llistat de tots els paràsits amb Si o No segons
       correspongui a la planta
Finalment, per a mostrar la fitxa de cada planta hem creat un enllaç per a cada posició dels arrays.

       REVISAR EXERCICI ADJUNT: Paquita_Ribas_pregunta2_practica_PAC3


3.- Reconeguts experts amb els que ha parlat l'Hortènsia li han fet notar que els grups classificats
en: tubercles, lleguminoses, hortalisses de fulla, i plantes de fruit carnós tenen una importància
que no ha sabut destacar. Desprès de reflexionar sobre el tema ha decidit ampliar la informació
sobre aquests grups creant una classe per cadascun amb la següent informació:
   tubercles, umbel·líferes, liliàcees:
            Propietats:
                    Grup
                    Tipus d'arrel: bulbs. Arrels engruixides, tubercles
      lleguminoses:
            Propietats:
                    Grup
                    Tipus de creixement: ràpid o lent
                    Necessitat de nutrients: molts o pocs
      hortalisses de fulla:
            Propietat:
                    Grup
                    es consumeix la fulla
                    es consumeix la tija
                    es consumeix la flor
      fruit carnós:
            Propietat:
                    Grup
                    Suport: cap, vertical, malla

4.- Relacionar, aplicant l'herència, els grups (classes) amb les plantes (classe). Modificar el
formulari dissenyat al exercici2 de forma que es mostri la informació particular del grup al que
pertany la planta que es mostra.

       Nota: Per fer la feina menys repetitiva tan sols considereu els grups: lleguminoses,
       hortalisses de fulla i fruit carnós.

Mais conteúdo relacionado

Destaque

Destaque (19)

Fisica - Correccions PAC 1 - Multimedia (UOC) - Paquita Ribas
Fisica - Correccions PAC 1 - Multimedia (UOC) - Paquita RibasFisica - Correccions PAC 1 - Multimedia (UOC) - Paquita Ribas
Fisica - Correccions PAC 1 - Multimedia (UOC) - Paquita Ribas
 
Matemàtiques per a la Multimèdia II - Informe Pràctica 2 - Multimedia (UOC) -...
Matemàtiques per a la Multimèdia II - Informe Pràctica 2 - Multimedia (UOC) -...Matemàtiques per a la Multimèdia II - Informe Pràctica 2 - Multimedia (UOC) -...
Matemàtiques per a la Multimèdia II - Informe Pràctica 2 - Multimedia (UOC) -...
 
Processing_codi_practica_completa
Processing_codi_practica_completaProcessing_codi_practica_completa
Processing_codi_practica_completa
 
Xarxes Multimèdia - PAC 2 - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 2 - Grau Multimèdia - UOCXarxes Multimèdia - PAC 2 - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 2 - Grau Multimèdia - UOC
 
Tipografia · Resum llibre
Tipografia · Resum llibreTipografia · Resum llibre
Tipografia · Resum llibre
 
Processing_practica_explicacio_codi
Processing_practica_explicacio_codiProcessing_practica_explicacio_codi
Processing_practica_explicacio_codi
 
Processing_practica_manual_gps
Processing_practica_manual_gpsProcessing_practica_manual_gps
Processing_practica_manual_gps
 
Física - PAC 1 - Multimedia (UOC) - Paquita Ribas
Física - PAC 1 - Multimedia (UOC) - Paquita RibasFísica - PAC 1 - Multimedia (UOC) - Paquita Ribas
Física - PAC 1 - Multimedia (UOC) - Paquita Ribas
 
Xarxes Multimèdia, PAC 1- Multimedia (UOC) - Paquita Ribas
Xarxes Multimèdia, PAC 1- Multimedia (UOC) - Paquita RibasXarxes Multimèdia, PAC 1- Multimedia (UOC) - Paquita Ribas
Xarxes Multimèdia, PAC 1- Multimedia (UOC) - Paquita Ribas
 
Xarxes Multimèdia - PAC 1 solució - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 1 solució - Grau Multimèdia - UOCXarxes Multimèdia - PAC 1 solució - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 1 solució - Grau Multimèdia - UOC
 
Resol lucio exercicis-pac2_action_script
Resol lucio exercicis-pac2_action_scriptResol lucio exercicis-pac2_action_script
Resol lucio exercicis-pac2_action_script
 
Tipografia · Resum materials · Paquita Ribas
Tipografia · Resum materials · Paquita RibasTipografia · Resum materials · Paquita Ribas
Tipografia · Resum materials · Paquita Ribas
 
Matemàtiques per a la Multimèdia II - Pràctica 1 - Multimedia (UOC) - Paquita...
Matemàtiques per a la Multimèdia II - Pràctica 1 - Multimedia (UOC) - Paquita...Matemàtiques per a la Multimèdia II - Pràctica 1 - Multimedia (UOC) - Paquita...
Matemàtiques per a la Multimèdia II - Pràctica 1 - Multimedia (UOC) - Paquita...
 
Física - PAC 3 - Multimedia (UOC) - Paquita Ribas
Física - PAC 3 - Multimedia (UOC) - Paquita RibasFísica - PAC 3 - Multimedia (UOC) - Paquita Ribas
Física - PAC 3 - Multimedia (UOC) - Paquita Ribas
 
Xarxes Multimèdia - PAC 2 solució - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 2 solució - Grau Multimèdia - UOCXarxes Multimèdia - PAC 2 solució - Grau Multimèdia - UOC
Xarxes Multimèdia - PAC 2 solució - Grau Multimèdia - UOC
 
Matemàtiques per a la Multimèdia II - PAC 2 - Multimedia (UOC) - Paquita Ribas
Matemàtiques per a la Multimèdia II - PAC 2 - Multimedia (UOC) - Paquita RibasMatemàtiques per a la Multimèdia II - PAC 2 - Multimedia (UOC) - Paquita Ribas
Matemàtiques per a la Multimèdia II - PAC 2 - Multimedia (UOC) - Paquita Ribas
 
Matemàtiques per a la Multimèdia II - PAC 1 - Multimedia (UOC) - Paquita Ribas
Matemàtiques per a la Multimèdia II - PAC 1 - Multimedia (UOC) - Paquita RibasMatemàtiques per a la Multimèdia II - PAC 1 - Multimedia (UOC) - Paquita Ribas
Matemàtiques per a la Multimèdia II - PAC 1 - Multimedia (UOC) - Paquita Ribas
 
Taller de Color · Pac 1 · Paquita Ribas
Taller de Color · Pac 1 · Paquita RibasTaller de Color · Pac 1 · Paquita Ribas
Taller de Color · Pac 1 · Paquita Ribas
 
Física - PAC 4 - Multimedia (UOC) - Paquita Ribas
Física - PAC 4 - Multimedia (UOC) - Paquita RibasFísica - PAC 4 - Multimedia (UOC) - Paquita Ribas
Física - PAC 4 - Multimedia (UOC) - Paquita Ribas
 

Mais de Paquita Ribas

Mais de Paquita Ribas (20)

Licencias
LicenciasLicencias
Licencias
 
Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1
 
Fotografia Digital - Resum mòdul 3
Fotografia Digital - Resum mòdul 3Fotografia Digital - Resum mòdul 3
Fotografia Digital - Resum mòdul 3
 
Fotografia Digital - Resum mòdul 2
Fotografia Digital - Resum mòdul 2Fotografia Digital - Resum mòdul 2
Fotografia Digital - Resum mòdul 2
 
Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1
 
Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1Fotografia Digital - Resum mòdul 1
Fotografia Digital - Resum mòdul 1
 
Tractament i Publicació d'Àudio - Super-resum
Tractament i Publicació d'Àudio - Super-resumTractament i Publicació d'Àudio - Super-resum
Tractament i Publicació d'Àudio - Super-resum
 
Tractament i Publicació d'Àudio - Resum mòdul 6
Tractament i Publicació d'Àudio - Resum mòdul 6Tractament i Publicació d'Àudio - Resum mòdul 6
Tractament i Publicació d'Àudio - Resum mòdul 6
 
Tractament i Publicació d'Àudio - Resum mòdul 5
Tractament i Publicació d'Àudio - Resum mòdul 5Tractament i Publicació d'Àudio - Resum mòdul 5
Tractament i Publicació d'Àudio - Resum mòdul 5
 
Tractament i Publicció d'Àudio - Resum mòdul 4
Tractament i Publicció d'Àudio - Resum mòdul 4Tractament i Publicció d'Àudio - Resum mòdul 4
Tractament i Publicció d'Àudio - Resum mòdul 4
 
Tractament i Publicació d'Àudio - Resum mòdul 3
Tractament i Publicació d'Àudio - Resum mòdul 3Tractament i Publicació d'Àudio - Resum mòdul 3
Tractament i Publicació d'Àudio - Resum mòdul 3
 
Tractament i Publicació d'Àudio - Resum mòdul 2
Tractament i Publicació d'Àudio - Resum mòdul 2Tractament i Publicació d'Àudio - Resum mòdul 2
Tractament i Publicació d'Àudio - Resum mòdul 2
 
Tractament i publicació d'Àudio - Resum modul 1
Tractament i publicació d'Àudio -  Resum modul 1Tractament i publicació d'Àudio -  Resum modul 1
Tractament i publicació d'Àudio - Resum modul 1
 
Gestió de projectes Resumen mod 8
Gestió de projectes Resumen mod 8Gestió de projectes Resumen mod 8
Gestió de projectes Resumen mod 8
 
Gestió de projectes - Resum mod 7
Gestió de projectes - Resum mod 7Gestió de projectes - Resum mod 7
Gestió de projectes - Resum mod 7
 
Gestió de projectes - Resum mod 6
Gestió de projectes - Resum mod 6Gestió de projectes - Resum mod 6
Gestió de projectes - Resum mod 6
 
Gestió de projectes - Resum mod 5
Gestió de projectes - Resum mod 5Gestió de projectes - Resum mod 5
Gestió de projectes - Resum mod 5
 
Gestió de projectes - Resum mod 4
Gestió de projectes - Resum mod 4Gestió de projectes - Resum mod 4
Gestió de projectes - Resum mod 4
 
Gestió de projectes - Resum mod 3
Gestió de projectes - Resum mod 3Gestió de projectes - Resum mod 3
Gestió de projectes - Resum mod 3
 
Gestió de projectes - Resum mod 2
Gestió de projectes - Resum mod 2Gestió de projectes - Resum mod 2
Gestió de projectes - Resum mod 2
 

Programació Web - PAC 3 - Multimedia (UOC) - Paquita Ribas

  • 1. Estudis d’Informàtica, Multimèdia i Telecomunicacions Grau de multimèdia Programació web PAQUITA RIBAS TUR  Per a dubtes i aclariments sobre l’enunciat, adreceu-vos al consultor responsable de la vostra aula.  Cal lliurar la solució en un fitxer doc i la pràctica en arxius html, js i css si és el cas. Podeu comprimir els arxius en un .rar o .zip. Adjunteu el fitxer a un missatge adreçat a la bústia Lliurament i registre d’AC.  El nom del fitxer ha de ser CognomsNom_PW_PAC3 amb l’extensió .doc, .dot o .pdf.  Consulteu la data de lliurament al calendari. PAC3 Teòrica 1.- . Com contribueixen les funcions locals a la POO? Els objectes estan formats per propietats i mètodes. En JavaScript les funcions globals equivalen a objectes, les variables locals a propietats i per tant les funcions locals equivalen als mètodes d’aquests objectes. 2.- Programar una actualització de l'objecte String amb una funció “esBoolea()”que retorni si el contingut de la cadena String es pot considerar un valor booleà (es a dir, si conté el text “Si” “No” “Yes””-1” “0” o els que considereu convenients) Quina propietat de l'objecte String s'ha utilitzat per poder realitzar aquest exercici? A quins altres objectes existeix? - Introduirem una cadena mitjançant prompt - Comprovarem si la cadena està formada NOMÉS per les paraules “SI”, “NO”, “YES”, “VERTADER” “FALS” i les seves combinacions de majúscules i minúscules i els números “-1” i “0”. - Si troba coincidències apareixerà una alerta de tipus “SI és un valor booleà” - Si no troba coincidències apareixerà una alerta de tipus “no és un valor booleà”. REVISAR EXERCICI ADJUNT: Paquita_Ribas_pregunta2_teorica_PAC3
  • 2. 3.- Utilitza (i explica) una expressió regular per detectar si una entrada de teclat té el format d'un mail i una altra que validi si l'entrada té un format de nom propi. Correu electrònic: /^[a-zA-Z][a-zA-Z0-9._]*[@][a-zA-Z][a-zA-Z0-9.-]*[.][a-zA-Z]{2-6}$/ /^[a-zA-Z] L’entrada ha de començar per qualsevol lletra minúscula o majúscula. [a-zA-Z0-9._]* Seguit de zero o més lletres minúscules, zero o més lletres majúscules, zero o més números, zero o més punts o zero o més guions baixos. [@] Seguint d’una “arroba” [a-zA-Z] Seguit per una lletra majúscula o minúscula [a-zA-Z0-9.-]* Seguit de zero o més lletres minúscules, zero o més lletres majúscules, zero o més números, zero o més punts o zero o més barres inclinades o zero o més guions baixos. [.] Seguit d’un punt [a-zA-Z]{2-6}$/ Finalitzant amb de dos a sis lletres minúscules y/o majúscules. Nom propi /^[A-ZÀÁÈÉÍÒÓÚ]{1}[a-zàáèéíòóú]+(s[A-ZÀÁÈÉÍÒÓÚ]{1}[a-zàáèéíòóú]+)+$/ /^[A-ZÀÁÈÉÍÒÓÚ]{1} L’entrada ha de començar obligatòriament amb una lletra majúscula, acceptant també lletres accentuades. [a-zàáèéíòóú]+ Seguit d’una o més lletres minúscules, acceptant també lletres accentuades. Existia la problemàtica de trobar-nos amb un nom propi compost o un nom anglès (que només té un llinatge). Per la qual cosa segueix amb el següent: (s[A-ZÀÁÈÉÍÒÓÚ]{1}[a-zàáèéíòóú]+)+$/ Significa que continuarà amb un o més d’un grup de lletres que comenci amb una lletra majúscula i continuï amb una o més lletres minúscules, totes les lletres accepten accentuació. Davant del grup de lletres ha d’haver un espai i és obligatori acabar amb un grup com aquest. Aquesta expressió regular accepta un Nom+ 1 llinatge com a mínim. Si volguéssim que acceptés només el nom, hauríem d’utilitzar el parèntesis tal i com ho hem fet en la línia de dalt, però amb tot el codi sencer. REVISAR EXERCICI ADJUNT: Paquita_Ribas_pregunta3B_teorica_PAC3 4.- Quins són els models d'esdeveniments existents i posa un exemple d'utilització del mètode stopPropagation de l'objecte Event. Existeixen tres models d’esdeveniments: - Dos que ha evolucionat paral·lelament a l’evolució dels models d’objectes dels navegadors principals. Eren molt bàsic fins que va aparèixer la versió 4.x dels navegadors. o Model bàsic de control d’esdeveniments  En un primer moment s’implementaven els controladors d’esdeveniments en les etiquetes HTML, però només si l’etiqueta o l’objecte admetien l’esdeveniment.
  • 3. Amb les versions Netscape 3 i Internet Explorer 4 es va poder implementar els controladors d’esdeveniments amb JavaScript o Model dinàmic de control d’esdeveniments  Amb Netscape 4.x els esdeveniments es propagaven mitjançant la jerarquia del document fins arribar a l’objecte en què s’havia de generar l’esdeveniment. Així s’evitava la repetició de controladors  Amb Internet Explorer 4.x, els esdeveniments també es propagaven mitjançant una jerarquia, però en sentit contrari, és a dir, des de l’objecte en que s’han creat fins a l’objecte Window. - L’altre és el model d’esdeveniments del DOM estàndard del W3C. Aquest model adquireix els avantatges dels models anteriors (Netscape 4.x i Internet Explorer 4.x). És un model d’esdeveniments molt complet. stopPropagation evita la propagació d’un event. Exemple: Tenim un camp on s’ha d’introduir un número de telèfon. Només volem que es puguin introduir dades numèriques i que rebutgi un altre tipus de dades. Amb stopPropagation podem aturar el comportament que té un event per defecte. REVISAR EXERCICI ADJUNT: Paquita_Ribas_pregunta4_teorica_PAC3 Pràctica L'Hortènsia, que sempre ha estat preocupada pel canvi climàtic i l'alimentació sana, darrerament s'ha aficionat a l'agricultura i ha decidit crear un hort urbà que, a part de per menjar sa, també utilitzarà com escola i centre de divulgació de l'alimentació sana. Ja veieu que l'Hortènsia té el model de negoci força clar, fins i tot té el nom de l'associació que pretén crear “Hort i cultura”, el problema és que no en sap gens d'informàtica i vol començar amb una web útil als possibles interessats i interessades. Per començar “Horticultura” començarà oferint una llista de les verdures i llegums més comuns a la zona amb algunes dades bàsiques associades 1.- Dissenyar la classe “planta” amb les següents dades: nom, grup, varietat, mesos de plantada, mesos de recollida, paràsits). Afegiu un mètode que carregui a les propietats de la classe les dades d'una determinada posició dels arrays de dades d'exemple Els grups principals són: tubercles, umbel·líferes, liliàcees, lleguminoses, hortalisses de fulla (asteràcees o crucíferes), i plantes de fruit carnós (solanàcees) Els mesos sempre són 12, poden ser plantables i/o recollibles, i s'indicarà amb un booleà Per fer aquest exercici definiu paràsits com a un booleà (true/false) Nota: Disposeu de les dades necessàries a l'arxiu dades.js Segons el document adjunts dades.js, a la posició 0 de Nom, li correspon la posició 0 de Grup, Varietat, Mesos_plantada, Mesos_recollida i Parasits; a la posició 1 de Nom, li correspon la posició 1 de Grup, Varietat, Mesos_plantada, Mesos_recollida i Parasits; i així successivament. Segons això sabem, per exemple, que el Tomàquet, és del Grup de les solanàcies, de la varietat raf, es planta de maig a juliol, es recull de juny a setembre i és sensible a tots els paràsits que es troben en la posició 0 de l’array de Parasits. Com que tant els mesos de plantada com els mesos de recollida s’han d’indicar amb un booleà, al igual que els paràsits, necessitarem tenir mesos i paràsits per separat. Primerament crearem un array amb tots els noms del mesos de l’any separats per comes. L’anomenarem Noms_Mesos.
  • 4. Després crearem un array amb tots els noms del paràsits existents separats per comes. L’anomenarem Noms_Parasits. Crearem la classe “planta” i agafarem el nom, grup i varietat des de la posició “n” de cada array. Obtindrem també la cadena paràsits que es troben en la posició “n”. Però abans de fer res s’han de convertir tots els caràcters en minúscules, ja que, per exemple, el paràsit Pugó apareix en majúscules i minúscules i podria donar error. string_parasits és l’array de paràsits de cada planta. Per a poder comparar els paràsits de cada planta amb la nostra cadena de paràsits Noms_Parasits hem de separar cada element. Ho farem amb split. Aquest paràsits separats de cada planta els anomenarem paràsits_individual. Quan hem separar els paràsits per les comes, ens ha quedat un espai davant de cada paràsit. Aquest s’ha d’eliminar amb trim, perquè o si no donaria error. El mètode trim elimina els espais en blanc del principi i final d’una cadena. Després compararem l’array Noms_parasits de l’arxiu dades.js amb paràsits_individuals per trobar-ne coincidències. Si és així ens retornarà true, i si no false. Seguirem les mateixes pautes per als mesos de plantada i de recollida. string_mesos és l’array de mesos de cada planta. En aquest cas hem de separar els mesos que vagin amb guionet. Ho farem amb Split(“-“) i anomenarem array_mesos a aquest nou array. Hi ha plantes que tenen dos mesos i en hi ha d’altres que nomes en tenen un. Per això hem de fer que en les plantes que tinguin només un mes, més d’inici ha de ser igual a mes del final. Si una planta té els mesos de plantada entre juny i setembre, ha de donar true juny, juliol i setembre. Els mesos anteriors i posteriors serien false. mesos_plantada és l’array nou que tindrà true o false. Repetim el mateix procediment amb els mesos de recollida. REVISAR EXERCICI ADJUNT: Paquita_Ribas_pregunta1_practica_PAC3 2.- Crear un array d'instàncies de la classe “planta” amb les dades emplenades (pe de nom ll_plantes) i dissenyar una pàgina que permeti visualitzar l'array de plantes. Com a mínim hem de poder navegar per les dades de les diferents plantes amb els botons: primera, anterior, següent i última Primerament, crearem una instància per a cada planta dintre d’un array de denominarem plantes. Aquest, per a cada nom de planta, carregarà les seves dades. Desprès crearem la funció mostrar_planta. Aquesta fa el següent: - Obre una nova finestra on mostra una taula amb totes les dades de les plantes - Mostra el nom, grup i varietat de la planta en la seva corresponent cel·la - En les cel·les de mesos de plantada i mesos de recollida es mostrarà el llistat dels dotze mesos amb Si o No segons correspongui a la planta - En la cel·la de paràsits es mostrarà el llistat de tots els paràsits amb Si o No segons correspongui a la planta Finalment, per a mostrar la fitxa de cada planta hem creat un enllaç per a cada posició dels arrays. REVISAR EXERCICI ADJUNT: Paquita_Ribas_pregunta2_practica_PAC3 3.- Reconeguts experts amb els que ha parlat l'Hortènsia li han fet notar que els grups classificats en: tubercles, lleguminoses, hortalisses de fulla, i plantes de fruit carnós tenen una importància que no ha sabut destacar. Desprès de reflexionar sobre el tema ha decidit ampliar la informació sobre aquests grups creant una classe per cadascun amb la següent informació:
  • 5. tubercles, umbel·líferes, liliàcees:  Propietats:  Grup  Tipus d'arrel: bulbs. Arrels engruixides, tubercles  lleguminoses:  Propietats:  Grup  Tipus de creixement: ràpid o lent  Necessitat de nutrients: molts o pocs  hortalisses de fulla:  Propietat:  Grup  es consumeix la fulla  es consumeix la tija  es consumeix la flor  fruit carnós:  Propietat:  Grup  Suport: cap, vertical, malla 4.- Relacionar, aplicant l'herència, els grups (classes) amb les plantes (classe). Modificar el formulari dissenyat al exercici2 de forma que es mostri la informació particular del grup al que pertany la planta que es mostra. Nota: Per fer la feina menys repetitiva tan sols considereu els grups: lleguminoses, hortalisses de fulla i fruit carnós.