Differenze tra le versioni di "Verificare se un numero è una potenza di 2"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Per verificare se un numero è una potenza di 2, si può utilizzare il seguente codice: '''Public''' Sub Main() Dim numero, m, c As Integer Dim s1, s2 As String...")
 
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 1: Riga 1:
Per verificare se un numero è una potenza di 2, si può utilizzare il seguente codice:
+
Per verificare se un numero è una potenza di 2, si possono utilizzare almeno le seguenti due modalità.
 +
 
 +
 
 +
La prima modalità:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
    
 
    
Riga 15: Riga 18:
 
     Wend
 
     Wend
 
    
 
    
     s1 = "Il valore verificato "
+
     s1 = "Il numero " & numero
     s2 = "è una potenza di 2"
+
     s2 = " è una potenza di 2"
 
    
 
    
 
     If c = 1 Then
 
     If c = 1 Then
 
       Print s1; s2
 
       Print s1; s2
 
     Else
 
     Else
       Print s1; "non "; s2
+
       Print s1; " non"; s2
 
     Endif
 
     Endif
 
    
 
    
 +
'''End'''
 +
 +
 +
 +
La seconda modalità:
 +
'''Public''' Sub Main()
 +
 
 +
  Dim numero As Integer
 +
  Dim s As String
 +
 
 +
  s = " è una potenza di 2"
 +
 
 +
  numero = 16
 +
 
 +
  Print IIf(Frac(Log2(numero)) = 0, numero & s, numero & " non" & s)
 +
   
 
  '''End'''
 
  '''End'''

Versione attuale delle 16:52, 6 lug 2016

Per verificare se un numero è una potenza di 2, si possono utilizzare almeno le seguenti due modalità.


La prima modalità:

Public Sub Main()
 
 Dim numero, m, c As Integer
 Dim s1, s2 As String
 
   m = 1
   numero = 16

   While m > 0
     If (numero And m) > 0 Then
        Inc c
     Endif
       m = m * CInt(2 * 1)
   Wend
 
   s1 = "Il numero " & numero
   s2 = " è una potenza di 2"
 
   If c = 1 Then
     Print s1; s2
   Else
     Print s1; " non"; s2
   Endif
  
End


La seconda modalità:

Public Sub Main()
 
 Dim numero As Integer
 Dim s As String
 
  s = " è una potenza di 2"
 
  numero = 16
  
  Print IIf(Frac(Log2(numero)) = 0, numero & s, numero & " non" & s)
   
End