[ Foro de BASIC ]
me sigue mostrando los multiplos de 12 que hago llevo esto:
For z = 1 to 100
If z/2 = Int(z/2) Or z/3 = Int (z/3) And not z/12 = Int(z/12) Then
Print z
Endif
Next z
El problema es el siguiente:
Ejercicio propuesto 7.10: Crea un programa que muestre los números entre 1 y 100 que sean múltiplos de 2 y de 3 pero no de 12.
A medida que se complican las condiciones, deberías incluir paréntesis para dejar claro cómo deben agruparse, no sea que se agrupen de una forma que no sea la que tú esperabas.
Si lo escribes así, de forma más detallada, sí funcionará:
For z = 1 to 100
If ((z/2 = Int(z/2)) Or (z/3 = Int (z/3))) And not (z/12 = Int(z/12)) Then
Print z
Endif
Next z
La idea es que en muchos lenguajes de programación, cosas como "not z" tienen un significado avanzado, de modo que "not z=5" puede ser algo muy distinto de "not (z=5)" ("la negación de z es 5", frente a "no ocurre que z sea 5").
muchas gracias me has aclarado la duda.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)