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

    [vb6] rilevare numeri uguali

    ciao ragazzi , nuovo problema

    ho sei variabili

    prinum
    secnum
    ternum
    quanum
    quinum
    sesnum

    in questa formazione di sei numeri devo rilevare i numeri ripetuti, e quelli disuguali...cioè dovrei distinguerli..

    a me basterebbe ottenere il risultato dei numeri che nella formazione sono diversi

    esempio

    prinum= 24
    secnum= 52
    ternum=24
    quanum=6
    quinum=52
    sesnum=6

    abbiamo in questo caso
    tre coppie
    24-24
    52-52
    06-06
    dovre far si di ottenere 24-52-6

    senza dover scrivere uncodice if ,ed if sino all'infinito
    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
    Per questo tipo di problemi, sono stati inventati gli array ... invece di usare sei variaibili diverse, utilizza un array di sei elementi

    num(1 to 6)

    e poi con una semplice for, tiri fuori i numeri come vuoi ...

  3. #3
    num(1 to 6) as variant
    for num1= 1 to 5
    for num2= num1 + 1 to 6
    if num1= num2 then
    i miei post sono RIFERITI TUTTI A VISUAL BASIC 6
    MSN MESSENGER : magicolotto@hotmail.it

  4. #4
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Bhe, però non è così semplice ...
    LM

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Intanto la If la devi fare confrontando gli elementi di num (dove sono i valori) e non gli indici delle for !

    E in secondo luogo, devi specificare meglio quale deve essere la conseguenza delle If ... ovvero, devi visualizzare i valori diversi, oppure quelli uguali? Oppure non li devi visualizzare ma li devi memorizzare ? Se sono tutti diversi tra loro cosa devi visualizzare ?

  6. #6
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Buon giorno oregon,
    a me sembra che debba visualizzare/memorizzare in una Variabile tutte le coppie di numeri uguali (cioè nell'esempio tutti), per poi semplificare da coppia a singolo numero che risulta doppio nella seguenza dei 6 numeri. Francamente ho provato con due matrici l'una inversa dell'altra, ma non sono certo che il modo d'intervenire sia questo ...
    LM

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Buongiorno anche a te,

    il problema e' che le specifiche non sono chiarissime ... e se ci sono 3 numeri uguali? E se sono tutti uguali? Bisogna trattare solo le coppie? E i valori che non si ripetono?

  8. #8
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Sì hai ragione,
    io ho tentato di semplificare considerando solo le coppie uguali, mentre i n° diversi sono ignorati (nell'esempio i numeri doppi sarebbero 24-52-6, cioè tutti).
    Invece di due matrici si potrebbe anche fare con due cicli For inversi.
    Ma anche così mi risulta difficile conseguire un risultato chiaro.
    LM

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Io direi di attendere notizie *dettagliate* da Magicolotto ...

  10. #10
    Originariamente inviato da LMondi
    Sì hai ragione,
    io ho tentato di semplificare considerando solo le coppie uguali, mentre i n° diversi sono ignorati (nell'esempio i numeri doppi sarebbero 24-52-6, cioè tutti).
    Invece di due matrici si potrebbe anche fare con due cicli For inversi.
    Ma anche così mi risulta difficile conseguire un risultato chiaro.
    Forse il sistema migliore potrebbe essere una Collection, ma si puo' anche utilizzare un Array dinamico, che andiamo ad incrementare di un elemento ogni volta che "troviamo" un numero "nuovo"...

    Comunque si deve utilizzare un Array anche per la lista iniziale dei valori, se no come si fa a "scorrerli" ?

    Pare che MagicoLotto sia un po' refrattario ad Array e cicli For

    codice:
    Private Sub Command1_Click()
       Dim n(1 To 6) As Integer
       Dim NU As Integer, U() As Integer
       Dim i As Integer, j As Integer, GiaPresente As Boolean
       
       n(1) = 24
       n(2) = 52
       n(3) = 24
       n(4) = 6
       n(5) = 52
       n(6) = 6
       
       ReDim U(1)
       U(1) = n(1)
       NU = 1
       For i = 2 To 6
          GiaPresente = False
          For j = 1 To NU
             If n(i) = U(j) Then GiaPresente = True: Exit For
          Next
          If GiaPresente = False Then
             NU = NU + 1
             ReDim Preserve U(NU)
             U(NU) = n(i)
          End If
       Next
    
       Debug.Print "Ci sono "; NU; " numeri unici:"
       For i = 1 To NU
          Debug.Print U(i)
       Next
    
    End Sub
    IceCube_HT (VB6 fan Club)

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.