Título: Ayuda con programa de java...
Publicado por: Dulcrash en 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!* /*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(); 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(); } } } // 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 ]); } } }
Título: Re: Ayuda con programa de java...
Publicado por: Casidiablo en 7 Noviembre 2008, 21:52 pm
En este momento no tengo un compilador cerca... podrías poner el error que te sale?
Título: Re: Ayuda con programa de java...
Publicado por: Dulcrash en 7 Noviembre 2008, 22:12 pm
si claro que si...muchas gracias... perdon..esk son varios... :-[ comente el error que me señala en las respectivas lineas linea 26 linea 42 linea 153 linea 158 linea 173 /*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(); char ch; System. out. println( "Escribe texto:" ); cadena = leer.next(); for(int i=0;i<cadena.length();i++) // aqui me dice que ')' expected y tambien ';' expected { ch = cadena.charAt(i); Obj.push(ch); } for(int i=0; i<cadena.length(); i++) { Obj.pop(); } } } // hace uso de los metodos de la sig clase import java.io.*; // aqui marca 'class' or 'interface' expected 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==']') // ')' expected // illegal start expression // not a statement return true; else // 'else' without 'if' 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++) // illegal start of expression, expected ')' , expected ';' { System. out. println("pila["+i +"] : "+pila [i ]); } } }
Título: Re: Ayuda con programa de java...
Publicado por: juancho77 en 7 Noviembre 2008, 22:49 pm
En casi todas las lineas tenes errores de sintaxis. No siento ganas de pasar el codigo a un compilador, pero por lo que pude apreciar: for(int i=0;i<cadena.length();i++)
Cuando haces el for, esa no es la construccion sintactica correcta para una oracion. Fijate que la condicion de corte no se sabe cual es. Por eso java te tira un Illegal Start of expression o algo asi. if (dret=='(' && ch==')' || dret=='{' && ch=='}' || dret=='[' && ch==']')
Para concatenar strings usa el simbolo de concatenacion correcto de java que es " + " . Para indicarle a java que "algo" es un String, ese algo debe ir entre comillas dobles. La comilla simple indica caracter, y java no concatenara varios caracteres, a menos que se lo indiques expresamente con ... comillas dobles. :D De vuelta, todos los errores(o casi todos) son sintacticos. Revisa bien las estructuras mas basicas del lenguaje. Saludos!
Título: Re: Ayuda con programa de java...
Publicado por: juancho77 en 7 Noviembre 2008, 22:54 pm
Por que la palabra "E-xpression" es convertida por el Foro automaticamente y arbitrariamente a epresionje?? :huh:
Título: Re: Ayuda con programa de java...
Publicado por: Dulcrash en 8 Noviembre 2008, 03:12 am
hola juancho77!*
gracias por tu aporte..pero aun no he podido resolver mi problema...hize los cambios que me indicaste y aun así me sigue marcando los mismos errores :huh:
Título: Re: Ayuda con programa de java...
Publicado por: Dulcrash en 8 Noviembre 2008, 03:58 am
logre corregir varios errores pero aun me kedan estos..ojala me puedan ayudar..ya solo son 4... /*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 PilaCadena1 { public static void main ( String args [] ) { Scanner leer = new Scanner (System. in); operapilaschar Obj = new operapilaschar(); char ch; System. out. println( "Escribe texto:" ); cadena = leer.next(); for(int i=0; i< cadena.length(); i++) // expected ')' y expected ';' <--- linea 27 { ch = cadena.charAt(i); Obj.push(ch); } for(int i=0; i<cadena.length(); i++) { Obj.pop(); } } } // hace uso de los metodos de la sig clase 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( ) // illegal start of expression <--- linea 167 { 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 ]) } // expected ';' <------- linea 183
Título: Re: Ayuda con programa de java...
Publicado por: juancho77 en 8 Noviembre 2008, 09:35 am
A ver si le pones algo de ganas amigo. { System. out. println("pila ["+ i +"] : " + pila [i ]) }
Te falta cerrar con punto y coma (;) ! public static void estado( ) // illegal start of epresionje <--- linea 167
Fijate que has cerrado mal el metodo anterior. Faltan corchetes. Animo!
|