Está en la página 1de 5

17-11-2014

LENGUAJES
FORMALES
TRABAJO FINAL

Ibarra Ortega Marcos Antonio, 6745


Prez Ricardo Daniel, 6590
Moya Aquiles Hernn, 6056
Quispe Jairo Joel Maximiliano, 6297
Ramos Abel Armando, 6459

Consigna: Construir un programa en FLEX para calcular el valor de nmeros


hexadecimales. El programa debe aceptar un nmero hexadecimal e imprimir su valor
decimal por pantalla.
La especificacin desarrollada para resolver la consigna es:
%{
#include <stdio.h>
#include <math.h>
%}
espacioBlanco \n|\t|" "
numeroHexadecimal [0-9a-fA-F]
%%
{espacioBlanco}+
{printf(" ");}
{numeroHexadecimal}+
{printf("\t#\t%s\t\t\t=>\t%d\t\t\t#\n",
yytext, hexDecimal(yytext));}
.
{;}
%%
int hexDecimal(char hex[]){
int i, length, sum = 0;
for(length = 0; hex[length] != '\0'; ++length);
for(i = 0; hex[i] != '\0'; ++i, --length){
if(hex[i] >= '0' && hex[i] <= '9'){
sum += (hex[i] - '0') * pow(16, length - 1);
}
if(hex[i] >= 'A' && hex[i] <= 'F'){
sum += (hex[i] - 55) * pow(16, length - 1);
}
if(hex[i] >= 'a' && hex[i] <= 'f'){
sum += (hex[i] - 87) * pow(16, length - 1);
}
}
return(sum);
}

Pgina 1 de 4

Algunos ejemplos de entradas escritas por el usuario:


Entrada:

Salida:

Pgina 2 de 4

Entrada:

Salida:

Pgina 3 de 4

Referencias:
Apuntes de Ctedra.
http://www.programiz.com/c-programming/examples/hexadecimal-decimalconvert
http://es.wikipedia.org/wiki/Scanf
http://todocporelinv.blogspot.com.ar/2012/10/c-y-c-leer-dos-numerosenteros-y.html
http://www.taringa.net/posts/apuntes-y-monografias/3414376/Random-en-CC.html
http://www.taringa.net/posts/animaciones/15328450/Como-crear-un-archivotxt-desde-c.html
http://creatusjuegosdecero.webege.com/index.php?topic=99.0
Conclusin: mediante FLEX podemos crear analizadores lxicos que nos permiten
analizar archivos en bsqueda de patrones o expresiones regulares, y segn en cada
caso producir la/s salida/s correspondiente/s. En este caso particular el programa
desarrollado reconoce las entradas hexadecimales, las convierte a sus equivalentes
decimales y las visualiza en la consola siendo ste el propsito final.

Pgina 4 de 4

También podría gustarte