Se tienen las siguientes dos oraciones en el mismo lenguaje formal, aplica las operaciones de lingüística matemática para generar su gramática.
Oración 1:
<html><title>aprobados</title>
<xml>
<fecha>20/04/2011</fecha>
<sbc>
<alumno><boleta>2008410446</boleta><calif>10</calif></alumno>
<alumno><boleta>2009601504</boleta><calif>05</calif></alumno>
<alumno><boleta>2009600090</boleta><calif>10</calif></alumno>
<alumno><boleta>2009600097</boleta><calif>10</calif></alumno>
</sbc>
</xml>
<javascript>//aprobados
Var aprobados as numeric;
Var X=xmlDoc.getElementsByTagName ("sbc");
aprobados=0;
for (var i=0;i<x.length;i++)
{
if
(x[i].getElementsByTagName ("calif")[0]
.childNodes[0].nodeValue>=6)
{aprobados=aprobados+1;}
}
document.write(aprobados);
</javascript>
</html>
Oración 2:
<html><title>promedio</title>
<xml>
<fecha>20/04/2011</fecha>
<sbc>
<alumno><boleta>2008410446</boleta><calif>10</calif></alumno>
<alumno><boleta>2009601504</boleta><calif>05</calif></alumno>
<alumno><boleta>2009600090</boleta><calif>10</calif></alumno>
<alumno><boleta>2009600097</boleta><calif>10</calif></alumno>
</sbc></xml>
<javascript>//promedio
Var promedio as numeric;
Var alumnos as numeric;
Var X=xmlDoc.getElementsByTagName ("sbc");
promedio=0;
alumnos=x.length;
for (var i=0;i<x.length;i++)
{
promedio= promedio + x[i].getElementsByTagName ("calif")
[0].childNodes[0].nodeValue
}
promedio=promedio/alumnos;
document.write(promedio);
</javascript>
</html>
Solución primera parte:
En las siguientes reglas se generan las expresiones desde el inicio hasta "<javascript>//K"
S--> ABCDEK...
A--> <html><title>
B--> aprobados | promedio
C--> </title>
D--> <xml><fecha>20/04/2011</fecha><sbc>
E--> <alumno><boleta>F</boleta><calif>I</calif></alumno>E
| </sbc></xml></javascript>//
F--> 200G
G--> 960H | 8410046
H--> 1504 |I
I--> 009 | J
J--> 7 | 0
K--> Completa las reglas de producción para las cadenas de javascript.
¿Cuáles reglas cambiarían al introducir la siguiente oración?
Oración 3:
<html><title>aprobados</title>
<xml>
<fecha>20/05/2011</fecha>
<sbc>
<alumno><boleta>2008410446</boleta><calif>10</calif></alumno>
<alumno><boleta>2009601504</boleta><calif>10</calif></alumno>
<alumno><boleta>2009600090</boleta><calif>10</calif></alumno>
<alumno><boleta>2009600097</boleta><calif>10</calif></alumno>
</sbc>
</xml>
<javascript>//aprobados
Var aprobados as numeric;
Var X=xmlDoc.getElementsByTagName ("sbc");
aprobados=0;
for (var i=0;i<x.length;i++)
{
if
(x[i].getElementsByTagName ("calif")[0]
.childNodes[0].nodeValue>=6)
{aprobados=aprobados+1;}
}
document.write(aprobados);
</javascript>
</html>