Parte ii - IIS Marconi Latina - Area didattica

Parte ii - IIS Marconi Latina - Area didattica Parte ii - IIS Marconi Latina - Area didattica

iismarconi.net
from iismarconi.net More from this publisher
24.01.2014 Views

988 volume V Programmazione Il file da ordinare può essere costituito dal nome che appare dopo la parola ‘USING’, oppure può essere generato da un gruppo di procedure del programma, specificate dopo le parole ‘INPUT PROCEDURE’. Il file indicato dopo la parola ‘USING’ è un file dichiarato normalmente, con l’organizzazione e l’accesso desiderati. Il file che risulta dall’ordinamento può essere costituito dal nome che appare dopo la parola ‘GIVING’, oppure può essere letto da un gruppo di procedure del programma, specificate dopo le parole ‘OUTPUT PROCEDURE’. Il file indicato dopo la parola ‘GIVING’ è un file dichiarato normalmente, con l’organizzazione e l’accesso desiderati. La gestione dei dati in ingresso o in uscita, attraverso delle procedure, viene descritto in altre sezioni; per il momento viene mostrato un esempio di ordinamento tipico, che coinvolge il file per il riordino, più due file per i dati (in ingresso e in uscita). |Listato 82.247. Programma elementare che dimostra il funzionamento di ‘SORT’. |000100 IDENTIFICATION DIVISION. |000200 PROGRAM-ID. TEST-SORT. |000300 AUTHOR. DANIELE GIACOMINI. |000400 DATE-WRITTEN. 2005-02-25. |000500* |000600 ENVIRONMENT DIVISION. |000700* |000800 INPUT-OUTPUT SECTION. |000900* |001000 FILE-CONTROL. |001100* |001200 SELECT FILE-DA-ORDINARE ASSIGN TO "input.seq". |001300 SELECT FILE-ORDINATO ASSIGN TO "output.seq". |001400 SELECT FILE-PER-IL-RIORDINO ASSIGN TO "sort.tmp". |001500* |001600 DATA DIVISION. |001700* |001800 FILE SECTION. |001900* |002000 FD FILE-DA-ORDINARE. |002100 01 RECORD-DA-ORDINARE PIC X(10). |002200* |002300 FD FILE-ORDINATO. |002400 01 RECORD-ORDINATO PIC X(10). |002500* |002600 SD FILE-PER-IL-RIORDINO. |002700* |002800 01 RECORD-PER-IL-RIORDINO. |002900 02 CHIAVE-ORDINAMENTO PIC X(5). |003000 02 FILLER PIC X(5). |003100* |003200 PROCEDURE DIVISION. |003300*------------------------- LIVELLO 0 ----------------------------- |003400 MAIN. |003500 SORT FILE-PER-IL-RIORDINO, |003600 ON ASCENDING KEY CHIAVE-ORDINAMENTO, |003700 USING FILE-DA-ORDINARE, |003800 GIVING FILE-ORDINATO.

