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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Duda con el uso de porcentaje
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con el uso de porcentaje  (Leído 1,859 veces)
arts

Desconectado Desconectado

Mensajes: 103


Ver Perfil
Duda con el uso de porcentaje
« en: 2 Enero 2014, 00:51 am »

Muy buenas, hace poco leí en un libro un ejercicio sobre arrays y me quede un tanto con la duda.
La duda era dentro de en un for con un recorrido de 0 hasta 52.
aparece cuenta % 13, es decir que operación se realiza si cuenta vale 2 por ejemplo.

Código
  1. import java.util.Random;
  2.  
  3. public class PaqueteDeCartas {
  4.  
  5. private Carta paquete[]; // creamos un array del tipo Carta (contendrá cartas)
  6. private int cartaActual;
  7. private final int NUMERO_DE_CARTAS = 52;
  8. private Random numeros_aleatorios;
  9.  
  10. // CONSTRUCTOR DEL PAQUETE CARTAS
  11. public PaqueteDeCartas() {
  12. String caras[] = { "As", "Dos", "Tres", "Cuatro", "Cinco", "Seis",
  13. "Siete", "Ocho", "Nueve", "Diez", "Jota", "Dama", "Rey" };
  14. String palos[] = { "Corazones", "Diamantes", "Treboles", "Picas" };
  15.  
  16. paquete = new Carta[NUMERO_DE_CARTAS]; // creas un paquete con 52 casillas una para cada carta
  17. cartaActual = 0;
  18. numeros_aleatorios = new Random();
  19.  
  20. // llenamos el paquete con objetos carta
  21. for (int cuenta = 0; cuenta < paquete.length; cuenta++) {
  22. paquete[cuenta] = new Carta(caras[cuenta % 13], palos[cuenta / 13]);
  23. }
  24. }
  25.  


« Última modificación: 2 Enero 2014, 01:19 am por arts » En línea

xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: Duda con el uso de porcentaje
« Respuesta #1 en: 2 Enero 2014, 01:45 am »

En enteros, '%' es el operador MOD o resto. Por ejemplo:

Código:
2 mod 4 = 2 -> 2/4 = 0 con 2 de resto
13 mod 3 = 1 -> 13/3 = 4 con 1 de resto

Y como ya sabrás, '/' es el operador de división, pero si se trata de enteros solo se redondea hasta la unidad. Por ejemplo:

Código:
2 / 4 = 0
13 / 3 = 4

Y iendo a tu programa, cuando haces cuenta%13 es porque hay 13 distintos tipos de cartas: A,2,3,...Q,K, por lo que tendrás:

Código:
 cuenta = 0 -> caras[0%13]=caras[0]="As"
cuenta = 1 -> caras[1%13]=caras[1]="Dos"
...
cuenta = 13 -> caras[13%13]=caras[0]="As"
cuenta = 14 -> caras[14%13]=caras[1]="Dos"

Por lo que cada 13 cartas, se repite el ciclo hasta que haya una carta de cada palo, lo que harían las 4x13=52 cartas.

Y para el tema de los palos, a cada pack de 13 cartas le asignas un palo distinto:

Código:
cuenta = 0 -> palos[0/13]=palos[0]="Corazones"
cuenta = 1 -> palos[1/13]=palos[0]="Corazones"
...
cuenta = 13 -> palos[13/13]=palos[1]="Diamantes"
cuenta = 14 -> palos[14/13]=palos[1]="Diamantes"

Espero haberte ayudado, saludos.


En línea

arts

Desconectado Desconectado

Mensajes: 103


Ver Perfil
Re: Duda con el uso de porcentaje
« Respuesta #2 en: 3 Enero 2014, 01:56 am »

Osea que se refiere al resto, el resto de 0/13 es 0 por lo que la posición 0 se encuentra el As, 1/13 = resto 1 ahora la posición es 1 y corresponde con el dos.
Es eso verdad ?.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
progressbar porcentaje
Programación Visual Basic
alfa_28 7 6,590 Último mensaje 21 Septiembre 2006, 06:40 am
por Zibra
duda con calculos en vb y porcentaje
Programación Visual Basic
Tengu 8 10,031 Último mensaje 19 Mayo 2009, 04:03 am
por ‭‭‭‭jackl007
Sumar un porcentaje « 1 2 »
Programación C/C++
cazagavilan 12 12,295 Último mensaje 25 Julio 2011, 06:48 am
por cazagavilan
Calculo Porcentaje « 1 2 3 »
Dudas Generales
EuroHack 23 15,632 Último mensaje 27 Enero 2012, 07:50 am
por H1tchclock
Delphi porcentaje
Programación General
el Fari 1 2,642 Último mensaje 3 Marzo 2012, 17:03 pm
por $Edu$
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines