Solució Instruens Fabulam
De wikiserver
Es recorda que l'ús de funcions no s'explicarán fins la UF2. Per aixó, en aquest exercici no s'utilitzaran.
var d = "==<%42&t&ei%what is the answer?&yykykykykykykykykyk&4444444"; var descfila = d.split("%"); //càlcul del nombre màxim de caràcters per columna var maxcharcol = []; for (var i = 1; i<descfila.length; i++) { var palabres = descfila[i].split("&"); for(var j = 0; j < palabres.length; j++){ if(isNaN(maxcharcol[j])) maxcharcol[j] = palabres[j].length; else {maxcharcol[j] = Math.max(maxcharcol[j],palabres[j].length);} } } // variable resultat var result = ""; //variable capçalera vores =""; //escriure contingut for (var i = 1; i< descfila.length; i++) { var palabres = descfila[i].split("&"); //posem la separació entre la linea capçalera i les files //aprofitem el bucle per fer el marc (varible vores) if( i == 2) { var line = ""; for(var j = 0; j < maxcharcol.length; j++) { //ES posen els '+' per la separacio entre columnes. //només es posa si hi ha + de 1 columna if( j != 0 && j <= maxcharcol.length -1) { line = line + "-+-" ; vores = vores + "---"; } //Es posen els '-' for (n = 0 ; n < maxcharcol[j]; n++) { vores = vores + "-"; line = line + "-"; } //Es posen els '|' d'inici i final, si estem a la 1º o última columna. if (j==0) { //primera columna line = "|-" + line; vores = "-" + vores ; } if (j == maxcharcol.length -1){ //última columna line = line + "-|"; vores = "-" + vores ; } } result = result + line + "<br>"; } //S'escriu la paraules de cadascuna de les cel·les i files. for(var j = 0; j < palabres.length; j++) { var line = ""; numchar = maxcharcol[j] - palabres[j].length; //s'escriu la paraula amb espais per omplir la columna for (n = 0; n < numchar; n++) { line = line + " "; } if (i == 1 )//si estem a la capçalera {//s'ha d'alinear la capçalera segons sigui < > = var c = descfila[0].charAt(j); switch(c ){ case ">": line = line + palabres[j]; break; case "<": line = palabres[j] + line; break; case "=": // S'utilitza el modificador /g per tal que reemplaci totes les ocurrències var n=line.replace(/ /g," "); var left = n.substring(0,Math.round(n.length/2)); var right = n.substring(Math.round(n.length/2)); left = left.replace(/ /g," "); right = right.replace(/ /g," "); line = left + palabres[j] + right; break; } } else{//si no estem a la capçalera s'alinea normal. A la dreta. line = line + palabres[j]; } //es possen els separadors de columna. if(j == 0){ //es la 1a columna line = "| " + line; } result = result + line + " | "; } result = result + "<br>"; } vores = "@" + vores + "@"; document.write(vores + "<br>" + result + vores+ "<br>" );