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

924 volume V Programmazione |000500* |000600 ENVIRONMENT DIVISION. |000700* |000800 DATA DIVISION. |000900* |001000 WORKING-STORAGE SECTION. |001100 01 RECORD-A. |001200 02 A PICTURE 99999 USAGE IS DISPLAY. |001300 01 RECORD-B. |001400 02 B PICTURE 999V99 USAGE IS DISPLAY. |001500 01 RECORD-C. |001600 02 C PICTURE S999V99 USAGE IS DISPLAY. |001700 01 RECORD-D. |001800 02 D PICTURE 999V99PP USAGE IS DISPLAY. |001900 01 RECORD-E. |002000 02 E PICTURE PP99999 USAGE IS DISPLAY. |002100* |002200 PROCEDURE DIVISION. |002300* |002400 MAIN. |002500 MOVE -1234.5678 TO A. |002600 MOVE -1234.5678 TO B. |002700 MOVE -1234.5678 TO C. |002800 MOVE -1234.5678 TO D. |002900 MOVE -1234.5678 TO E. |003000 DISPLAY "SOURCE VALUE IS -1234.5678". |003100 DISPLAY "PICTURE: 99999 VALUE: ", A, |003200 " DATA: ", RECORD-A. |003300 DISPLAY "PICTURE: 999V99 VALUE: ", B, |003400 " DATA: ", RECORD-B. |003500 DISPLAY "PICTURE: S999V99 VALUE: ", C, |003600 " DATA: ", RECORD-C. |003700 DISPLAY "PICTURE: 999V99PP VALUE: ", D, |003800 " DATA: ", RECORD-D. |003900 DISPLAY "PICTURE: PP99999 VALUE: ", E, |004000 " DATA: ", RECORD-E. |004100 STOP RUN. |004200* Compilando il programma con TinyCOBOL, l’avvio dell’eseguibile che si ottiene genera il risultato seguente: |SOURCE VALUE IS -1234.5678 |PICTURE: 99999 VALUE: 01234 DATA: 01234 |PICTURE: 999V99 VALUE: 234.56 DATA: 23456 |PICTURE: S999V99 VALUE: -234.56 DATA: 2345O |PICTURE: 999V99PP VALUE: 004.5678 DATA: 45678 |PICTURE: PP99999 VALUE: .0078000 DATA: 78000 Facendo la stessa cosa con OpenCOBOL:

Manuale COBOL 925 |SOURCE VALUE IS -1234.5678 |PICTURE: 99999 VALUE: 01234 DATA: 01234 |PICTURE: 999V99 VALUE: 234.56 DATA: 23456 |PICTURE: S999V99 VALUE: -234.56 DATA: 2345v |PICTURE: 999V99PP VALUE: 004.5678 DATA: 45678 |PICTURE: PP99999 VALUE: .0078000 DATA: 78000 Si osservi che nell’esempio le variabili scalari numeriche sono state dichiarate con l’opzione ‘USAGE IS DISPLAY’, che comunque sarebbe stata implicita, in modo da assicurare la visibilità del contenuto leggendo il livello 01. 82.9.5 Variabili numeriche modificate Il modello di definizione di una variabile fatta per ricevere un valore numerico, può contenere simboli che applicano una modifica all’apparenza del valore. Nel momento in cui una variabile del genere riceve un valore, ciò che la variabile fornisce è un’informazione alfanumerica, che non può più essere usata per elaborazioni matematiche; al massimo, una variabile del genere può ricevere il risultato di un’espressione che generi un valore numerico. « |Tabella 82.121. Alcuni simboli del modello di definizione di una variabile numerica che descrivono una trasformazione in formato alfanumerico. Simbolo Descrizione | B Richiede l’inserimento di uno spazio. | 0 Richiede l’inserimento di uno zero. | Z Si usa soltanto nella parte sinistra del modello e richiede di indicare uno spazio al posto di una cifra zero. | * Si usa soltanto nella parte sinistra del modello e richiede di indicare un asterisco al posto di una cifra zero. | , In condizioni normali inserisce una virgola letterale. Si osservi che non può apparire la virgola come simbolo conclusivo del modello, perché in tal caso assumerebbe il valore di un delimitatore. | . In condizioni normali rappresenta il punto di separazione tra la parte intera e la parte decimale. Si osservi che in un modello che prevede la modifica, non si può usare il simbolo ‘V’. | + | - Il segno ‘+’ o il segno ‘-’ indicano la posizione in cui si vuole appaia il segno del numero; se il segno viene ripetuto, le occorrenze successive alla prima rappresentano implicitamente la posizione di una cifra numerica, con soppressione degli zeri anteriori. Usando il segno ‘-’ si dovrebbe ottenere la rappresentazione di un numero senza segno, quando questo ha un valore positivo. | CR | DB Questi simboli, che occupano due caratteri, vengono inseriti tali e quali nella rappresentazione della variabile. Sono utili queste sigle per la contabilità dei paesi di lingua inglese (credit, debit); a ogni modo è bene ricordare che non sono influenzate dal segno del valore numerico che viene ricevuto nella variabile. | $ Si usa per mostrare il simbolo del dollaro, quando la valuta prevista nel sorgente del programma è quella predefinita. | / Se il compilatore lo permette, inserisce una barra obliqua. Teoricamente, ogni altro simbolo che non abbia un significato preciso per la realizzazione dei modelli di definizione delle variabili, dovrebbe essere aggiunto tale e quale; in pratica, molto dipende dalle caratteristiche del compilatore.

