Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Simulazione estrazione

  1. #1

    Simulazione estrazione

    Ciao a tutti,
    Poiché mi sono arenato (sarà che poi il dopo pranzo è sempre più pesante ), avrei bisogno di un piccolo aiutino.

    Ho una piccola routine in VBA che simula un estrazione di numeri casuali, ma trovo difficoltà a riportarla in ASP (soprattutto non so se è corretto e/o bello il "GoTo").

    La routine è la seguente:

    codice:
    Sub Estrazione()
    Dim i As Integer, Limite As Integer, cod As String, estratto As Integer, usciti As String, finito As Boolean
    
    finito = False
    Limite = 8
    i = 0
    usciti = ""
    While Not finito = True
    Inizio:
        Randomize
        estratto = CInt((Limite - 1) * Rnd() + 1)
        If InStr(1, usciti, estratto) Then
            GoTo Inizio
        Else
            i = i + 1
        End If
    
        If i <= 4 Then
            cod = "A" & i
        ElseIf i >= 5 And i <= 8 Then
            cod = "B" & (i - 4)
        End If
        
        MsgBox "Codice:" & cod & " - Squadra:" & estratto, vbOKOnly, "Sorteggi"
        usciti = usciti & estratto
        If cod = "B4" Then
            finito = True
        End If
    Wend
    End Sub
    In sostanza la routine sceglie casulamente un numero da 1 a 8 perché deve abbinarlo a dei codici che vanno da A1 a B4; il GoTo ha lo scopo di rimandare all'inizio della routine se il generatore di numeri casuali "caccia" fuori un numero già "estratto".

    Qualcuno sa darmi consigli su come "ottimizzare" questa routine per ASP?

    Grazie e ciao.

  2. #2
    la "GoTo" è una istruzione da dimenticare

  3. #3
    Lo so, appunto chiedevo consigli su come fare.

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    eh sì, puoi ricordarti dei visigoti o degli ostrogoti... ma i goti dimenticali
    potresti sostituire con un ciclo
    codice:
    Sub Estrazione()
    	finito = False
    	Limite = 8
    	i = 0
    	usciti = ""
    	While Not finito
    	    bolRipeti=true
    	    do while bolRipeti
    		Randomize
    		estratto = CInt((Limite - 1) * Rnd() + 1)
    		If InStr(1, usciti, estratto)=0 Then
    			bolRipeti=false
    		end If
    	    loop
    	    i = i + 1
    	    If i <= 4 Then
    	        cod = "A" & i
    	    ElseIf i >= 5 And i <= 8 Then
    	        cod = "B" & (i - 4)
    	    End If
    	    
    	    Response.Write  "Codice:" & cod & " - Squadra:" & estratto & "
    "
    	    usciti = usciti & estratto
    	    If cod = "B4" Then
    	        finito = True
    	    End If
    	Wend
    End Sub

  5. #5
    Grazie willy!!!!

  6. #6
    Un'altra domanda: è possibile in qualche modo "rallentare" l'esecuzione dello script?
    Provo a speugarmi meglio: in pratica questo dovrebbe essere un sorteggio e se lancio lo script in un nanosecondo finisce, facendo perdere tutta la suspence.
    Posso, in qualche modo, "prendere" tempo tra la stampa a video di un estrazione el'altra?
    Che so, magari con qualcosa di simile ad un Timer?

    Grazie ancora

  7. #7
    Originariamente inviato da IoMe
    Un'altra domanda: è possibile in qualche modo "rallentare" l'esecuzione dello script?
    Provo a speugarmi meglio: in pratica questo dovrebbe essere un sorteggio e se lancio lo script in un nanosecondo finisce, facendo perdere tutta la suspence.
    Posso, in qualche modo, "prendere" tempo tra la stampa a video di un estrazione el'altra?
    Che so, magari con qualcosa di simile ad un Timer?

    Grazie ancora

    il timer lo fai in javascript e fai ricaricare la pagina...che ne so ricarichi 5 volte per 5 estrazioni...per cui ad ogni estrazione farai estrarre solo una cosa...

    cmq in asp no

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 © 2026 vBulletin Solutions, Inc. All rights reserved.