Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda con trabajo

Estas en el tema de Ayuda con trabajo en el foro de Java en Foros del Web. Hola, bueno keria pedir ayuda en mi tarea, es que mi ignorancia no me deja pensar y decearia saber si estoy mal y la forma ...
  #1 (permalink)  
Antiguo 21/04/2006, 13:13
 
Fecha de Ingreso: febrero-2006
Mensajes: 9
Antigüedad: 18 años, 2 meses
Puntos: 0
Ayuda con trabajo

Hola, bueno keria pedir ayuda en mi tarea, es que mi ignorancia no me deja pensar y decearia saber si estoy mal y la forma en que deberia seguir me han dejado un pequeño trabajo tengo que hacer un menu con dos opciones, la primera es un palindromo y la segunda opcion factorial...

es decir si se elige la primera opcion del menu (palindromo) este tiene que pedir la cadena( palabra) invertirla despues compararla y decir si esta es palindromo o no, despues ver si decea otra operacion y si no regresar...

por ejemplo :

introduzca la primera palabra:

ANA

invierte :

ANA

Si es palindromo !!!

lo entiendo pero no logro hacer que esta se voltee y la segunda opcion que es factorizar es introducir un valor entero despues obtener su factorial pero aqui de dos formas con la opcion while y con la opcion Do, ver si decea introducir otro valor y regresar al menu...

creen poder ayudarme ojala que si es un poco urgente y creo que no entiendo del todo lo que tengo que hacer se que en el palindromo tengo que irlas invirtiendo de una en una las letras con un ciclo pero ayy no entiendo bien AYUDENME !!!

de antemano Gracias!!
  #2 (permalink)  
Antiguo 21/04/2006, 13:52
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 10 meses
Puntos: 24
Por ejemplo, podrías hacer un bucle de la siguiente manera:

Código:
int opt = 2;
while(opt!=0){
System.out.println("Seleccione que desea hacer:\n"
                        +"1 - palindromo\n"
                        +"2 - factorial\n"
                        +"0 - salir");
// Leer opcion del teclado y guardarlo en opt
if(opt==1)
	palindromo();
else
	factorial();
}
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #3 (permalink)  
Antiguo 21/04/2006, 13:55
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 10 meses
Puntos: 24
Lo que pides sobre dar vuelta una cadena es bastante facil.
Tampoco es cuestion de que te hagamos la tarea.
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #4 (permalink)  
Antiguo 23/04/2006, 18:17
 
Fecha de Ingreso: febrero-2006
Mensajes: 9
Antigüedad: 18 años, 2 meses
Puntos: 0
hise algo parecido para el menu pero mi problema es con las cadenas la factorial si la tengo pero estoy super confundida con el palindromo tenia algo asi :

fallo=0;
con=0;
frase=JOptionPane.showInputDialog(”Introduce La palabra");
long1=frase.length();
con2=long1-1;
System.out.println(long1);
while (con<long1)
{
if (frase.charAt(con)!=frase.charAt(con2))
{
fallo++;
con++;
con2–;
}
con++;
con2–;
}
if(fallo>0)
System.out.println(”La frase NO es Palindromo”);
else
System.out.println(”La frase es Palindromo”);
}


se k estoy algo revuelta pero yo no pedi que me resolvieran mi tarea simplemente una ayuda es lo k deceo, pues cuando me lo pidiieron nunca me lo explicaron solo me lo dejaron hacer sin mas
  #5 (permalink)  
Antiguo 23/04/2006, 19:29
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 10 meses
Puntos: 24
Quizas esto te sirva:

Código:
	private String fraseAlreves(String iPalabra){
		char[] otraPalabra = new char[iPalabra.length()];
		char[] palabra = iPalabra.toCharArray();
		for(int i=0;i<iPalabra.length();i++)
			otraPalabra[i] = palabra[iPalabra.length()-i-1];
		return new String(otraPalabra);
	}
	
	private boolean esPalindromo(String palabra){
		if(palabra.equals(fraseAlreves(palabra)))
			return true;
		else
			return false;
	}
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #6 (permalink)  
Antiguo 23/04/2006, 21:11
 
