Newsgroup: it.comp.lang.visual-basic
Titolo: Codice in Visual Basic

Ciao,
sto cercando la funzione in Vusal Basic, che calcola il massimo tra un
insieme di valori (vettore di numeri).
Qualcuno mi scriverebbe il codice esatto o mi indicherebbe dove posso
trovarlo?
Grazie
Bernd

   Next
Prima o poi scriverò un articolo sulla "programmazione creativa" :)
Ciao

Cioč scusa, non "ordinarli", ma testarli uno per uno fino a trovare il 
massimo tra quelli controllati.
-- 
Quando noi ignoranti eravamo di piů, tutto era piů bello (A. Celentano).
  ___   _   ___ _  _______   _______ ___
|   \ /_\ | _ \ |/ / _ ) \ / /_   _| __|
| |) / _ \|   / ' <| _ \\ V /  | | | _|
|___/_/ \_\_|_\_|\_\___/ |_|   |_| |___|

 wrote in message
news:coo11k$mui$
1...@lacerta.tiscalinet.it

  imax = ubound(Vettore)
  iPosizioneMax = 0
  For iConto = 0 To iMax
    iPosizioneMax = iPosizioneMax + (iPosizioneMax - iConto) *
(Vettore(iConto) > Vettore(iPosizioneMax))
  Next
Dovrebbe funzionare, ma solo con vettori di numeri. Non ti so dire
niente in quanto a velocita', visto che deve spazzolarsi tutto l'array.
Bye by SixaM 8-]
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


wrote:

Il codice lo devi fare tu :). Qui al massimo possiamo darti uno
spunto, ecco il mio:
Considera il primo numero come massimo;  poi cicla sui restanti
elementi confrontandoli con il massimo attuale aggiornando questo
valore se ce ne fosse bisogno.
Ora tocca a te scrivere il codice :)
^_^

Non esiste una funzione VB per farlo.
Ti conviene mettere i valori in un array e ordinarli ciclando su questo.



questo ti trova il massimo ed il minimo
e la media...e pure la somma!
option explicit
option value 1
dim n as long
dim limite as long
dim max as long
dim min as long
dim ValoreLetto as long
dim media as single
dim Somma as long
'l'array l'avrai caricato da un altra parte
'poniamo sia in Valori(1000)...ossia una matrice di long di 1000 posizioni
' +1 se non usi option value 1
max=0
min=0
Somma=0
for n=1 to limite
    valoreletto=valori(n)
    if valoreletto>max Then
        max=valoreletto
    else
        if valoreletto<min then min=valoreletto
    end if
    somma=somma +Valoreletto
next n
media=Csng(somma/n)
P:S:
a)Limiti:
Usi long...solo numeri interi e non infiniti...se necessiti di numeri
decimali devi cambiare tipo di variabile
Quale?
F1 Tipi di variabili
b) Tanti dati? Appoggiali su un file...cambia il for next con un do ...loop
until EOF
Occhio sempre ai limiti di memorizzazione del tipo di variabili
c)...il codice l'ho scritto di getto...a te abbellirlo e migliorarlo!
Bye man!
-- 
Il Wodkino Nazionale č a : 
www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2
 Quotefix e altro:
http://www.martek.it/go.asp?portamia=4
Usr: ICLVB Pw: amici

 spazzolarsi tutto l'array.
Se l'array è casuale e devi trovare l'elemento massimo non puoi fare
altrimenti.
termoPilucco
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Anche quanto a conversioni implicite non siamo messi male...
Alberto
--
E tutto mi sembrava andasse bene...

 Ciao
Arf arf arf 8-)))
Un mio collega, per tirare fuori il numero di giorni partendo dal mese e
dall'anno, ha scomodato le mappe di karnaugh ed i confronti bit a bit,
per risolvere il tutto in una sola riga di codice...
Bye by SixaM 8-]
P.S. Dev'essere l'atmosfera tipo 'quinta ora del sabato quando sai che
lunedi c'e' il ponte perche' martedi e mercoledi' sono festivi'...


 next n
------------
NON va bene.....supponi che in valori hai tutti valori negativi......max = 0
il che non e' vero
e con tutti i valori positivi  min= 0
io per trovare il max ed il min faccio cosi
dim min as long
dim max as long
dim n as long
min= 1.E30         ' numero molto ma molto grande
max = -1.E30        'num molto piccolo
for k=0 to n
    if valore(n) > max then max = valore(n)
   if valore(n) < min then min= valore(n)
nexr n
bye e buon lavoro
leonello

 ha scritto nel messaggio
news:coo11k$mui$1...@lacerta.tiscalinet.it...

-----------------------------


 max = -1.E30        'num molto piccolo
inizializzare max e min in questo modo ha lo stesso effetto che 
inizializzarli come ha fatto vodka...
il metodo corretto (imho) è assegnargli inizialmente il valore del primo 
elemento dell'array, quindi:
min=valore(0)
max=valore(0)
poi fai il ciclo...
CIAO 

 max = -1.E30        'num molto piccolo
Ho qualche dubbio che 1.E30 e -1.E30 possano stare in un long :)
E poi, qualsiasi valore tu metta non risolvi il problema a cui accennavi,
lo sposti semplicemente.
cosě dovrebbe andare meglio :)
min= valore(0)
max = valore(0)
for k=1 to n
   if valore(n) > max then max = valore(n)
   if valore(n) < min then min= valore(n)
nexr n


 ha scritto nel messaggio
news:ne3vq0pk09gr6pmnt...@4ax.com...


 mettendo anche il codice, comunque grazie lo stesso!
Scusami, non voglio alimentare polemiche, ma ti prego di ricordare una cosa:
i newsgroups sono gruppi di discussione, *NON* sono helpdesk.
Detto questo, ben venga chi pubblica soluzioni alle richieste di aiuto 
anche se *non e' un obbligo*.
Pace e bene,
-- 
hal


Nel libro di F. Balena "I trucchi di Visual Basic 6" - I Miti Informatica
Mondadori - 10.70 Euro, ci sono alcuni interessanti algoritmi di ordinamento
degli array. Se il tuo vettore contiene solo numeri, potresti usare il
QuickSort che mi sembra che sia il più veloce.
Spero ti sia utile. Ciao.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/