Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Qué significa esto?

Estas en el tema de Qué significa esto? en el foro de C/C++ en Foros del Web. Una función que te calcule si un número es divisor de otro es así: Código: !(y%x) Alguien me lo podría explicar? Gracias!...
  #1 (permalink)  
Antiguo 20/08/2013, 12:38
 
Fecha de Ingreso: julio-2013
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 0
Qué significa esto?

Una función que te calcule si un número es divisor de otro es así:

Código:
!(y%x)
Alguien me lo podría explicar?


Gracias!
  #2 (permalink)  
Antiguo 20/08/2013, 13:23
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Qué significa esto?

El "%" es el operador mod. Te devuelve el resto de la division. El "!" es un operador logico, es el not.

Sabiendo que 0 equivale a false y cualquier otro numero equivale a true.

Si la division es exacta, y % x es igual a cero, al aplicar el not nos da true. Entonces si pones eso en un if la condicion es verdadera si y divide a x.

Espero que se entienda.
  #3 (permalink)  
Antiguo 20/08/2013, 13:24
Avatar de L3m0n  
Fecha de Ingreso: diciembre-2011
Mensajes: 219
Antigüedad: 12 años, 4 meses
Puntos: 46
Respuesta: Qué significa esto?

Bastante sencillo, lo único que tienes que hacer es pensar paso por paso lo que hace.

Lo primero que hace el programa es ir al parentésis, y ahí aplica "%", que devuelve el resto de una división, si devuelve 0 es que x divide y en un numero entero de partes.

Por tanto si el "%" nos da 0 y aplicamos "!" lo que hacemos es transformar ese 0 que para C es false en un valor true. Así que si uno divide al otro tendremos true.
  #4 (permalink)  
Antiguo 20/08/2013, 16:28
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: Qué significa esto?

Un numero es divisible entre otro si su resto es cero. Recuerda eso.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:11.