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

994 volume V Programmazione Il record è il nome della variabile strutturata corrispondente del file che esegue in pratica l’ordinamento, ovvero quello che nello schema sintattico dell’istruzione ‘SORT’ appare come file-name-1. |Listato 82.258. Esempio di acquisizione di record da ordinare attraverso l’inserimento diretto. |000100 IDENTIFICATION DIVISION. |000200 PROGRAM-ID. TEST-SORT-3. |000300 AUTHOR. DANIELE GIACOMINI. |000400 DATE-WRITTEN. 2005-03-18. |000500* |000600 ENVIRONMENT DIVISION. |000700* |000800 INPUT-OUTPUT SECTION. |000900* |001000 FILE-CONTROL. |001100* |001200 SELECT FILE-PER-IL-RIORDINO ASSIGN TO "sort.tmp". |001300* |001400 DATA DIVISION. |001500* |001600 FILE SECTION. |001700* |001800 SD FILE-PER-IL-RIORDINO. |001900* |002000 01 RECORD-PER-IL-RIORDINO. |002100 02 CHIAVE-ORDINAMENTO PIC X(5). |002200 02 FILLER PIC X(5). |002300 |002400 WORKING-STORAGE SECTION. |002500 77 EOJ PIC 9 VALUE 0. |002600 77 EOF PIC 9 VALUE 0. |002700 77 DATI-INSERITI PIC X(10). |002800* |002900 PROCEDURE DIVISION. |003000*------------------------- LIVELLO 0 ----------------------------- |003100 MAIN SECTION. |003200 INIZIO. |003300 SORT FILE-PER-IL-RIORDINO, |003400 ON ASCENDING KEY CHIAVE-ORDINAMENTO, |003500 INPUT PROCEDURE IS INSERIMENTO-DATI, |003600 OUTPUT PROCEDURE IS MOSTRA-FILE-ORDINATO. |003700* |003800 STOP RUN. |003900* |004000*--------------------- SORT-MERGE PROCEDURE ---------------------- |004100 MOSTRA-FILE-ORDINATO SECTION. |004200 INIZIO. |004300 PERFORM MOSTRA-RECORD UNTIL EOF = 1. |004400 GO TO FINE. |004500 MOSTRA-RECORD. |004600 RETURN FILE-PER-IL-RIORDINO RECORD |004700 AT END MOVE 1 TO EOF,

Manuale COBOL 995 |004800 DISPLAY "FINE DEL FILE ORDINATO". |004900 IF EOF = 0 |005000 THEN |005100 DISPLAY RECORD-PER-IL-RIORDINO. |005200 FINE. |005300 EXIT. |005400*----------------------------------------------------------------- |005500 INSERIMENTO-DATI SECTION. |005600 INIZIO. |005700 PERFORM INSERISCI-RECORD UNTIL EOJ = 1. |005800 GO TO FINE. |005900 INSERISCI-RECORD. |006000 DISPLAY "INSERISCI UN RECORD DA 10 CARATTERI:". |006100 ACCEPT DATI-INSERITI. |006200 IF DATI-INSERITI = SPACES |006300 THEN |006400 MOVE 1 TO EOJ; |006500 ELSE |006600 MOVE DATI-INSERITI TO RECORD-PER-IL-RIORDINO, |006700 RELEASE RECORD-PER-IL-RIORDINO. |006800 FINE. |006900 EXIT. |007000* L’esempio è completo, in quanto anche il risultato del riordino viene gestito tramite una procedura. Nella fase di inserimento dati, si può osservare che un inserimento nullo (pari all’inserimento di tutti spazi), implica la conclusione di quella fase. 82.14 Riferimenti « • Christopher Heng, Free COBOL compilers and interpreters 〈http://www.thefreecountry.com/compilers/cobol.shtml 〉 • Programming manuals and tutorials, COBOL 〈http://www.theamericanprogrammer.com/programming/manuals.cobol.html 〉 • MPE/iX and HP e3000 Technical Documentation, HP COBOL II/XL – Programmer’s guide 〈http://docs.hp.com/en/424/31500-90014.pdf 〉 – Quick reference guide 〈http://docs.hp.com/en/425/31500-90015.pdf 〉 – Reference manual 〈http://docs.hp.com/en/426/31500-90013.pdf 〉 • Compaq COBOL Reference Manual 〈http://www.helsinki.fi/atk/unix/dec_manuals/cobv27ua/cobrm_contents.htm 〉

Manuale COBOL 995<br />

|004800 DISPLAY "FINE DEL FILE ORDINATO".<br />

|004900 IF EOF = 0<br />

|005000 THEN<br />

|005100 DISPLAY RECORD-PER-IL-RIORDINO.<br />

|005200 FINE.<br />

|005300 EXIT.<br />

|005400*-----------------------------------------------------------------<br />

|005500 INSERIMENTO-DATI SECTION.<br />

|005600 INIZIO.<br />

|005700 PERFORM INSERISCI-RECORD UNTIL EOJ = 1.<br />

|005800 GO TO FINE.<br />

|005900 INSERISCI-RECORD.<br />

|006000 DISPLAY "INSERISCI UN RECORD DA 10 CARATTERI:".<br />

|006100 ACCEPT DATI-INSERITI.<br />

|006200 IF DATI-INSERITI = SPACES<br />

|006300 THEN<br />

|006400 MOVE 1 TO EOJ;<br />

|006500 ELSE<br />

|006600 MOVE DATI-INSERITI TO RECORD-PER-IL-RIORDINO,<br />

|006700 RELEASE RECORD-PER-IL-RIORDINO.<br />

|006800 FINE.<br />

|006900 EXIT.<br />

|007000*<br />

L’esempio è completo, in quanto anche il risultato del riordino viene gestito tramite una<br />

procedura. Nella fase di inserimento dati, si può osservare che un inserimento nullo (pari<br />

all’inserimento di tutti spazi), implica la conclusione di quella fase.<br />

82.14 Riferimenti<br />

«<br />

• Christopher Heng, Free COBOL compilers and interpreters<br />

〈http://www.thefreecountry.com/compilers/cobol.shtml 〉<br />

• Programming manuals and tutorials, COBOL<br />

〈http://www.theamericanprogrammer.com/programming/manuals.cobol.html 〉<br />

• MPE/iX and HP e3000 Technical Documentation, HP COBOL II/XL<br />

– Programmer’s guide<br />

〈http://docs.hp.com/en/424/31500-90014.pdf 〉<br />

– Quick reference guide<br />

〈http://docs.hp.com/en/425/31500-90015.pdf 〉<br />

– Reference manual<br />

〈http://docs.hp.com/en/426/31500-90013.pdf 〉<br />

• Compaq COBOL Reference Manual<br />

〈http://www.helsinki.fi/atk/unix/dec_manuals/cobv27ua/cobrm_contents.htm 〉

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

Saved successfully!

Ooh no, something went wrong!