Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - VB 2005 - stampare i numeri doppioni in un vettore
Forum - C# / VB.NET - VB 2005 - stampare i numeri doppioni in un vettore

Avatar
lukino188 (Normal User)
Newbie


Messaggi: 6
Iscritto: 05/03/2008

Segnala al moderatore
Postato alle 16:09
Mercoledì, 05/03/2008
salve, e da due ore che ci sto uscendo pazzo..

dunque il mio prof. ci ha dato un esercizio il quale richiede:
dato dei numeri inseriti in un vettore, stampare i numeri trovati doppioni su una textbox..sembrava facile per me ma non ci riesco..

grazie per l'aiuto!!


PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:13
Mercoledì, 05/03/2008
Basta una funzione sola: Array.IndexOf. Nel suo secondo overload accetta tre parametri: il primo è il vettore da analizzare, il secondo il valore da cercare e il terzo l'indice a cui iniziare la ricerca; restituisce un numero Integer che rappresenta la prima posizione (a base 0) del valore nell'array o -1 se la ricerca non ha prodotto risultati. Ora usa un po' d'immaginazione e il gioco è fatto...

PM Quote
Avatar
lukino188 (Normal User)
Newbie


Messaggi: 6
Iscritto: 05/03/2008

Segnala al moderatore
Postato alle 17:01
Mercoledì, 05/03/2008
ok grazie..

PM Quote
Avatar
lukino188 (Normal User)
Newbie


Messaggi: 6
Iscritto: 05/03/2008

Segnala al moderatore
Postato alle 17:07
Mercoledì, 05/03/2008
un informazione,in un altro modo non c'è?

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:12
Giovedì, 06/03/2008
Non ti ho detto che esiste solo un modo, ti ho solo suggerito di usare quella funzione. In questo momento mi vengono in mente almeno due metodi per risolverlo.

Il primo consiste nel vedere con IndexOf se, preso un valore dall'array, non esistano valori uguali successivi, ossia se IndexOf restituisse -1 in una ricerca a partire dalla posizione successiva.
Codice sorgente - presumibilmente VB.NET

  1. Dim A() As Int32
  2. '...
  3. For I As Int16 = 0 To A.Length - 1
  4.   If I < A.Length - 1 Then
  5.     If Array.IndexOf(A, A(I), I + 1) > -1 Then
  6.       'Il Valore A(I) è ripetuto, poichè ne esiste una copia successiva
  7.     End If
  8.   End If
  9. Next



Il secondo consiste nello svuotare gradualmente l'array da analizzare e mettere i valori tolti in un altro array, quindi constatare se i due contengono valori uguali.
Codice sorgente - presumibilmente VB.NET

  1. Dim A(), B(), V As Int32
  2. '...
  3. For I As Int16 = 0 To A.Length - 1
  4.   V = A(I)
  5.   A(I) = -1 'Annulla il valore
  6.   B(I) = V
  7.   If Array.IndexOf(B, V) >= 0 And Array.IndexOf(A, V) >= 0 Then
  8.     'Il valore è contenuto in entrambi, perciò è doppio
  9.   End If
  10. Next


  

PM Quote
Avatar
lukino188 (Normal User)
Newbie


Messaggi: 6
Iscritto: 05/03/2008

Segnala al moderatore
Postato alle 17:44
Giovedì, 06/03/2008
credo di utilizzare l'ultimo grazie mille!!

PM Quote