Parte ii - IIS Marconi Latina - Area didattica
Parte ii - IIS Marconi Latina - Area didattica
Parte ii - IIS Marconi Latina - Area didattica
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Manuale COBOL 943<br />
Nel caso si utilizzino dei nastri, quelli che il programma ha chiuso senza riavvolgere, vengono<br />
comunque riavvolti alla conclusione del programma stesso; inoltre, alla conclusione del<br />
programma vengono chiusi automaticamente i file che sono rimasti ancora aperti.<br />
82.12.4 Istruzione «COMPUTE»<br />
L’istruzione ‘COMPUTE’ consente di calcolare un’espressione aritmetica, assegnando il risultato<br />
a una o più variabili:<br />
«<br />
La variabile che nello schema sintattico appare con il nome identifier deve essere scalare e di<br />
tipo numerico, anche se può contenere una maschera di modifica. Possono essere indicate più<br />
variabili a sinistra del segno ‘=’ e ognuna riceve una copia del risultato dell’espressione alla<br />
destra.<br />
L’opzione ‘ROUNDED’ serve a richiedere un arrotondamento se la variabile ricevente non può<br />
rappresentare il risultato con la stessa precisione ottenuta dal calcolo dell’espressione; l’opzione<br />
‘SIZE ERROR’ consente di richiamare un’istruzione nel caso una delle variabili riceventi<br />
non fosse in grado di contenere la parte più significativa del valore ottenuto calcolando<br />
l’espressione.<br />
|000000 COMPUTE D = A * B + C.<br />
L’esempio mostra che si vuole assegnare alla variabile ‘D’ il risultato dell’espressione ‘A * B<br />
+ C’ (A moltiplicato B, sommato a C).<br />
82.12.5 Istruzione «DELETE»<br />
L’istruzione ‘DELETE’ cancella un record logico da un file organizzato in modo relativo o a<br />
indice (sono esclusi i file organizzati in modo sequenziale).<br />
«<br />
Per poter cancellare un record è necessario che il file sia stato aperto in lettura e scrittura<br />
(‘I-O’).<br />
Se il file viene utilizzato con un accesso sequenziale, l’opzione ‘INVALID KEY’ non è applicabile<br />
e non deve essere scritta nell’istruzione. Inoltre, utilizzando un accesso sequenziale,<br />
prima di eseguire un’istruzione ‘DELETE’ è necessario che il puntatore del record sia stato posizionato<br />
attraverso un’istruzione ‘READ’. L’istruzione ‘READ’ deve precedere immediatamente<br />
l’istruzione ‘DELETE’, che così può cancellare il record appena letto.<br />
Quando il file viene utilizzato con un accesso diretto (‘RANDOM’) o dinamico (‘DYNAMIC’),<br />
l’opzione ‘INVALID KEY’ è obbligatoria, a meno di avere dichiarato un’azione alternativa, in<br />
caso di errore, nella zona di istruzioni definite come ‘DECLARATIVES’, all’inizio della divisione<br />
‘PROCEDURE DIVISION’. Per individuare il record da cancellare, si fa riferimento alla