Manuale COBOL 989 |003900* |004000 STOP RUN. |004100* Nell’esempio, il file usato per ottenere il riordino è ‘sort.tmp’; il file da ordinare è ‘input.seq’ (organizzato in modo sequenziale); il file ordinato che si ottiene è ‘output.seq’ (anche questo organizzato in modo sequenziale). Come chiave di ordinamento si prendono in considerazione i primi cinque byte del record. Lo schema sintattico consentirebbe l’indicazione di più file da ordinare e di più file ordinati da generare. Nel primo caso, i dati dei vari file vengono raccolti assieme e considerati parte di un file unico da ordinare; i file ordinati da generare, invece, rappresentano copie dello stesso risultato ordinato. 82.13.2 Fusione La fusione di due o più file, con l’istruzione ‘MERGE’ del COBOL, richiede la presenza di due o più file ordinati nello stesso modo, che si vogliono mettere insieme in un solo file ordinato. Per compiere questa funzione, si aggiunge un file ulteriore, dichiarato nella sezione ‘FILE SECTION’ con l’indicatore di livello ‘SD’. « La prima parte dello schema sintattico va interpretata nello stesso modo di quello per il riordino; dove file-name-1 è il file che deve essere dichiarato nella sezione ‘FILE SECTION’ con l’indicatore di livello ‘SD’ e le variabili indicate dopo le parole ‘ASCENDING’ o ‘DESCENDING’ sono le chiavi di ordinamento previste nei file in ingresso. Successivamente si può osservare nello schema sintattico che sono previsti soltanto file in ingresso, dopo la parola ‘USING’, tenendo in considerazione il fatto che devono essere almeno due. Questi file devono risultare già ordinati secondo le chiavi previste, altrimenti il risultato della fusione non è prevedibile. Il risultato della fusione può essere costituito dal nome che appare dopo la parola ‘GIVING’, oppure può essere letto da un gruppo di procedure del programma, specificate dopo le parole ‘OUTPUT PROCEDURE’. Il file indicato dopo la parola ‘GIVING’ è un file dichiarato normalmente, con l’organizzazione e l’accesso desiderati. La gestione dei dati in uscita, attraverso delle procedure, viene descritto in altre sezioni; per il momento viene mostrato un esempio di fusione tipico, si hanno i file ‘input-1.seq’ e ‘input-2.seq’ ordinati, si vuole ottenere il file ‘output.seq’ con la somma dei record, mantenendo l’ordinamento:

Manuale COBOL 989<br />

|003900*<br />

|004000 STOP RUN.<br />

|004100*<br />

Nell’esempio, il file usato per ottenere il riordino è ‘sort.tmp’; il file da ordinare è<br />

‘input.seq’ (organizzato in modo sequenziale); il file ordinato che si ottiene è ‘output.seq’<br />

(anche questo organizzato in modo sequenziale). Come chiave di ordinamento si prendono in<br />

considerazione i primi cinque byte del record.<br />

Lo schema sintattico consentirebbe l’indicazione di più file da ordinare e di più file ordinati<br />

da generare. Nel primo caso, i dati dei vari file vengono raccolti assieme e considerati parte di<br />

un file unico da ordinare; i file ordinati da generare, invece, rappresentano copie dello stesso<br />

risultato ordinato.<br />

82.13.2 Fusione<br />

La fusione di due o più file, con l’istruzione ‘MERGE’ del COBOL, richiede la presenza di due<br />

o più file ordinati nello stesso modo, che si vogliono mettere insieme in un solo file ordinato.<br />

Per compiere questa funzione, si aggiunge un file ulteriore, dichiarato nella sezione ‘FILE<br />

SECTION’ con l’indicatore di livello ‘SD’.<br />

«<br />

La prima parte dello schema sintattico va interpretata nello stesso modo di quello per il riordino;<br />

dove file-name-1 è il file che deve essere dichiarato nella sezione ‘FILE SECTION’ con<br />

l’indicatore di livello ‘SD’ e le variabili indicate dopo le parole ‘ASCENDING’ o ‘DESCENDING’<br />

sono le chiavi di ordinamento previste nei file in ingresso.<br />

Successivamente si può osservare nello schema sintattico che sono previsti soltanto file in<br />

ingresso, dopo la parola ‘USING’, tenendo in considerazione il fatto che devono essere almeno<br />

due. Questi file devono risultare già ordinati secondo le chiavi previste, altrimenti il risultato<br />

della fusione non è prevedibile.<br />

Il risultato della fusione può essere costituito dal nome che appare dopo la parola ‘GIVING’,<br />

oppure può essere letto da un gruppo di procedure del programma, specificate dopo le parole<br />

‘OUTPUT PROCEDURE’. Il file indicato dopo la parola ‘GIVING’ è un file dichiarato<br />

normalmente, con l’organizzazione e l’accesso desiderati.<br />

La gestione dei dati in uscita, attraverso delle procedure, viene descritto in altre sezioni; per<br />

il momento viene mostrato un esempio di fusione tipico, si hanno i file ‘input-1.seq’ e<br />

‘input-2.seq’ ordinati, si vuole ottenere il file ‘output.seq’ con la somma dei record,<br />

mantenendo l’ordinamento:

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

Saved successfully!

Ooh no, something went wrong!