Disseny previ
Per solucionar el problema del rellotge que ens doni les hores altes varem pensar una possible algoritme.
Primer varem veure que: Cada posició ha d’agafar un valor dels quatre donats, varem quedar que estaven dins una array, per exemple poden ser [1,3,4,2] o [0,0,0,9] o [5,4,3,2]…
posicio1 | posicio2 | posicio3 | posicio4 |
el major valor entre 0 i 2 | depen de la posicio1: si (p1==2){ el major valor entre 0 i 2 }sino{ el major valor entre 0 i 9 } | el major valor entre 0 i 5 | el major valor entre 0 i 9 |
Algoritme
Una vegada sabem les condicions determinam el camí de les instrucions.
Els valors són agafats per ordre posicio1 després posicio2, posicio3 i posició4.
“Cada vegada que una posició agafa un valor el borrarà de la llista, així feim que un valor no pugui ser agafat dues vegades.”
l’algoritme principal queda com segueix:
var valorsEntrada=agafamValorsEntrada();
var p1= agafaValorMaxim(valorsEntrada,2);
var p2;
if (p1==2){p2=agafaValorMaxim(valorsEntrada,2);}
else {p2=agafaValorMaxim(valorsEntrada,9);}
p3=agafaValorMaxim(valorsEntrada,5);
p4=agafaValorMaxim(valorsEntrada,9);
Ens em de fixar que cream una funció a part anomenada agafaValorMaxim(array,maximPermes) ja que és una tasca repetitiva i ens permet reutilitzar un algoritme que sempre ha de fer el mateix. El definim:
function agafaValorMaxim(array,maximPermes){
//funció que agafarà el valor màxim d'una array on el valor màxim permés és maximPermes.
var valorMaxim=-1;
valorMaxim=cercarValorMaxim;//while de cerca;
return valorMaxim;
}
Què necessitam per implementar?
Una vegada ja tenim pensada l’estructura de dades i recorregut de l’algoritme hem de recercar quins són els elements que ens permetran implementar la solució que ens sigui beneficisosa i comprovable.
Interfície
Per una banda estudiarem l’interficie d’usuari, tant d’entrada com de sortida. Usam HTML com a implementador i usarem els formularis, botons i inputs.
https://www.w3schools.com/html/html_forms.asp
Estructura de dades.
Cada algoritme té una estructura de dades que permet emmagatzemar la informació.
Cada algoritme o funció usarà una estructura addient al seu propòsit.
En el nostre cas:
[a,b,c,d]———->[funcio]———->[p1,p2,p3,p4]
empram una array d’entrada i una array de sortida, dins l’algoritme emprarem variables numèriques i condicionals.
Miram els mètodes de manipulació dels arrays -> aquí
Implementació
See the Pen problema hora by PereAntoni (@pereantoni) on CodePen.