Differenze tra le versioni di "Sapere se un numero è pari o dispari"

Da Gambas-it.org - Wikipedia.
 
Riga 22: Riga 22:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
   
 
   
   Dim j As Byte
+
   Dim b As Byte
+
 
+
  For b = 1 To 20
  For j = 1 To 20
+
    If b <FONT color=B22222>Mod</font> 2 = 0 Then
    If j <FONT color=B22222>Mod</font> 2 = 0 Then
+
      Print b, "numero dispari !"
      Print j, "numero dispari !"
+
    Else
    Else
+
      Print b, "numero pari !"
      Print j, "numero pari !"
+
    Endif
    Endif
+
  Next
  Next
 
 
   
 
   
 
  '''End'''
 
  '''End'''
Riga 42: Riga 41:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
   
 
   
   Dim j As Byte
+
   Dim b As Byte
+
 
+
  For b = 1 To 20
  For j = 1 To 20
+
    If b <FONT color=B22222>And</font> 1 Then
    If j <FONT color=B22222>And</font> 1 Then
+
      Print b, "numero dispari !"
      Print j, "numero dispari !"
+
    Else
    Else
+
      Print b, "numero pari !"
      Print j, "numero pari !"
+
    Endif
    Endif
+
  Next
  Next
 
 
   
 
   
 
  '''End'''
 
  '''End'''
 
  
  

Versione attuale delle 17:05, 30 ago 2020

Per sapere se un numero è pari, è possibile utilizzare almeno tre modalità:


Uso della funzione Even

La modalità più semplice, per sapere se un numero è pari, è usare la funzione Even() secondo la seguente sintassi:

Even(numero) As Boolean

la quale restituisce Vero se il numero verificato è pari.


Uso della funzione Odd

La modalità più semplice, per sapere se un numero è dispari, è usare la funzione Odd() secondo la seguente sintassi:

Odd(numero) As Boolean

la quale restituisce Vero se il numero verificato è dispari.


Uso della funzione Mod

L'uso della funzione Mod() calcola il resto del quoziente di due numeri interi. [Nota 1]

Poiché una caratteristica dei numeri pari è che, divisi per 2, essi restituiscono sempre il resto del quoziente pari a zero, se il calcolo del resto del quoziente ottenuto con la funzione Mod è uguale a zero, allora il numero sarà pari, altrimenti sarà dispari:

Esempio:

Public Sub Main()

 Dim b As Byte
 
 For b = 1 To 20
   If b Mod 2 = 0 Then
     Print b, "numero dispari !"
   Else
     Print b, "numero pari !"
   Endif
 Next

End


Uso dell'operatore AND

Si porrà il valore da verificare con l'operatore AND ed il valore 1, agendo così sui bit.

Esempio:

Public Sub Main()

 Dim b As Byte
 
 For b = 1 To 20
   If b And 1 Then
     Print b, "numero dispari !"
   Else
     Print b, "numero pari !"
   Endif
 Next

End


Note

[1] Se si volesse creare ed utilizzare in Gambas un'apposita funzione scritta in linguaggio C, contentuta in una libreria dinamica condivisa esterna e che faccia uso dell'operatore " % ", si potrebbe ipotizzare un codice come il seguente esemplificativo:

Library "/tmp/lib"

' const char * PariDispari(int n)
' Ritorna una stringa che informa se il numero è pari o dispari.
Private Extern PariDispari(n As Integer) As String


Public Sub Main()
 
 Dim s As String
 
  CreaSo()
 
  s = PariDispari(22)
  
  Print s
  
End


Private Procedure CreaSo()
  
  File.Save("/tmp/lib.c", "const char * PariDispari(int n) {\n\n" &
            "  return (n%2)==0 ? " & Quote("\nIl numero e' pari") &
            " : " & Quote("\nIl numero e' dispari") & ";\n\n}")
          
  Shell "gcc -o /tmp/lib.so /tmp/lib.c -shared -fPIC" Wait
  
End