• Viernes 8 de Noviembre de 2024, 17:58

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - RoseCorpse

Páginas: [1]
1
C/C++ / como almacenar en tabla de componentes?
« 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!!!!

Páginas: [1]