Differenze tra le versioni di "Sapere se un numero è pari o dispari"
(4 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | Per sapere se un numero è pari, è possibile utilizzare almeno | + | 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''=== | ===Uso della funzione ''Mod''=== | ||
− | L'uso della funzione ''Mod()'' calcola il resto del quoziente di due numeri interi. | + | L'uso della funzione ''Mod()'' calcola il resto del quoziente di due numeri interi. <SUP>[[[#Note|Nota 1]]]</sup> |
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: | 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: | ||
Riga 10: | Riga 22: | ||
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
− | Dim | + | Dim b As Byte |
− | + | ||
− | + | For b = 1 To 20 | |
− | + | If b <FONT color=B22222>Mod</font> 2 = 0 Then | |
− | + | Print b, "numero dispari !" | |
− | + | Else | |
− | + | Print b, "numero pari !" | |
− | + | Endif | |
− | + | Next | |
− | |||
'''End''' | '''End''' | ||
Riga 30: | Riga 41: | ||
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
− | Dim | + | Dim b As Byte |
+ | |||
+ | For b = 1 To 20 | ||
+ | If b <FONT color=B22222>And</font> 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" | ||
+ | |||
+ | <FONT Color=gray>' ''const char * PariDispari(int n)'' | ||
+ | ' ''Ritorna una stringa che informa se il numero è pari o dispari.''</font> | ||
+ | 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''' | '''End''' |
Versione attuale delle 17:05, 30 ago 2020
Per sapere se un numero è pari, è possibile utilizzare almeno tre modalità:
Indice
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