Javascript Javascript, AIUTO!

Stato
Discussione chiusa ad ulteriori risposte.

Utentoss

Utente Silver
11 Settembre 2011
54
16
12
82
Il prof mi ha dato la traccia ad un problema
"Creare uno script in javascript che data una espressione matematica in input, che preveda l'uso di sole parentesi tonde,controlli la sintassi di tali parentesi, segnalando eventuali errori.
Il caso di correttezza riscriva l'espressione colorando in maniera diversa (con colori casuali) i livelli di nidificazione di tali parentesi."
Ho passato 3 ore a creare uno script che funzioni, ma niente, sono riuscito a fare questo:
Codice:
function colorecasuale() //La seguente funzione genera il codice di un colore casuale
{
	colore="#"+((1<<24)*Math.random()|0).toString(16);
	return colore;
	} //Fine generazione colore.


function controllolivello(start, end, string)
{	var letter="";
	string=string.substring(start, end);
	var tk=0;
	corcas=colorecasuale();
	start=string.indexOf("(");
	for (z=start; z<string.length; z++)
	{
		if (string.charAt(z)=="(") tk++;
		else
		{
			if (string.charAt(z)==")" && tk>0) tk--;
			if (string.charAt(z)==")" && tk==0) end=z;
			}
		}
	for (i=0; i<end; i++)
	{
		letter=string.charAt(i);
		if (i==start) docuement.write(letter.fontcolor(corcas));
		else document.write(string.charAt(i));
		}
	if (start<end) controllolivello(start+1, end, string);
	document.write(string.charAt(end).fontcolor(corcas));
	}


var espressione=prompt("Inserisci l'espressione"); //Si prende in input l'espressione
var ap=0; //Variabile contatore delle parentesi aprenti
var ch=0; //Variabile contatore delle perentesi chiudenti
for (i=0; i<espressione.length; i++)
{
	if (espressione.charAt(i)=="(") ap++;
	if (espressione.charAt(i)==")") ch++;
	
	}
if (ap==ch)
{
	document.write("La sintassi &egrave; corretta");
	var inizio=0;
	var fine=0;
	controllolivello(inizio, fine, espressione);
	}
else
{
	document.write("La sintassi non &egrave; corretta<br>");
	if(ap>ch) document.write("Il numero delle parentesi aprenti &egrave; maggiore delle parentesi che chiudono<br>");
	else document.write("Il numero delle parentesi che chiudono &egrave; maggiore delle parentesi aprenti<br>");
	}

Potreste aiutarmi pls?
 
Stato
Discussione chiusa ad ulteriori risposte.