Differenze tra le versioni di "Elevamento a potenza"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
− | Per effettuare l'<I>elevamento a potenza</i> di un numero, è possibile utilizzare | + | Per effettuare l'<I>elevamento a potenza</i> di un numero, è possibile utilizzare alcune modalità. <SUP>[[[#Note|nota 1]]]</sup> |
Riga 16: | Riga 16: | ||
− | ===Uso di | + | ===Uso di specifici algoritmi=== |
Si potrà utilizzare del codice più complesso. Ad esempio: | Si potrà utilizzare del codice più complesso. Ad esempio: | ||
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
Riga 38: | Riga 38: | ||
'''End''' | '''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''' | ||
+ | |||
Versione delle 03:26, 28 nov 2016
Per effettuare l'elevamento a potenza di un numero, è possibile utilizzare alcune modalità. [nota 1]
Uso dell'operatore ^
Molto brevemente ed agevolmente si potrà utilizzare l'operatore ^ , come segue:
Public Sub Main() Dim i As Integer 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
Note
[1] In vero, è possibile utilizzare anche la funzione pow() della libreria condivisa esterna libm.so