Difference between revisions of "Primesgen.cbl"
(Created page with "This is the compplete source code of the primesgen Cobol program. <pre> </pre> <hr/> Terug naar: primes") |
|||
| Line 1: | Line 1: | ||
This is the compplete source code of the primesgen Cobol program. |
This is the compplete source code of the primesgen Cobol program. |
||
<pre> |
<pre> |
||
| + | identification division. |
||
| + | program-id. primesgen. |
||
| + | environment division. |
||
| + | configuration section. |
||
| + | source-computer. linux-laptop. |
||
| + | object-computer. linux-laptop. |
||
| + | special-names. |
||
| + | console is scherm. |
||
| + | |||
| + | input-output section. |
||
| + | file-control. |
||
| + | select fprinter assign to "primes.prt"; |
||
| + | organization line sequential. |
||
| + | |||
| + | data division. |
||
| + | file section. |
||
| + | fd fprinter. |
||
| + | 01 file-buffer pic x(132). |
||
| + | |||
| + | working-storage section. |
||
| + | 01 filler pic x(32) value "Start WS primesgen". |
||
| + | |||
| + | 01 printer. |
||
| + | 03 print-buffer PIC X(132). |
||
| + | 03 line-number PIC 99 value 99. |
||
| + | 03 page-number PIC 9999 value zero. |
||
| + | |||
| + | 01 test-quot pic 9(9). |
||
| + | |||
| + | * ui-operations methods and data |
||
| + | *01 ui-session. |
||
| + | * 03 ui-methods pic x(32). |
||
| + | * 88 start-session value "start". |
||
| + | * 88 write-primesui value "write". |
||
| + | * 88 display-primesui value "write". |
||
| + | * 88 stop-session value "stop". |
||
| + | * 03 ui-method-result pic 9(2) value zero. |
||
| + | * 03 primes-set. |
||
| + | * 05 ui-ident pic 9(9). |
||
| + | * 05 ui-prime pic 9(9). |
||
| + | |||
| + | * dalcb-operations methods and data |
||
| + | 01 primes. |
||
| + | 03 gen-methods pic x(32). |
||
| + | 88 query-process value "query". |
||
| + | 88 start-process value "start". |
||
| + | 88 next-divider value "get". |
||
| + | 88 write-prime value "put". |
||
| + | 88 stop-process value "stop". |
||
| + | 03 primes-result pic 9(2) value zero. |
||
| + | 88 init-primes-ok value 1. |
||
| + | 88 first-divider-ok value 2. |
||
| + | 88 next-divider-ok value 3. |
||
| + | * 03 prime-sequence pic 9(9). |
||
| + | * 03 prime-number pic 9(9). |
||
| + | 03 test-number pic 9(9). |
||
| + | 03 test-number-sqr pic 9(9)v9(9). |
||
| + | 03 test-divider pic 9(9). |
||
| + | 03 test-rest pic 9(9)v9(9). |
||
| + | 03 old-test-number pic 9(9). |
||
| + | 03 old-ident pic 9(9). |
||
| + | 03 new-ident pic 9(9). |
||
| + | |||
| + | copy primes-ui. |
||
| + | |||
| + | copy primes-dal. |
||
| + | |||
| + | linkage section. |
||
| + | |||
| + | copy primes-session. |
||
| + | |||
| + | procedure division using primes-session. |
||
| + | * primes-ui, primes-dal. |
||
| + | |||
| + | evaluate true |
||
| + | |||
| + | when report-primes |
||
| + | |||
| + | perform r90-start-primes-report |
||
| + | if session-method-ok then |
||
| + | * move "report" to methods |
||
| + | * perform r86-report-primes until dal-method-eof |
||
| + | perform r86-report-primes until session-method-eof |
||
| + | |||
| + | when generate-primes |
||
| + | |||
| + | perform r91-start-primes-generation |
||
| + | if session-method-ok then |
||
| + | * move "generate" to methods |
||
| + | perform r80-test-number until test-number = 999999999 |
||
| + | |||
| + | when other |
||
| + | |||
| + | move "primesgen" to program-name |
||
| + | move "main" to program-paragraph |
||
| + | move 'log-message' to methods |
||
| + | move 'Bad method, primes process failed.' |
||
| + | to program-message |
||
| + | call "primesui" using primes-ui |
||
| + | end-evaluate. |
||
| + | |||
| + | perform r99-close-primes. |
||
| + | |||
| + | exit program. |
||
| + | |||
| + | r80-test-number. |
||
| + | |||
| + | divide test-number by test-divider giving test-quot |
||
| + | remainder test-rest. |
||
| + | |||
| + | evaluate true |
||
| + | when test-rest = 0 |
||
| + | perform r82-next-test-number |
||
| + | when test-divider > test-number-sqr |
||
| + | perform r85-write-prime |
||
| + | perform r82-next-test-number |
||
| + | when other |
||
| + | perform r89-get-next-divider. |
||
| + | |||
| + | r82-next-test-number. |
||
| + | |||
| + | add 2 to test-number. |
||
| + | compute test-number-sqr = test-number ** 0.5 . |
||
| + | move 1 to old-ident. |
||
| + | perform r89-get-next-divider. |
||
| + | |||
| + | r85-write-prime. |
||
| + | |||
| + | move 'write' to ui-methods. |
||
| + | call "primes" using primes-dal. |
||
| + | call "primesui" using primes-ui. |
||
| + | * display primes-result upon scherm. |
||
| + | |||
| + | r86-report-primes. |
||
| + | |||
| + | move 'write' to ui-methods. |
||
| + | move primes-data to u-primes. |
||
| + | call "primesui" using primes-ui. |
||
| + | perform r94-fetch. |
||
| + | * display prime-number upon scherm. |
||
| + | |||
| + | r89-get-next-divider. |
||
| + | |||
| + | move 'get' to gen-methods. |
||
| + | call "primes" using primes. |
||
| + | |||
| + | r90-start-primes-report. |
||
| + | |||
| + | move 'connect' to dal-methods. |
||
| + | call "primes" using primes-dal. |
||
| + | |||
| + | move "primesgen" to program-name. |
||
| + | move "r90-start-primes-report" to program-paragraph. |
||
| + | move 'log-message' to ui-methods. |
||
| + | |||
| + | if dal-method-ok then |
||
| + | move 'Database initialisation succeeeded.' |
||
| + | to program-message |
||
| + | call "primesui" using primes-ui |
||
| + | else |
||
| + | move 'Database initialisation failed.' |
||
| + | to program-message |
||
| + | call "primesui" using primes-ui |
||
| + | move 1 to session-result. |
||
| + | |||
| + | move 'cursor' to dal-methods. |
||
| + | call "primes" using primes-dal. |
||
| + | |||
| + | move "primesgen" to program-name. |
||
| + | move "r90-start-primes-report" to program-paragraph. |
||
| + | move 'log-message' to ui-methods. |
||
| + | |||
| + | if dal-method-ok then |
||
| + | move 'Cursor initialisation succeeeded.' |
||
| + | to program-message |
||
| + | call "primesui" using primes-ui |
||
| + | else |
||
| + | move 'Cursor initialisation failed.' to program-message |
||
| + | call "primesui" using primes-ui |
||
| + | move 1 to session-result. |
||
| + | |||
| + | if dal-method-ok then |
||
| + | perform r94-fetch. |
||
| + | |||
| + | if dal-method-ok then |
||
| + | move 'Fetch first row ok.' to program-message |
||
| + | move 0 to dal-result |
||
| + | else |
||
| + | move 'Fetch first row nok.' to program-message |
||
| + | move 1 to dal-result. |
||
| + | |||
| + | move 'primesgen' to program-name. |
||
| + | call "primesui" using primes-ui. |
||
| + | |||
| + | r91-start-primes-generation. |
||
| + | |||
| + | move 'connect' to dal-methods. |
||
| + | call "primes" using primes-dal. |
||
| + | |||
| + | move 'log-message' to ui-methods |
||
| + | |||
| + | if dal-method-ok then |
||
| + | move 2 to test-divider |
||
| + | move 1 to old-ident |
||
| + | move 3 to test-number |
||
| + | compute test-number-sqr = test-number ** 0.5 |
||
| + | move 'Database initialisation succeeeded.' |
||
| + | to program-message |
||
| + | call "primesui" using primes-ui |
||
| + | else |
||
| + | move 'Database initialisation failed.' |
||
| + | to program-message |
||
| + | call "primesui" using primes-ui |
||
| + | move 1 to session-result. |
||
| + | |||
| + | r94-fetch. |
||
| + | |||
| + | move 'next-prime' to dal-methods. |
||
| + | call "primes" using primes-dal. |
||
| + | |||
| + | move "primesgen" to program-name. |
||
| + | move "r94-fetch" to program-paragraph. |
||
| + | move 'log-message' to ui-methods. |
||
| + | |||
| + | if dal-method-ok then |
||
| + | next sentence |
||
| + | else |
||
| + | move 'Fetch failed.' to program-message |
||
| + | call "primesui" using primes-ui |
||
| + | move 1 to session-result. |
||
| + | |||
| + | r99-close-primes. |
||
| + | |||
| + | move 'disconnect' to dal-methods. |
||
| + | call "primes" using primes. |
||
| + | |||
| + | move 'log-message' to methods |
||
| + | |||
| + | if dal-method-ok then |
||
| + | move 'Database close succeeeded.' |
||
| + | to program-message |
||
| + | call "primesui" using primes-ui |
||
| + | else |
||
| + | move 'Database close failed.' |
||
| + | to program-message |
||
| + | call "primesui" using primes-ui |
||
| + | move 1 to session-result. |
||
</pre> |
</pre> |
||
<hr/> |
<hr/> |
||
Latest revision as of 22:13, 9 December 2025
This is the compplete source code of the primesgen Cobol program.
identification division.
program-id. primesgen.
environment division.
configuration section.
source-computer. linux-laptop.
object-computer. linux-laptop.
special-names.
console is scherm.
input-output section.
file-control.
select fprinter assign to "primes.prt";
organization line sequential.
data division.
file section.
fd fprinter.
01 file-buffer pic x(132).
working-storage section.
01 filler pic x(32) value "Start WS primesgen".
01 printer.
03 print-buffer PIC X(132).
03 line-number PIC 99 value 99.
03 page-number PIC 9999 value zero.
01 test-quot pic 9(9).
* ui-operations methods and data
*01 ui-session.
* 03 ui-methods pic x(32).
* 88 start-session value "start".
* 88 write-primesui value "write".
* 88 display-primesui value "write".
* 88 stop-session value "stop".
* 03 ui-method-result pic 9(2) value zero.
* 03 primes-set.
* 05 ui-ident pic 9(9).
* 05 ui-prime pic 9(9).
* dalcb-operations methods and data
01 primes.
03 gen-methods pic x(32).
88 query-process value "query".
88 start-process value "start".
88 next-divider value "get".
88 write-prime value "put".
88 stop-process value "stop".
03 primes-result pic 9(2) value zero.
88 init-primes-ok value 1.
88 first-divider-ok value 2.
88 next-divider-ok value 3.
* 03 prime-sequence pic 9(9).
* 03 prime-number pic 9(9).
03 test-number pic 9(9).
03 test-number-sqr pic 9(9)v9(9).
03 test-divider pic 9(9).
03 test-rest pic 9(9)v9(9).
03 old-test-number pic 9(9).
03 old-ident pic 9(9).
03 new-ident pic 9(9).
copy primes-ui.
copy primes-dal.
linkage section.
copy primes-session.
procedure division using primes-session.
* primes-ui, primes-dal.
evaluate true
when report-primes
perform r90-start-primes-report
if session-method-ok then
* move "report" to methods
* perform r86-report-primes until dal-method-eof
perform r86-report-primes until session-method-eof
when generate-primes
perform r91-start-primes-generation
if session-method-ok then
* move "generate" to methods
perform r80-test-number until test-number = 999999999
when other
move "primesgen" to program-name
move "main" to program-paragraph
move 'log-message' to methods
move 'Bad method, primes process failed.'
to program-message
call "primesui" using primes-ui
end-evaluate.
perform r99-close-primes.
exit program.
r80-test-number.
divide test-number by test-divider giving test-quot
remainder test-rest.
evaluate true
when test-rest = 0
perform r82-next-test-number
when test-divider > test-number-sqr
perform r85-write-prime
perform r82-next-test-number
when other
perform r89-get-next-divider.
r82-next-test-number.
add 2 to test-number.
compute test-number-sqr = test-number ** 0.5 .
move 1 to old-ident.
perform r89-get-next-divider.
r85-write-prime.
move 'write' to ui-methods.
call "primes" using primes-dal.
call "primesui" using primes-ui.
* display primes-result upon scherm.
r86-report-primes.
move 'write' to ui-methods.
move primes-data to u-primes.
call "primesui" using primes-ui.
perform r94-fetch.
* display prime-number upon scherm.
r89-get-next-divider.
move 'get' to gen-methods.
call "primes" using primes.
r90-start-primes-report.
move 'connect' to dal-methods.
call "primes" using primes-dal.
move "primesgen" to program-name.
move "r90-start-primes-report" to program-paragraph.
move 'log-message' to ui-methods.
if dal-method-ok then
move 'Database initialisation succeeeded.'
to program-message
call "primesui" using primes-ui
else
move 'Database initialisation failed.'
to program-message
call "primesui" using primes-ui
move 1 to session-result.
move 'cursor' to dal-methods.
call "primes" using primes-dal.
move "primesgen" to program-name.
move "r90-start-primes-report" to program-paragraph.
move 'log-message' to ui-methods.
if dal-method-ok then
move 'Cursor initialisation succeeeded.'
to program-message
call "primesui" using primes-ui
else
move 'Cursor initialisation failed.' to program-message
call "primesui" using primes-ui
move 1 to session-result.
if dal-method-ok then
perform r94-fetch.
if dal-method-ok then
move 'Fetch first row ok.' to program-message
move 0 to dal-result
else
move 'Fetch first row nok.' to program-message
move 1 to dal-result.
move 'primesgen' to program-name.
call "primesui" using primes-ui.
r91-start-primes-generation.
move 'connect' to dal-methods.
call "primes" using primes-dal.
move 'log-message' to ui-methods
if dal-method-ok then
move 2 to test-divider
move 1 to old-ident
move 3 to test-number
compute test-number-sqr = test-number ** 0.5
move 'Database initialisation succeeeded.'
to program-message
call "primesui" using primes-ui
else
move 'Database initialisation failed.'
to program-message
call "primesui" using primes-ui
move 1 to session-result.
r94-fetch.
move 'next-prime' to dal-methods.
call "primes" using primes-dal.
move "primesgen" to program-name.
move "r94-fetch" to program-paragraph.
move 'log-message' to ui-methods.
if dal-method-ok then
next sentence
else
move 'Fetch failed.' to program-message
call "primesui" using primes-ui
move 1 to session-result.
r99-close-primes.
move 'disconnect' to dal-methods.
call "primes" using primes.
move 'log-message' to methods
if dal-method-ok then
move 'Database close succeeeded.'
to program-message
call "primesui" using primes-ui
else
move 'Database close failed.'
to program-message
call "primesui" using primes-ui
move 1 to session-result.
Terug naar: primes