Parte ii - IIS Marconi Latina - Area didattica
Parte ii - IIS Marconi Latina - Area didattica
Parte ii - IIS Marconi Latina - Area didattica
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
896 volume V Programmazione<br />
• il campo ‘MM-CARICO-QUANTITA’ può contenere un numero senza segno con otto cifre<br />
per la parte intera e tre cifre per la parte decimale;<br />
• il campo ‘MM-COSTO-UNITARIO’ può contenere un numero senza segno con sei cifre per<br />
la parte intera e due cifre per la parte decimale;<br />
• il campo ‘MM-DESCRIZIONE’ può contenere caratteri alfanumerici di qualunque tipo<br />
(nell’ambito di una rappresentazione in byte), per una dimensione di 200 caratteri.<br />
Nell’esempio del magazzino si può notare che tutti i nomi usati per individuare le varie componenti<br />
del record sono unici, ma oltre a questo è stata usata l’accortezza di mettere un prefisso<br />
(‘MM-’) per distinguerli rispetto a campi di altri file che potrebbero avere una struttura del record<br />
simile. Tuttavia, non è strettamente necessario che tali nomi siano univoci per tutto il programma,<br />
perché è prevista la possibilità di qualificarli in modo gerarchico. La qualificazione è<br />
descritta nella sezione 82.8.3.<br />
Esiste anche la possibilità di ridefinire la struttura di un record, assegnando un nome alternativo<br />
a un certo livello che si vuole descrivere diversamente. Si osservi l’esempio seguente:<br />
|000000 01 MIO-RECORD.<br />
|000000 02 CAMPO-A PIC X(20).<br />
|000000 02 RIDEFINITO-A REDEFINES CAMPO-A.<br />
|000000 03 DATA.<br />
|000000 04 ANNO PIC 9999.<br />
|000000 04 MESE PIC 99.<br />
|000000 04 GIORNO PIC 99.<br />
|000000 03 DESCRIZIONE PIC X(12).<br />
|000000 02 CAMPO-B ...<br />
|...<br />
Nell’esempio si vede un record denominato ‘MIO-RECORD’, che inizialmente è composto dal<br />
campo ‘CAMPO-A’ fatto per contenere 20 caratteri. Questo campo viene ridefinito nella riga<br />
successiva con il nome ‘RIDEFINITO-A’, che si articola in sottocampi, con i quali si vuole<br />
descrivere in modo alternativo la variabile ‘CAMPO-A’. In base al contesto si intende che i<br />
primi otto caratteri possano essere interpretati come le cifre numeriche di una data (anno,<br />
mese e giorno), individuando il resto come una descrizione non meglio qualificabile.<br />
Generalmente, la ridefinizione di un campo che non è suddiviso è di scarsa utilità, mentre è<br />
più interessante quando si applica a campi che hanno già una suddivisione, che però si vuole<br />
gestire anche in modo differente:<br />
|000000 01 MIO-RECORD.<br />
|000000 02 A<br />
|000000 03 B PIC X(10).<br />
|000000 03 C PIC X(10).<br />
|000000 02 D REDEFINES A.<br />
|000000 03 E PIC X(5).<br />
|000000 03 F PIC X(10).<br />
|000000 03 G PIC X(5).<br />
|000000 02 H ...<br />
|...