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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Duda Java rango datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda Java rango datos  (Leído 2,572 veces)
jandepeich

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Duda Java rango datos
« en: 13 Junio 2015, 00:32 am »

Hola a todos,aqui les dejo mi duda a ver si me la pueden solucionar:

Tengo que hacer una tabla de multiplicar en java la cual me pida un numero inicial(ejemplo:1) y un numero final (ejemplo:3) y que me salga en la consola ese rango de datos(en el ejemplo deberia aparecer la tabla del 1,del 2 y del 3).La tabla de multiplicar la hago bien y la entrada de datos por la consola tambien,pero no consigo que me salga la tabla del 2;solo la del 1 y la 3.
¿Como se haria para que me haga ese rango?
Aqui les dejo el codigo (un desastre) a ver que les parece:

Código:
package actividadesUF1;


import java.util.Scanner;

public class Actividad032 {

public static void main(String[] args) {



int tabla1;

int tabla2;



Scanner leer=new Scanner(System.in);


System.out.println("Escribe rango inicial");

tabla1=leer.nextInt();

System.out.println("Escribe rango final");

tabla2=leer.nextInt();




for(int var1=0;var1<11;var1++) {

if (tabla1<=10){

System.out.println(+tabla1+"x"+var1+"="+(var1*tabla1));


}

else if(tabla1>10){

System.out.println("Vuelva a introducir un numero");
}
}
leer.close();





for(int var2=0;var2<11;var2++) {

if (tabla2<=10){

System.out.println(+tabla2+"x"+var2+"="+(var2*tabla2));


}

else if(tabla2>10){

System.out.println("Vuelva a introducir un numero");
}
}
leer.close();


}
}



gracias


En línea

jandepeich

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Duda Java rango datos
« Respuesta #1 en: 13 Junio 2015, 03:43 am »

Que habria que cambiar aqui:
Código:
System.out.println(+tabla1+"x"+var1+"="+(var1*tabla1));
para poder sacar la tabla de multiplicar de 1,2 y 3(o sea las tablas de 1-3)

Se lo agradezco mucho si me ayudan que me estoy volviendo loco.


En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Duda Java rango datos
« Respuesta #2 en: 13 Junio 2015, 16:12 pm »

Te dejo una clase que estoy haciendo recién para operaciones matemáticas:

Código
  1. package org.educacode.mathio;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.concurrent.CopyOnWriteArrayList;
  6.  
  7. /**
  8.  * Math util methods and classes
  9.  * @author Gustavo Garsaky
  10.  * @version 0.0.1
  11. */
  12. public class MathIO {
  13. public final static PrimeNumbers PRIME_NUMBERS = new PrimeNumbers();
  14.  
  15. public final static class PrimeNumbers {
  16.  
  17. public List<Integer> listPrimesUntil(int limit) {
  18. List<Integer> naturals = new CopyOnWriteArrayList<>();
  19. // init naturals
  20. for(int i=2; i<=limit; i++) {
  21. naturals.add(i);
  22. }
  23. for(Integer current : naturals) {
  24. discardMultiples(naturals, getMultiplesOf(current, naturals.size()));
  25. // if discard continue, that means the process should continue
  26. if(discard(current, naturals.size())) {
  27. continue;
  28. } else {
  29. break;
  30. }
  31. }
  32. List<Integer> primes = naturals;
  33. return primes;
  34. }
  35. /**
  36. * check the first natural quad. If it's
  37. * less tan limit, process should continue
  38. * @param firstNatural first natural number
  39. */
  40. private boolean discard(int firstNatural, int limit) {
  41. double firstNaturalQuad = Math.pow(new Double(String.valueOf(firstNatural)), 2.0d);
  42. if(firstNaturalQuad <= limit) {
  43. return true;
  44. }
  45. return false;
  46. }
  47. /**
  48. * Get new list of natural numbers. The new list have all numbers
  49. * that not in multiples of first natural number
  50. * @param naturals Naturals numbers
  51. * @param number Number to get multiples
  52. */
  53. private void discardMultiples(List<Integer> naturals, List<Integer> multiples) {
  54. // check if each multiple is in naturals list.
  55. // if it isn't, append the multiple to new list
  56. for(int i=0; i<multiples.size(); i++) {
  57.             for(int k=0; k<naturals.size(); k++) {
  58.                         if(multiples.get(i) == naturals.get(k)) {
  59.                     naturals.remove(k);
  60.                                  }
  61.             }
  62. }
  63. }
  64. } // end prime numbers class
  65.  
  66.  
  67. /**
  68. * Get the multiples of a number with some limit
  69. * @param number Number to get multiples
  70. * @param limit of multiples to get
  71. */
  72. public static List<Integer> getMultiplesOf(int number, int limit) {
  73. List<Integer> multiples = new ArrayList<>();
  74. for(int i=number; i<limit; i++ ) {
  75. if(i < limit) {
  76. multiples.add(number * i);
  77. }
  78. }
  79. return multiples;
  80. }
  81. /**
  82. * Show a multiplication table of a number with a limit
  83. * @param number Number to get multiplication table
  84. * @param limit Limit of multiplicator
  85. */
  86. public static void showMultipTableOf(int number, int limit) {
  87. for(int i=1; i<=limit; i++) {
  88. System.out.println(number + " x " + i + " = " + (number * i));
  89. }
  90. }
  91. }

De momento saca los números primos de 2 a n-1 y muestra la tabla de multiplicar de un número a n, donde n es el límite del multiplicador.

Por ejemplo, en tu caso, solo haría:

Código
  1. import java.util.Scanner;
  2. import org.educacode.mathio.MathIO;
  3.  
  4. public class MultiplicationTableTest {
  5.  
  6. public static void main(String[] args) {
  7. final Scanner READER = new Scanner(System.in);
  8. int initial;
  9. int last;
  10. int limit;
  11. System.out.println("**** Tabla de multiplicar ****\n\n");
  12. System.out.println("[+] Ingresa en rango los números");
  13. initial = READER.nextInt();
  14. last = READER.nextInt();
  15. System.out.println("[+] Ingrese el límite del multiplicador");
  16. limit = READER.nextInt();
  17. READER.close();
  18. for(int i = initial; i <= last; i++) {
  19. MathIO.showMultipTableOf(i, limit);
  20. }
  21. }
  22.  
  23. }

Y te mostraría las tablas de multiplicar de un rango dado.
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
jandepeich

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Duda Java rango datos
« Respuesta #3 en: 13 Junio 2015, 23:43 pm »

Gracias compañero
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda entrada de datos (JAVA)
Java
Alfai 4 5,676 Último mensaje 13 Abril 2007, 00:39 am
por Alfai
Manejar archivo .txt desde java (ingresar datos, modificar datos, buscar datos y
Java
chuystoty 9 106,463 Último mensaje 20 Mayo 2012, 06:13 am
por ELMED
Duda con los colres de rango « 1 2 »
Sugerencias y dudas sobre el Foro
simorg 13 7,514 Último mensaje 14 Enero 2011, 23:38 pm
por [u]nsigned
Como obtener rango de fechas con JAVA
Java
Skarlo 0 4,133 Último mensaje 17 Junio 2013, 14:59 pm
por Skarlo
¿De dónde viene el rango que admiten los diferentes tipos de datos en Java? « 1 2 »
Java
minicatsCB 10 8,410 Último mensaje 24 Agosto 2013, 17:32 pm
por ~ Yoya ~
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines