<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Test_de_les_capitals_europees</id>
	<title>Test de les capitals europees - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Test_de_les_capitals_europees"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Test_de_les_capitals_europees&amp;action=history"/>
	<updated>2026-08-30T04:51:19Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Test_de_les_capitals_europees&amp;diff=258732&amp;oldid=prev</id>
		<title>Joan: /* Solució */</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Test_de_les_capitals_europees&amp;diff=258732&amp;oldid=prev"/>
		<updated>2020-01-09T18:13:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Solució&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=APLICATIU TEST de CAPITALS=&lt;br /&gt;
(El primer i tercer exercici van sortir en un examen de la UF3). No pas l'exercici 3.&lt;br /&gt;
&lt;br /&gt;
'''1.''' Fitxer '''capitals.html'''. En una pàgina web es demana per la capital de ''França''. Has de crear una llista desplegable amb vuit opcions que són capitals europees, de les quals només una és correcta (''Paris''). En clicar sobre la llista desplegable has de controlar mitjançant Javascript si la resposta és correcta. Amb Javascript faràs la capa de presentació, de manera que si la resposta és correcta quedarà ressaltada amb fons verd, un color de text adequat i un label de 'OK' a la dreta. Si la resposta és incorrecta quedarà  amb fons vermell, un color de text adequat i un label de 'ERROR' a la dreta.&lt;br /&gt;
&lt;br /&gt;
'''NOTA''': la capa de presentació de resultats (OK/ERROR) que es proposa és una de diferents possibilitats. L'alumne escollirà la manera de presentar la informació del formulari, de manera que sigui es més ''usable'' i ben dissenyat possible. Hem de pensar en la ''usabilitat'' i ''experiència d'usuari''.&lt;br /&gt;
&lt;br /&gt;
'''2.''' Basant-nos en l'exercici anterior, dissenya i programa un '''test''' per saber si coneixes les capitals europees. Crea una matriu de països i capitals on es guardaran les respostes. De forma aleatòria s'escollirà un país i unes capitals (entre les quals hi haurà el valor correcte). Un cop has respost una pregunta, s'ha de veure el resultat (OK o ERROR), i al cap d'1-3 segons tornar a generar una altra pregunta. En un comptador has de veure el resultat del test (preguntes correctes / preguntes totals). Quan dissenyis aquest aplicatiu pensa a fer-lo el més general possible, de manera que sigui fàcil adaptar-lo a un altre cas. Per exemple, en comptes de capitals europees, preguntar sobre vocabulari d'anglès, examen psicotècnic, etc.&lt;br /&gt;
&lt;br /&gt;
De fet, no cal que l'exercici es faci sobre capitals europees. Pots proposar un altre examen tipus test (consultar amb el professor).&lt;br /&gt;
&lt;br /&gt;
'''3.''' Abans de penjar l'exercici al Classroom, el professor certificarà el bon funcionament (obligatori).&lt;br /&gt;
&lt;br /&gt;
'''4.''' Exercici de DOM: Basant-nos en el primer exercici, recórrer el DOM de la llista desplegable i crear amb Javascript i de forma dinàmica una taula amb els valors de la select box. Ressaltar de forma alterna les files, triant dos colors.&lt;br /&gt;
&lt;br /&gt;
Entregar aquest exercici al '''Classroom''' dins del termini establert.&lt;br /&gt;
=Notes=&lt;br /&gt;
Per crear la relació de països i capitals ho pots fer amb una matriu de dues dimensions:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var paisos = [['França','Paris'], ['Anglaterra','Londres'], ['Itàlia','Roma']];&lt;br /&gt;
&lt;br /&gt;
console.log('La capital de ' + paisos[0][0] + ' és ' + paisos[0][1]);&lt;br /&gt;
console.log('La capital de ' + paisos[1][0] + ' és ' + paisos[1][1]);&lt;br /&gt;
console.log('Número de països' + paisos.length);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Una altra possibilitat és fer-ho amb objectes.&lt;br /&gt;
&lt;br /&gt;
==Shuffle (barrejar) un array (i assegurar-se de no repetir els valors)==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function shuffle(a) {&lt;br /&gt;
    for (let i = a.length - 1; i &amp;gt; 0; i--) {&lt;br /&gt;
        const j = Math.floor(Math.random() * (i + 1));&lt;br /&gt;
        [a[i], a[j]] = [a[j], a[i]];&lt;br /&gt;
    }&lt;br /&gt;
    return a;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var paisos = [['França','Paris'], ['Anglaterra','Londres'], ['Itàlia','Roma'], ['Romania','Bucarest'], ['Irlanda','Dublin'], ['Bèlgica','Brussel.les'], ['Portugal','Lisboa']];&lt;br /&gt;
&lt;br /&gt;
shuffle(paisos);&lt;br /&gt;
&lt;br /&gt;
for (var i=0; i&amp;lt;paisos.length; i++) {&lt;br /&gt;
	console.log(paisos[i][0] + ': ' + paisos[i][1]);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//una altra manera de fer. shift() és el mateix que pop() però elimina el primer element de la matriu (en comptes de l'últim)&lt;br /&gt;
console.log (paisos.length);&lt;br /&gt;
while (paisos.length &amp;gt; 0) {&lt;br /&gt;
	console.log(paisos[0][0] + ': ' + paisos[0][1]);&lt;br /&gt;
	paisos.shift();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Si es vol implementar el mètode ''shuffle()'', s'ha de fer amb prototype:&lt;br /&gt;
*https://www.kirupa.com/html5/shuffling_array_js.htm&lt;br /&gt;
&lt;br /&gt;
=Solució parcial=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
  &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;lt;h2&amp;gt;Quina és la capital de França?&amp;lt;/h2&amp;gt;&lt;br /&gt;
  &amp;lt;form id=&amp;quot;frm1&amp;quot; action=&amp;quot;&amp;quot; method=&amp;quot;get&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;select id=&amp;quot;selector&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;Madrid&amp;lt;/option&amp;gt;&lt;br /&gt;
          &amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;París&amp;lt;/option&amp;gt;&lt;br /&gt;
          &amp;lt;option value=&amp;quot;2&amp;quot;&amp;gt;Berlín&amp;lt;/option&amp;gt;&lt;br /&gt;
          &amp;lt;option value=&amp;quot;3&amp;quot;&amp;gt;Roma&amp;lt;/option&amp;gt;&lt;br /&gt;
          &amp;lt;option value=&amp;quot;4&amp;quot;&amp;gt;Atenes&amp;lt;/option&amp;gt;&lt;br /&gt;
          &amp;lt;option value=&amp;quot;5&amp;quot;&amp;gt;Brusel·les&amp;lt;/option&amp;gt;&lt;br /&gt;
          &amp;lt;option value=&amp;quot;6&amp;quot;&amp;gt;Viena&amp;lt;/option&amp;gt;&lt;br /&gt;
          &amp;lt;option value=&amp;quot;7&amp;quot;&amp;gt;Helsinki&amp;lt;/option&amp;gt;&lt;br /&gt;
      &amp;lt;/select&amp;gt;&lt;br /&gt;
    &amp;lt;label&amp;gt;&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
var select = document.getElementById('selector');&lt;br /&gt;
  select.addEventListener(&amp;quot;click&amp;quot;, es_correcte);&lt;br /&gt;
&lt;br /&gt;
function es_correcte(){&lt;br /&gt;
  var valor = document.getElementById('selector').selectedIndex;&lt;br /&gt;
  console.log(valor);&lt;br /&gt;
  var o = document.getElementById('selector');&lt;br /&gt;
  var label = document.getElementsByTagName('label');&lt;br /&gt;
  if(valor==&amp;quot;1&amp;quot;){&lt;br /&gt;
    o.style.backgroundColor = &amp;quot;green&amp;quot;;&lt;br /&gt;
    label[0].innerHTML = &amp;quot;OK&amp;quot;;&lt;br /&gt;
  }else{&lt;br /&gt;
    o.style.backgroundColor = &amp;quot;red&amp;quot;;&lt;br /&gt;
    label[0].innerHTML = &amp;quot;ERROR&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Dropbox multilinia i multiselect=&lt;br /&gt;
En el cas de què vulguis fer un test amb múltiples respostes, has de modificar el codi per tal de tenir una llista desplegable que sigui multiselect. Estudia i prova el següent codi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Multiselect example&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
  //from multi-select.html&lt;br /&gt;
  function showChoices(){&lt;br /&gt;
  //retrieve data&lt;br /&gt;
  var selLanguage = document.getElementById(&amp;quot;selLanguage&amp;quot;);&lt;br /&gt;
  //set up output string&lt;br /&gt;
  var result = &amp;quot;&amp;lt;h2&amp;gt;Your Languages&amp;lt;/h2&amp;gt;&amp;quot;;&lt;br /&gt;
  result += '&amp;lt;ul&amp;gt;';&lt;br /&gt;
  //step through options&lt;br /&gt;
  for (i = 0; i &amp;lt; selLanguage.length; i++){&lt;br /&gt;
   //examine current option&lt;br /&gt;
   currentOption = selLanguage[i];&lt;br /&gt;
   //print it if it has been selected&lt;br /&gt;
   if (currentOption.selected == true){&lt;br /&gt;
   result += &amp;quot; &amp;lt;li&amp;gt;&amp;quot; + currentOption.value + &amp;quot;&amp;lt;/li&amp;gt;\n&amp;quot;;&lt;br /&gt;
   } // end if&lt;br /&gt;
  } // end for loop&lt;br /&gt;
  //finish off the list and print it out&lt;br /&gt;
  result += &amp;quot;&amp;lt;/ul&amp;gt;\n&amp;quot;;&lt;br /&gt;
  output = document.getElementById(&amp;quot;output&amp;quot;);&lt;br /&gt;
  output.innerHTML = result;&lt;br /&gt;
  } // end showChoices&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
 &amp;lt;h1&amp;gt;Multiple Selections&amp;lt;/h1&amp;gt;&lt;br /&gt;
 &amp;lt;form action&amp;gt;&lt;br /&gt;
  &amp;lt;fieldset&amp;gt;&lt;br /&gt;
  &amp;lt;label&amp;gt;&lt;br /&gt;
   Select the language(s) you know.&lt;br /&gt;
   (ctrl-click to select multiple lines)&lt;br /&gt;
  &amp;lt;/label&amp;gt;&lt;br /&gt;
  &amp;lt;select id = 'selLanguage' multiple = 'multiple' size = '10'&amp;gt;&lt;br /&gt;
   &amp;lt;option value = 'HTML'&amp;gt;HTML&amp;lt;/option&amp;gt;&lt;br /&gt;
   &amp;lt;option value = 'CSS'&amp;gt;CSS&amp;lt;/option&amp;gt;&lt;br /&gt;
   &amp;lt;option value = 'JavaScript'&amp;gt;JavaScript&amp;lt;/option&amp;gt;&lt;br /&gt;
   &amp;lt;option value = 'PHP'&amp;gt;PHP&amp;lt;/option&amp;gt;&lt;br /&gt;
   &amp;lt;option value = 'MySQL'&amp;gt;MySQL&amp;lt;/option&amp;gt;&lt;br /&gt;
   &amp;lt;option value = 'Java'&amp;gt;Java&amp;lt;/option&amp;gt;&lt;br /&gt;
   &amp;lt;option value = 'VB.NET'&amp;gt;VB.NET&amp;lt;/option&amp;gt;&lt;br /&gt;
   &amp;lt;option value = 'Python'&amp;gt;Python&amp;lt;/option&amp;gt;&lt;br /&gt;
   &amp;lt;option value = 'Flash'&amp;gt;Flash&amp;lt;/option&amp;gt;&lt;br /&gt;
   &amp;lt;option value = 'Perl'&amp;gt;perl&amp;lt;/option&amp;gt; &lt;br /&gt;
  &amp;lt;/select&amp;gt;&lt;br /&gt;
  &amp;lt;button type = 'button' onclick = 'showChoices()'&amp;gt;Submit &amp;lt;/button&amp;gt;&lt;br /&gt;
  &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
 &amp;lt;/form&amp;gt;&lt;br /&gt;
 &amp;lt;div id = 'output'&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Solució=&lt;br /&gt;
Pots mirar-te aquesta solució que ha fet un alumne:&lt;br /&gt;
*[[Fitxer:Capitals.zip]]&lt;br /&gt;
o bé aquesta solució que és més completa i més xula:&lt;br /&gt;
*[[Fitxer:Capitals solucio alumne.zip]]&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, gener 2020&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>