24.01.2014 Views

Parte ii - IIS Marconi Latina - Area didattica

Parte ii - IIS Marconi Latina - Area didattica

Parte ii - IIS Marconi Latina - Area didattica

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

908 volume V Programmazione<br />

il secondo, denominato ‘INDICE-C’, è sempre costituito da una variabile scalare, che però fa<br />

parte di una variabile strutturata:<br />

|000000 77 INDICE USAGE IS INDEX.<br />

|000000<br />

|000000 01 A.<br />

|000000 02 B PIC X(30).<br />

|000000 02 INDICE-C USAGE IS INDEX.<br />

Si può osservare che questo tipo di variabile numerica non prevede la definizione della sua<br />

dimensione che è stabilita invece dal compilatore, in base alle caratteristiche dell’elaboratore<br />

e del sistema operativo.<br />

In alternativa, l’indice può essere dichiarato contestualmente alla dichiarazione della variabile<br />

ricorrente; in tal caso, il compilatore può aggiungere dei controlli tali da impedire<br />

che si possa assegnare alla variabile un valore al di fuori dell’ambito della dimensione della<br />

tabella:<br />

|000000 01 ENCICLOPEDIA.<br />

|000000 05 VOLUME OCCURS 10 TIMES<br />

|000000 INDEX IS IND-VOLUME.<br />

|000000 10 TITOLO-VOLUME PIC X(30).<br />

|000000 10 PARTE OCCURS 20 TIMES<br />

|000000 INDEX IS IND-PARTE.<br />

|000000 15 TITOLO-PARTE PIC X(30).<br />

|000000 15 CAPITOLO OCCURS 30 TIMES<br />

|000000 INDEX IS IND-CAPITOLO.<br />

|000000 20 TITOLO-CAPITOLO PIC (30).<br />

|000000 20 TESTO PIC (200).<br />

Qui viene ripreso e modificato un esempio già apparso in una sezione precedente. La differenza<br />

consiste nell’assegnare l’indice a ogni variabile ricorrente. Pertanto si hanno gli indici:<br />

‘IND-VOLUME’, ‘IND-PARTE’ e ‘IND-CAPITOLO’.<br />

Come accennato, si può fare riferimento a un elemento di una tabella indicando un indice<br />

costituito da un’espressione matematica elementare. Si parla in questo caso di indici relativi,<br />

perché si possono sommare o sottrarre dei valori a partire da una posizione di partenza. Per<br />

esempio, supponendo che la variabile ‘I’ contenga il numero 15, l’elemento indicato come<br />

‘ELE (I - 4)’ corrisponderebbe alla notazione ‘ELE (11)’; nello stesso modo, l’elemento<br />

indicato come ‘ELE (I + 4)’ corrisponderebbe alla notazione ‘ELE (19)’.<br />

«<br />

82.7.4 Tabelle di dimensione variabile<br />

Teoricamente, è possibile dichiarare l’occorrenza di una variabile per una quantità variabile<br />

di elementi; si usa in tal caso la forma ‘OCCURS m TO n TIMES’. A seconda del compilatore,<br />

può essere obbligatorio, o facoltativo, specificare il nome di una variabile che controlla<br />

dinamicamente la quantità massima di elementi:<br />

Viene mostrato l’esempio di un programma completo, che serve ad accumulare in una tabella<br />

alcuni dati personali. Sono previsti un massimo di 60 elementi e la quantità effettiva di elementi<br />

è controllata dalla variabile ‘UTENTI-MAX’:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!