You are on page 1of 2

Fernando Campos Camacho Universidad de Occidente, Agosto 2014

Cdigo en C-Sharp para Evaluar el correcto embebimiento de expresiones


-------------------------------------------------------------------------------------------------------------------------
private void btnevaluar_Click(object sender, System.EventArgs e)
{
int valid=1;
int i=0,stacktop=0;
// i para contar los caracteres de la expresin
// stacktop empieza en cero por que la pila esta vaca
int limiteexpresion=expresion.Text.Length-1; // para no leer ms del lmite
char symb,symb_apertura=' ',x;
string[] pila; // Declaracin del array (pila)
pila = new string[50]; // Instanciacin del array
while (i<=limiteexpresion && valid==1)
{
symb=expresion.Text[i];
if (symb=='[' || symb=='{' || symb=='(')
{
stacktop++; pila[stacktop]=symb.ToString();
}
if (symb==']' || symb=='}' || symb==')')
{
if (stacktop==0)
valid=0;
else
{
x=char.Parse(pila[stacktop]);
stacktop--;
switch (symb)
{
case ']':symb_apertura='[';break;
case '}':symb_apertura='{';break;
case ')':symb_apertura='(';break;
}
if (x!=symb_apertura) valid=0;
}
}
i++;
}
if (stacktop!=0) valid=0;
if (valid==1) MessageBox.Show("Cadena Vlida");
else MessageBox.Show("Cadena No Vlida");
}
}

}

You might also like