Manuale COBOL 925<br />

|SOURCE VALUE IS -1234.5678<br />

|PICTURE: 99999 VALUE: 01234 DATA: 01234<br />

|PICTURE: 999V99 VALUE: 234.56 DATA: 23456<br />

|PICTURE: S999V99 VALUE: -234.56 DATA: 2345v<br />

|PICTURE: 999V99PP VALUE: 004.5678 DATA: 45678<br />

|PICTURE: PP99999 VALUE: .0078000 DATA: 78000<br />

Si osservi che nell’esempio le variabili scalari numeriche sono state dichiarate con l’opzione<br />

‘USAGE IS DISPLAY’, che comunque sarebbe stata implicita, in modo da assicurare la<br />

visibilità del contenuto leggendo il livello 01.<br />

82.9.5 Variabili numeriche modificate<br />

Il modello di definizione di una variabile fatta per ricevere un valore numerico, può contenere<br />

simboli che applicano una modifica all’apparenza del valore. Nel momento in cui una variabile<br />

del genere riceve un valore, ciò che la variabile fornisce è un’informazione alfanumerica, che<br />

non può più essere usata per elaborazioni matematiche; al massimo, una variabile del genere<br />

può ricevere il risultato di un’espressione che generi un valore numerico.<br />

«<br />

|Tabella 82.121. Alcuni simboli del modello di definizione di una variabile numerica che<br />

descrivono una trasformazione in formato alfanumerico.<br />

Simbolo<br />

Descrizione<br />

| B Richiede l’inserimento di uno spazio.<br />

| 0 Richiede l’inserimento di uno zero.<br />

| Z Si usa soltanto nella parte sinistra del modello e richiede di indicare uno spazio<br />

al posto di una cifra zero.<br />

| * Si usa soltanto nella parte sinistra del modello e richiede di indicare un asterisco<br />

al posto di una cifra zero.<br />

| , In condizioni normali inserisce una virgola letterale. Si osservi che non può<br />

apparire la virgola come simbolo conclusivo del modello, perché in tal caso<br />

assumerebbe il valore di un delimitatore.<br />

| . In condizioni normali rappresenta il punto di separazione tra la parte intera e la<br />

parte decimale. Si osservi che in un modello che prevede la modifica, non si può<br />

usare il simbolo ‘V’.<br />

| +<br />

| - Il segno ‘+’ o il segno ‘-’ indicano la posizione in cui si vuole appaia il segno<br />

del numero; se il segno viene ripetuto, le occorrenze successive alla prima rappresentano<br />

implicitamente la posizione di una cifra numerica, con soppressione<br />

degli zeri anteriori. Usando il segno ‘-’ si dovrebbe ottenere la rappresentazione<br />

di un numero senza segno, quando questo ha un valore positivo.<br />

| CR<br />

| DB Questi simboli, che occupano due caratteri, vengono inseriti tali e quali nella<br />

rappresentazione della variabile. Sono utili queste sigle per la contabilità dei<br />

paesi di lingua inglese (credit, debit); a ogni modo è bene ricordare che non sono<br />

influenzate dal segno del valore numerico che viene ricevuto nella variabile.<br />

| $ Si usa per mostrare il simbolo del dollaro, quando la valuta prevista nel sorgente<br />

del programma è quella predefinita.<br />

| / Se il compilatore lo permette, inserisce una barra obliqua.<br />

Teoricamente, ogni altro simbolo che non abbia un significato preciso per la realizzazione<br />

dei modelli di definizione delle variabili, dovrebbe essere aggiunto<br />

tale e quale; in pratica, molto dipende dalle caratteristiche del compilatore.

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

Saved successfully!

Ooh no, something went wrong!