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.
Manuale COBOL 911<br />
|001500 03 COGNOME PIC X(30).<br />
|001600 03 NOME PIC X(30).<br />
|001700 03 NOTA PIC X(200).<br />
|001800 77 UTENTI-MAX USAGE IS INDEX.<br />
82.7.6 Scansione delle tabelle<br />
Il linguaggio COBOL prevede un’istruzione apposita per facilitare la scansione delle tabelle.<br />
Si tratta di ‘SEARCH’, che ha due modalità di funzionamento, a seconda che si voglia eseguire<br />
una ricerca sequenziale o una ricerca binaria. Naturalmente, la ricerca sequenziale si presta<br />
alla scansione di una tabella i cui dati non sono ordinati, mentre nel secondo caso devono<br />
esserlo.<br />
«<br />
Viene mostrato l’esempio di un programma completo che inizia con l’inserimento di dati<br />
all’interno di una tabella, quindi esegue una ricerca sequenziale al suo interno:<br />
|000100 IDENTIFICATION DIVISION.<br />
|000200 PROGRAM-ID. TEST-SEARCH.<br />
|000300 AUTHOR. DANIELE GIACOMINI.<br />
|000400 INSTALLATION. NANOLINUX IV,<br />
|000500 OPENCOBOL 0.31,<br />
|000600 DATE-WRITTEN. 2005-03-12.<br />
|000700*<br />
|000800 ENVIRONMENT DIVISION.<br />
|000900*<br />
|001000 DATA DIVISION.<br />
|001100*<br />
|001200 WORKING-STORAGE SECTION.<br />
|001300 01 RECORD-UTENTI.<br />
|001400 02 UTENTE OCCURS 60 TIMES<br />
|001500 INDEXED BY IND-UTENTE.<br />
|001600 03 COGNOME PIC X(30).<br />
|001700 03 NOME PIC X(30).<br />
|001800 03 NOTA PIC X(200).<br />
|001900 77 EOJ PIC 9 VALUE ZERO.<br />
|002000 77 RISPOSTA PIC XX.<br />
|002100 77 RICERCA PIC X(30).<br />
|002200*<br />
|002300 PROCEDURE DIVISION.<br />
|002400*------------------------- LIVELLO 0 -----------------------------<br />
|002500 MAIN.<br />
|002600 PERFORM INSERIMENTO-DATI<br />
|002700 VARYING IND-UTENTE FROM 1 BY 1<br />
|002800 UNTIL EOJ = 1.<br />
|002900 MOVE 0 TO EOJ.<br />
|003000 PERFORM SCANSIONE UNTIL EOJ = 1.<br />
|003100*<br />
|003200 STOP RUN.<br />
|003300*------------------------- LIVELLO 1 -----------------------------<br />
|003400 INSERIMENTO-DATI.<br />
|003500 DISPLAY IND-UTENTE, " INSERISCI IL COGNOME: ".