Archiviazione dati.

Supponi di aver sviluppato un gioco per computer chiamato "User Hostile" in cui i giocatori competono contro persone contorte e ostili interfaccia informatica. Ora devi scrivere un programma che tenga traccia delle vendite mensili di questo gioco per un periodo di cinque anni. Oppure diciamo che devi fare l'inventario delle carte collezionabili di Hacker Hero.
Molto presto arriverai alla conclusione che hai bisogno di qualcosa di più dei semplici tipi di dati di base per archiviare ed elaborare le informazioni.

 

Array. Introduzione.

Per facilitare il lavoro con grandi quantità di dati, a un gruppo di celle viene assegnata una nome. Tale gruppo di celle è chiamato array.
Array – è un gruppo di celle di memoria dello stesso tipo, poste una accanto all'altra e aventi un nome comune. Ogni cella nel gruppo ha un numero univoco.

Ci sono tre cose che devi imparare quando lavori con gli array:
X allocare memoria della dimensione richiesta per l'array;
X scrivere i dati nella cella desiderata;
X leggere i dati da una cella.

Crea un array.

Quando si crea un array, viene allocato spazio in memoria (un certo numero di celle).
1) Gli array possono essere creati semplicemente enumerando gli elementi:
int[] nums = < codice>nuovo int[] { 1, 2, 3, 5 };

int  significa che tutti gli oggetti nell'array sono numeri interi. Al posto di  int  può esserci qualsiasi altro tipo di dati. Per esempio,
stringa[] nomi = ["Vasya", "Peter", "Fedya"];

2) Non possiamo specificare immediatamente i valori dell'array, ma semplicemente creare un array della lunghezza che ci serve.
int[] nums = nuovo int[4];
3) Un array "sa" sempre la tua taglia. La dimensione dell'array a può essere trovata così:
a.Lunghezza;
Spesso la dimensione dell'array è memorizzata in una variabile separata in modo che il programma possa essere facilmente modificato per lavorare con una diversa dimensione dell'array. Esempio:
int N = 10; // memorizza la dimensione dell'array nella variabile N
int[] numeri = new int[4]; // crea un array di dimensione N
Console.Write(num.Lunghezza); // visualizza la dimensione dell'array
La dimensione dell'array può essere impostata dalla tastiera.

Riferimento a un elemento dell'array. < /u>

La maggior parte dell'utilità degli array deriva dal fatto che è possibile accedere individualmente ai suoi elementi.
Il modo per farlo è usare un indice per numerare gli elementi.
L'indice è un valore che punta a un particolare elemento dell'array.

Ricorda: la numerazione degli array C# inizia da zero.< br />
Esempi di accesso all'array A:
int x = (A[3] + 5) * A[1] / / leggo i valori A[3] e A[1]
A[0] = x + 6 // scrive un nuovo valore in A[0]
Analizziamo il programma per lavorare con gli elementi dell'array.
int i = 1;
int[] A = nuovo int[5]; //crea un array di 5 elementi
A[0] = 23; // a ciascuno dei 5 elementi dell'array (indici da 0 a 4)
A[1] = 12; // scrive un valore specifico
A[2] = 7;
LA[3] = 43;
A[4] = 51;
LA[2] = LA[i] + 2*LA[i-1] + LA[2*i]; // cambia il valore dell'elemento con indice 2 nel risultato dell'espressione
                                 // perché i=1, quindi sostituendo il valore della variabile i nell'espressione che otteniamo
                                // espressione successiva A[2] = A[1] + 2*A[0] + A[2];
Console.Write((A[2] + A[4]));

Come risultato dell'esecuzione di questo programma, il valore della somma degli elementi dell'array con sullo schermo apparirà indice 2 e con indice 4, pari a 116. Come puoi vedere dall'esempio, possiamo accedere a qualsiasi elemento dell'array. E calcola anche il numero dell'elemento richiesto utilizzando varie formule (ad esempio, come nel programma A[i-1] o A[2*i], in questi casi, gli indici degli elementi verranno calcolati e dipenderanno dal valore di i).

Analizziamo un programma di esempio.
int N = 5;
int[] A = new int[N];
intero x = 1;
A[x + 4] = A[x] + A[2 * (x + 1)];  // dopo aver sostituito x in espressioni e calcoli 
                          // ottiene la riga successiva A[5] = A[1] + A[4]
                          // A[5] tale elemento non esiste
                          // errore - array fuori dai limiti

L'array è dichiarato con 5 elementi, il che significa che gli elementi saranno numerati da 0 a 4. Vediamo che il programma nella sesta riga fa riferimento a un elemento inesistente: A[5].
Si scopre che il programma è andato oltre i limiti dell'array.
Un sovraccarico dell'array è un accesso a un elemento in un indice che non esiste nell'array.
In tali casi, il programma di solito si arresta in modo anomalo con un errore di runtime.

 

Quando lavori con gli array, di solito devi lavorare con tutti gli elementi dell'array contemporaneamente.
Itera sugli elementi: esaminiamo tutti gli elementi dell'array e, se necessario, eseguiamo qualche operazione con ciascuno di essi.
Per questo, viene spesso utilizzato un ciclo con una variabile, che cambia da 0 a N-1, dove N  è il numero di elementi dell'array.
Sotto N considereremo la dimensione attuale dell'array, cioè
N = A.Lunghezza;
...
for (int i = 0; i < N; i++)
{
     // qui lavoriamo con A[i]
}
Nel ciclo specificato, la variabile i assumerà i valori ​​0, 1, 2, ..., N-1.  Pertanto, ad ogni passo del ciclo, accediamo a un elemento specifico dell'array con il numero i.
Cioè, è sufficiente descrivere cosa deve essere fatto con un elemento dell'array A[i] e collocare queste azioni all'interno di tale ciclo.

Scriviamo un programma che riempia l'array con i primi numeri naturali, cioè alla fine del programma gli elementi dell'array dovrebbero diventare uguali
A[0] = 1
A[1] = 2
A[2] = 3
...
A[N - 1] = N
È facile vedere lo schema: il valore di un elemento dell'array deve essere maggiore di 1 del indice dell'elemento.
Il ciclo avrà questo aspetto
for (int i = 0; i < N; i++) { A[ io] = io + 1; }

Ulteriori modi per lavorare con gli elementi dell'array
Ad eccezione del per , puoi anche usare foreach - itera su tutti gli elementi dell'array, senza utilizzare gli indici. A volte può essere conveniente, ad esempio, visualizzare un array sullo schermo.   foreach(int i in A) { Console.Write(i + ""); }
Ed è così che puoi leggere un array, i cui elementi sono scritti su una riga e separati da uno spazio, dalla tastiera. utilizzando System.Linq; // è necessario scrivere questa direttiva per utilizzare le funzioni relative al lavoro con gli array ... testo stringa = Console.ReadLine(); int[] array = text.Split(' ').Select(int.Parse).ToArray(); // Split() divide la stringa in oggetti separati (in questo caso, divisione dello spazio) // Select(int.Parse) converte ogni oggetto (stringa) in un int // ToArray() scrive tutti gli oggetti ricevuti nell'array