Fecha de Ingreso: febrero-2006
Mensajes: 9
Antigüedad: 18 años, 2 meses
Puntos: 0
gracias de antemano, pues mas o menos la llevo
ahora tenemos un problema pues somos varios (ni por k somos muchas cabezas no no han enseñado a devolvernos

tenemos nuestro menu ok,
despues hace lo del palindromo ok
pero cuando le pedimos que regrese como hago para que regrese con un ciclo
pero return a donde @@ lo siento soy principiante
  #7 (permalink)  
Antiguo 24/04/2006, 07:07
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 10 meses
Puntos: 24
Como has hecho el bucle?
En el mensaje #2, te explique como hacerlo.

Saludos
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #8 (permalink)  
Antiguo 24/04/2006, 09:24
Avatar de Tipdar  
Fecha de Ingreso: octubre-2005
Ubicación: Aquí y allá.
Mensajes: 323
Antigüedad: 18 años, 6 meses
Puntos: 7
Hola aksha69, estos algoritmos que te pongo a continuación le darán un poco de trabajo al garbage collector de java, pero me gusta más hacer las cosas recursivas... siempre que se pueda, claro.

public boolean esPalindromo(String s) {
if (s.length() <= 1)
return true;
else if (s.charAt(0) == s.charAt(s.length() - 1))
return esPalindromo(s.substring(1, s.length() - 1));
return false;
}

Y para el factorial:

public int factorial(int numero) {
if (numero == 0)
return 1;
return numero * factorial(numero - 1);
}

Las soluciones iterativas son muy eficientes, pero las soluciones recursivas dividen el problema en pequeños problemas. Divide y vencerás...

Solo recordarte que el factorial crece muy rápido... así que es posible que necesites usar el tipo de dato long en lugar de int... no te asustes si te da problemas a la hora de calcular números no tan grandes.
__________________
El último TipdaR

Última edición por Tipdar; 24/04/2006 a las 12:52
  #9 (permalink)  
Antiguo 24/04/2006, 09:28
Avatar de Tipdar  
Fecha de Ingreso: octubre-2005
Ubicación: Aquí y allá.
Mensajes: 323
Antigüedad: 18 años, 6 meses
Puntos: 7
Cita:
Iniciado por akasha69
gracias de antemano, pues mas o menos la llevo
ahora tenemos un problema pues somos varios (ni por k somos muchas cabezas no no han enseñado a devolvernos

tenemos nuestro menu ok,
despues hace lo del palindromo ok
pero cuando le pedimos que regrese como hago para que regrese con un ciclo
pero return a donde @@ lo siento soy principiante

Tolaware te dio la solución a esto, aunque anteriormente ví que tenuias un JOptionpane... ¿Estás haciendo tu programa visual o en modo de consola? Define bien eso...
__________________
El último TipdaR
  #10 (permalink)  
Antiguo 24/04/2006, 20:04
 
Fecha de Ingreso: febrero-2006
Mensajes: 9
Antigüedad: 18 años, 2 meses
Puntos: 0
Holap miren muchas gracias mas o menos ya tengo mi programa con sus datos y con mi cerebro eh hecho algunas correcciones y me ah quedado de esta forma:

class menu
{
public static void main(Strigng [] arg)
{
string cadena;
int a,b,c,x,y,k;

do
{
k=0;
system.out.println("Menu");
system.out.println("1. polindromo");
system.out.println("2.factorial");
system.out.println("3.Salir");
system.out.println("opcion:");

Input datos = new Input();
// nosotros usamos una clase llamada input que utiliza todos los metodos

op=datos.readInt();

if(op==1)
{
system.out.println("opcion palindromo");
system.out.println("introduzca los datos");
cadena=datos.readLine();
c=(cadena.length());

x=0;
y=c-1;

do
{
system.out.println(cadena.CharAT(c-1));
c=c-1;
}

while (c>0);

do

{
if(cadena.charAT(x)==(cadena.charAT(y-x));
{
}
else
{
k=1;
}
x=x+1;
}
while (x<y);
if(k==1)
{
system.out.println("no es palindromo");
}
else
{
system.out.println("Si es palindromo");
}
}
else
if(op==2)
{
system.out.println("Factorial");
system.out.println("introduzca numero");
a=datos.readInt();
b=a-1;
c=a;
do
{
c=b*c;
b=b-1;
}

while (b>0);
system.out.println("el resultado es" + c);
}
else
{
while(op!=3)
{
}
}


y asi termina u__u creo que le falta algo verdad o mi forma de programar es deficiente lo siento apenas voy aprendiendo y pues no es facil por eso acudo a ayuda de personas como ustedes que ayudan sin recibir nada a cambio mas que el mismo deceo de ayudar.. bueno ojala puedan revisarlo y decirme si me falta algo o si estoy mal de verdad me gustaria mucho ...
  #11 (permalink)  
Antiguo 24/04/2006, 20:17
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 10 meses
Puntos: 24
A simple vista se ve bien, salvo por un par de detalles:
Trata de dividir tus codigos en funciones, este programa puede llegar a ser innecesaria la división, pero cuando tengas que encarra programas mas grandes, vas a tener que dividir si o si, o te perderas en un mar de codigo.

Hay un par de errores de tipeo:
public static void main(Strigng [] arg) // no es Strigng, es String
if(cadena.charAT(x)==(cadena.charAT(y-x)); { //el punto y como estan de mas y te flata un parentesis al final
system.out.println() es en realidad System.out.println()

Compilaste este código?
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:54.