PROGRAM-ID. hello.
PROCEDURE DIVISION.
DISPLAY "Hello World!".
STOP RUN
*Lucru cu data si timp
IDENTIFICATION DIVISION.
PROGRAM-ID. EX5.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Zona-lunilor-anului.
02 FILLER PIC X(10) VALUE 'Ianuarie'.
02 FILLER PIC X(10) VALUE 'Februarie'.
02 FILLER PIC X(10) VALUE 'Martie'.
02 FILLER PIC X(10) VALUE 'Aprilie'.
02 FILLER PIC X(10) VALUE 'Mai'.
02 FILLER PIC X(10) VALUE 'Iunie'.
02 FILLER PIC X(10) VALUE 'Iulie'.
02 FILLER PIC X(10) VALUE 'August'.
02 FILLER PIC X(10) VALUE 'Septembrie'.
02 FILLER PIC X(10) VALUE 'Octombrie'.
02 FILLER PIC X(10) VALUE 'Noiembrie'.
02 FILLER PIC X(10) VALUE 'Decembrie'.
01 Vector-luna REDEFINES Zona-lunilor-anului.
02 B OCCURS 12 PIC X(10).
01 Data-zilei.
02 aa PIC 99.
02 ll PIC 99.
02 zz PIC 99.
01 Data-zilei-E.
02 ziua PIC 99.
02 FILLER PIC XXX VALUE ' - '.
02 luna PIC X(10).
02 FILLER PIC X(5) VALUE ' - 20'.
02 an PIC 99.
01 Ora-curenta.
02 hh PIC 99.
02 mm PIC 99.
02 ss PIC 99.
02 cc PIC 99.
01 Ora-curenta-E.
02 ora PIC 99.
02 FILLER PIC XXX VALUE ' , '.
02 minute PIC 99.
02 FILLER PIC X(9) VALUE ' minute, '.
02 secunde PIC 99.
02 FILLER PIC X(8) VALUE ' secunde'.
PROCEDURE DIVISION.
Prog.
ACCEPT Data-zilei FROM DATE
MOVE zz TO ziua
MOVE B(ll) TO luna
MOVE aa TO an
ACCEPT Ora-curenta FROM TIME
MOVE hh TO ora
MOVE mm TO minute
MOVE ss TO secunde
DISPLAY 'Suntem in ziua de :' Data-zilei-E
DISPLAY 'Este ora:' Ora-curenta-E
STOP RUN.
*Formatare ecran
IDENTIFICATION DIVISION.
PROGRAM-ID. FORMATARE-ECRAN.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
CONSOLE IS CRT.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 A PIC S999V99.
77 B PIC S999V99.
77 S PIC S9999V99.
77 E PIC -(6)9.99.
77 OP PIC X.
77 P PIC 9.
PROCEDURE DIVISION.
PROG.
DISPLAY ALL X'02'
DISPLAY 'Dati A (S999V99):' AT 0201
WITH REVERSE-VIDEO
ACCEPT A AT 0230
PERFORM Prel UNTIL A = 0
DISPLAY SPACE
STOP RUN.
Prel.
DISPLAY 'Dati B (S999V99):' AT 0301
WITH REVERSE-VIDEO
ACCEPT B AT 0330
DISPLAY 'Dati operatorul aritmetic:' AT 0401
WITH REVERSE-VIDEO
ACCEPT OP AT 0430
PERFORM TEST1
DISPLAY 'Tastati <ENTER>:' AT 1501 WITH BLINK
ACCEPT P
DISPLAY ALL X'02'
DISPLAY 'Dati A (S999V99)' AT 0201
WITH REVERSE-VIDEO
`sau 0: ` AT 0217 WITH HIGHLIGHT BLINK
ACCEPT A AT 0230
TEST1.
IF OP = '+' THEN
ADD A B GIVING S
DIVIDE S BY 2 GIVING E
DISPLAY 'E=' AT 0601
WITH REVERSE-VIDEO HIGHLIGHT
E AT 0604 WITH BLINK
ELSE
IF OP = '-' THEN
SUBSTRACT B FROM A GIVING E
DISPLAY 'E=' AT 0601
WITH REVERSE-VIDEO HIGHLIGHT
E AT 0604 WITH BLINK
ELSE
IF OP = '*' THEN
MULTIPLY A BY B GIVING E
DISPLAY 'E=' AT 0601
WITH REVERSE-VIDEO HIGHLIGHT
E AT 0604 WITH BLINK
ELSE
IF OP = '/' THEN
IF B NOT = 0 THEN
DIVIDE A BY B GIVING E
DISPLAY 'E=' AT 0601
WITH REVERSE-VIDEO HIGHLIGHT
E AT 0604 WITH BLINK
ELSE
DISPLAY 'Impartire la zero !'
AT 1015 WITH REVERSE-VIDEO BLINK BEEP
ELSE
DISPLAY 'Operator diferit de +,-,*,/ !'
*Maxim
IDENTIFICATION DIVISION.
PROGRAM-ID. EX1.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 A PIC 9999.
77 B PIC 9999.
77 C PIC 9999.
77 MAX PIC ZZZ9.
PROCEDURE DIVISION.
PROG.
DISPLAY 'Dati A (9999):' NO ADVANCING
ACCEPT A
DISPLAY 'Dati B (9999):' NO ADVANCING
ACCEPT B
DISPLAY 'Dati C(9999):' NO ADVANCING
ACCEPT C
IF A>B
IF A>C
MOVE A TO MAX
ELSE
MOVE C TO MAX
ELSE
IF B>C
MOVE B TO MAX
ELSE
MOVE C TO MAX.
DISPLAY 'Elementul maxim este:'MAX
STOP RUN.
*Ecuatia de gradul II
IDENTIFICATION DIVISION.
PROGRAM-ID. EX2.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 COEF-ECUATIE.
02 A PIC S9999V99.
02 B PIC S9999V99.
02 C PIC S9999V99.
77 D PIC S9(9)V9999.
PROCEDURE DIVISION.
PROG.
DISPLAY 'dati A (S9999V99):' NO ADVANCING
ACCEPT A
DISPLAY 'dati B (S9999V99):' NO ADVANCING
ACCEPT B
DISPLAY 'dati C (S9999V99):' NO ADVANCING
ACCEPT C
COMPUTE D=B * B - 4 * A * C
IF D NOT NEGATIVE THEN
DISPLAY 'Radacini reale !'
ELSE
DISPLAY 'Radacini complexe !'.
STOP RUN.
*Ecuatia de gradul II alta varianta
IDENTIFICATION DIVISION.
PROGRAM-ID. EX2-ALTA-VARIANTA.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 COEF-ECUATIE.
02 A PIC S9999V99.
02 B PIC S9999V99.
02 C PIC S9999V99.
77 D PIC S9(9)V9999.
77 D-E PIC -(9)9.9999.
77 REZ PIC S9(9)V9999.
PROCEDURE DIVISION.
PROG.
DISPLAY 'Dati A (S9999V99):' NO ADVANCING
ACCEPT A
DISPLAY 'Dati B (S9999V99):' NO ADVANCING
ACCEPT B
DISPLAY 'Dati C (S9999V99):' NO ADVANCING
ACCEPT C
MULTIPLY 4 BY A GIVING REZ
MULTIPLY C BY REZ
MULTIPLY B BY B GIVING D
SUBTRACT REZ FROM D
MOVE D TO D-E
DISPLAY 'D=' D
DISPLAY 'D=' D-E
IF D NOT NEGATIVE THEN
DISPLAY 'Radacini reale !'
ELSE
DISPLAY 'Radacini complexe !'.
STOP RUN.
*Suma
IDENTIFICATION DIVISION.
PROGRAM-ID. EX4.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 VECTOR.
02 B OCCURS 10 PIC S9999V99.
77 S PIC S9(5)V99.
77 SE PIC -(5)9.99.
77 I PIC 99.
PROCEDURE DIVISION.
PROG.
DISPLAY 'Dati 10 numere,un elem. pe linie (S9999V99):'
MOVE 0 TO S
PERFORM CITIRE-SUMA
VARYING I FROM 1 BY 1 UNTIL I>10
MOVE S TO SE
DISPLAY 'S=' SE
STOP RUN.
CITIRE-SUMA.
ACCEPT B(I)
ADD B(I) TO S.
*Lucru cu fisiere
IDENTIFICATION DIVISION.
PROGRAM-ID. EX-FIS.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT LISTA ASSIGN TO 'LISTA.TXT'.
DATA DIVISION.
FILE SECTION.
FD LISTA.
01 Rand PIC X(38).
WORKING-STORAGE SECTION.
01 Articol.
02 Nume PIC A(20).
02 Nota1 PIC 99.
02 Nota2 PIC 99.
02 Nota3 PIC 99.
77 S PIC 99.
77 Raspuns PIC AA.
77 NRL PIC 99.
77 NRS PIC 999.
01 Rand-student.
02 NRS-E PIC ZZ9B(5).
02 Nume-E PIC A(25).
02 Media-E PIC Z9.99.
01 Rand-cap-tabel.
02 FILLER PIC X(8) VALUE 'Nr.crt.'.
02 FILLER PIC X(25) VALUE 'Nume si prenume'.
02 FILLER PIC X(5) VALUE 'Media'.
01 Rand-titlu-lista.
02 FILLER PIC X(10) VALUE SPACE.
02 FILLER PIC X(6) VALUE 'Lista'.
02 NRL-E PIC Z9.
PROCEDURE DIVISION.
Monitor.
PERFORM Inceput
PERFORM Prel-grup UNTIL Raspuns = 'NU'
PERFORM Sfarsit
STOP RUN.
Inceput.
OPEN OUTPUT LISTA
MOVE 0 TO NRL
DISPLAY 'Efectuati operatiile cu un grup? (DA/NU): '
NO ADVANCING
ACCEPT Raspuns.
Prel-grup.
PERFORM Inceput-grup
PERFORM Prel UNTIL Nume = ' '
PERFORM Sfarsit-grup.
Inceput-grup.
ADD 1 TO NRL
MOVE NRL TO NRL-E
WRITE Rand FROM Rand-titlu-lista AFTER 4
WRITE Rand FROM Rand-cap-tabel AFTER 2
MOVE ALL '-' TO Rand
WRITE Rand AFTER 1
MOVE 0 TO NRS
DISPLAY 'Nume: ' NO ADVANCING
ACCEPT Nume.
Prel.
ADD 1 TO NRS
MOVE NRS TO NRS-E
DISPLAY 'Prima nota: ' NO ADVANCING
ACCEPT Nota1
DISPLAY 'A doua nota: ' NO ADVANCING
ACCEPT Nota2
DISPLAY 'A treia nota: ' NO ADVANCING
ACCEPT Nota3
ADD Nota1 Nota2 Nota3 GIVING S
DIVIDE S BY 3 GIVING Media-E
MOVE Nume TO Nume-E
WRITE Rand FROM Rand-student AFTER 1
DISPLAY 'Nume sau <CR>: ' NO ADVANCING
ACCEPT Nume.
Sfarsit-grup.
MOVE ALL '-' TO Rand
WRITE Rand AFTER 1
DISPLAY 'Reluati operatiile cu alt grup? (DA/NU): '
NO ADVANCING
ACCEPT Raspuns.
Sfarsit.
CLOSE LISTA.
*Alta suma
IDENTIFICATION DIVISION.
PROGRAM-ID. EX-SUM2.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 VECTOR.
02 B OCCURS 1 TO 10000 DEPENDING N PIC S9999V99.
77 S PIC S9(5)V99.
77 SE PIC -(5)9.99.
77 I PIC 99.
77 N PIC 99999.
PROCEDURE DIVISION.
PROG.
DISPLAY 'Dati N <=10000:' NO ADVANCING
ACCEPT N
MOVE 0 TO S
PERFORM CITIRE-SUMA
VARYING I FROM 1 BY 1 UNTIL I>N
MOVE S TO SE
DISPLAY 'S=' SE
STOP RUN.