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ú

Mensajes - -Ramc-

#201
Java / Re: Program java numeros primos
4 Diciembre 2008, 17:37 PM
Código (java) [Seleccionar]
public static boolean esPrimo(int numero) {
            double raiz = Math.sqrt(numero);
            boolean is = true;
            for(int i = 2; i <= raiz && is; i++) {
                     if(numero % i == 0)
                                is = false;
            }
            return is;
}

Ok te gusta mas así o ¿como lo deseas 43H4FH44H45H4CH49H56H45H?
También imprime los números primos :P

Si no tienes mas que aportar a este hilo, dejemosla hasta aquí, no quiero discutir con vos.

PD: El código claro que es mio, sino ni me hubiera molestado en contestarte.
#202
Java / Re: Evaluar Variable cuando esta vacia
4 Diciembre 2008, 16:09 PM
nfex y manzana simplemente son los nombres que les das a las variables de tipo NumberFormatException o Exception, que son otras clases mas.

Todas las excepciones, que puedas capturar y lanzar, se derivan de la clase Exception, por lo que capturar una excepción de tipo exception es com si capturaras cualquiera. Pero, mejor no te enredo mas xD.

Mira, los métodos pueden lanzar errores por diferentes razones, por ejemplo en el paquete io, que es el de entrada y salida estándar pueden haber errores, de que el archivo no existia y se intento leer, o que el archivo no tenia permisos de escritura, que la ruta estaba mal formada, etc, etc.

Un programa nunca es perfecto y esta propenso a errores, algunos son manejables como los que te mensione antes, estos errores que son manejables, java me dice que debo capturarlos y lanzarlos. Cuando tu pusiste en tu método main throws IOException.

Dijiste, mi método posiblemente lanze una IOException, cualquiera que desee usarlo, debe capturar estas excepciones. Es decir que cualquiera que llame tu método, debera llamarlo dentro de un try { } catch() { }, en el bloque try va la parte del código que puede lanzar una excepción, try lo protege, para que cuando se produzca la excepción haga algo con ella, el catch recibe las excepciones que puede producir el bloque try, por eso vemos catch(IOException e), etc, y en el bloque del catch, va lo que se debe hacer cuando ocurre esa excepción, la mayoria de programadores simplemente imprimen el error, con e.printStackTrace(); pero, si se puede hacer algo mas inteligente con el error, se debe hacer, cuando utilize e.printStackTrace();  utilize e, porque anteriormente hice esto catch(IOException e) le dije que la excepción la identificaria con el nombre e. Si no sabes que tipo de excepción pueda lanzar algún método, pero, sabes que lanza, puedes capturar Exception que es la excepción mas general de las manejables.

Ahí otro tipo de excepciones no manejables y es un tema un poco extenso, pero, creo que con lo básico ya tenes y practicando te saldra.

Cualquier duda, un MP o mejor aun, aquí en el foro.
#203
Java / Re: Evaluar Variable cuando esta vacia
3 Diciembre 2008, 23:47 PM
Los String son objetos por lo que si haces == estarias comprobando si los 2 objetos apuntan al mismo lugar, para comparar cadenas usa los métodos equals(String) y equalsIgnoreCase(String) de la misma clase String, con equals comparas y con equalsIgnoreCase, comparas sin importar las mayúsculas ni minúsculas.

seria algo como:

palabra.equals("");

PD: Para leer desde consola te recomiendo el uso de la clase Scanner que se encuentra en java.util :

Con:

Scanner sc = new Scanner(System.in);
String p = sc.next();


Mucho mas corto ;)
#204
Java / Re: Program java numeros primos
3 Diciembre 2008, 16:45 PM
Cita de: 43H4FH44H45H4CH49H56H45H en  1 Diciembre 2008, 14:54 PM
Lee bien, un entero no puede ser igual a un double (con decimales), la comparación de igualdad solo te sirve cuando sacas la raiz a un numero como 25, lo mejor seria hacer una conversion o un redondeo antes de la comparación.

Código (java) [Seleccionar]
public class comp {
public static void main(String[] args) {
int i = 5;
double a = 5.0;
boolean x = i == a;
System.out.println(x);
}
}


Eso devuelve true, porque aunque sean tipos de datos distintos, el valor es el mismo, si le pongo 5.1 devuelve false así que mi comparación <= es correcta.

Cita de: 43H4FH44H45H4CH49H56H45H en  1 Diciembre 2008, 14:54 PM
Criticas el uso de break, pero que uso le das al return en tu bucle?
Yo retorno un valor que mi método debe devolver sino de que otra forma, pero, tu usas break y rompes con el curso de tu bloque y hasta donde yo se, no se puede break num; por lo que uso return para devolver.

Cita de: ^TiFa^ en  3 Diciembre 2008, 16:21 PM
-Ramc- y yo nos hemos ido de fiesta   ;D    ;D   ;D

Lo siento 43H4FH44H45H4CH49H56H45H  no creo que queramos discutir...

