Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    163

    [VB 6] manipolare la Rnd

    Salve a tutti!
    Sto creando un applicazione che mi consenta tramite una Rnd di assegnare i turni di lavoro di un mese (giorno per giorno). Questi turni riguardano dei sostituti che sostituiscono dei titolari. Questi ultimi hanno dei turni fissi, già stabiliti nel calendario. Il problema è che,come potete vedere dall'immagine, i sostituti inseriti con la Rnd (quelli in rosso) capitano spesso 2 o più volte nello stesso giorno. quindi dovrei fare in modo che la Rnd escluda i valori già inseriti nelle Text precedenti nello stesso giorno.
    Come posso fare?

    grazie mille! (ho cambiato i nomi per la privacy )

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    42
    Se tieni traccia degli utenti che sono già stati "estratti" potresti scartare le estrazioni che prevedono questi utenti e ciclare fino a quando non trovi un nuovo utente... E banalissimo e anche molto veloce...

    Ciauzzzzz

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    163
    si ma a livello di codice come faccio a escludere un elemento nella Rnd?
    Il codice attuale è questo:
    codice:
    Private Sub Command1_Click()
    I = 0
    
    Do While I < 155
    N = Int(Rnd * 10)
    Select Case N
    Case 0
    sost1(I).Caption = A
    Case 1
    sost1(I).Caption = B
    Case 2
    sost1(I).Caption = C
    Case 3
    sost1(I).Caption = D
    Case 4
    sost1(I).Caption = E
    Case 5
    sost1(I).Caption = F
    Case 6
    sost1(I).Caption = G
    Case 7
    sost1(I).Caption = H
    Case 8
    sost1(I).Caption = I
    Case 9
    sost1(I).Caption = L
    End Select
    I = I + 1
    Loop
    
    End Sub
    Private Sub Form_Load()
    A = "sostituto1"
    B = "sostituto2"
    C = "sostituto3"
    D = "sostituto4"
    E = "sostituto5"
    F = "sostituto6"
    G = "sostituto7"
    H = "sostituto8"
    I = "sostituto9"
    L = "sostituto10"
    End Sub
    grazie per la risposta

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    42
    Tu hai 10 sostituti che devono coprire 155 turni?
    Spiegami cosa sono 10 e 155.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    163
    ops!mi sono dimenticato quel particolare.chiedo scusa.
    i sostituti sono in tutto 10.e i turni sono 5 al giorno.il programma deve distribuire casualmente i turni dei sostituti in un calendario di un mese (31 giorni ),quindi 5turni al giorno x 31 giorni = 155 turni al mese.
    il mio problema è che usando normalmente la Rnd risulta che in alcuni giorni ci sia lo stesso sostituto più di una volta.
    spero di essere stato chiaro.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    42
    Benissimo. Dunque:
    Più che utilizzare il "Do While I < 155" utilizzierei due cicli for
    - il primo da 1 a 31 per i giorni;
    - il secondo da 1 a 5 per i turni.

    Poi terrei traccia in un array di 5 elementi dei valori che sonbo stati generati casualmenti per giorno. Faccio un esempio:
    Primo Giorno:
    Primo turno: Numero Generato 3 (inserito nel vettore alla posizione 0)
    Secondo Turno: Numero Generato 5 (inserito nel vettore alla posizione 1)
    Terzo Turno: Numero Generato 3 (scartato, nessun inserimento, ripeto la generazione random)
    Terzo Turno (Seconda generazione): Numero Generato 1 (inserito nel vettore alla posizione 2)

    e così via...
    Chiara la logica?

    Ciauz...

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    163
    e se volessi fare una specie di tabella come questa , fatta da una matrice di label disposte in ordine crescente (come si può vedere dalla caption) e da un command per far partire l'assegnazione,come potrebbe essere un esempio di codice?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    In questo caso non si usano tante label ma appositi controlli.

    Puoi usare una ListView o un griglia ...

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    42
    Si, confermo quanto già espresso da oregon. Ci sono degli oggetti predisposti a tale scopo. Io mi trovo benissimo con le flexgrid, ad esempio, ed in particolare con la MSFlexGrid...


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.