SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: RoseCorpse 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!!!!
-
Te tengo la noticia que aqui no hacemos tareas.
Si tienes dudas con algun error que te salga al modificar el programa, te podremos ayudar, pero hacerlo todo por ti no se puede, aunque tengas mucha urgencia por que te hayan enviado el correo tarde :wacko:
Saludos :)