Al menos esa no es mi intencion, y tampoco se me ensena eso   :rolleyes:
 
Lo vez ^TiFa^ solo se ha dedicado a criticar sin tan siquiera probar los códigos y comprobar que lo que el dice es cierto.   :laugh:

43H4FH44H45H4CH49H56H45H como dice ^TiFa^ no queremos discutir, pero, estas atacandonos sin razón alguna, desde que comenzo el topic fuiste agresivo en tus post, cuando no tenias la razón.
#205
Y ¿porque haces eso? Es mejor ir leyendo el archivo hasta que te devuelva null, porque llegó al final de este.
#206
Java / Re: No me sale el algoritmo! >_>
28 Noviembre 2008, 20:15 PM
~AbbadoN~  printf no existe :P

supongo que numero1 es 0, al principio del bucle y lo imprime, después aumenta en 1 es decir que numero1 seria 1, hace la comprobación de que numero1 sea menor que numero2, supongo que numero2 sera uno mas grande, luego comprueba que numero1%2 no sea 0 y pasa la comprobación, vuelve a entrar, imprime el 1, aumenta a 2, hace la comprobación y como 2%2 da 0, sale del bucle y no entra mas. Por eso solo te imprime 2 numeros.
#207
Java / Re: Program java numeros primos
28 Noviembre 2008, 20:05 PM
43H4FH44H45H4CH49H56H45H me quieres decir que solo existen raices decimales, creo que las matematicas te hacen falta a vos, claro que un entero puede ser mayor o igual a un flotante.

Código (java) [Seleccionar]
public boolean esPrimo(int numero) {
            double raiz = Math.sqrt(numero);
            for(int i = 2; i <= raiz; i++) {
                     if(numero % i == 0)
                                return false;
            }
            return true;
}

Mi metodo funciona y es tan fácil como que si quiero los primeros 900 numeros primos, me los dara:

Código (java) [Seleccionar]
public class Primos {
public static boolean esPrimo(int numero) {
        double raiz = Math.sqrt(numero);
        for(int i = 2; i <= raiz; i++) {
            if(numero % i == 0)
                        return false;
            }
            return true;
}

public static void main(String[] args) {
int i = 2;
int num = 0;
while(num < 900) {
if(esPrimo(i)) {
System.out.print(i + " ");
num++;
}
i++;
}
}
}


Adivina, ese code que esta arriba, lista los primeros 900 numeros primos, que tu PC no de para mas de 900 es otra cosa y si queres comprobarlos con tu calculadora de bolsillo señor matematico, por mi no hay problema.
Si piensas probarlo, por si las dudas, guardalo como Primos.java  :laugh:

Tu código hace lo mismo que el mio, el mio es mas corto, no hay problema, pero, que digas que no sirva sin haberlo probado es otra cosa, ¿eres siempre así de hostil o estas de malas?

^TiFa^  obviamente tenemos a alguien a quien no le funciono el netbeans y si el ide no lo compila estara malo?
#208
Java / Re: No me sale el algoritmo! >_>
27 Noviembre 2008, 18:33 PM
Si entendi bien, lo que quieres es que te imprima los números impares y primos, en el otro post, puse un algortimo para ver si un número es primo, tal vez te sirva, y para los impares podrias hacer algo mas o menos así:

Código (java) [Seleccionar]
for(int i = numero1; i < numero2; i++) {
                if((i % 2) != 0)
                        System.out.println(i + " es impar");
}


el de los primos es:

Código (java) [Seleccionar]
public boolean esPrimo(int numero) {
            double raiz = Math.sqrt(numero);
            for(int i = 2; i <= raiz; i++) {
                     if(numero % i == 0)
                                return false;
            }
            return true;
}


En tus algoritmos:
printf no existe y no se usa de esa forma el println, mira como lo uso en el de arriba.

El segundo algoritmo sale al primer número que no sea impar.

Y el tercero, igual lo del printf y ademas es <= no =<, también te dara errores. No tengo tiempo de mirarlos bien, porque voy de salida a clases, pero, creo que es eso mas o menos.
#209
Java / Re: Program java numeros primos
27 Noviembre 2008, 15:43 PM
43H4FH44H45H4CH49H56H45H tu algoritmo no es muy bueno, ademas de que el break en muchos casos quiere decir que la condición de parada de tu bucle no es la correcta, otra cosa, te recomiendo usar Scanner en vez del InputStreamReader, yo propongo este algoritmo para comprobar si un numero es primo:

Código (java) [Seleccionar]
public boolean esPrimo(int numero) {
            double raiz = Math.sqrt(numero);
            for(int i = 2; i <= raiz; i++) {
                     if/numero % i == 0)
                                return false;
            }
            return true;
}

Si a alguien le sirve, simplemente lo envias en un for y listo, guardas en un arreglo los que te devuelvan true.
#210
Java / Re: Parar bucle
26 Noviembre 2008, 21:03 PM
pone en tu bucle que la condición de parada sea
c != n
donde c es la variable de la que se lee y n es la variable que hara que pare todo.