Pascal/Array: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 87.7.4.102 (discussione), riportata alla versione precedente di Hippias
Etichetta: Rollback
m Update syntaxhighlight tags - remove use of deprecated <source> tags
Riga 32:
 
Se diamo un nome alla tabella, ad esempio ''Array'', possiamo indicare il valore dell'elemento di indice 8 in questo modo:
<sourcesyntaxhighlight lang=pascal>
Array[8] {indica l'elemento di posizione 8}
</syntaxhighlight>
</source>
così come
<sourcesyntaxhighlight lang=pascal>
Array[9] {indica l'elemento di posizione 9}
</syntaxhighlight>
</source>
e così via.
 
Riga 51:
che indica che il vettore nome_variabile avrà come posizioni i numeri da 1 a n (la notazione ''x''..''y'' dove x e y sono due valori dello stesso tipo indica tutti i valori compresi tra ''x'' e ''y'').
<br/>Notare che quello indicato tra parentesi non è altro che un ''[[Pascal/Gestione avanzata dei dati#Subrange|subrange]]'', e quindi sono ammesse anche dichiarazioni come:
<sourcesyntaxhighlight lang=pascal>
var
scheda: array['a'..'z'] of integer
</syntaxhighlight>
</source>
e così vale per gli altri tipi di dati, anche quelli enumerativi. Valgono anche dichiarazioni come:
<sourcesyntaxhighlight lang=pascal>
type
mese : (gen, feb, mar, apr, mag, giu, lug, ago, set, ott, nov, dic);
var
nomi_mesi: array[mese] of string;
</syntaxhighlight>
</source>
 
Per accedere ai valori dell'array, è sufficiente comportarsi come con le variabili normale, usando la notazione
nome_array[indice]
Ad esempio:
<sourcesyntaxhighlight lang=pascal>
scheda['a'] := 45;
writeln(scheda['a']);
</syntaxhighlight>
</source>
 
È possibile dichiarare gli array anche con un altro metodo:
Riga 78:
 
Per leggere e scrivere gli elementi di un vettore di N elementi in Pascal è possibile usare un ciclo for:
<sourcesyntaxhighlight lang=pascal>
for I:=1 to N do
readln(vettore[I]);
Riga 84:
for I:=1 to N do
writeln(vettore[I]);
</syntaxhighlight>
</source>
All'aumentare del contatore I, il programma scorre i posti del vettore. Nel caso di array che utilizzano indici non interi, si userà ad esempio:
<sourcesyntaxhighlight lang=pascal>
for I := 'a' to 'z' do
readln(vettore[I]);
</syntaxhighlight>
</source>
 
== Array bidimensionali ==
Riga 157:
 
Per leggere e scrivere i dati di una matrice di N righe e M colonne in Pascal si possono usare due cicli for annidati:
<sourcesyntaxhighlight lang=pascal>
for I:=1 to N do
for J:=1 to M do
Riga 165:
for J:=1 to M do
writeln(array[I,J]);
</syntaxhighlight>
</source>
 
== Utilizzi ==
L'utilizzo degli array è molto comodo, perché permette di gestire facilmente grandi quantità di dati. Vediamo ad esempio questo programma per un ipotetico sistema di gestione degli alunni:
<sourcesyntaxhighlight lang=pascal>
program verifica;
var numalunni, puntimax, i : integer;
Riga 197:
readln;
end.
</syntaxhighlight>
</source>
 
Un'altra utilità degli array è quella di poter accedere ad un valore anche senza saperne il suo nome, ma solo tramite un valore immesso dall'utente. Ad esempio, volendo convertire il numero di un mese nel nome corrispondente, senza array, bisognerebbe fare ricorso ad un costrutto ''case... of''. Usando i vettori, invece, è sufficiente dichiarare un array <code>nomeMese[1..12]</code> e assegnare ad ogni posizione il nome del mese interessato. Per ottenere poi il nome del mese ''n'', basterà scrivere <code>nomeMese[n]</code>.
Riga 204:
* Creare un programma che stampi i primi ''n'' numeri della ''successione di Fibonacci'' (la serie di Fibonacci è una serie di numeri F dove F<sub>0</sub> = 0, dove F<sub>1</sub> = 1 e ciascun altro dove F<sub>''n''</sub> = F<sub>''n''-1</sub> + F<sub>''n''-2</sub>)
{{cassetto|titolo=Soluzione|testo=
<sourcesyntaxhighlight lang=pascal>
program Fibonacci;
{$APPTYPE CONSOLE}
Riga 225:
readln;
end.
</syntaxhighlight>
</source>
}}
[[Categoria:Pascal|Array]]