Čačkao sam nešto po hardu i našao na jedan program iz 2000. godine i obzirom na uvrnut smisao za humor slatko sam se
.gif)
. Zamislite da ste u učionici 2X4 m sa 8 terminala, od kojih 2 ne rade, da se prvi put susrećete sa unixom, prvi put shvatate da kompajler i editor ne moraju biti isto

, da čak možete birati editor, saleću vas koleginice jer misle da se razumete u programiranje, a vi se pravite da sve znate i impresionirate ih brzinom kucanja koda o kom pojma nemate

, vidite da svi osim vas kucaju kod velikim slovima jer, zaboga, tako je štampano u knjizi... I vi bijete:
Kod:
identification division.
program-id. zad1.
environment division.
configuration section.
source-computer. alpha.
object-computer. alpha.
input-output section.
file-control.
select matop assign to "matopst.dat"
organization is line sequential.
select emrad assign to "emrad.dat"
organization is line sequential.
select sort-emrad assign to "sort.dat".
select lista assign to "lista.out"
organization is line sequential.
data division.
file section.
fd matop
label record is standard
data record is matop-slog.
01 matop-slog.
02 opst pic 9(4).
02 nazop pic x(25).
fd emrad
label record is standard
data record is emrad-slog.
01 emrad-slog.
02 emb pic 9(6).
02 ime pic x(20).
02 mbr pic 9(13).
02 pol pic 9.
02 datrod.
03 dd pic 99.
03 mm pic 99.
03 gg pic 99.
02 sopst pic 9(4).
fd lista
label record standard
data record lista-slog.
01 lista-slog.
02 emb-l pic 9(6).
02 ime-l pic x(20).
02 mbr-l pic 9(13).
02 pol-l pic 9.
02 datrod-l.
03 dd-l pic 99.
03 mm-l pic 99.
03 gg-l pic 99.
02 sopst-l pic 9(4).
02 starost-l pic 99.
sd sort-emrad
data record sort-emrad-slog.
01 sort-emrad-slog.
02 emb-s pic 9(6).
02 ime-s pic x(20).
02 mbr-s pic 9(13).
02 pol-s pic 9.
02 datrod-s.
03 dd-s pic 99.
03 mm-s pic 99.
03 gg-s pic 99.
02 sopst-s pic 9(4).
working-storage section.
01 nizcifara.
02 a occurs 13 times.
03 b pic 9 value zero.
77 i pic 99.
77 j pic 99.
77 jmbg pic 9(13).
77 p pic 99.
77 delilac pic 9(13).
77 pom pic 9(12).
77 nepotrebno pic 9(13).
77 zb pic 9(3).
77 br pic 99.
77 ost pic 9.
77 uporednik pic 9.
77 opc pic 9.
77 sifop pic 9(4).
77 naziv pic x(25).
77 kraj pic xx.
77 sifr pic 9(6).
77 imeip pic x(20).
77 datum-danas pic 9(6).
77 starost pic 99.
77 tek-god pic 99.
77 spol pic 9.
77 dan pic 99.
77 mesec pic 99.
77 godina pic 99.
77 opstinast pic 9(4).
77 pitalica pic xx value "ne".
77 ukstarost pic 9(6) value zero.
77 ukbr pic 99 value zero.
77 ukz pic 99 value zero.
77 ukm pic 99 value zero.
77 prost pic 99v99 value zero.
77 prstarost pic zz.zz.
procedure division.
1 section.
gp.
perform meni until kraj="da".
stop run.
meni.
move 0 to opc.
display " MENI ".
display "".
display " 1. sifarnik ostina ".
display " 2. maticni podaci o radniku ".
display " 3. listanje radnika po abecedi ".
display " 4. listanje radnika zenskog pola ".
display " 5. formiranje izvestaja ".
display " 6. kraj programa ".
display "".
display " uneti broj: " no advancing.
accept opc.
* if (opc >= 1) and (opc <= 6) next sentence else go to menigr.
* go to p1 p2 p3 p4 p5 p6 depending on opc.
if opc=1 go to p1.
if opc=2 go to p2.
if opc=3 go to p3.
if opc=4 go to p4.
if opc=5 go to p5.
if opc=6 go to p6.
menigr.
stop " neispravan unos ".
go to meni.
p1.
open extend matop.
move 3 to sifop.
perform p1-1 until sifop = 0.
close matop.
go to gp.
p1-1.
display " UNOS PODATAKA ZA OPSTINE (0000 za kraj) ".
display " sifra opstine: " no advancing.
accept sifop.
if sifop = 0 next sentence else perform p1-2.
p1-2.
display " naziv opstine: " no advancing.
accept naziv.
move sifop to opst.
move naziv to nazop.
write matop-slog.
p2.
move 3 to sifr.
display " UNOS PODATAKA ZA RADNIKE (000000 za kraj) ".
display " identifikacioni broj: " no advancing.
accept sifr.
if sifr = 0 go to kraj-p2.
jedinstvenost.
open input emrad.
move "ne" to pitalica.
p2-4.
read emrad at end go to p2-5.
if emb=sifr move "da" to pitalica.
go to p2-4.
p2-5.
close emrad.
if pitalica = "da" go to jedgreska.
p2-2.
display " ime i prezime: " no advancing.
accept imeip.
p2-3.
display " maticni broj: " no advancing.
accept jmbg.
perform razdvajanje varying i from 1 by 1 until i > 13.
compute zb=b(2)*2+b(3)*3+b(4)*4+b(5)*5+b(6)*6+b(7)*7+b(8)*2
- +b(9)*3+b(10)*4+b(11)*5+b(12)*6+b(13)*7.
divide 11 into zb giving br remainder ost.
compute uporednik = 11 - ost.
if uporednik = b(1) next sentence else go to modgreska.
p-pol.
display " unesi pol (0-musko, 1-zensko): " no advancing.
accept spol.
if (spol>1 and spol<0) go to polgreska.
p-dan.
display " unesi dan (u obliku bb): " no advancing.
accept dan.
if (dan>31) go to dangreska.
p-mesec.
display " unesi meseck (u obliku bb): " no advancing.
accept mesec.
if (mesec>12) go to mesecgreska.
p-godina.
display " unesi godinu (u obliku bb): " no advancing.
accept godina.
display " unesi opstonu (u obliku bbbb): " no advancing.
accept opstinast.
ispis-emrad.
open extend emrad.
move sifr to emb.
move imeip to ime.
move jmbg to mbr.
move spol to pol.
move dan to dd.
move mesec to mm.
move godina to gg.
move opstinast to sopst.
write emrad-slog.
close emrad.
go to p2.
razdvajanje.
compute p= i - 1.
compute delilac = 10**p.
divide delilac into jmbg giving pom.
divide 10 into pom giving nepotrebno remainder b(i).
* b(1) je poslednja cifra jmbg a b(13) prva
modgreska.
stop " maticni broj je neispravan po modulu 11! ".
go to p2-3.
jedgreska.
stop " upisani id. br. vec postoji ponovite unos ".
go to p2.
polgreska.
stop " greska u polu! ".
go to p-pol.
dangreska.
stop " greska u danu! ".
go to p-dan.
mesecgreska.
stop " greska u mesecu! ".
go to p-mesec.
godinagreska.
stop " greska u godini! ".
go to p-godina.
kraj-p2.
go to gp.
p3.
sort sort-emrad
on ascending key ime-s
using emrad
output procedure dodaj-starost.
go to gp.
dodaj-starost section.
open output lista.
poc.
return sort-emrad at end go to kraj1.
accept datum-danas from date.
compute tek-god = datum-danas / 10000.
compute starost = 100+tek-god - gg-s.
move emb-s to emb-l.
move ime-s to ime-l.
move mbr-s to mbr-l.
move pol-s to pol-l.
move dd-s to dd-l.
move mm-s to mm-l.
move gg-s to gg-l.
move sopst-s to sopst-l.
move starost to starost-l.
write lista-slog.
go to poc.
kraj1.
close lista.
kraj2.
exit.
2 section.
p4.
open input emrad.
display " LISTANJE RADNIKA ZENSKOG POLA: ".
display "".
p4-1.
read emrad at end go to kraj-p4.
if pol = 0 go to p4-1.
display " " emb " " ime " " pol " " dd "/" mm "/" gg.
go to p4-1.
kraj-p4.
close emrad.
stop.
go to gp.
p5.
open input emrad.
accept datum-danas from date.
p5-1.
compute tek-god = datum-danas / 10000.
compute starost = 100+tek-god - gg.
add starost to ukstarost.
add 1 to ukbr.
if pol = 1 add 1 to ukz.
go to p5-1.
kraj-p5.
close emrad.
display " STATISTICKI IZVESTAJ ".
display "".
display " ukupno radnika: " no advance.
display ukbr.
display " ukupno radnika zenskog pola: " no advance.
display ukbr.
subtract ukz from ukbr giving ukm.
display " ukupno radnika muskog pola: " no advance.
display ukm.
compute prost = ukstarost / ukbr.
display " prosecna starost radnika je: " no advance.
move prost to prstarost.
display prstarost.
stop.
go to gp.
p6.
move "da" to kraj.
go to gp.
To su bila srećna vremena
