Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: carmelo81 - Giugno 15, 2012, 03:55:15 pm

Titolo: trovare valore max/min
Inserito da: carmelo81 - Giugno 15, 2012, 03:55:15 pm
Ciao a tutti,
come posso fare a trovare il valore max o min in una colonna o riga di una stringgrid che ha ad es. 20 righe e 2 colonne?
Grazie mille
Carmelo
Titolo: Re:trovare valore max/min
Inserito da: Stilgar - Giugno 15, 2012, 04:21:29 pm
Ciao,
  in informatica ci sono milioni di modi per risolvere un problema.
Allora che "tipo" di valore contiene quella colonna? (Cosa rappresentano i valori che vedi)
Le stringhe hanno una logica di ordinamento, i numeri un'altra.
La prima cosa che mi viene da risponderti è :
Cloni il contenuto della colonna(
Codice: [Seleziona]
property Cols[index: Integer]: TStrings
) dentro una TStringList.
A questa chiedi di fare l'ordinamento : TStringList.Sort.
Ma questo metodo va bene per le stringhe.
Per i numeri otterrai : 1 10 11 2 20 Come ordinamento.



Titolo: Re:trovare valore max/min
Inserito da: nomorelogic - Giugno 15, 2012, 07:15:20 pm
io farei un ciclo for..to sulla colonna o sulla riga
sicuramente è più performante :)
Titolo: Re:trovare valore max/min
Inserito da: Stilgar - Giugno 15, 2012, 07:48:45 pm
Non so ;)
il sort di TStringList è un QSort.
La tua è una ricerca lineare ;)
All'aumentare degli elementi aumenta il tempo impiegato.
Con il QSort ha subito gli elementi più grandi e più piccoli della lista.
Primo (minore)
Ultimo (maggiore).
E vuoi mettere la leggibilià del codice? :D
EDIT:
Confermata l'asserzione che in informatica si possono fare le stesse cose in vari modi :D
Titolo: Re:trovare valore max/min
Inserito da: nomorelogic - Giugno 15, 2012, 08:22:40 pm
infatti dipende da ciò che si deve fare, un sort è comunque un sort, e se gli elementi sono 20...  ;)

leggibilità? da piccolo leggevo Topolino :D