Nuevas NORMAS para el foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse. - Mayo 15, 2008, 10:18:57
Boton Buscar
Inicio Ayuda Calendario Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Programación Basica  |  Tema: Evaluador 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Evaluador  (Leído 65 veces)
floyd_d@ff
Recien Llegado
*
Desconectado Desconectado

Mensajes: 38


floyd_864@hotmail.com
Ver Perfil Email
« en: Å¿eptiembre 04, 2007, 09:54:52 »

Buenas gente  Grin aqui les dejo el siguiente evaluador, esta en notacion funcional espero les sirva, lo saque de los apuntes de la catedra de algoritmica de la UNSa (Argentina) no se si alguien lo habra publicado ya de todos modos aqui les va, esta hecho para la siguiente gramatica:


E           T | E( ‘+’ | ‘ -’) T

T          F | T (‘*’ | ‘/’ ) F

F           P | P^F | ‘-’ F

P           N | ‘(‘ E ‘)’

N           D | ND

D           â€˜1’ | ‘2’ | ‘3’ | ‘4’ | ‘5’ | ‘6’ | ‘7’ | ‘8’ | ‘9’ | ‘0’


Eval E(e)= evale1(evalt(e))

    evale1((n,e))=
               si(e=vacio | no(e1='+' | e1='-'))  (n,e)
               sino
                     sea
                           (m,f) =evalT (resto(e))
                            si (e1='+') evale1((n+m),f)
                            sino evale1((n-m),f)

evalT(e)= evalT1(evalF(e))
    Evalt1(n,e)=
                        si (e=vacio | no (e1='*' | e1='/')) (n,e)
                        sino
                              sea
                                    (m,f) = evalF ( resto (e))
                                     si (e1 = '*' ) evalT1 ( (n*m),f)
                                     sino evalT1 ( ( n/m ) ,f )
      evalF(e)=
                  si(e1='-')
                     sea (n,f) = evalf ( resto (e) )  (-n,f)
                  sino
                         si (e1='+')  evalf ( resto(e) )
                         sino                         
                               sea (n,f)= evalp (e)
                               si  (f=vacio | l1<> ^) (n,f)
                               sino
                                      sea (m,g)= evalf (resto(f))
                                         (m,g)
   evalp(e)=
               si (e1 es digito) evaln(e)
               sino
                     si (e1='(' )
                     sea (n,f)=evale (resto(e))
                           si  (f=')' )      (n,resto(f))
                            sino
                                  error
evaln(e) = evaln1(n,e)
                   evaln1(n,e)=
                                     si(e=vacio | e1 no es digito)  (n,e)
                                      sino evaln1(10n+valor(e1),resto(e))
                      valor('0')=0;
                      valor('1')=1;
                       etc.
Bueno espero les guste nos vemos gente Grin, espero se entienda Tongue.
« Última modificación: Å¿eptiembre 12, 2007, 02:06:46 por floyd_d@ff » En línea
Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Programación Basica  |  Tema: Evaluador « anterior próximo »
Ir a:  
Novedades, Dudas, Comentarios Y Sugerencias, Top 100, Off-Topic, Revista E-Zine, Revista E-Zine, Sistemas operativos libres. , HacK GeneraL, Phreaking, Bug y Exploits, Networking & Wireless, Overclocking, Refrigeracion y demas, Hardware, Electronica Y Robotica, Hack para newbies, Todo Messenger, Troyanos y virus, Programacion, Programacion para webmasters, Software, Cracks & Serialz, P2p, Bittorrent, Elinks, Diseño Grafico, Juegos PC, Mp3, Multimedia, Peliculas Divx, Juegos, Humor y Adultos. (Diversion), Paginas Webs Recomendadas, Videos,


Zona-Musical Juegos online Juego Gratis10 Solucion Hosting Videos De Musica 1juegogratis Dragonjar
Noticias
 Juegos De Coche juegos gratis online juegos Los Foros De Sexe Gratuit Sexo Duro Tierra Messenger Trucos
Ranking-Hits
Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC