1
« en: Martes 1 de Diciembre de 2009, 05:49 »
hola a todos soy nueva por aqui, espero puedan ayudarme con una asignacion... es para mañana, me enviaron el correo tarde T.T por eso el apuro ahi les va...
en este codigo:
include <stdio.h>
#include <string.h>
#include <stdlib.h>
char token[6], tabla[2][5],Tabla_s[2][7];
void leer_token()
{
printf(" Ingrese expresion :");
scanf("%s", &token);
}
void mostrar_token()
{
printf (" nEl token leido es : %s n", token);
}
void limpiar_tabla()
{
int i,j;
for (i=0;i<=1;i++)
for (j=0; j<=4; j++)
tabla[j]= 0;
}
void tabla_simbolos()
{
Tabla_s[0][0]= 'x';
Tabla_s[1][0]= 'v';
Tabla_s[0][1]= '-';
Tabla_s[1][1]= 'o';
Tabla_s[0][2]= '*';
Tabla_s[1][2]= 'o';
Tabla_s[0][3]= 'a';
Tabla_s[1][3]= 'v';
Tabla_s[0][4]= 'b';
Tabla_s[1][4]= 'v';
Tabla_s[0][5]= 'c';
Tabla_s[1][5]= 'v';
Tabla_s[0][6]= '+';
Tabla_s[1][6]= 'o';
Tabla_s[0][7]= '=';
Tabla_s[1][7]= 'o';
}
void busqueda()
{
int i,j;
for (i=0;i<=4;i++)
{
for (j=0;j<=7;j++)
{
if (tabla[1]==Tabla_s[0][j])
{
tabla[0]=Tabla_s[1][j];
j=7;
}
}
}
}
void mostrar_tabla()
{
int i,j;
for (i=0;i<=1;i++)
for (j=0; j<=4; j++)
printf( "Pos[%i][%i] = %cn",i,j,tabla[j]);
}
void componentes()
{
int i=1, j, k=0;
for (j=0;j<=4;j++)
{
tabla[j]=token[k];
k=k+1;
}
}
void menu();
void sub_menuAL()
{
int op;
system ("cls");
printf(" Analizador lexico n");
printf(" 1-Ingrese Token n");
printf(" 2-Mostrar Token n");
printf(" 3-Tabla de componentes n");
printf(" 4-Regresar al Menu Principal n");
scanf("%i",&op);
switch (op)
{
case 1:system ("cls");
leer_token();
system ("pause");
sub_menuAL();
break;
case 2:system ("cls");
mostrar_token();
system ("pause");
sub_menuAL();
break;
case 3:system ("cls");
limpiar_tabla();
componentes();
tabla_simbolos();
busqueda();
mostrar_tabla();
system ("pause");
sub_menuAL();
break;
case 4:menu();
break;
default:printf("Opcion incorrectan");
sub_menuAL();
}
}
void sub_menuAS()
{
system ("cls");
printf(" En construccion n");
system ("pause");
menu();
}
void sub_menuASe()
{
system ("cls");
printf(" En construccion n");
system ("pause");
menu();
}
void menu()
{
int op;
system ("cls");
printf(" Menu Principal n");
printf(" 1 - Analizador lexico n");
printf(" 2 - Analizador sintactico n");
printf(" 3 - Analizador semantico n");
printf(" 4 - Salir n");
printf(" Seleccione opcion: ");
scanf("%i",&op);
switch (op)
{
case 1:sub_menuAL();
break;
case 2:sub_menuAS();
break;
case 3:sub_menuASe();
break;
case 4:system ("exit");
break;
default:printf("Opcion incorrectan");
menu();
}
}
void main()
{
menu();
}
realizar las siguientes modificaciones:
1.- definir la variable token para que reciba 9 componentes
2.- adecuar la tabla de simbolos para los operadores + , - y * , y las variables x, y, z, a, b.
3.- Almacenas en la tabla de componentes los elementos lexicos de la expresion siguiente:
x= a+z-y*b
espero puedan ayudarme... saludos!!!!