Visualizzazione dei risultati da 1 a 6 su 6

Discussione: funzione ricorsiva

  1. #1
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754

    funzione ricorsiva

    Salve a tutti,
    ho una funzione ricorsiva del tipo:
    codice:
    	function getRandIndex(vettore, elementi)
    		indice = cint((rnd() * 10) mod 5)
    		if vettore(indice) <> -1 then
    			getRandIndex (vettore, elementi)'riga 46
    		end if
    		getRandIndex = indice
    	end function
    Che mi sembra corretta (non sono un programmatore ASP), ma mi da il seguente errore:

    Errore di compilazione di Microsoft VBScript (0x800A0414)
    Impossibile utilizzare parentesi per la chiamata di routine Sub
    /zampa/vetrina.asp, line 46, column 32
    getRandIndex (vettore, elementi)

    Magari e' una banalita' (anzi lo spero)...
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  2. #2
    è una funzione, e quindi devi assegnare il suo risultato ad una variabile

    codice:
    function getRandIndex(vettore, elementi)
    		indice = cint((rnd() * 10) mod 5)
    		if vettore(indice) <> -1 then
    			indice=getRandIndex (vettore, elementi)'riga 46
    		end if
    		getRandIndex = indice
    	end function

  3. #3
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    Ho risolto, la variabile elementi mi serviva per indicare il numero massimo di elementi del vettore "vettore", invece di passare il parametro uso ubound(vettore):
    codice:
    	function getRandIndex(vettore)
    		indice = cint((rnd() * 10) mod (ubound(vettore) + 1))
    		if vettore(indice) <> -1 then
    			getRandIndex (vettore)
    		end if
    		getRandIndex = indice
    	end function
    indice=getRandIndex (vettore, elementi)'riga 46
    Capisco, ma e' una chiamata a funzione, non una assegnazione, devo farlo lo stesso?
    Comunque con il codice che ho postato funziona, pero' se avete chiarimenti meglio
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  4. #4
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    indice=getRandIndex (vettore, elementi)'riga 46
    Ho testato e funziona, grazie Santino83.
    Non capisco perche' con un parametro solo funziona anche senza assegnare il risultato della funzione ad una variabile
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  5. #5
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    altrimenti prova così
    codice:
    function getRandIndex(vettore, elementi)
    		indice = cint((rnd() * 10) mod 5)
    		if vettore(indice) <> -1 then
    			Call getRandIndex (vettore, elementi)'riga 46
    		end if
    		getRandIndex = indice
    end function

  6. #6
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    Funzia anche questo, grazie mille a tutti per la disponbilita'
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.