[c#] operazioni con array

venerdì 06 agosto 2010 - 17.53
Tag Elenco Tags  C#  |  .NET 3.5  |  Visual Studio 2008  |  Visual Studio Express  |  MySQL 5.1  |  Access (.mdb)  |  Office 2003  |  Chrome  |  Firefox  |  XHTML 1.0  |  XHTML 1.1  |  XHTML 2.0

hellsmarter83 Profilo | Newbie

salve a tutti...
ho un array di interi ordinati in maniera crescente ogni volta variabile...

ho bisogno di fare questa cosa...
quando 2 valori dell'array sono relativamente contigui (uno scarto di circa 30 unità), il valore più piccolo devo impostarlo come iniziale e quello più grande come finale, ovviamente riducendo la dimensione dell'array

avrei in mente il metodo, ma non riesco a buttare giu due linee di codice...

vi faccio un esempio di come avevo in mente di fare...

l'array principale è formato da 5 elementi... [1; 60; 125; 134; 255]

prima di eseguire la lettura dell'array, creo 2 array (o liste) chiamate inizio e fine

quando lo scarto tra 2 elementi è maggiore di 30, per esempio 1 e 60, al primo posto utile dei 2 array, l'algoritmo dovrebbe inserire sia in inizio che in fine lo stesso valore... nel caso in cui invece, la differenza è inferiore a 30, come tra 125 e 134, in inizio dovrebbe essere inserito 125 e a fine dovrebbe essere inserito 134

praticamente inizio e fine dovrebbero essere così composti:

inizio: [1; 60; 125; 255]
fine: [1; 60; 134; 255]

non so come fare... chi mi suggerisce qualcosa???

skizz87 Profilo | Newbie

Ciao,
io programmo in VB e così, sarà un po' spartano, ma a me funziona.
Credo che non avrai difficoltà a tradurlo in C#.
Fammi sapere se va bene non vorrei aver fatto qualche gaffe

Dim Partenza(4), Inizio(4), Fine(4), ContP, ContI, ContF As Integer ContP = 0 ContI = 0 ContF = 0 Partenza(0) = 1 Partenza(1) = 60 Partenza(2) = 125 Partenza(3) = 134 Partenza(4) = 255 Do While ContP < Partenza.Length Try If Partenza(ContP + 1) - Partenza(ContP) > 30 Then Inizio(ContI) = Partenza(ContP) Fine(ContF) = Partenza(ContP) ContI += 1 ContF += 1 Inizio(ContI) = Partenza(ContP + 1) Fine(ContF) = Partenza(ContP + 1) ContI += 1 ContF += 1 Else Inizio(ContI) = Partenza(ContP) Fine(ContF) = Partenza(ContP + 1) ContI += 1 ContF += 1 End If ContP += 2 Catch ex As IndexOutOfRangeException Inizio(ContI) = Partenza(ContP) Fine(ContF) = Partenza(ContP) Exit Do End Try Loop
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5