Foro de elhacker.net

Programación => Java => Mensaje iniciado por: l9_in en 13 Junio 2011, 23:25 pm



Título: este algoritmo es correcto en java??
Publicado por: l9_in en 13 Junio 2011, 23:25 pm
lo que pasa es que estoy empezando a programar en java y quisiera saber si mi programa es correcto, si corre pero quiero saber si la sintaxis y las reglas de java se cumplen

Código
  1. import java.util.*;
  2. public class palindromo {
  3.  
  4.    public static void main(String[] args) {
  5.        Scanner escaner =new Scanner (System.in);
  6.  
  7.       int NUM,N,DIG,NAUX,CON,M,A[];
  8.       A=new int[10];
  9.  
  10. System.out.println("Digita el numero");
  11.        NUM=escaner.nextInt();
  12.  
  13. N=NUM;
  14. DIG=1;
  15.  
  16. while (10<=N)
  17. {
  18.            N=N/10;
  19.            DIG++;
  20. }
  21. // System.out.println("la cantidad de digitos son: "+DIG);
  22.  
  23. CON=0;
  24. while (CON<DIG)
  25. {
  26.            M=NUM%10;
  27.            A[CON]=M;
  28.            NUM=NUM/10;
  29.            CON++;
  30. }
  31.  
  32. /* CON=0;
  33. while (CON<DIG)
  34. {
  35.             System.out.println(A[CON]);
  36.             CON++;
  37. }
  38. */
  39. CON=0;
  40. NAUX=A[CON]*10+A[CON+1];
  41.  
  42. while (CON+1<DIG-1)
  43. {
  44.            NAUX=NAUX*10+A[CON+2];
  45.            CON++;
  46. }
  47.  
  48. System.out.println("El palindromo es: **"+NAUX+"**");
  49.  
  50.    }
  51.  
  52. }
  53.  


Título: Re: este algoritmo es correcto en java??
Publicado por: bengy en 13 Junio 2011, 23:46 pm
no entiendo mucho tu code pero la manera en que programas es muy complicado
te aconsejo que dividas cada problema en un metodo
"     divide y venceras    "
 eh aqui el metodo palindromo

Código:
public String invertir(String cadena){
   int tamCadena =cadena.length()-1;
   String invertido="";
   int i=0;
   char caracter=' ';
        while(tamCadena>=0){
         
         caracter=cadena.charAt(tamCadena);
         invertido=invertido+caracter;
         tamCadena--;
    }
    return invertido;
   
    }

Código:
 public boolean palindromo1(String cadena){
        boolean res=false;
        if(cadena.equals(invertir(cadena))){
            res=true;
        }
        return res;
    }

aki uso dos metodos que juntos realizan una sola tarea
bye bye


Título: Re: este algoritmo es correcto en java??
Publicado por: l9_in en 14 Junio 2011, 00:32 am
no entiendo mucho tu code pero la manera en que programas es muy complicado
te aconsejo que dividas cada problema en un metodo
"     divide y venceras    "
 eh aqui el metodo palindromo

Código:
public String invertir(String cadena){
   int tamCadena =cadena.length()-1;
   String invertido="";
   int i=0;
   char caracter=' ';
        while(tamCadena>=0){
        
         caracter=cadena.charAt(tamCadena);
         invertido=invertido+caracter;
         tamCadena--;
    }
    return invertido;
    
    }

Código:
 public boolean palindromo1(String cadena){
        boolean res=false;
        if(cadena.equals(invertir(cadena))){
            res=true;
        }
        return res;
    }

aki uso dos metodos que juntos realizan una sola tarea
bye bye


ok ok ok,
mi diste la solucion, pero el maestro que esta medio loco de tanto programar asi me esta enseñando, me enseño c++ y ahora quiere los programas en java, lo que hice fue transcribirlos a java, (que por cierto si sirve mi programa  :xD), y nadamas quiero saber si es correcto como lo hize y sino solicito a alguien que me pueda ayudar  :-\ ... aaaaaaaaaaaa si, los metodos que me incluyes lo hacen con cadena de caracteres, pero mi maestro lo quiere con valores enteros, por eso utilizo el MOD.

en fin... a mi algoritmo nadamas le hace falta estar dividido en metodos,


oye una ultima cosa, como le saco la raiz a un numero en java?? me podrias poner un ejemplo??? gracias por responder!!! :laugh:



mira quiero sacarle raiz a FIB...:

public class primosdefibonacci {

    public static void main(String[] args) {
        int PRIM, SEG, FIB,A,M;
        float RA;
        
        PRIM=5;
        SEG=8;
        FIB=0;
        while (FIB<5000)
        {
            FIB=PRIM+SEG;
            PRIM=SEG;
            SEG=FIB;
            A=2;
            RA=Math.sqrt(FIB); // AQUI ME MARCA ERROR
                
                while(A<=RA)
                {
                    M=FIB%A;
                    if (M==0)
                        A=FIB;
                    A++;
                }
            if (FIB>A)
                System.out.println(FIB+"Es Primo");
            
        }
        
        
    }

}


ME MARCA ESTO AL COMPILAR:
found   : double
required: float
            RA=Math.sqrt(FIB);


Título: Re: este algoritmo es correcto en java??
Publicado por: bengy en 14 Junio 2011, 02:57 am
Espero que te sirva funciona con numerosssssssssssssssssssssssssssss
 alguna otra duda??????????             bye bye
Código:
public int invertirNumeros(int numerito){
    int res=0;
    int aux=0;
    while(numerito>=10){
        aux=numerito%10;
        res= res*10+aux;
        numerito=numerito/10;
    }
    res=res*10+numerito;
        return res ;
    }

Código:
public boolean capicua(int nume){
    boolean res=false;
    int num=invertirNumeros(nume);
    if(num==nume){
        res=true;
    }
    else{
    res=false;
    }
    return res;
    }


Título: Re: este algoritmo es correcto en java??
Publicado por: barbieturico en 16 Junio 2011, 09:00 am
Pues te lo digo de memoria, así que lo mismo no funciona así, pero el error que te está dando es porque tu programa espera que le pases un valor float para cargar en la variable RA, pero el resultado de Math.sqrt(FIB) devuelve un double. Para cargar el valor del double en el float deberás castearlo:
Código
  1. RA=new Double(Math.sqrt(FIB)).floatValue();

Otro detalle es que declaras todas las variables en mayúsculas. Esto funciona, pero en realidad es bastante feo. En mayúsculas se suelen declarar los nombres de constantes, y sería algo así:

Código
  1. static final int MICONSTANTE = 0;

Edito: Corregidos los tags para que interprete el código como java ;D


Título: Re: este algoritmo es correcto en java??
Publicado por: Debci en 16 Junio 2011, 09:13 am
Solo como, consideración offtopic, usen, si es posible las tag's de code para java ;)
Como NO hacer un post en el foro de java/url]

Un saludo (http://foro.elhacker.net/java/como_no_hacer_un_post_sobre_la_tematica_de_java-t298980.0.html)