www.espacioalternativoiscjosh.es... te tkm mi deysit@
   
  ESPACIOALTERNATIVOISCJOSH
  Gramatica vacia o no vacia java
 

import java.awt.*;
import hsa.Console;

public class Gramatica
{
    static Console c;

    public static void main (String args[])
    {
 c = new Console ();
 c.println ("*** Programa que determina si una gramatica es vacia ***");
 c.println ("");
 c.println ("Introduzca Variables (introduzca preferentemente simb en MAYUSCULAS)");
 c.println ("Introduzca el numero de elementos v");
 int nv = c.readInt ();
 c.println ("Introduzca Variables");
 String v[] = new String [nv];
 for (int i = 0 ; i < nv ; i++)
 {
     v [i] = c.readString ();
 }
 c.println ("Introduzca el numero de elementos Terminales");
 int nt = c.readInt ();
 c.println ("Introduzca Terminales");
 String T[] = new String [nt];
 for (int i = 0 ; i < nt ; i++)
 {
     T [i] = c.readString ();
 }
 String s = v[0];
 c.println ("S = "+ s);
 c.println ("Introduzca P:");
 
 int nr = nv;
 c.println ("Introduzca el numero reglas de Produccion  "+ nr);
 String P[] [] = new String [nr] [5];
 for (int i = 0 ; i < nr ; i++)
 {
     c.println ("Regla " + (i+1));
     P [i] [0] = c.readString ();
     c.println ("Numero de cadenas de la Regla de Produccion");
     int nc = c.readInt ();
     c.println ("Introduzca la cadena de la Regla de Produccion");
     for (int j = 1 ; j <= nc ; j++)
     {
  P [i] [j] = c.readString ();
       
     }
 }
 c.clear ();
 c.println ("*** Programa que determina si una Gramatica es Vacia o No ***");
 c.println ("");
 c.print ("V = {");
 for (int i = 0 ; i < nv - 1 ; i++)
 {
     c.print (v [i] + ", ");
 }
 c.println (v [nv - 1] + "}");
 c.print ("T = {");
 for (int i = 0 ; i < nt - 1 ; i++)
 {
     c.print (T [i] + ", ");
 }
 c.println (T [nt - 1] + "}");
 c.println ("S = " +v[0]);
 c.println ("");
 c.println ("P: ");
 for (int i = 0 ; i < nr ; i++)
 {
     c.print ("   ");
     c.print (P [i] [0]);
     c.print (" = ");
     for (int j = 1 ; j < 5 ; j++)
     {
  if (P [i] [j] != null)
      c.print (P [i] [j]+ ", ");
     }
     c.println ( ", ");
 }
 String t = "";
 for (int i = 0 ; i < nt ; i++)
 {
     t = t + T [i];
 }
 //determinar vacia
 String Nuevo = " ", Anterior = " ";
 String TUAnterior = t + Anterior;
 c.println (" Nuevo      Anterior      TUAnterior ");
 c.println (" " + Nuevo + "   " + Anterior + "   " + TUAnterior);
 String aux, aux1, aux2, aux3;
 String nuevo = "";
 int m;
 do
 {
     Anterior = Nuevo;
     for (int i = 0 ; i < TUAnterior.length () ; i++)
     {
  aux = TUAnterior.substring (i, i + 1);

  for (int j = 0 ; j < nr ; j++)
  {
      for (int k = 1 ; k < 5 ; k++)
      {
   aux1 = P [j] [k];

   if (aux1 != null)
   {
       for (int l = 0 ; l < aux1.length () ; l++)
       {
    aux2 = aux1.substring (l, l + 1);

    if (aux.compareTo (aux2) == 0)
    {
        if (nuevo != "")
        {
     for (m = 0 ; m < nuevo.length () ; m++)
     {
         aux3 = nuevo.substring (m, m + 1);
         if (aux3.compareTo (P [j] [0]) == 0)
      break;
     }
     if (m == nuevo.length ())
         nuevo = nuevo + P [j] [0];

     break;
        }
        else
     nuevo = nuevo + P [j] [0];
    }
       }
   }
      }
  }
     }
     Nuevo = nuevo;
 }
 while ((Nuevo.compareTo (Anterior) < 0) || (Nuevo.compareTo (Anterior) > 0));

 c.println ("   " + Nuevo);

 int e;
 String aux4;
 for (e = 0 ; e < Nuevo.length () ; e++)
 {
     aux4 = Nuevo.substring (e, e + 1);
     if (aux4.compareTo (s) == 0)
  break;
 }
 if (e == Nuevo.length ())
     c.println ("La Gramatica es VACIA");
 else
     c.println ("La Gramatica NO es VACIA");
    }
}


 

 
 
 
 
chemajosh1290@hotmail.com Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis