24.01.2014 Views

Parte ii - IIS Marconi Latina - Area didattica

Parte ii - IIS Marconi Latina - Area didattica

Parte ii - IIS Marconi Latina - Area didattica

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

950 volume V Programmazione<br />

deve avvenire nella parta finale della stringa, subito dopo quella sottostringa. Naturalmente, se<br />

la sottostringa indicata non esiste nella stringa, è come se l’opzione ‘BEFORE’ o ‘AFTER’ non<br />

fosse stata aggiunta.<br />

Con il primo schema sintattico, si vogliono contare i caratteri della stringa che soddisfano<br />

certe condizioni. Il conteggio viene eseguito incrementando il valore contenuto nella variabile<br />

indicata nello schema come identifier-2, che deve essere numerica. Si osservi che la variabile<br />

non viene azzerata automaticamente, pertanto il suo valore iniziale viene sommato al conteggio<br />

eseguito.<br />

Il conteggio può riguardare tutti i caratteri della stringa o della porzione iniziale o finale selezionata,<br />

utilizzando la parola ‘CHARACTERS’. Si osservi l’esempio successivo che utilizza solo<br />

questo tipo di conteggio.<br />

|Listato 82.180.<br />

contenuti.<br />

Programma elementare che scandisce una stringa e conta i caratteri<br />

|000100 IDENTIFICATION DIVISION.<br />

|000200 PROGRAM-ID. TEST-INSPECT-TALLYING-1.<br />

|000300 AUTHOR. DANIELE GIACOMINI.<br />

|000400 INSTALLATION. NANOLINUX IV,<br />

|000500 OPENCOBOL 0.31,<br />

|000600 DATE-WRITTEN. 2005-03-15.<br />

|000700*<br />

|000800 ENVIRONMENT DIVISION.<br />

|000900*<br />

|001000 DATA DIVISION.<br />

|001100*<br />

|001200 WORKING-STORAGE SECTION.<br />

|001300 77 STRINGA-DI-CARATTERI PIC X(30).<br />

|001400 77 CONTATORE-1 PIC 99 VALUE IS 0.<br />

|001500 77 CONTATORE-2 PIC 99 VALUE IS 0.<br />

|001600 77 CONTATORE-3 PIC 99 VALUE IS 0.<br />

|001700*<br />

|001800 PROCEDURE DIVISION.<br />

|001900*------------------------- LIVELLO 0 -----------------------------<br />

|002000 MAIN.<br />

|002100 MOVE "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123"<br />

|002200 TO STRINGA-DI-CARATTERI.<br />

|002300 INSPECT STRINGA-DI-CARATTERI<br />

|002400 TALLYING CONTATORE-1<br />

|002500 FOR CHARACTERS,<br />

|002600 TALLYING CONTATORE-2<br />

|002700 FOR CHARACTERS BEFORE INITIAL "H",<br />

|002800 TALLYING CONTATORE-3<br />

|002900 FOR CHARACTERS AFTER INITIAL "H".<br />

|003000 DISPLAY "CONTATORI: ", CONTATORE-1, " ", CONTATORE-2, " ",<br />

|003100 CONTATORE-3.<br />

|003200 STOP RUN.<br />

L’esempio appena mostrato utilizza un’istruzione ‘INSPECT’ per contare tre cose in una stringa,<br />

con una sola scansione: i caratteri contenuti in tutta la stringa; i caratteri fino alla comparsa<br />

della prima lettera «H»; i caratteri che si trovano dopo la lettera «H»:

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

Saved successfully!

Ooh no, something went wrong!