Parte ii - IIS Marconi Latina - Area didattica
Parte ii - IIS Marconi Latina - Area didattica
Parte ii - IIS Marconi Latina - Area didattica
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»: