elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ejercicios prácticos Java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicios prácticos Java  (Leído 9,692 veces)
Superplay


Desconectado Desconectado

Mensajes: 670



Ver Perfil
Re: Ejercicios prácticos Java
« Respuesta #10 en: 8 Noviembre 2011, 14:54 pm »

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 Desconectado

Mensajes: 195



Ver Perfil
Re: Ejercicios prácticos Java
« Respuesta #11 en: 8 Noviembre 2011, 15:01 pm »

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 Desconectado

Mensajes: 670



Ver Perfil
Re: Ejercicios prácticos Java
« Respuesta #12 en: 8 Noviembre 2011, 15:07 pm »

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 :D

Am también te falta comprobar n%3!=0 porque si se divide entre 3 es primo :P

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:

Código:
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 Desconectado

Mensajes: 670



Ver Perfil
Re: Ejercicios prácticos Java
« Respuesta #13 en: 8 Noviembre 2011, 15:35 pm »

Ahora viene lo jodido de localizar:

Tenemos el siguiente código:

Código
  1. class Item
  2. {
  3.    Item siguiente;
  4.    Object objeto;
  5.  
  6.    Item(Object objeto)
  7.    {
  8.            this.objeto=objeto;
  9.            this.siguiente = null;
  10.        }
  11.    }
  12.  
  13. class ListaEnlazada
  14. {
  15.    Item primero;
  16.    Item activo;
  17.  
  18.    ListaEnlazada()
  19.    {
  20.            this.primero = null;
  21.            this.activo = null;
  22.  
  23.  
  24.        }
  25.    boolean moveNext()
  26.    {
  27.        if(this.activo.siguiente!=null){
  28.            this.activo=this.activo.siguiente;
  29.            return true;
  30.        }
  31.        else
  32.        return false;
  33.    }
  34.  
  35.    void moveFirst()
  36.    {
  37.        this.activo=this.primero;
  38.    }
  39.  
  40.    void moveLast()
  41.    {
  42.        boolean a;
  43.        do{
  44.            a=moveNext();
  45.        }while(a==true);
  46.    }
  47.  
  48.    Object getObject()
  49.    {
  50.        return this.activo;
  51.    }
  52.  
  53.    void addItem(Item nuevo)
  54.    {
  55.        if(this.primero==null)
  56.       {
  57.       this.primero=nuevo;
  58.       this.primero.siguiente=null;
  59.       this.activo=this.primero;
  60.        }else{
  61.        moveLast();
  62.        this.activo.siguiente=nuevo;
  63.        this.activo=nuevo;
  64.    }
  65.    }
  66.  
  67.    void insertItem(Item nuevo)
  68.    {
  69.        this.activo.siguiente=nuevo;
  70.        this.activo=nuevo;
  71.    }
  72. }
  73.  
  74. abstract class Figura   //defino figura, pero como abstracta
  75. {
  76. //m&#233;todos abstractos, s&#243;lo tienen declaraci&#243;n. No se definen
  77. abstract double area();
  78. abstract void muestra();
  79. }
  80.  
  81. class Circulo extends Figura
  82. {
  83.    double x,y,radio;
  84.  
  85.    Circulo (double a, double b, double c)  //Constructor
  86.    {
  87.        x = a;
  88.        y = b;
  89.        radio = c;
  90.    }
  91.  
  92. double area()   //Redefinido, calcula el &#225;rea
  93. {
  94.    double varea;
  95.    varea = 3.1416 * radio * radio;
  96.    return varea;
  97. }
  98.  
  99. void muestra() //Redefinido, muestra la figura
  100. {
  101.    System.out.println("C&#237;rculo de radio " + radio + " y de centro (" + x + "," + y +")");
  102. }
  103. }//fin clase Circulo
  104.  
  105. class Rectangulo extends Figura
  106. {
  107. double x1,y1,x2,y2;
  108.  
  109. Rectangulo (double a, double b, double c, double d) {
  110.    x1 = a;
  111.    y1 = b;
  112.    x2 = c;
  113.    y2 = d;
  114. }
  115.  
  116. double area()   //Redefinido, calcula el &#225;rea
  117. {
  118.    double varea;
  119.    varea = (x2-x1) * (y2-y1);
  120.    return varea;
  121. }
  122.  
  123. void muestra()  //Redefinido muestra la figura
  124. {
  125.    System.out.println("Rect&#225;ngulo esquina (" + x1 + ","+ y1 +") y ("+ x2 +","+ y2 +")");
  126. }
  127. }//fin clase rect&#225;ngulo
  128.  
  129. class Triangulo extends Figura
  130. {
  131.    double x1,y1,x2,y2,x3,y3;
  132.  
  133.    Triangulo (double a, double b, double c, double d, double e, double f)  //Constructor
  134.    {
  135.        x1 = a;
  136.        y1 = b;
  137.        x2 = c;
  138.        y2 = d;
  139.        x3 = e;
  140.        y3 = f;
  141.    }
  142.  
  143.    double area()   //Redefinido, calcula el &#225;rea
  144.    {
  145.        double varea;
  146.        varea = ((x2-x1)*(y2-y1))/2;
  147.        return varea;
  148.    }
  149.  
  150.    void muestra()  //Redefinido, muestra la figura
  151.    {
  152.            System.out.println("Tri&#225;ngulo esquina (" + x1 + "," + y1 + "),(" + x2 + "," + y2 + "),(" + x3 + "," + y3 +")");
  153.        }
  154.    }//fin clase tri&#225;ngulo
  155.  
  156. class Rombo extends Figura
  157. {
  158.    double diagonalmayor,diagonalmenor;
  159.  
  160.    Rombo (double a, double b)  //Constructor
  161.    {
  162.        diagonalmayor = a;
  163.        diagonalmenor = b;
  164.    }
  165.  
  166.    double area()   //Redefinido, calcula el &#225;rea
  167.    {
  168.        double varea;
  169.        varea = diagonalmayor*diagonalmenor/2;
  170.        return varea;
  171.    }
  172.    void muestra()  //Redefinido, muestra la figura
  173.    {
  174.            System.out.println("Rombo diagonal mayor:" + diagonalmayor + ", diagonal menor:" + diagonalmenor);
  175.        }
  176.    }//fin clase rombo
  177.  
  178. public class ejercicio43
  179. {
  180. public static void main(String args[]) throws Exception
  181. {
  182.  
  183. char eleccion, figura;
  184. int salir, i=0;
  185. ListaEnlazada Lista= new ListaEnlazada();
  186.  
  187. do{
  188. System.out.println("\n0-Salir\n");
  189. System.out.println("1-Muestra todas las figuras\n");
  190. System.out.println("2-Muestra el &#225;rea de todas las figuras\n");
  191. System.out.println("3-Crear una nueva figura en una posici&#243;n concreta\n");
  192. System.out.println("Introduce lo que quieres realizar: ");
  193. eleccion=(char) System.in.read();
  194.  
  195. System.in.read();
  196. boolean a;
  197. switch (eleccion)//Sentencia Switch
  198. {
  199. case '0':
  200. System.out.println("&#191;Desea salir? Introduzca un 1 si lo desea: ");
  201. salir=System.in.read(); //Lee el n&#250;mero que introduzca el usuario
  202.  
  203. if(salir!=1){
  204.    System.exit(0);//Sale del programa
  205. }
  206. break;
  207. case '1':
  208. System.out.println("A continuaci&#243;n mostraremos todas las figuras: \n\n");
  209. Lista.moveFirst();
  210.  
  211. do{
  212. a=Lista.moveNext();
  213. ((Figura)Lista.activo.objeto).muestra();
  214. }while(a==true);
  215.  
  216. break; //Salimos opci&#243;n 1
  217.  
  218. case '2':
  219. System.out.println("A continuaci&#243;n calculamos el &#225;rea de todas las figuras: \n\n");
  220. Lista.moveFirst();
  221.  
  222. do{
  223. a=Lista.moveNext();
  224. System.out.println("El &#225;rea del objeto es: " + ((Figura)Lista.activo.objeto).area());
  225. }while(a==true);
  226. break;  //Salimos opci&#243;n 2
  227.  
  228. case '3':
  229. System.out.println("Seleccione la figura que desea crear\n");
  230. System.out.println("0-C&#237;rculo\n");
  231. System.out.println("1-Rect&#225;ngulo\n");
  232. System.out.println("2-Tri&#225;ngulo\n");
  233. System.out.println("3-Rombo\n");
  234. System.out.println("Introduce lo que quieres realizar: ");
  235. figura=(char)
  236.  
  237. System.in.read();
  238.  
  239. System.in.read();
  240.  
  241. Item nuevoitem;
  242. switch (figura)//Sentencia Switch
  243. {
  244. case '0':
  245. Circulo nuevocirculo=new Circulo (80.0,40.0,30.0);
  246. nuevoitem=new Item(nuevocirculo);
  247.  
  248. Lista.addItem(nuevoitem);
  249. break;
  250. case '1':
  251. Rectangulo nuevorectangulo=new Rectangulo(4.0, 10.0, 20.0, 30.0);
  252. nuevoitem=new Item(nuevorectangulo);
  253.  
  254. Lista.addItem(nuevoitem);
  255. break;
  256. case '2':
  257. Triangulo nuevotriangulo=new Triangulo(10.0, 0.0, 20.0, 10.0, 5.0, 1.0);
  258. nuevoitem=new Item(nuevotriangulo);
  259.  
  260. Lista.addItem(nuevoitem);
  261. break;
  262. case '3':
  263. Rombo nuevorombo=new Rombo(5.0, 2.0);
  264. nuevoitem=new Item(nuevorombo);
  265.  
  266. Lista.addItem(nuevoitem);
  267. break;
  268.  
  269. default: break;
  270.  
  271. }
  272.  
  273. break;
  274.  
  275. }
  276.  
  277. }while((eleccion=='1')||(eleccion=='2')||(eleccion=='3'));
  278.  
  279. }
  280.  
  281. }

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 ;)
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ejercicios simples en Java « 1 2 »
Ejercicios
:ohk<any> 15 18,324 Último mensaje 29 Agosto 2008, 05:59 am
por Newbie´s
Ejercicios Java
Ejercicios
Lorena88 1 7,376 Último mensaje 21 Enero 2009, 01:42 am
por Amerikano|Cls
2 ejercicios de java
Java
kay19 1 9,299 Último mensaje 28 Agosto 2009, 20:34 pm
por Caballero Maldito
Ejercicios Java « 1 2 »
Java
rshocush 12 15,820 Último mensaje 10 Marzo 2010, 15:15 pm
por Mai89
Juego ejercicios #2 [Java] « 1 2 3 4 5 »
Ejercicios
Amerikano|Cls 47 44,992 Último mensaje 20 Abril 2011, 09:20 am
por AleX Inc.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines