Autor
|
Tema: Ejercicios prácticos Java (Leído 9,692 veces)
|
Superplay
Desconectado
Mensajes: 670
|
Ahora planteo un poco en pseudocodigo
Inicio Programa Declarar variables n = 0 y contador = 0; Mientras contador < 20 Si n Modulo 2 es diferente a 0 Ó n es igual a 2 Imprime n contador aumenta + 1 Fin Si n aumenta + 1 Fin Mientras Fin Programa
Coño alguien junto con el primero o el segundo que mostró su código, que me entiende. Tengo una duda respecto a tu pseudocódigo... ¿Qué significa para ti módulo en esa parte del código? A mi lo que no me queda claro es... si para demostrar que un número es primo SÓLO debe ser divisible por uno y por si mismo, y un número no primo lo es si es divisible por otro número que no sea ni él mismo ni el uno... (ej: el 6, se puede dividir entre 2, entre 3) por lo tanto, tendré que tener un bucle de 1 a 20 que me los divida todos y entonces necesitaré una variable para ese bucle y otra variable que me cuente el número de divisiones que sean iguales a 0... si ese numero es 2, el numero es primo y si es >2 es no primo... pero el problema me pide que lo haga con sólo dos variables...una que represente el número que divido y otra el contador para saber cuantos numeros primos llevo ya... y es lo que me mata y no me deja hacer bien el código xD
|
|
|
En línea
|
"Nací siendo un virus" By Windows. Este mensaje no es por ofender, yo uso Windows también, simplemente... es broma
|
|
|
s00rk
Desconectado
Mensajes: 195
|
Coño alguien junto con el primero o el segundo que mostró su código, que me entiende.
Tengo una duda respecto a tu pseudocódigo... ¿Qué significa para ti módulo en esa parte del código?
A mi lo que no me queda claro es... si para demostrar que un número es primo SÓLO debe ser divisible por uno y por si mismo, y un número no primo lo es si es divisible por otro número que no sea ni él mismo ni el uno... (ej: el 6, se puede dividir entre 2, entre 3) por lo tanto, tendré que tener un bucle de 1 a 20 que me los divida todos y entonces necesitaré una variable para ese bucle y otra variable que me cuente el número de divisiones que sean iguales a 0... si ese numero es 2, el numero es primo y si es >2 es no primo... pero el problema me pide que lo haga con sólo dos variables...una que represente el número que divido y otra el contador para saber cuantos numeros primos llevo ya... y es lo que me mata y no me deja hacer bien el código xD
Modulo es este simbolo % el cual te da el residuo de una division y como sabemos si da 0 esq es primo por eso ponemos != 0
|
|
|
En línea
|
|
|
|
Superplay
Desconectado
Mensajes: 670
|
Modulo es este simbolo % el cual te da el residuo de una division y como sabemos si da 0 esq es primo por eso ponemos != 0
Mil millones de gracias, con decirme que modulo era % ya he visto como lo hace y si... Dios, que tonto soy por no darme cuenta de lo simple que era. Ya lo tengo. Muchas gracias Am también te falta comprobar n%3!=0 porque si se divide entre 3 es primo Uf, gracias... bueno voy a ponerme con un cacho código que me hace gracia... de números primos ahora tengo que ponerme con listas enlazadas de Java... cosa que no di en C el año pasado y que no tengo ni idea. Gracias y si vuelvo a tener problemas, lo posteo por aquí El código al final me ha quedado: public class ejercicio33 { public static void main(String args[]) { int contador=0, numero=0; while(contador<20){ if((numero%2 != 0 && numero%3 !=0) || (numero==1) || (numero==2)){ System.out.println("El número " + numero + " es primo"); contador++; } numero++; } } }
|
|
« Última modificación: 8 Noviembre 2011, 15:10 pm por Superplay »
|
En línea
|
"Nací siendo un virus" By Windows. Este mensaje no es por ofender, yo uso Windows también, simplemente... es broma
|
|
|
Superplay
Desconectado
Mensajes: 670
|
Ahora viene lo jodido de localizar: Tenemos el siguiente código: class Item { Item siguiente; { this.objeto=objeto; this.siguiente = null; } } class ListaEnlazada { Item primero; Item activo; ListaEnlazada() { this.primero = null; this.activo = null; } boolean moveNext() { if(this.activo.siguiente!=null){ this.activo=this.activo.siguiente; return true; } else return false; } void moveFirst() { this.activo=this.primero; } void moveLast() { boolean a; do{ a=moveNext(); }while(a==true); } { return this.activo; } void addItem(Item nuevo) { if(this.primero==null) { this.primero=nuevo; this.primero.siguiente=null; this.activo=this.primero; }else{ moveLast(); this.activo.siguiente=nuevo; this.activo=nuevo; } } void insertItem(Item nuevo) { this.activo.siguiente=nuevo; this.activo=nuevo; } } abstract class Figura //defino figura, pero como abstracta { //métodos abstractos, sólo tienen declaración. No se definen abstract double area(); abstract void muestra(); } class Circulo extends Figura { double x,y,radio; Circulo (double a, double b, double c) //Constructor { x = a; y = b; radio = c; } double area() //Redefinido, calcula el área { double varea; varea = 3.1416 * radio * radio; return varea; } void muestra() //Redefinido, muestra la figura { System. out. println("Círculo de radio " + radio + " y de centro (" + x + "," + y +")"); } }//fin clase Circulo class Rectangulo extends Figura { double x1,y1,x2,y2; Rectangulo (double a, double b, double c, double d) { x1 = a; y1 = b; x2 = c; y2 = d; } double area() //Redefinido, calcula el área { double varea; varea = (x2-x1) * (y2-y1); return varea; } void muestra() //Redefinido muestra la figura { System. out. println("Rectángulo esquina (" + x1 + ","+ y1 +") y ("+ x2 +","+ y2 +")"); } }//fin clase rectángulo class Triangulo extends Figura { double x1,y1,x2,y2,x3,y3; Triangulo (double a, double b, double c, double d, double e, double f) //Constructor { x1 = a; y1 = b; x2 = c; y2 = d; x3 = e; y3 = f; } double area() //Redefinido, calcula el área { double varea; varea = ((x2-x1)*(y2-y1))/2; return varea; } void muestra() //Redefinido, muestra la figura { System. out. println("Triángulo esquina (" + x1 + "," + y1 + "),(" + x2 + "," + y2 + "),(" + x3 + "," + y3 +")"); } }//fin clase triángulo class Rombo extends Figura { double diagonalmayor,diagonalmenor; Rombo (double a, double b) //Constructor { diagonalmayor = a; diagonalmenor = b; } double area() //Redefinido, calcula el área { double varea; varea = diagonalmayor*diagonalmenor/2; return varea; } void muestra() //Redefinido, muestra la figura { System. out. println("Rombo diagonal mayor:" + diagonalmayor + ", diagonal menor:" + diagonalmenor ); } }//fin clase rombo public class ejercicio43 { { char eleccion, figura; int salir, i=0; ListaEnlazada Lista= new ListaEnlazada(); do{ System. out. println("\n0-Salir\n"); System. out. println("1-Muestra todas las figuras\n"); System. out. println("2-Muestra el área de todas las figuras\n"); System. out. println("3-Crear una nueva figura en una posición concreta\n"); System. out. println("Introduce lo que quieres realizar: "); eleccion =(char) System. in. read(); boolean a; switch (eleccion)//Sentencia Switch { case '0': System. out. println("¿Desea salir? Introduzca un 1 si lo desea: "); salir =System. in. read(); //Lee el número que introduzca el usuario if(salir!=1){ System. exit(0);//Sale del programa } break; case '1': System. out. println("A continuación mostraremos todas las figuras: \n\n"); Lista.moveFirst(); do{ a=Lista.moveNext(); ((Figura)Lista.activo.objeto).muestra(); }while(a==true); break; //Salimos opción 1 case '2': System. out. println("A continuación calculamos el área de todas las figuras: \n\n"); Lista.moveFirst(); do{ a=Lista.moveNext(); System. out. println("El área del objeto es: " + ((Figura )Lista. activo. objeto). area()); }while(a==true); break; //Salimos opción 2 case '3': System. out. println("Seleccione la figura que desea crear\n"); System. out. println("0-Círculo\n"); System. out. println("1-Rectángulo\n"); System. out. println("2-Triángulo\n"); System. out. println("3-Rombo\n"); System. out. println("Introduce lo que quieres realizar: "); figura=(char) Item nuevoitem; switch (figura)//Sentencia Switch { case '0': Circulo nuevocirculo=new Circulo (80.0,40.0,30.0); nuevoitem=new Item(nuevocirculo); Lista.addItem(nuevoitem); break; case '1': Rectangulo nuevorectangulo=new Rectangulo(4.0, 10.0, 20.0, 30.0); nuevoitem=new Item(nuevorectangulo); Lista.addItem(nuevoitem); break; case '2': Triangulo nuevotriangulo=new Triangulo(10.0, 0.0, 20.0, 10.0, 5.0, 1.0); nuevoitem=new Item(nuevotriangulo); Lista.addItem(nuevoitem); break; case '3': Rombo nuevorombo=new Rombo(5.0, 2.0); nuevoitem=new Item(nuevorombo); Lista.addItem(nuevoitem); break; default: break; } break; } }while((eleccion=='1')||(eleccion=='2')||(eleccion=='3')); } }
El código "va" hace casi lo que tiene que hacer, el problema es que no sé porque al agregar una figura y darle a mostrar se muestra, pero si agregamos otra esta se solapa y hace que se muestre 2 veces la figura que hemos agregado... y asi continuamente :O ¿Alguien puede decirme que hace que haga eso? Gracias.
|
|
« Última modificación: 8 Noviembre 2011, 22:12 pm por madpitbull_99 »
|
En línea
|
"Nací siendo un virus" By Windows. Este mensaje no es por ofender, yo uso Windows también, simplemente... es broma
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ejercicios simples en Java
« 1 2 »
Ejercicios
|
:ohk<any>
|
15
|
18,324
|
29 Agosto 2008, 05:59 am
por Newbie´s
|
|
|
Ejercicios Java
Ejercicios
|
Lorena88
|
1
|
7,376
|
21 Enero 2009, 01:42 am
por Amerikano|Cls
|
|
|
2 ejercicios de java
Java
|
kay19
|
1
|
9,299
|
28 Agosto 2009, 20:34 pm
por Caballero Maldito
|
|
|
Ejercicios Java
« 1 2 »
Java
|
rshocush
|
12
|
15,820
|
10 Marzo 2010, 15:15 pm
por Mai89
|
|
|
Juego ejercicios #2 [Java]
« 1 2 3 4 5 »
Ejercicios
|
Amerikano|Cls
|
47
|
44,992
|
20 Abril 2011, 09:20 am
por AleX Inc.
|
|