Differenze tra le versioni di "Elevamento a potenza"

Da Gambas-it.org - Wikipedia.
 
(4 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Per effettuare l'<I>elevamento a potenza</i> di un numero, è possibile utilizzare alcune modalità. <SUP>&#91;[[#Note|nota 1]]&#93;</sup>
+
Per effettuare l'<I>elevamento a potenza</i> di un numero, è possibile utilizzare alcune modalità.
 
 
  
 
===Uso dell'operatore  '''^''' ===
 
===Uso dell'operatore  '''^''' ===
 
Molto brevemente ed agevolmente si potrà utilizzare l'operatore '''^''' , come segue:
 
Molto brevemente ed agevolmente si potrà utilizzare l'operatore '''^''' , come segue:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
  Dim i As Integer
+
  Dim i As Integer
 
   
 
   
  <FONT Color=gray>' Effettua l'elevamento a potenza: <B>3<SUP>4</sup></b></font>
+
  <FONT Color=gray>' ''Effettua l'elevamento a potenza: <B>3<SUP>4</sup></b>''</font>
   i = 3 <FONT Color=#B22222><B>^</b></font> 4
+
   i = 3 <FONT Color=red><B>^</b></font> 4
 
   
 
   
 
   Print i
 
   Print i
 
   
 
   
  '''End'''
+
  End
 
 
  
  
 
===Uso di specifici algoritmi===
 
===Uso di specifici algoritmi===
Si potrà utilizzare del codice più complesso. Ad esempio:
+
Si potrà utilizzare del codice più complesso.
  '''Public''' Sub Main()
+
<BR>Ad esempio:
 +
  Public Sub Main()
 
   
 
   
  Dim b, e As Integer
+
  Dim b, e As Integer
  Dim ris As Integer = 1
+
  Dim ris As Integer = 1
 
    
 
    
    b = 3
+
  b = 3
    e = 4
+
  e = 4
 
    
 
    
    While (e)
+
  While (e)
      If e And 1 Then
+
    If e And 1 Then
        ris = ris * b
+
      ris = ris * b
        e = e - 1
+
      e = e - 1
      Endif
+
    Endif
      b = b * b
+
    b = b * b
      e = e / 2
+
    e = e / 2
    Wend
+
  Wend
 
      
 
      
    Print "Risultato = "; ris
+
  Print "Risultato = "; ris
 
   
 
   
  '''End'''
+
  End
 
 
 
 
 
oppure il seguente capace di operare su valori in virgola mobile:
 
oppure il seguente capace di operare su valori in virgola mobile:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
  Dim f As Float
+
  Dim f As Float
 
    
 
    
 
   f = Potenza(3.75, 3)
 
   f = Potenza(3.75, 3)
Riga 50: Riga 47:
 
   Print f
 
   Print f
 
    
 
    
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Private''' Function Potenza(base As Float, esponente As Byte) As Float
+
  Private Function Potenza(base As Float, esponente As Byte) As Float
 
    
 
    
 
   Dim pot As Float
 
   Dim pot As Float
 
    
 
    
    If esponente = 0 Then Return 1
+
  If esponente = 0 Then Return 1
 
      
 
      
    pot = base
+
  pot = base
 
    
 
    
    While esponente > 1
+
  While esponente > 1
      Dec esponente
+
    Dec esponente
      pot *= base
+
    pot *= base
    Wend
+
  Wend
 
      
 
      
    Return pot
+
  Return pot
 
      
 
      
  '''End'''
+
  End
 
 
 
 
  
  
=Note=
+
===Uso della funzione esterna "pow()"===
[1] In vero, è possibile utilizzare anche [[Pow()|la funzione ''pow()'']] della libreria condivisa esterna ''libm.so''
+
E' anche possibile utilizzare anche [[Pow()|la funzione "pow()"]] della libreria condivisa esterna ''libm.so''

Versione attuale delle 07:49, 1 nov 2024

Per effettuare l'elevamento a potenza di un numero, è possibile utilizzare alcune modalità.

Uso dell'operatore ^

Molto brevemente ed agevolmente si potrà utilizzare l'operatore ^ , come segue:

Public Sub Main()

  Dim i As Integer

' Effettua l'elevamento a potenza: 34
  i = 3 ^ 4

  Print i

End


Uso di specifici algoritmi

Si potrà utilizzare del codice più complesso.
Ad esempio:

Public Sub Main()

  Dim b, e As Integer
  Dim ris As Integer = 1
 
  b = 3
  e = 4
 
  While (e)
    If e And 1 Then
      ris = ris * b
      e = e - 1
    Endif
    b = b * b
    e = e / 2
  Wend
   
  Print "Risultato = "; ris

End

oppure il seguente capace di operare su valori in virgola mobile:

Public Sub Main()
 
  Dim f As Float
 
  f = Potenza(3.75, 3)
  
  Print f
  
End


Private Function Potenza(base As Float, esponente As Byte) As Float
 
  Dim pot As Float
  
  If esponente = 0 Then Return 1
   
  pot = base
  
  While esponente > 1
    Dec esponente
    pot *= base
  Wend
    
  Return pot
   
End


Uso della funzione esterna "pow()"

E' anche possibile utilizzare anche la funzione "pow()" della libreria condivisa esterna libm.so