19/11/09 16:41
GianlucaR92
Salve ragazzi..ho ritrovato vecchi appunti della funzione fattoriale. La sto riutilizzando dopo molto tempo e non ricordo nulla, per questo ho problemi ad utilizzarla.
Public Function Fatt()
n = Val(txtenne.Text)
x = Val(txtics.Text)
Dim fattoriale As Double
Dim elemento As Long
elemento = 1
fattoriale = 1
Do While n >= elemento
fattoriale = elemento * fattoriale
elemento = elemento + 1
Loop
Poichè devo utilizzare diverse variabili da calcolare, quali parametri devo mettere tra parentesi? E secondo, come richiamo la funzione?
aaa
19/11/09 17:03
GrG
funzione fattoriale... sinceramente non so cosa sia, se mi spieghi cosa vorresti fare forse posso aiutarti
aaa
19/11/09 22:23
ilmettiu
Fattoriale di 5 (indicato con 5!) è pari a 1 * 2 * 3 * 4 * 5;
Questo è il minimo numero di variabili utilizzabile, usando un ciclo While.
Con For, invece, possiamo fare qualcosa di simile:
Public Function Fatt()
Dim fattoriale As Double
Dim i as Integer
fattoriale = 1
x = Val(txtics.Text) 'Supponendo che in txtics tu inserisca il numero
For i = 1 to x
fattoriale = i * fattoriale
Next i
End Function
Non so cosa fosse txtenne, sinceramente non ne vedo l'utilità. Questo calcola il fattoriale del numero inserito in txtics.
come richiamo la funzione?
Call Fatt()
Così
Ultima modifica effettuata da ilmettiu 19/11/09 22:25
aaa
26/11/09 16:47
ilmettiu
Scusa, non avevo capito. L'errore che ti dà è relativo al tipo di n: evidentemente lui si aspettava un tipo diverso (per esempio Integer al posto di Single), perchè quando hai dichiarato la funzione Fatt() tra parentesi hai messo "n as Integer" (correggetemi se sbaglio, non mi ricordo come si dichiara una funzione in VB), e invece la variabile che gli passi con la chiamata è di un altro tipo.
Es:
Private function Fatt(n as Integer)
Private Sub asd()
Dim n as Single
Call Fatt(n)
End Sub
Questo penso darebbe l'errore che ti dà.
Il succo è che il valore passato alla funzione deve essere lo stesso previsto nella dichiarazione sua dichiarazione.
Ultima modifica effettuata da ilmettiu 26/11/09 16:48
aaa