Newsgroup: it.comp.lang.visual-basic
Titolo: max arrey - cosa sbaglio?

Secondo voi dove sbaglio cercando il valore massimo di un array e il suo
indice corrispondente?
Questo il codice:
Max = N(0)
l = 0
For X = 1 To 11
        If N(X) > Max Then
        Max = N(X)
        l = X
        End If
Next X
Un modo più veloce di questo per stampare a video tutti gli N(i) ?
Parlamento.LabelArray.Caption = "  " & "  " & N(0) & "  " & N(1) & "
.................... " & NParlam.List(11)
Parlamento.LabelArray1.Caption = l
Grazie.
Gregor.

 Next X
Se apri un if... devi anche chiuderlo! :)
Il codice giusto é:
 For X = 1 To 11
         If N(X) > Max Then
             Max = N(X)
                 l = X
             End If
         End IF
Next X
Se indenti (fai i rientri) anche per gli if é piů chiaro! :)
                            Ciaooo
                                    Allanon

 wrote in message
news:9pkjjb$iiu3l$1...@ID-67444.news.dfncis.de...
Guarda che l'IF l'avevo chiuso!
Infatti con la tua modifica mi dice "Blocco End If senza If"
Gregor.

 wrote in message
news:aelv7.5428$DW5.1...@news2.tin.it...
Potrei provare con un' altra procedura per ricavare l'indice della posizione
dell'array che ha il valore massimo, ma non saprei come farlo. Confido in un
aiuto.
Grazie.
Gregor.

 Gregor.

 wrote in message
news:Lbov7.30355$0Y2.3...@news.infostrada.it...


 (P.S.: un altro modo per rocavare il max N(i) e il relativo i ? )
Nessuno.
Il tuo č il migliore se l'array non č ordinato :(
Ciao

 Il tuo è il migliore se l'array non è ordinato :(
Sembrerà starno ma mi sballa tutto! Indice i che non corrisponde al maz
N(i)!
E se provassi ad ordinarlo? L'indice che cerco sarebbe così il primo. Come
poso ottenerlo?
Gregor.

 poso ottenerlo?
Sul sito comune c'è una bella raccolta di funzioni di ordinamento.
Ti consiglio la QuickSort ver.3: è la più veloce e non ha problemi
collaterali.
Ma alla fine, forse il metodo più veloce e semplice resta il tuo.
Ciao
------------------------- SiDB Simple DataBase engine ----
------------------------- adParser Expression evaluator --
 
http://space.virgilio.it/zntf...@tin.it/
----------------------------------------------------------

 - loop incriminato
Ho fatto stampare su una label tutto l'array N(i), e questo è esattamente
lo stesso che viene richiamato in un altro pezzo di prog. Quindi array
corretto.
Solo che al momento di estrarre l' indicie i che mi dà il max, sballa
completamente. Cosa che invece non avviene nell'altro punto.
Non riesco a riportare il codice, poichè il prog è molto vasto.
La cosa strana è che l'array è corretto (lo vedo dal label)!
Ho creato una funzione "massimo" che confronta due elementi (potrei farla
anche da tre) e farli passare ad uno ad uno
Function massimo(a As Integer, b As Integer)
If a = b Then
     massimo = a
     Else
        If a > b Then
        massimo = a
        Else
        massimo = b
     End If
End If
End Function
Questo codice dovrebbe darmi il max, ma no gli piace qualcosa!
max1 = a(0)
For i = 1 To 11
max1 = massimo(max1, a(i))
Next i
Prima trovo il max e poi mi preoccupo dell'indice i corrispondente!
Sto cercando altre soluz perchè cercare di capire come mai il primo metodo
(per trovare il max) fallisce penso sia difficile!
Gregor.

 wrote in message
news:8few7.15692$DW5.3...@news2.tin.it...
Ho risolto proprio con questo codice:
max1 = a(0)
For i = 1 To 11
max1 = massimo(max1, a(i))
Next i
Dichiarando max1 as Integer.
E usando il precedente codice (per trovare il max N(i)) solo dove non dava
prob.
Non sarà elegante ma funziona, e per il momento mi interessa questo.
Grazie a tutti.
Gregor.

 End Function
Function massimo(a As Integer, b As Integer)
    If (a > b) Then
        massimo = a
    Else
        massimo = b
    End If
End Function
Ciao

 End Function
Per ottimizzare un po':
Function massimo(a As Integer, b As Integer)
    massimo = b
    if (a > b) then massimo = a
End Function

"H.P.L." <u...@vaila.ble> wrote in message
news:9pt793$49o$1...@fe1.cs.interbusiness.it...

L'ottimzzazione la farň in seguito..;)
Gregor.

End Function
Tecnicamente vb si "sforza" di piu' a fare quello che
hai scritto tu o quello che scrivo qua sotto?
Public Function massimo(a As Integer, b As Integer)
    massimo = IIf(a > b, a, b)
End Function
la mia pure se e' un istruzione fa comunque un if then else no?
--+- LELEM - Uno de tres mosquetero -+--
              ICQ: 8457530