Professional Documents
Culture Documents
Manuel Antonio Cervantes Aguirre Israel Villaseor Leon n Ruiz Carrillo Josue Jonathan Sallvador HectorZuiga Muos n n 26 de noviembre de 2012
Indice general
1. Introduccin o 2. Denicion de elementos para crear la 2.1. Alfabeto . . . . . . . . . . . . . . . . 2.2. Estado Inical . . . . . . . . . . . . . 2.3. Estados deetransicin . . . . . . . . o 2.4. Estado Final . . . . . . . . . . . . . 3. Construccion del Programa gramatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 7 7 7 8 9 11
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
Agradecimientos
Al Doctor Jorge Vasconcelos Santill Por su paciencia, dedicacin y a o comprensin a los alumnos o
2.1.
Alfabeto
Una vez que conocemos los elementos de las pentatnicas los desagrupao mos y denimos el alfabeto de nuestra gramtica, = {C,D,Eb,F,F#,G,A,A#,Cm} a
2.2.
Estado Inical
En este caso podremos tomar cualquier elemento del alfabeto como estado inicial, como ejercicio aleatorio para construccin de la gramtica, entonces o a Q0 ={C,D,Eb,F,F#,G,A,A#,Cm} 7
2.3.
Estados deetransicin o
Para poder determinar los estados de transicin es necesario calcular too das las intersecciones hechas por los elementos descritos anteriormente. a={C,D,F,G,A,Cm}; b={C,Eb,F,G,A#,Cm}; c={C,EbF,F#,G,A#}; d={C,D,F,G,A#}; 1. a b ={C,Cm,F,G} 2. a c ={C,F,G} 3. a d ={C,D,F,G} 4. b c ={C,Eb,F,G,A#} 5. b d ={C,F,G,A#} 6. c d ={C,F,G,A#} Notamos que las intersecciones 5 y 6 generan la misma cadena de caracteres, esto tambin sucede al hacer la interseccin con estos conjuntos, e o se recrean las intersecciones 2 y 5 por tanto trabajaremos solo con las descritas. Con estas instersecciones podemos comenzar a denir nuestras reglas de gramatica, por ejemplo con C podemos tomar cualquier elemento en una siguiente iteracion caso contrario con Cm que solo podemos tomar los elementos de 1. Por lo tanto los estados de transicin estn descritos de la siguiente manera. o a Para ejemplicar el tipo de trasniciones que se desarrollaran utilizaremos como estado inicial el simbolo C. C 1C 1 2Cm 2 1Cm 1 7F . .. . . .. . . 3G
2.4.
Estado Final
De igual forma que en el estado inicial podemos denir el estado nal como cualquier elemento del alfabeto, siempre y cuando se haya cumplido el tamao de la palabra que se desea obtener. P={C,D,Eb,F,F#,G,A,A#,Cm} n
p r i n t f (\ n I n g r e s e l a c a n t i d a d d e v a l o r e s p a r a l a g r a m a t i c a : ) ; s c a n f ( %d,&nmro ) ; t=nmro1; intMi [ t ] ; srand ( time (NULL ) ) ; x=rand () %7; i n i c=x ; i f ( i n i c ==0){ Mi [ 0 ] = 1 ; / /C p r i n t f ( EstadoInicialC ) ; } else i f ( i n i c ==1){ Mi [ 0 ] = 2 ; / / Eb 11
12
p r i n t f ( EstadoInicialEb ) ; } else i f ( i n i c ==2){ Mi [ 0 ] = 3 ; / / F p r i n t f ( E s t a d o I n i c i a l F ) ; } else i f ( i n i c ==3){ Mi [ 0 ] = 4 ; / / F# p r i n t f ( E s t a d o I n i c i a l F #); } i f ( i n i c ==4){ Mi [ 0 ] = 5 ; / /G p r i n t f ( EstadoInicialG ) ; } else i f ( i n i c ==5){ Mi [ 0 ] = 6 ; / /A p r i n t f ( EstadoInicialA ) ; } else i f ( i n i c ==6){ Mi [ 0 ] = 7 ; / /A# p r i n t f ( E s t a d o I n i c i a l A #); }else i f ( i n i c ==7){ Mi [ 0 ] = 8 ; / /Cm p r i n t f ( EstadoInicialCm ) ; }
13 i f ( Mi [ n]==1){ srand ( time (NULL ) ) ; x=rand () %4; i=rand () %7; r e g [ n+1]=x ; Mi [ n+1]= i ; / /C p r i n t f (\ n % % % % , Mi [ n] , > , r e g [ n +1] ,Mi [ n + 1 ] ) ; d s d d } else i f ( Mi [ n]==2){ srand ( time (NULL ) ) ; i=rand () %4; r e g [ n+1]=1; Mi [ n+1]= i ; / / Eb p r i n t f (\ n % % % % , Mi [ n] , > , r e g [ n ] , Mi [ n + 1 ] ) ; d s d d } else i f ( Mi [ n]==3){ srand ( time (NULL ) ) ; x=rand () %4; i=rand () %7; r e g [ n+1]=x ; Mi [ n+1]= i ; / / F p r i n t f (\ n % % % % , Mi [ n] , > , r e g [ n ] , Mi [ n + 1 ] ) ; d s d d } else i f ( Mi [ n]==4){ srand ( time (NULL ) ) ;
14
x=rand () %4; i=rand () %7; r e g [ n+1]=x ; Mi [ n+1]= i ; / /G p r i n t f (\ n % % % % , Mi [ n] , > , r e g [ n ] , Mi [ n + 1 ] ) ; d s d d } else i f ( Mi [ n]==6){ srand ( time (NULL ) ) ;
i=rand () %5; r e g [ n+1]=1; Mi [ n+1]= i ; / /A p r i n t f (\ n % % % % , Mi [ n] , > , r e g [ n ] , Mi [ n + 1 ] ) ; d s d d } else i f ( Mi [ n]==7){ srand ( time (NULL ) ) ; x=rand () %1; i=rand () %5; r e g [ n+1]=x ; Mi [ n+1]= i ; / /A# p r i n t f (\ n % % % % , Mi [ n] , > , r e g [ n ] , Mi [ n + 1 ] ) ; d s d d }else i f ( Mi [ n]==8){ srand ( time (NULL ) ) ; x=rand () %1; i=rand () %7; r e g [ n+1]=x ; Mi [ n+1]= i ; / /Cm p r i n t f (\ n % % % % , Mi [ n+1], >, r e g [ n ] , Mi [ n + 1 ] ) ; d s d d } n++; }
getchar () getchar ( ) ; }