Pascal/Array: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ramac (discussione | contributi)
m sistemo
Ramac (discussione | contributi)
cambio avanzamento a 100%
Riga 50:
nome_variabile: '''array[1..n] of tipo_del_dato''';
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:
<br/>&Egrave; possibile anche usare come indici di un array valori char o definiti dall'utente:
<source lang=pascal>
var
vettorescheda: array['a'..'z'] of integer
</source>
e così vale per gli altri tipi di dati, anche quelli enumerativi.
 
Per accedere ai valori dell'array, è sufficiente comportarsi come con le variabili normal, usando la notazione
vettorenome_array[indice]
Ad esempio:
<source lang=pascal>
scheda['a'] := 45;
writeln(scheda['a']);
</source>
è una dichiarazione valida, e si può facilmente fare riferimento al vettore con la scrittura come una normale variabile con la scrittura:
vettore[indice]
 
È possibile dichiarare gli array anche con un altro metodo:
Line 72 ⟶ 79:
writeln(vettore[I]);
</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:
<source lang=pascal>
for I := 'a' to 'z' do
readln(vettore[I]);
</source>
 
== Array bidimensionali ==
Line 148 ⟶ 159:
for J:=1 to M do
writeln(array[I,J]);
</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:
<source lang=pascal>
program verifica;
var numalunni, puntimax, i : integer;
punti[1.100], voto[1.100]: array of real;
sommavoti : real;
op : char;
begin
write('Quanti alunni? '); readln(numalunni);
for i := 1 to numalunni do
begin
write('Inserisci il punteggio per l''alunno', i);
readln(punteggio[i]);
end;
writeln('I dati sono stati memorizzati');
{qui si possono effettuare altre operazioni}
{qui si possono riprendere i dati memorizzati in precedenza}
sommavoti := 0;
for i := 1 to numalunni do
begin
voto[i] := (punti[i] / puntimax ) * 10;
writeln('Il voto per l''alunnno', i, 'e'' ', voto[i]:3:1);
sommavoti := sommavoti + voto[i];
end;
writeln('La media dei voti e'' ', sommavoti/numalunni:3:1)
readln;
end.
</source>
 
[[Categoria:Pascal|Array]]
{{avanzamentoAvanzamento|100%|31 dicembre 2007}}