• Domingo 15 de Diciembre de 2024, 00:35

Autor Tema:  como almacenar en tabla de componentes?  (Leído 870 veces)

RoseCorpse

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
como almacenar en tabla de componentes?
« en: Martes 1 de Diciembre de 2009, 05:49 »
0
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!!!!

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: como almacenar en tabla de componentes?
« Respuesta #1 en: Miércoles 2 de Diciembre de 2009, 00:46 »
0
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 :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================