Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Temas - Dulcrash

#1
Java / Ayuda con programa de java...
7 Noviembre 2008, 21:35 PM
Hola a todos!*
ps soy nueva aqui en el foro y les agradecere mucho si pudieran ayudarme..
mi problema es el siguiente:
mi profesor me encargo un programa en el cual por medio de pilas se introdujera una cadena cualquiera y k como resultado me imprimiera la misma pero a la inversa
Ejemplo: Si se escribe la palabra JAVA.
La impresión sera:
   A
   V
   A
   J

Ya investigue y trate de resolverlo..pero al compilar el codigo me marca error y pues necesito de su ayuda para encontrar en que estoy mal..llevo como 3 dias tratando de resolverlo y no he podido...
de antemano gracias!*

Código (JAVA) [Seleccionar]


/*Programa en Java que hace uso de pilas.
*En este programa se le ingresa una palabra,separa las letras
*y las imprime de una en una de abaja hacia arriba:
*Ejemplo: Si se escribe la palabra JAVA.
*La impresión sera:
*  A
*  V
*  A
*  J
*/

import java.io.*;   
import java.util.Scanner;   
public class PilaCadena
{   
       public static void main( String args[] ){   
       Scanner leer = new Scanner(System.in);   
       operapilaschar Obj = new operapilaschar();   
 
       String cadena;   
       char ch;   
 
       System.out.println( "Escribe texto:" );   
       cadena = leer.next();   
 
       for(int i=0;i<cadena.length();i++)
       {   
        ch = cadena.charAt(i);   
        Obj.push(ch);   
        }   
 
        for(int i=0; i<cadena.length(); i++)
        {   
            Obj.pop();   
            System.out.println(Obj.dret);   
            }   
       }   



// hace uso de los metodos de la sig clase
import java.io.*; 

class operapilaschar   
 
  {   
 
    public static char dret;   
 
    public static int max;   
 
    public static char pila[];   
 
    public static int tope = -1;   
 
    public operapilaschar()   
 
      {   
 
    max=20;   
 
    pila=new char [max];   
 
      }   
 
    public operapilaschar(int n)   
 
      {   
 
     max=n-1;   
 
     pila = new char [max];   
 
      }           
 
public static boolean pila_Llena(int tope,int max)   
 
  {   
 
     boolean llena;   
 
     if (tope==max)   
 
          llena=true;   
 
        else 
 
          llena=false;   
 
     return llena;   
 
  }           
 
public static boolean pila_Vacia(int tope)   
 
  {   
 
     boolean vacia;   
 
     if (tope == -1)   
 
        vacia=true;   
 
       else 
 
        vacia=false;   
 
     return vacia;   
 
  }   
 
public static void push(char dato)   
 
{   
 
    if(pila_Llena(tope,max))   
 
      System.out.println("!Cuidado!, Desbordamiento!!!!!");   
 
       else 
 
         {   
 
            tope++;   
 
            pila[tope]=dato;// pone el nuevo dato en la pila   
 
         }   
 
}             
 
public static void pop()   
 
{   
 
    if (pila_Vacia(tope))   
 
       System.out.println("!Cuidado!, Subdesbordamiento!!!!!");   
 
    else {   
 
          dret=pila[tope];   
 
          tope--;   
 
          }// actualiza tope y se elimina elemento en el tope   
 
}   
 
public static boolean compara(int dret,int ch)   
 
{   
 
    if (dret=='(' && ch==')' || dret=='{' && ch=='}' || dret=='[' && ch==']')   
 
      return true;   
 
      else   
 
      return false;   
 
}   
 
public static void estado()   
 
  {   
 
    int i;   
 
    System.out.println(" El estado de la pila es : ");   
 
    System.out.println(" --------------------------");   
 
    for(i=0;i<=tope;i++)   
 
     {   
 
        System.out.println("pila["+i+"] : "+pila[i]);   
 
     }   
 
  }   
}