Parte ii - IIS Marconi Latina - Area didattica
Parte ii - IIS Marconi Latina - Area didattica Parte ii - IIS Marconi Latina - Area didattica
910 volume V Programmazione |005300 MOVE 1 TO EOJ. |005400*----------------------------------------------------------------- |005500 SCANSIONE. |005600 DISPLAY COGNOME (IND-UTENTE), " ", |005700 NOME (IND-UTENTE), " ", |005800 NOTA (IND-UTENTE). |005900* 82.7.5 Tabelle ordinate « Se si devono utilizzare i dati in una tabella per eseguire una ricerca al suo interno (utilizzando l’istruzione ‘SEARCH’ nella divisione ‘PROCEDURE DIVISION’), se si può essere certi che le informazioni contenute siano ordinate secondo una certa chiave, lo si può specificare nella dichiarazione: La metavariabile data-name-4 dello schema sintattico rappresenta una variabile contenuta nell’elemento ricorrente; attraverso la parola chiave ‘ASCENDING’ si intende dichiarare che la tabella è ordinata, lessicograficamente, in modo ascendente, secondo il contenuto di quella variabile, se invece si usa la parola chiave ‘DESCENDING’, si intende un ordinamento decrescente. È possibile specificare più chiavi di ordinamento successive, nel caso si vogliano abbinare chiavi secondarie di ordinamento. Sia chiaro che la tabella deve già risultare ordinata secondo le chiavi specificate, altrimenti le istruzioni ‘SEARCH’ della divisione ‘PROCEDURE DIVISION’ danno risultati errati o falliscono semplicemente. Naturalmente, all’interno del programma è possibile prevedere un procedimento di riordino, da eseguire prima di utilizzare delle istruzioni ‘SEARCH’. L’esempio seguente mostra l’indicazione della chiave di ordinamento, costituita precisamente dalla variabile ‘COGNOME’, che deve risultare ascendente in fase di ricerca: |001000 WORKING-STORAGE SECTION. |001100 01 RECORD-UTENTI. |001200 02 UTENTE OCCURS 1 TO 60 TIMES |001300 DEPENDING ON UTENTI-MAX |001350 ASCENDING KEY IS COGNOME |001400 INDEXED BY IND-UTENTE.
Manuale COBOL 911 |001500 03 COGNOME PIC X(30). |001600 03 NOME PIC X(30). |001700 03 NOTA PIC X(200). |001800 77 UTENTI-MAX USAGE IS INDEX. 82.7.6 Scansione delle tabelle Il linguaggio COBOL prevede un’istruzione apposita per facilitare la scansione delle tabelle. Si tratta di ‘SEARCH’, che ha due modalità di funzionamento, a seconda che si voglia eseguire una ricerca sequenziale o una ricerca binaria. Naturalmente, la ricerca sequenziale si presta alla scansione di una tabella i cui dati non sono ordinati, mentre nel secondo caso devono esserlo. « Viene mostrato l’esempio di un programma completo che inizia con l’inserimento di dati all’interno di una tabella, quindi esegue una ricerca sequenziale al suo interno: |000100 IDENTIFICATION DIVISION. |000200 PROGRAM-ID. TEST-SEARCH. |000300 AUTHOR. DANIELE GIACOMINI. |000400 INSTALLATION. NANOLINUX IV, |000500 OPENCOBOL 0.31, |000600 DATE-WRITTEN. 2005-03-12. |000700* |000800 ENVIRONMENT DIVISION. |000900* |001000 DATA DIVISION. |001100* |001200 WORKING-STORAGE SECTION. |001300 01 RECORD-UTENTI. |001400 02 UTENTE OCCURS 60 TIMES |001500 INDEXED BY IND-UTENTE. |001600 03 COGNOME PIC X(30). |001700 03 NOME PIC X(30). |001800 03 NOTA PIC X(200). |001900 77 EOJ PIC 9 VALUE ZERO. |002000 77 RISPOSTA PIC XX. |002100 77 RICERCA PIC X(30). |002200* |002300 PROCEDURE DIVISION. |002400*------------------------- LIVELLO 0 ----------------------------- |002500 MAIN. |002600 PERFORM INSERIMENTO-DATI |002700 VARYING IND-UTENTE FROM 1 BY 1 |002800 UNTIL EOJ = 1. |002900 MOVE 0 TO EOJ. |003000 PERFORM SCANSIONE UNTIL EOJ = 1. |003100* |003200 STOP RUN. |003300*------------------------- LIVELLO 1 ----------------------------- |003400 INSERIMENTO-DATI. |003500 DISPLAY IND-UTENTE, " INSERISCI IL COGNOME: ".
- Page 13 and 14: Manuale COBOL 859 |Tabella 82.7. Cl
- Page 15 and 16: Manuale COBOL 861 Una costante nume
- Page 17 and 18: Manuale COBOL 863 |Tabella 82.15. C
- Page 19 and 20: Manuale COBOL 865 |Listato 82.17. U
- Page 21 and 22: Manuale COBOL 867 |Figura 82.18. Es
- Page 23 and 24: Manuale COBOL 869 82.3.2 Codifica d
- Page 25 and 26: Manuale COBOL 871 82.4.2.2 Paragraf
- Page 27 and 28: Manuale COBOL 873 |001000 SPECIAL-N
- Page 29 and 30: Manuale COBOL 875 82.4.3.3 Istruzio
- Page 31 and 32: Manuale COBOL 877 |003300 DISPLAY "
- Page 33 and 34: Manuale COBOL 879 |002300 PROCEDURE
- Page 35 and 36: Manuale COBOL 881 Un file organizza
- Page 37 and 38: Manuale COBOL 883 L’esempio segue
- Page 39 and 40: Manuale COBOL 885 Nei manuali COBOL
- Page 41 and 42: Manuale COBOL 887 Codice Organizzaz
- Page 43 and 44: Manuale COBOL 889 record) può esse
- Page 45 and 46: Manuale COBOL 891 82.5.1.3 Dichiara
- Page 47 and 48: Manuale COBOL 893 82.5.1.8 Dichiara
- Page 49 and 50: Manuale COBOL 895 |000000 01 RECORD
- Page 51 and 52: Manuale COBOL 897 In questo caso, i
- Page 53 and 54: Manuale COBOL 899 Nel primo schema,
- Page 55 and 56: Manuale COBOL 901 |P: ABCDEFGHIJ |Q
- Page 57 and 58: Manuale COBOL 903 82.6.5 Opzione «
- Page 59 and 60: Manuale COBOL 905 82.6.10 Opzione
- Page 61 and 62: Manuale COBOL 907 82.7.2 Riferiment
- Page 63: Manuale COBOL 909 |000100 IDENTIFIC
- Page 67 and 68: Manuale COBOL 913 |000700* |000800
- Page 69 and 70: Manuale COBOL 915 La parola chiave
- Page 71 and 72: Manuale COBOL 917 82.8.3 Qualificaz
- Page 73 and 74: Manuale COBOL 919 82.9 Modello di d
- Page 75 and 76: Manuale COBOL 921 viene assegnato l
- Page 77 and 78: Manuale COBOL 923 |002600 " DATA: "
- Page 79 and 80: Manuale COBOL 925 |SOURCE VALUE IS
- Page 81 and 82: Manuale COBOL 927 |004900 DISPLAY "
- Page 83 and 84: Manuale COBOL 929 Compilando il pro
- Page 85 and 86: Manuale COBOL 931 Il primo gruppo d
- Page 87 and 88: Manuale COBOL 933 |004500 DISPLAY R
- Page 89 and 90: Manuale COBOL 935 82.11.5 Espressio
- Page 91 and 92: Manuale COBOL 937 82.11.6.2 Condizi
- Page 93 and 94: Manuale COBOL 939 Avverbio Descrizi
- Page 95 and 96: Manuale COBOL 941 |000300 AUTHOR. D
- Page 97 and 98: Manuale COBOL 943 Nel caso si utili
- Page 99 and 100: Manuale COBOL 945 L’esempio mostr
- Page 101 and 102: Manuale COBOL 947 Si osservi che un
- Page 103 and 104: Manuale COBOL 949 82.12.11 Istruzio
- Page 105 and 106: Manuale COBOL 951 Compilando l’es
- Page 107 and 108: Manuale COBOL 953 |002100 CHARACTER
- Page 109 and 110: Manuale COBOL 955 della prima varia
- Page 111 and 112: Manuale COBOL 957 un’operazione d
- Page 113 and 114: Manuale COBOL 959 Nelle sezioni suc
910 volume V Programmazione<br />
|005300 MOVE 1 TO EOJ.<br />
|005400*-----------------------------------------------------------------<br />
|005500 SCANSIONE.<br />
|005600 DISPLAY COGNOME (IND-UTENTE), " ",<br />
|005700 NOME (IND-UTENTE), " ",<br />
|005800 NOTA (IND-UTENTE).<br />
|005900*<br />
82.7.5 Tabelle ordinate<br />
«<br />
Se si devono utilizzare i dati in una tabella per eseguire una ricerca al suo interno (utilizzando<br />
l’istruzione ‘SEARCH’ nella divisione ‘PROCEDURE DIVISION’), se si può essere certi che le<br />
informazioni contenute siano ordinate secondo una certa chiave, lo si può specificare nella<br />
dichiarazione:<br />
La metavariabile data-name-4 dello schema sintattico rappresenta una variabile contenuta<br />
nell’elemento ricorrente; attraverso la parola chiave ‘ASCENDING’ si intende dichiarare<br />
che la tabella è ordinata, lessicograficamente, in modo ascendente, secondo il contenuto di<br />
quella variabile, se invece si usa la parola chiave ‘DESCENDING’, si intende un ordinamento<br />
decrescente.<br />
È possibile specificare più chiavi di ordinamento successive, nel caso si vogliano abbinare<br />
chiavi secondarie di ordinamento.<br />
Sia chiaro che la tabella deve già risultare ordinata secondo le chiavi specificate, altrimenti<br />
le istruzioni ‘SEARCH’ della divisione ‘PROCEDURE DIVISION’ danno risultati errati o falliscono<br />
semplicemente. Naturalmente, all’interno del programma è possibile prevedere un<br />
procedimento di riordino, da eseguire prima di utilizzare delle istruzioni ‘SEARCH’.<br />
L’esempio seguente mostra l’indicazione della chiave di ordinamento, costituita precisamente<br />
dalla variabile ‘COGNOME’, che deve risultare ascendente in fase di ricerca:<br />
|001000 WORKING-STORAGE SECTION.<br />
|001100 01 RECORD-UTENTI.<br />
|001200 02 UTENTE OCCURS 1 TO 60 TIMES<br />
|001300 DEPENDING ON UTENTI-MAX<br />
|001350 ASCENDING KEY IS COGNOME<br />
|001400 INDEXED BY IND-UTENTE.