Pagina 1 di 8 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 77
  1. #1

    [vb6] list box utilizzare operatori aritmetici

    ciao ragazzi ho una list box i valori di essa sono ottenuti grazie a questo codice:

    codice:
    Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        Dim z As Integer
           List3.Clear
        z = 0
        For i = 1 To 46 Step 5
            For j = i To j + 4
                For k = j + 1 To i + 4
                sb = adoPrimaryRS(j)
                  st = adoPrimaryRS(k)
                  amb1 = Abs(sb - st)
                     If amb1 > 45 Then amb1 = 90 - amb1
                     If amb1 = 30 Then
                   N1 = sb
                   N2 = st
                    z = z + 1
           List3.AddItem " ruota " & " " & CStr(N1) & "  " & CStr(N2) '& "  " & CStr(n3) & "  " & CStr(n4)
                    End If
                Next k
            Next j
        Next i
    ottengo n1,n2

    pero' molto spesso ottengo
    tre
    quattro coppie di n1,n2

    dovrei fare i calcoli combinando fra loro le varie coppie
    per esempio se otterrei 4 coppie, dovrei incrociare fra loro

    su 4 coppie avrei
    6 combinazioni

    esempio pratico della 1° combinazione
    n1, n2
    |---|
    |---|
    n1, n2

    dovrei sommare
    n1+n1

    n2+n2

    booo
    non riesco

    saro incpace del tutto e dovtrei lasciarci stare con VB

    o è dvvero dificile
    i miei post sono RIFERITI TUTTI A VISUAL BASIC 6
    MSN MESSENGER : magicolotto@hotmail.it

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: [vb6] list box utilizzare operatori aritmetici

    Prima di cercare di capire cosa vuoi fare, cominciamo da questo codice ...

    Originariamente inviato da Magicolotto
    codice:
    Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        Dim z As Integer
    
        List3.Clear
        
        z = 0
        For i = 1 To 46 Step 5
            For j = i To j + 4
                For k = j + 1 To i + 4
                  sb = adoPrimaryRS(j)
                  st = adoPrimaryRS(k)
                  amb1 = Abs(sb - st)
                  If amb1 > 45 Then amb1 = 90 - amb1
    
                  If amb1 = 30 Then
                    ' USA sb E st al posto di N1 e N2
                    ' ALTRIMENTI si fa confusione inutilmente
                    '
                    List3.AddItem " ruota " & " " & CStr(sb) & "  " & CStr(st) 
                  End If
    
                  z = z + 1 ' Questo DEVE stare fuori dall'if
                Next k
            Next j
        Next i
    1) Metti z = z + 1 fuori dalla if ... io non l'avevo messo in una if ...

    2) Non utilizzare variabili in piu' che non servono ... invece di n1 e n2 utilizza sb e st che gia' ci sono

    3) Fai pulizia nel codice che mostri e indentalo correttamente ... e' IMPORTANTISSIMO per poterti rispondere ...

    Poi parliamo di tutto il resto ...

    dovtrei lasciarci stare con VB
    Non sarebbe una cattiva idea ...

  3. #3
    codice:
    Fai pulizia nel codice che mostri e indentalo correttamente ... e' IMPORTANTISSIMO per poterti rispondere ...
    cioè che intendi per indentare

    i valori li restituisce esattamente nella list
    i miei post sono RIFERITI TUTTI A VISUAL BASIC 6
    MSN MESSENGER : magicolotto@hotmail.it

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Magicolotto
    cioè che intendi per indentare
    Quando presenti del codice, deve essere scritto chiaramente con i "blocchi" evidenziati in questo modo ...

    codice:
    For ...
       If ...
          If ...
             ...
          End If
       Else
          ...
       End If
    Next ...
    ... questo e' "indentare" ...


    i valori li restituisce esattamente nella list
    ???

  5. #5

    intendi cosi, io la chiamo ramificazione o sbaglio?

    codice:
      Dim i As Integer
            Dim j As Integer
            Dim k As Integer
            Dim z As Integer
           List3.Clear
        z = 0
        For i = 1 To 46 Step 5
            For j = i To j + 4
                For k = j + 1 To i + 4
                sb = adoPrimaryRS(j)
                  st = adoPrimaryRS(k)
                  amb1 = Abs(sb - st)
                     If amb1 > 45 Then amb1 = 90 - amb1
                         If amb1 = 30 Then
                            List3.AddItem " ruota " & " " & CStr(sb) & "  " & CStr(st) '& "  " & CStr(n3) & "  " & CStr(n4)
                        End If
                     z = z + 1
                Next k
            Next j
        Next i
    i miei post sono RIFERITI TUTTI A VISUAL BASIC 6
    MSN MESSENGER : magicolotto@hotmail.it

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Si chiama "indentazione" non ramificazione ... ti puoi inventare tutti i termini che vuoi, ma quando ne parli con altri, devi usare quelli corretti ...

    E poi non hai indentato bene il codice ...

    sb =
    st =

    devono stare incolonnati, ma anche tutte le Dim ...

    E' IMPORTANTE ....

  7. #7
    l'indentazione incide dul codice?
    credo che incida solo per capire a chi lo legge giusto?


    sb
    st


    codice:
        Dim i As Integer
            Dim j As Integer
                Dim k As Integer
                  Dim z As Integer
           List3.Clear
        z = 0
        For i = 1 To 46 Step 5
            For j = i To j + 4
                For k = j + 1 To i + 4
                sb = adoPrimaryRS(j)
                    st = adoPrimaryRS(k)
                       amb1 = Abs(sb - st)
                           If amb1 > 45 Then amb1 = 90 - amb1
                              If amb1 = 30 Then
                            List3.AddItem " ruota " & " " & CStr(sb) & "  " & CStr(st) '& "  " & CStr(n3) & "  " & CStr(n4)
                        End If
                     z = z + 1
                Next k
            Next j
        Next i
    i miei post sono RIFERITI TUTTI A VISUAL BASIC 6
    MSN MESSENGER : magicolotto@hotmail.it

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Magicolotto
    l'indentazione incide dul codice?
    Ovviamente no ... non e' mica COBOL!

    Originariamente inviato da Magicolotto
    credo che incida solo per capire a chi lo legge giusto?
    Certo ... ma e' importante ...

    Non hai indentato correttamente ...

    codice:
        
        Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        Dim z As Integer
        
        List3.Clear
        z = 0
        For i = 1 To 46 Step 5
            For j = i To j + 4
                For k = j + 1 To i + 4
                    sb = adoPrimaryRS(j)
                    st = adoPrimaryRS(k)
                    amb1 = Abs(sb - st)
                    If amb1 > 45 Then amb1 = 90 - amb1
                    If amb1 = 30 Then
                       List3.AddItem " ruota " & " " & CStr(sb) & "  " & CStr(st) '& "  " & CStr(n3) & "  " & CStr(n4)
                    End If
                    z = z + 1
                Next k
            Next j
        Next i

  9. #9

    determinare prima la ruota

    vorrei determinare prima la ruota di rilevazione della copiia individuata
    pero' con il codice che ho fatto io mi segna sempre la stessa e non la individua
    segna sempre torino


    ecco il codice

    codice:
    Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        Dim z As Integer
           List3.Clear
        z = 0
        For i = 1 To 46 Step 5
            For j = i To j + 4
                For k = j + 1 To i + 4
                sb = adoPrimaryRS(j)
                  st = adoPrimaryRS(k)
                  amb1 = Abs(sb - st)
                   
                          If i >= 1 & i <= 5 Then
                              ruota = "bari"
                             If i >= 6 & i <= 10 Then
                              ruota = " cagliari"
                                 If i >= 11 & i <= 15 Then
                                    ruota = " firenze"
                                    If i >= 16 & i <= 20 Then
                                       ruota = " genova"
                                        If i >= 21 & i <= 25 Then
                                              ruota = " milano"
                                            If i >= 26 & i <= 30 Then
                                                  ruota = " napoli"
                                                  If i >= 31 & i <= 35 Then
                                                     ruota = " palermo"
                                                        If i >= 36 & i <= 40 Then
                                                             ruota = " roma"
                                                               If i >= 41 & i <= 45 Then
                                                                 ruota = " torino"
                                                                   If i >= 45 Then
                                                                     ruota = " venezia"
                                                                        End If
                                                                   End If
                                                            End If
                                                       End If
                                                   End If
                                              End If
                                         End If
                                    End If
                              End If
                          End If
                              If amb1 > 45 Then amb1 = 90 - amb1
                                If amb1 = 30 Then
                                            List3.AddItem ruota & " " & CStr(sb) & "  " & CStr(st)
                                 End If
                              
                           z = z + 1
                Next k
            Next j
        Next i
    i miei post sono RIFERITI TUTTI A VISUAL BASIC 6
    MSN MESSENGER : magicolotto@hotmail.it

  10. #10
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Di una cosa mi sono reso conto... che dell'indentazione non hai capito praticamente nulla....

    in ogni caso per valutare molte condizioni soprattutto della tipologia che serve a te, il costrutto If...Then non è per nulla il più adatto...

    meglio utilizzare Select Case

    ti faccio un esempio:

    codice:
    Select Case i
        Case 1 To 5
            ruota = "bari"
        Case 6 To 10
            ruota = "cagliari"
        Case 11 To 15
            ruota = "firenze"
        Case 16 To 20
            ruota = "genova"
        Case 21 To 25
            ruota = "milano"
        Case 26 To 30
            ruota = "napoli"
        Case 31 To 35
            ruota = "palermo"
        ' e così via....
    End Select
    capirai da solo che è nettamente più leggibile... e soprattutto funzionante.

    Boolean

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.