[ Foro de BASIC ]

Ejercicio propuesto 7.10 duda

21-Jan-2015 05:20
Carlos Carias
2 Respuestas

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.


21-Jan-2015 16:34
Nacho Cabanes (+83)

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").


21-Jan-2015 22:22
Carlos Carias

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.)