posts - 315, comments - 268, trackbacks - 15

My Links

News

View Pietro Libro's profile on LinkedIn

DomusDotNet
   DomusDotNet

Pietro Libro

Tag Cloud

Article Categories

Archives

Post Categories

Blogs amici

Links

Passato e presente

Mi trovavo ad analizzare un vecchio codice VB6 per un amico, ed ho trovato una possibile implementazione di un algorimo per la risoluzione del seguente problema: Dato un array di double, trovare il valore minimo, escludendo dei valori, ad esempio, (0).

Soluzione del passato trovata (VB6)

Function TrovaMinimo(dati() As Double, Optional Except As Double) Dim i As Integer Dim Minimo As Double Dim numerodati As Integer numerodati = UBound(dati) Minimo = dati(1) If Except < 0 Then For i = 2 To numerodati If dati(i) < Minimo Then Minimo = dati(i) End If Next i Else For i = 2 To numerodati If dati(i) < Minimo And dati(i) <> Except Then Minimo = dati(i) End If Next i End If TrovaMinimo = Minimo End Function

Se il valore del parametro Except è minore di zero, viene trovato il minimo considerando tutti i valori nell'array, altrimenti si cerca l'elemento minimo, escludendo il valore di Except

Come potrebbe essere implementata una possibile soluzione del problema, sfruttando le tecnologie attuali:

using System.Linq; ... double[] data = new Double[] { 28, 25 ,0}; //Ritorna il valore minimo escludendo il valore 0 Console.WriteLine(data.Where(d => d != 0).ToArray().Min().ToString("N")); //Ritorna il valore minimo Console.WriteLine(data.Min().ToString("N"));

Print | posted on martedì 21 ottobre 2008 21:10 | Filed Under [ LINQ ]

Feedback

Gravatar

# re: Passato e presente

Per il codice VB6, devo dire che non mi ci sono meso a giocare (mi sono fidato del nome della funzione)...le prove che hai fatto sono molto interessanti, forse sono stato troppo superficiale...stuzzicando la mia curiosità...devo approfondire l'argomento. Grazie.
24/10/2008 00:38 | Pietro Libro
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET