1 programski jezik
TRANSCRIPT
Savremena racunska tehnika i . pt 8 mena Knjiga 1
, NEDELJKO PAREZANOVIC
ALGORITMI 1
Knjiga 1 "\~... ""~';:'/. ~""" . . ~ "'0:
./.~ .' .... ~~ :'
'."
...
Savremena raeunska tehnika na1azi sve siru primenu u razliCitim oblastimaCoveCije de1atnosti. Ovo za sobom pov]aci potrebu upoznavanja sirokog kruga ]judi sa naCinom rada i mogucnostima racunara, kao i sa matematickim metodama za resavanje slozenih zadataka racunara. Za ovo neophodno postojanje odgovarajuce literature. 1 serija Matema tickog instituta
SAVREMENA RAtUNSKA TEHNIA 1 NJENA PRIMENA
m osnovni zadatak da potrebnom teorijskom i praktiCnom nivou upozna citaoca sa dostignuCima u ovoi oblasti.
Ova publikacija nije periodicna. Rukopise oprem1jene za stampu slati adresu: atematicki institut,
11000 Beograd, Knez Mihailova 35,
Redakcioni odbor - Comite de r';daction
Glavni urednik - Redacteur chef: N edeljko Parezanovii Sekretar - Secretaire: Bosko Jovanovic
C]ano\'i odbora - Membres du comite: Mirko Stojakovii, Slavisa r i Pavle Pejovii
Tehnicki urednik: Milan (;avcic
~AMPA: SAPARIJA RADIo-LEVIZI RD Batajnicki put 24, telefon 607-073
II INSTITUT - BEOGRAD
NE~LZO PAREZANOVIC
PREDGOVOR
Problem komunikacije izmedju ~oveka i ra~unara, spada u vrl0 aktu
elne probleme danaAnje ra~nske tehnike. problem naj~eA~e danas
reAava uvodjenjem programskih jezika, koji lako,p.rihvatljivi od strane
~oveka, kojih mogu~e izvrAiti formalno prevodjenje maAinski
zik. Kako prevodjenje formalizovano, 'to zna~i da moze biti izvrAeno
od strarie ra~unara. Prema tome, programski jezik mora zadovoljiti dva
osnovna uslova:
- da t prihvatljiviji za ~oveka,
- da tako definisan da za prevodjenje maAinski jezik moz~
na~i postupak ~ kojeg ovo prevodjenje moze izvrAavati ra~una~.
od 1954. godine, kada nastali prvi radovi u oblasti programskih
jezika, do danas definisano nekoliko stotina programskih jezika. Ne
ki od ovih jezika usavrAavani i danas koriste, mnogi od njih pripa
daju ttlrtvim jezicima. FORTRAN-jezik pripada prvoj grupi jezika.
programski jezik razvijen u okviru americke firme IBM. Prva varijanta 0-
vog jezika pojavi1a 1954. godine, i od tada ovaj jezik usavrAavan, ta
ko da dartas najviAe koristi cetvrta varijanta, tzv. FORTRAN IV. Danas
800/0 svih racunara u svetu koristi FORTRAN kao programski jezik.
U ovoj knjizi izlozeni algoritmi i programski jezik FORTRAN IV.
Karakteristike ovog izlaganja :
hovog prenoAenja ' racunar. Detaljno obradjene mogu~e algoritamske
strukture kao i graficki nacin njihovog prikazivanja.
4 N. ParezaDo"i.c!
koje sadrzi jezik.
- Izlozene su op§te vazete de1'inicije FORTRAN-jezika, tamo
gde to bilo potrebno navedene su speci1'i~nosti primene ra~unaru I
-360/44.
Autor zahvaljuje . Cav~itu tehni~koj opremi materijala, kao
i . Zivkovi6 jezi~koj redakturi teksta.
1.03.1972. god. Beograd u t r
1.
2.
3.
4.
SADRZAJ
PREDGOVOR ......................................... .
5
Sh"ana
3
13
1 ~ 1. A1goritam i algbritamski korak . . • . . . . . . . . . • . . • . . . . 13 1.2. Algoritamske strukture i njihovo g!k prikazivanje 17 1. 3. Linijske algoritamske strukture. . . . . . . . . . • . . . . . . . . . 2
1.3.1. Proste linijske strukture ............ ,.. .. .. 20 1. 3. 2. Razgranate linijske strukture • . . . . • . • . . . • . . . 21
1.4. CiklH!ne algoritamske strukture ....•.............. 24
1.4.1. Konstantne ik!k strukture........... .... 25 1.4.2. Promenljive cikli~ke strukture ••....•...... 28
1.5. Slozene algoritamske strukture ...... '.' . . . . . . • . . . . • 31
1. 6. Algoritmi i programiranje , . . . . . . . • . . . . . . • . . . . . . . . . 34
1.7. UopAte programskim jezicima .•...........•...•• 35
PRETHODNE NAPOMENE FORTRAN JEZIKU ••.....•.. 39
2. 1. i!l pojmovi • . . . • . . . . . • . . • . . . . . . . . . . . . . . . . . . . . . . 39
2. 2. Na~in pisanja programa....................... .... 41
SIMBOLI FORTRAN JEZIA •..••...................•..
43
47
4.1.1. Celi brojevi . . . . . . . . • . . . . . . . . . . . . . . . . . . . • . . 48
4.2. Definicija realne prQmenljive. . .•... . .. ... .• ... ..•. 51
4.2.1. Ime promenljiVe .... '" . ...•. .. . ...• .....•. 51
6 . 'arezaaovl ~
4.3.2. Upotreba za,grada ................ '.' . ..... . .. 55
4.4. Dodeljivanje brojne vrednosti promenljivoj. . . . . . . . . . . . 57
4.4.1. itmtik naredba ......................... 57
4.4.~.1. Opis celih brojeva ....... ; .......... 60
4.4.2.2. Opls IXleAovitih brojeva ............. 61
4.4.2. . Opis praznog polja . ... .... . . . .•.. .. . 63
4.5. lzdavanje n vrednosti promenljive ............... 64
4.5.1. Qpis celih brojeva .. . . . ..... ... . .... . .. . .... . 66
4.5.2. Opis meAovitih brojeva .. " . . . . • . . . . . . . . . . . . . . 68
4.5.3. Opis praznog l". . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.6. Proste linijske algoritamske strukture ............... 70
4.6.1. Prekid rada programu i fiziki kraj programa 70
4.6.2. Primeri algoritama sa prostim linijskim struktu- . .... ...... ...... .... .............. ..... 71
4.7. Ra.zgranate linijske algoritamske strukture ............. 73
4. 7. 1. U slovni prelazak vrednosti ritmtikg izraza 73
4. 7 . 2. Bezuslovni prelazak .................. '. . . . . . . . 74
4.7. . ! razgranatih linijskih struktu~a •..... ; .. 74
4.8. Dalje mogu~nosti naredbe FORMAT •............... ; ... 78
4.8.1. Ponavljanje jednog l ....... ;.............. 78
4.8.2. Ponavljanje vi§e opisa ......................•. 78
4.8.3 .. Prelazak novi slog ......................•. ' . 79
4.8.4. Veza izmedju opisa i liste ...... . . . . . . . . . . . . . . . 81
4.8.5. Tekst u FORMAT-naredbi. : ... ;' ............. , . 83
4.9. Elernentarne funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.9.2. Logaritarnska funkcija ........................ 88
pritmi I pro'1'8m.t1 je.zit JlN IV 7
Strana
4.9. 5. Trigonometrijske funkcije '" . . . . . . . . . • . . . . 9
4.9.6. Inverzne trigonometrijske funkcije •....•.. ~ 91
4.9.7. i:n funkcije .................•... 92
4. 11. Dalje mogu~nosti haredbe ulaza . . . . . • . . . • . . . . . . . . . 101
4.11.1. Gk ulazu ...•..................... 101
4. 11. 2. ulaznih podataka ................... 102
4.12. Deklarisanje vrste promenljive .. : .•........•.. '" 102
4.12.1. Eksplicitna deklaracija ............•..•.. 103
4.12.2. Implicitna deklaracija ................... 103
4.13. Tekstuelna nn u programu ............. '" 105
4. 1 . 1. Privremeni prekid rada i poruke operaturu 105
4. 1 . 2. Komental'i u programu • .. .. .. . .. . • . . .. . .. 106
4.14. Primeri .................•...............•..... 106
4.14. 2. Statisti~ki primer ....................... 108
4.14. 3. Izra~unavanje korena transcendentne jedna- cine ......................•.•.......... 110
5. PROMENLJIVE SA INDESIA. - NIZOVI ...........•.•. 113
5.1. Definicija niza ................. ' .............. " .;. 113
5.1.2. Vrsta niza •.... .... .....•.. ...•.. ... .. . . .. 115
5.2.1. Jednodimenzionalni nizovi u listi ulazno-izlaz- nih naredbi ., ..•..•.....•..•... '............ 117
5.2.2. Elementi niza u aritmeti~koj naredbi •....... 119
5. 3. Cikli~ne algoritamske strukture ............. '" • . .. 121
5.3.1. Naredba za opis programskog ciklusa • . . . . . . . 121
5.3.2. Naredba.bez dejstva ....................... 124
5.4. Dvodimenzionalni nizovi .......................... 129
5.4.1. Dvodimenziona1ni nizovi u listi ulazno-izlaz- nih naredbi.. . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 130
5.4.2. Registrovanje dvcidimenzionalnog niza u moriji racunara i ·veza jednodimenzionalnim nizom ......................... , .. , . . . . . 133
5.5. ViAedimenzionalni nizovi ....................... 140
5. 6, Redosled elemenata dva niza ili viAe nizova u listi ulazDo-izlznih naredbi ............. , ... '.' . . . . . . 143
POTPROGRAMl ........ ' ............................. . 1:47
6.3. Funkcijski potprogram ............... , ........ ,. 152
6.4. ! potprogram ........... .... ......... 159
6.4.1. Promenljivi izlaz iz potprograma ... ,.. . . • . 164
6.5. Nacini prenosenja argumenata iz programa u pot- progriime .. ,.................................. 166
6 •. 6. Promenljivi ulazi u potprograme .. , ., ., ........ , . 167
6.7. ImeQa potprograma koji javljaju kao argumenti drugih potprograma .................. , ..... , . . . . 172
6. 8. Nizovi. kao ·argumenti potprograma ..... , . , . . . . . . . 1 ~6
ALGORITMI SA LOGl~lM KONSTANTAA 1 PROMEN- LJIVIM., .. , .. ,.................................... 185
7.1. Operacije poredjenja •.... , ............. ,....... 185
7.2. Logicke operacije ....... , ............... , ..... , 188
7.2. 3, Logicki izraz ..... ", .... , .. " .. ,....... 192
7 , 2,4. Dodeljivanje vrednosti logickim promenljivim 192
7.2.4. 1. Dodeljivanje vrednosti ulaza . . . . 192
7.2.4,2. Logicka naredba . , ... ~ .. , .. ,. , . " 193
Strana
7.2.6. Naredba prelaska vrednosti logi~kog izra- za •....................•............ '" .... 196
ALGORITMI SA REALNIM KONSTANTAMA 1 PROENLJI- VIM DVOSTRUE TACNCSTI •..•.................. " ...
8. 199
8. 3. Dodeljivanje n vrednosti realnim promenljivim dvostruke tacnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . 202
8.3. 1. Aritmeticka naredba . . . . . . . . . . . . . . . . . . . • . . . 202
8.3.2. Naredbaulaza ............................ 202
9. 1. Definicija kompleksne konstant . • . . . . . . . . . . • . . . . . • . 212
9.2. Definicija kompleksne promenljive ................ , 212
9.3. Dodeljivanje vrednosti kompleksnim promenlji'vim .. . 214
9.3.1. Aritmeticka naredba . . . . . . . . . . . . . . . . . . . . . . . 214
9.3.2. Naredba ulaza .......... " .. . .. . ... . ... . . . . 215
9.5. Kompleksne veli~ine dvostruke ta~nosti ............ , 218
9.6. Izracunavanje kompleksnih elementarnih funkcija .• , . 220
10. RACIONALNO KORIstENJE UNUTRASNJE MEMORIJE RA- CUNARA .... ,.".".,.,., .. ,." .. " .. ",., .... ",:" 225
10.1, Promenljiva duzina pOdataka " ., ... " ,' ....... ,., 225
10,2, Visestruko koris~enje memorijskog prostora u okviru jedne programske jedinice , .... ,.,.,.".,.,...... 229
10,2.1. Zajednicka polja za promenljive jednakih du- zina •. ,.,.,., .. ,.",.,., .. ,., ..... , .. " 230
1 . 2. 2. Zajednicka polja za promenlj ive razI!itih duzina ... , ......... ,."." ... , .. ,., .. ,', 231
10.2.3. Zajednicka zona za nizove. , .. , '" .' .. , ,. . 234
10
11.
12.
13.
10.3. ViAestruko korii!i6enje memorijskog prostora od stra .. vii!ie programskih jedinica . . . • . .. ............. 237
10.3.1. Neimenovana zajedni~ka zona u memorij~ .. 237
1 . 3. 2. lna zajedni~ka zona u memoriji .....
DODELJIV ANJE (:N VREDNOSTI PROMENLJIVIM
11.1. Dodeljivanje po~etnih vrednosti promenljivim nared-
239
243
11. 3. Programska jedinica za dodeljivanje etnih vred- nosti zdikim zonama u memoriji .....•....... 248
OFSTE MOGUCNOSTl UNOSENJA IIZDAVANJA PODATAA ......•.•....•••....•.•..••••••••••...•••. 251
\
12.1.1. Opiti opis ttak ............ ..... 251
12.1.2. Koeficijent razmere .....••...•...•....•. 253
12.1.4. . heksadekadnih brojeva . . • • • • • • . • . . • 255
12.1.5. Opis alfabetskih podataka ...••...•.•.•.•• 255
12.2. Promene FORAT-naredbe za vreme izvrAavanja programa ...........•........•...•..•.•.•....•. 257
12.2.1. Postavljanje sadrzaja FORAT-naredbe ulaza ••••••..........•...•.•.•....•• 257
12.2.2. Postavljanje sadrzaja FORAT-naredbe kao vrednosti niza ••.•.•.•..•••.•....•.. 258
1·2. . UnoAenje i izdavanje podataka njihovom. imenu .• 259
KORffiCENJE SPOLJNIH MEMORIJA 263
13.1. Magnetni disk.................................. 263
13.1.1. Definisanje podataka .•.................. 263
13.1.3. podataka. . . .. . ... . . .. . . .•. ... . .• 265
13.1.3.2. Izdavanje podataka sa diska . . .. 265
13.2. Magnetna traka ... .. . ' ....... 167
lpritai i ror8t1 jezi1: 'R IV 11
• Strana
13.2. 1.2. Izdavanje podataka magnetne trake ....................... 268
13. 2. 2. Oznaka kraja grupe podataka . . . . . . . . . . . . 269
13.2.3. Premotavanje.magnetne trake. .......... 269
13.2.3.2. Vra6anjetrake po~etak grupe 269
L i t r t u r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
1. ALGORITJ 1 NDV 8TRUKTURE
1. 1. Algoritam i algoritamski korak
od algoritmom, u najopMijem smislu ove re~H, podrazumevamo
skup svih pravila formulisanih u cilju rei!iavanja odredjene vrste problema.
Jasno da svi mi u svakodnevnom !ivotu sre~emo velikim bl"ojem
algoritama. Neke ovih algoritama nesvesno izvri!iavamo, mnoge
njih pamtimo i prema potrebi koristimo. Posebno matematika obiluje"ve1i
kim brojem algoritama. 8vaka definicija funkcije predstavlja u stvari algo
ritam za njeno izra~unavanje, za zadate vrednosti argumenata. k ovako
uopst"enu definiciju algoritama primenimo matemati~ke probleme, mogli
81.1.1.1
opis ra~nskog procesa, koji primenjen izves
ne brojne podatke dovodi do kona~nih rezultata.
Neka ~kup polaznih podataka l' 2' ••• , ",
i neka zadat algoritam koji ovaj skup podata
ka prevodi u rezultat . ! da 1' i =
= 1'2' ••• , predstavlja ulazne pOdatke za algori
tam broj izlaznu vrednost algoritma. Ne u
laze~i u to kakvim su aritmeti~kim operacijama
vezani ni podaci 1' i = 1, 2, ... , medju
u ci1ju dobijanja broja , ! grafi~ki prikazati algoritam kao blok
ulazima x(.,i=1, 2, ... ,nii;lazom (l. 1.1. 1) .Izra~unavanje veli~ine !
sastojati iz niza aritmeti~kih operacija,tako da u toku primene algoritma
dolazi do medjurezultata l' 2' .•. 'Ym.Drugim re~ima,algoritam u sui!itini
14 . Pareza.oylt:!
mole rzt,tiniz algoritama A~. i=1, 2, .... , ~iji su izlaziYJ;, 1=1, 2, ... , . U-
1azi u a1goritam , mogu biti:proizvo1jan broj e1emenata skupa 1 Xi 1, i =
=1,2, ... ,n, kaoiskupa {)\I, 1=1,2, .•• ,k, gdejek<p{s1. 1.1.2). Iz-
1az 1z a1goritma .. .. ~ uzeti da i rezu1tat a1goritma , tj.
--- ,-----r- r------- r-f--------- I I
!
---
81. 1.1.2
= • Ako su a1goritmi Ai , i = 1,2, ••• , m dov01jno prosti u smis1u pot
punog razumevanja algoritma kale da su Ai i = 1,2, •.• , m koraci
a1goritma . Prema tome, svaki aigoritamski korak ima svoje ulaze i svoj
iz1az, s tim su u1azi u prvi a1goritam.ski korak 1ent1 iz skupa
1 = 1,2, ••• ,, dok u sve druge korake mogu u1azu pojav1t1. i 1z1a
zi iz prethodnih koraka. Prema ovome, izg1eda da svaki s1ede~i ko
rak u a1goritmu sve s10leniji jer pojav1juje sve ve~i broj u1aza. Medju
tim, u prakti~ ril koraci biraju tako da svaki od njih bude
dov01jno prost, malim'brojem ulaza, izvrAav~jem pojedinih koraka
sve viAe priblilavamo kona~om rezultatu a1goritma, tako da i broj
ulaza u a1goritamske korake naj~eA~e smanjuje. Takodje treba imati u vi
du da rezultat a1goritma i pojedinih a1goritamskih koraka mol~
javiti ve~i broj iz1aznih veli~ina, dok mi radi prostijegobjalnjenja u
zeli da ! jedna izlazna veli~ za svaki a1goritamski korak.
i a1guritam u ce1ini.
laoritlDi i prop' .... ld jezik FORRN IV 15
Radi ilutracije ovoga smo do sada rekli a1goritmima, pros1edi
a1goritam izraeuDavanja funkcije
A1goritamski korak neka bude jedna aritmetit!ka operacija (+, - x).Onda,
izrat!unavanje vrednoti funkcije (1.1'.1), za date vrednoti argumenata I '
~
81. 1.1.3
i = 1,2, , 4, 5, o~e rait!laniti na slede~e operacije:
1 = 1 + 2
(1.1.2)
= " •• 1
Niz operacija (1.1. 2) mo~e se grafit!ki"prikazati, .0 ut!injeno na slici
1.1.3.
U ovom primeru algoritamski korak bio jedna od aritmetil!kih
racija, i za svakog ko poznaje aritmetit!ke operacije sabira"nja, oduzimanja
16
i m.nozenja. a1goritam 1. 1.1. 3~ za izra~navanje funkcije . dov01j
jasno napisan. IzvrAavanjem pojedinih a1~oritamskih koraka. u s1u
caju aritmetickih operacija. 1eva desno (1. 1.1.3) d01azimo do vred
nosti funkcije . Medjutim. ako ne bi poznava1i kako izvode pojedine
ritmeticke operacije a1goritam na 1. 1.1.3 ne bi ja~no zapisan. jer ga
prakticno ne bi mog1i koristiti. Tako. .za trenutak zamis1imo da ne zna
operaciju sabiranja viAecifrenih brojeva, 6 sabiranje jednocifre
.ih dekadnih brojeva, onda potrebno opisati a1goritam sabiranja viAecif
.nih dekadnih brojeva. Zaistami znamo napamet· zbir dva jednocifrena de
kadna , medjutim zbir dva viAecifrena ne znamo napamet. a1i
znamo a1goritam kojem d01azf do rezultata. koriste6i cinjenicu da
znamo zbir dva jednocifrena . Neka treba sabrati trocifreni dekadni
ciframa ~ 1 i trocifreni ciframa Y~ 2 1 ' Rezu1-
tat sabiranja moze biti cetvorocifreni dekadni z ciframa Z4 zi Z2 Zl'
Imaju6i vidu pretpostavku da poznajemo rezu1tate sabiranja dva jednocif
rena , to sabiranje brojeva + izvrAili s1ede6i nacin:
Z~ Z2. Z1
z;
gde Pi i ; , i = 1,2,3 1 i1i u
zavisnosti od toga da li zbir odgovara
ju6ih cifara dvocifren ili jednocifren .
Na ! 1. 1.4 prikazan graficki algo-
17
ritam za sabiranje trocifrenih dekadnih brojeva. Na s1:ici pretpostav1je-
da algoritam izvr§ava OOozgo nadole, dok l. 1.1. pretpo
stavili da algoritamski koraci s1ede jedan za drugim sleva nadesno. Vai-
uo~iti ~injenicu da uvek mor.amo znati koji prvi korak, kao i koji
slede6i korak ! izvrsavanju a1goritma.· Ako uvedemo vremena u
izvr§avanja a1goritma, nd ~ vremenski trenutak za izvrAa
vanje prvog a1goritamskog koraka oznal:iti 8 t 1 za ostale a1goritamske
korake redom t a ' t a ' ••• , t l1i (81. 1. 1.2), gde , t 1 < t2 , t a < t ' •.•• t.n..l<t.n. Na sli~an ~in mogu uvesti diskretna vremen~ 1:1 , t z ' •••. , za a1gorit
81. 1.1. i l. 1.1.4. UopAte uzevAi t 1 , t 2 ,.. tm mogu pretstav
ljati vremenske intervale, koji slede jedan za drugim na vremenskoj ska1i.
Na osnovu svega re~eno a1goritmima moiemo navesti slede6e
in algoritama:
diskretnim ns intervalima. Svakom l1lgoritamskom kora
ku pripada OOredjen ns interval . vremenskoj skali.
2) DeterminisQost a1goritma. Sl izlaznih velil:ina izral:unatih u
kom algorita;mskom koraku, jednoznacnp OOredjen ,.1
ulaznih veli~ina u doticnom algoritamskom kl.
) Elementarnost algoritamskog koraka. Zakon dobijanja iz1aznih
licina, ulaznih ve1icina algoritamskog koraka biti
prost i n.
4) Usmerenost algoritma. Za mogu6i skup ulaznih 'velicina u
algoritmu biti definisano Ata treba smatrati rezultatom, 00-
izlaznom velicinom, ;ilgoritma.
5) t algoritma. Sl ulaznih v~i mo~ebiti izabran pod
sl, skupa neograniceno velikim elemenata.
1.2. Algoritamske strukture i graficko prikazivanje
U primerima navecienim u prethodnom ll, predpostavljali
da , pri izvrsavanju algoritrna, algoritarnski koraci izvrAavaju jedan za
drugim leva desno (sl. 1. 1.2 i l. 1. 1. ), odnosno OOozgo do1e
(1. 1.1.4). ulaze u algoritamske korake navOOili podatke nad ko-
18 N. Parezanovic!
jima vr§i obrada u doti~om gitmskm koraku, i,zlazna veli~ina
l rezu1tat a1goritamskog koraka. Ovakvo prikazivanje algoritama nekada
moze blti pogodno, ako se 'zeli ist'a~i tok podataka pri izvr§avanju algoritam
skog . Medjutim, ! ~eo uvesti uprav1janja izvr§avanjem
algoritma i u da1jim izlaganjimagrafi~ki prikazivati algoritme u cilju preg
lednog uvida u redosled algoritamskih koraka pri izvr§avanju ,algoritma. Pod
upravljanjem izvr§avanjem algoritma podrazumeva~emo jednoznacno defi
nisanje pocetnog koraka, kao i svakog slede6eg koraka, nakon izvr§enog
jednog algoritamskog koraka. U primerima s1. 1.1.2 i s1. 1.1.3 uprav
ljanje sastojalo u definiciji prvog sa leva a1goritamskog koraka kaopo
cetnog i susednog desnog slede6eg koraka, dok u primeru 1. 1. 1. 4
! odozgo pocetni, prvi ispod slede6i a1goritamski korak. Medju
tim, u slede6im primerima dolazi6emo do znatno slozenijih algoritamskih
struktura i opisani nacin prikazivanja algoritamskih struktura
godan. U 6 6 u pravougaoniku, koji oznacava algoritamski korak
navoditi kompletnu obradu u d5m koraku, dok ranije navodili
relaciju kojom vezani ulazni podaci, rezultat izlaz
velicina, od sada 6 i rezultat biti pisan unutar algoritamskog koraka.
Ulaz u al~oritamski korak ukaziva6e iz koga algoritamskog koraka pre
! upravljanje doticni algoritamski korak izlaz iz algoritamskog ko
raka ukaziva6e slede6i algoritamski korak.
Da vidimo sada kakve mogu6e obrade, unutar jednog algoritamskog
koraka. svega moze se izraeunavati vrednost funkcije zada
tih vrednosti argumenata, ovo relacija oblika
= f{x 1 , 2'··. ,xU> (1.2.1)
gde su argumenti 1 ' 2, ••• medjusobom povezani aritmetickim
cijama. Nezavisno promenljive ., i = 1,2, ...• i zavisno promenljivu
zva6emo zajednickim imenom promenljive, izuzetno ako potrebno nagla
si6emo da li se ! nezavisnoj zavisnoj promenljivoj. Relacija (1.2.1)
matematici i treba obja§njavati, napomenimo
da iza oznake 1, i = 1,2, ... , podrazumevamo konkretne
vrednosti kojih dolazimo vrednosti . Znak jednakosti
Aloritmi i programski Jezik FORTRAN IV· 19
(=) konstatuje l:injenicu da brojna vrednost levoj strani jednaka broj
vrednosti desnoj strani (i obratno). Medjutim, kod praktil:nog izvr
~avanja algoritama, n kada radi njihovom izvrAavanju
~ cifarskih ral:unara, potrebno osim konstatacije izraziti tok pOdataka
u ral!unaru. U ovom cilju koristi~emo simbol =;> . Ovaj simbol ~e ozna
l!avati da brojna vrednost levoj strani simbt>la uzima, kao n
vrednost promenljive desnoj strani ovog simbola. Tako relacija (1.2.1)
moze napisati u obliku
(1.2.2)
Treba dobro uol:iti razliku izmedju relacije (1.2.1) i (1.2.2). Relacija'
(1.2.2·) izrazava proces izral!unavanja brojne vrednosti levoj strani
simbola, zatim pripisivanje izral:unate brojne vrednosti promenljivoj .
Ovo nam daje mogu~nost da piAemo
(1.2.3)
Ato znal!i da osnovu brojnih vrednosti , i = 1,2, ... , i prethodne
vrednosti izral!unava nova brojna vrednost za promenljivu .
Za grafil!ko prikazivanje algoritama, koristi~emo graficke simbole
koji ~e svojim oblikom ukazivati prirodu pojedinih algoritamskih kora
ka. Nize opisani pojedini graficki simboli:
~ Grafil!ki simbol za algoritamski korak kojem definiAu ulazne velil!ine algoritma.
~ Graficki simbol za algoritamski korak kojem vrsi obrada.
? Graficki simbol za algoritamski korak u kojem definiAu izlaz- n velicine algoritma.
20 N. Par.laDoyi~
Grafi~ki s1mbo1i za a1goritamsk.
~ korake u kojima donose odlu- ke daljem toku a1goritma.
ne
~ ne
( i
PrenoAenje upravljanja ta~ku 111.
1. . Linijske a1goritamske strukture
k-aktistika linijskih algoritamskih struktura da pri jed
nom izvrAavanju a1goritma dolazi samo do jednog izvrAavanja svakog algo
ritamskog·koraka. Prema tome. upravljanje u iiki algoritmima . 0-
karakterisano time se it jednog algoritamskog koraka. upravljanje
ife preneti algoritamski korak koji nije ni jedanput izvrAen.
1. . 1. Proste linijske strukture
Pod prostim linijskim strukturama podrazumeva~emo algoritme ~iji
se koraci sastoje isk1ju~ivo od obrade nad ulaznim podacima, koja kao re
zultat daje broJni podatak bez dejstva prenoseJ1je upravljanja slede~i
algoritamski korak. Prema tome, u ovakvim strukturama redosled algori
tamskih koraka unapred definisan i ne moife biti promenjen u toku rada
lpritmi i programsld jez1Jt I'ORkN 21
a1goritma. Ov algoritamske struktureredovno sre~u pri izra~una
vanju aritmeti~kih izraza. Tako ranije navedeni primer izra~avanja vred
SI. 1.3.1
koja d~ta na 1. 1.3.1.
Veza izmedju dva a1goritamska koraka obrade,
predstavlja bezuslovno prenoAenje uprav1janja
jednog drugi, a1i ovo ni potrebno posebno oz
nal!avati.
lazak jednog a1goritamskog koraka na s1ede~i ne
moze zavisiti od rezu1tata obrade u kojem alg
ritamskom koraku. Medjutim, u rl~!m ra(!unu
vrl0 ~esto tok ra~unanja zavisi od medjurezu1tata
dobijenih u toku ra~llnanja, ili od konkretnih vred
nosti polaznih podataka. U ovakvim algoritmima mora posiojati algoritam-
korak u kojem donosi odluka toku r1nskg procesa odnosno pre
noAenju upravljanja jedan 11! drugi algoritamski kor~k. Najelementarni
razgranata linijska struktura dobija komponovanjem tri proste 1inijske
strukture 1 , 2 i (l. 1. . 2). Struktura 1 neka sastoji od izr.a~u
slede~ih medjurezultata
2 = f2 (X1 ' Xz ····, )
= fm (X1 • 2'···.
(1.3.2)
Funkcija Z ra(!una jednoj od prostih linijskih struktura 2 11i • u
zavisnosti od istinitos.ti relacije €> . gde simbol @ ozna(!ava ma koju re-
22 ~. ParezaDovi~
laciju poredjenja i , brojevi i pripadaju
{
Ip 1 (t 1 ,t ' ... , tJ za €) nije ispunjena
z- Ip 2 (t1 ,t2 ' ••• , t k) za €) ispunjena
(1.3.3)
gde argumenti funkcije 911 i '2 mogu biti iz l polazni1;l veli~ina. jx t },
i = 1,2, ... , ili iz skupa. medjurezultata fYt} i = 1,2, ... , . Rela.cije €)
izmedju i mogu biti:
1) = , suprotno f
2) < , suprotno ~
3) >, sUPiotno ,
S1. 1.3.2
Algorltmi i pro,ramsld jezlJt FR.R.N ~ 23
Ispitivanje istinitosti nazna~ene relacije izmedju brojeva i . grafi~ki
ozna~eno rombom. u ~ijoj unutraAnjosti navodi relacija koja ispituje.
Algoritamski korak u kojem !ile vrAi ispitivanje istinitosti relacije izmedju
brojeva ima jedan ulaz i dva izlaza. Jedan izlaz prenosi upravljanje u slu
~aj da navedena relacija ni zadovoljena (ozna~im() ga NE). drugi iz
laz prenosi upravljanje u slu~aju da relacija zadovoljena (ozna~avamo ga
DA).
IzvrAavanje algoritama razgranatom strukturom uvek sastoji
od prostih linijskih struktura. Tako l. (1.3.2) nikada izvrAavaju
strukture 2 i za konkretne vrednosti polaznih podataka, ve6 6
izvri:liti jedna od ovih struktura. slucaju da naznacena relacija nije ispu
na izvri!li6e struktura l , zatim struktura 2 (l. 1.3.3), odnosno
ako naznacena relacija ispunjena, izvri!li6e struktura 1 zatim (l. 1. 3.4). Povezivanjem elementarnih razgranatih struktura mogu do
biti vrl0 slozene razgranate algoritamske strukture.
. Parez.Doyi~
Izral::unati vrednost formul1
Na l. 1. 3. 5 prikazan grafil::ki a1goritam za izral::unavanje vrednosti .
U navedenom primeru dovoljno ispitati da 1i l< , i l = Xz. k ni
jedan ovih uslova nije ispunjen znal::i da l > , •
DA
Qrakteristika cildll::kih algoritamskih struktura jeste viAestr1,1-
ko izvrAavanje jednog algoritamskog koraka 111 viAe njih za razliku linij
B~ struktura kOO kojih svaki korak j-edanput izvrAava. Razlikova-
A1.80ntmi i pl'Ogramski jezlJt FRRN .IV 25
6- dva tipa ik!kih struktura:
- konstantne cikli~ke strukture i
- promenljive cikli~ke strukture.
stijem slu~aju sastoji se od dve
proste linijske strukture (l i p~.
izmedju kojih se na1azi us10v za iz-
1azak iz ciklusa, odnosno za nasta
v1janje ciklusa (sl. 1.4.1). Iovde.
kao i kod razgranatih 1inijskih struk
tura, us10v se izrazava odnos'om
dva €> . Re1acija izmedju
brojeva i moz~ biti ispunjena i
li ne; u jednom slu~aju uprav1janje
se predaje algoritamskom koraku van ciklusa, u drugom al~aj a1gori
tamskom koraku u ciklusu. Uobi~ajeno da cikli~ke algoritamske stru
kture zovu !! i petlje, us10v za iz1azak iz ciklusa zove !! i iz1azni
kriterijum. Cikli~ka struktura moze imati i vi!ie iz1aza, u zavisnosti od
re1acija koje se ispituju u iz1aznom kriterijumu.
1.4.1. K.onstantne ciklicke strukture
Ako u toku izvr!iavanja a1goritma ne do1azi do promena zakona
de u a1goritamskim koracima koji cine cikli~ku strukturu, kazemo da to
konstantna ciklicka struktura. Iz1azni kriterijum kod konstantnih ciklickih
struktura naj~e!!~e broj izvr!!enih cik1usa il! pak dostignuta ta~nost pri
ra~unanju iterativnom postupku. Nave§~emo primer jednog i drugog iz-
1aznog kriterijuma.
Primer 1
=
v = vz Njutnovoj iter~tivnoj formuli
gde =1= , = , 1,2, ••.. Ovde
izlazni kriterijum broj ponavlja
nja cik1usa u stepenovanja bro
u naAem slu~aju cik1us treba
izvrAiti puta. vrednost
promenljiva od slu~aja do slu~aja,
to bilo nemogu6e algoritam
opisati prostom linijskom struktu
6 bismo za svako razli~ito mo
rali imati posebnu llidjsku struktu
ru. Na l. 1.4.2 prikazan ~ra
fi~ki algoritam za izra~unavanje
n-tog stepena broja .
i = 0,1,2, •.• (1.4. )
gde 6emo uzeti da = z + 1. Proces ra~unanja prekinuti kada sedostig
ne zadata taooost , tako da
(1.4.4)
Formula (1.4. ) dobija.se kao an slu~aj odredjivanja nule funkcije f(x)
P9motu Njutnove tangentne metode (l. 1.4. ). Jedna~ina tangente kroz ta~
ku 1 ima oblik
IJOl'itllif { pro,Ta.'ki Jezi.t FORTlUN IV 27
Ako uzmemo da
{() = 2 - Z (1.4.7)
gde z ~iji kvadratni koren treba odrediti, to iz (1.4.6) dobija
(1.4.3). Moze pOkazati da izlozeni iterativni postupak izra~navanja
kyadratnog korena uvek konvergentan. i da
lim ! = v i .....
(1.4.8)
Na l. 1.4.4 prikazan algoritam za izra~unav.:anje kvadratnog ko
rena. Ovde vazno uo~iti razliku izmedju matematl~ke s.imbo1ike u itera
tivnoj formuli (1. 4. 3) i one koja koriA6ena 1. 1.4.4. formuli
(1. 4. 3~ u svakom iterativnom ciklusu dolazi do uvodjenja nove Qnliv
l ' xz , •.. , kojih moze biti veliki •. t zavisi od brzine konvergenci
iterativnog postupka. Medjutim. u syakom lterativnom ciklusu stvarno
pojavljuju dva brojna podatka: rezultat prethodne iteracije·l rezul
tat iteracije koja ra~una. Pri grafi~kom prikazivanju a1goritma l.
1.4.4 uzetQ da promenljiva predstavlja rezultat prethodne iteracije,
.. rezultat iteracije koja ra~una. Ako nije dOBtignuta zadata ta~nost
dolazi do zamene lzra~unate vrednoBti 1 kao nove pretpostav1jene vredna
Bti i iterativni proceB naBtavlja.
28 N. ParezaDoyl~
Pri grafickom prikazivanju a1goritama treba teziti za manjim
brojem promenljivih. jer to znaci i angazovanih registara
rije. kada se a1goritam prenosi na e1ektronske racunare.
ik!k a1goritamske strukture kod kojih izlazni kriterijum dos
tignuta tacnost u iterativnom postupku iovu se § i iterativne ciklicke
strukture. Vazno uociti da se iterativne ciklicke strukture ne mogu raz
viti u linijsku strukturu. ponavljanja iterativnog ciklusa zavisi od
p01aznih podataka i razlicit za razlicite vrednosti po1aznih pOdataka.
red toga. broj ponavljanja iterativnog ciklusa zavisi~e i od zadate tacnosti
kojom se zeli odrediti trazeno re§enje.
1.4.2. Promenljive cikli~ke strukture
Kod konstantnih ciklickih struktura dolazilo do promene ulaznih
dataka u pojedinl.=! algoritamske korake u ciklusu. zakon obrade u a1go-
1r'ftmi i ro je'Zik ..N 29
ritamskom koraku ostao nepromenjen za vreme izvr~avanja ciklusa. Kod
promenljivih cikli~kih struktura, u toku rada ci~usa, dolazi do promena
zakona obrade u nekom od algoritamskih koraka u okviru ciklusa. Ova pro
mena moze biti promenljivim koje javljaju u algoritamskom koraku
ili nad operacijama kojima su one povezane medju sobom.
(1) '----.,....-_ ...
(3)
(4) L.-__ --'
(5) L.-_"""'-__
S1. 1.4.5
Promene u algoritmu u~injene izvr~avanjem samog algoritmk zva~e
mo modifikacija algoritma. RealizacijaalgO!'itama cifarskim elektron
sldm ra~unarima dozvoljava njihovu modifikaciju, omogu~je znatno
kra~e zapisivanje algoritama u memoriji raCunara. Modifikacija algoritma
znaci mogu~nost obrade n samo polaznih podataka, ve~ i informacija koje
cine i al algoritam.
. Parezaaovic!
za I = + i . / , i = , 1 ••.• ,. Izracunate. vrednosti funkcije [() do
deliti promenljivim R1• Na l. 1.4.5 dat grafi~ki prikaz algoritma za
ovog zadatka. Algoritam sastavljen pet algoritamskih ~oraka.
slici oznacenih sa (1). (2). (). (4) i (5). Algoritamski koraci (2), ().
(4) i (5) nalaze unutar ik:k strukture. dok korak (1) nalazi ispred
ciklicke strukture. Korak (1) sluzi za postavljanje pocetne vrednosti indek
1. tako da u prvom prolazu rezultat algoritamskog koraka (2) dodelju
promenljivoj Ro• U tre6em algoritamskom koraku proverava izlazni
kriterijum iz ciklusa, tako da ako izracunata i vrednost funkcije f(xn) do
lazi do kraja a1goritma. U cetvrti algoritamski korak dolazi ako izlaz
ni kriterijum ni zadovoljen, i izracunava s1ede6a vrednost argumenta
funkcije. Ovo izracunavanje sastoji u dodavanju koraka / prethodnu
vrednost argumenta. Kako prethodna vrednost gunt mora biti
cuvana,to dovoljno imati nu promenljivu ( cija 6 vrednost
tnenjati u toku izvr§avanja algoritma. Peti algoritamski korak karakte
ristican za promenljive cikli~ke strukture. U koraku dolazi do
indeksa.1. to prakticno znaci dq promene imena promenljive kojoj
dodeljuje rezultat drugog algoritamskog koraka .. Prema tome, modifi
kacija algoritma, u slucaju, sastoji u ! mesta gde 6 biti
zapisan rezultat algoritamskog koraka, u memoriji racunara sva
koj promenljivoj dodeljuje registar u kojem cuva na brojna vrednost.
Primer 2
(1.4.10)
za zadatu vrednost .-. Algoritam sastaviti tako da moze koristiti za
koji stepen . Izracunatu vr.ednost li dode1iti promenlji
F. (1.4.1 ) moze napisati u obliku
f(x) = + i 1 + [2 · + ••• + (n_l + . >]} (1.4.11)
koji pogodniji za izracunavanje vrednosti , jer mgu sasta
vljanje ciklicke algoritamske strukture.
Ni l. 1.4.6 dat algoritam za izral!unavarije'vrednosti polinoma
fQrmuli (1.4. 11). Algoritam pored ulaznih i izlaznih koraka' s&.dr!i 6 kora
ka od kojih dva pripremna, ostala 4 nalaze u ciklusu .. prva dva
koraka vrAi postavljanje pol!etne vrednosti za..t i d04eljivanje brojne
vrednosti nula promenljivoj F. Kada prvi put dodje u tre~i al~oritamski
korak, ~e F = , tako da ~e izvrAiti operacija dodeljivanja &11 =-F.
(1 )
81. 1.4.6
u st algoritamskom koraku vrAi mno!enje F i postavljanje pro
izvoda kao nove vrednosti promenljive F. Promenoin indeksa! vrAi
difikacija promenljive l redom promenljive an. a n_l , •.. , l, . Kada
indeks i dostigne vrednost , to znaci da tre~em koraku izvrAeno doda
vanje i zadnje konstante prethodnoj vrednosti pI'bmen1jive F, cime
vrednost polinoma izracunata, i ovim algoritam zavrAava.
1.5. Blozene algoritamske strukture
Do sada upoznali elementarnim algoritamskim struktura
: prostim i razgranatim iinijskim strukturama, kao i ,konstantnim i pro-
32 . ParezaDoyl~
tarnih struktura do1azi do vr10 slozenih i raznovrsnih a1goritamskih
struktura. Jasno takodje da za reiiavanje istog zadatka moze sastavi
ti viiie a1goritama raz1i~itim strukturama. Za ovakve a1goritme kazemo
da 4I;u medjusobom ekviva1entni. Pri prakticnom reiiavanju zadataka treba
medju ekviva1entnim a1goritmima izabrati onaj koji najefikasnije dovodi do
rezu1tata. Ovo posepno vazno kada radi primeni racunara u u
izvriiavanja a1goritama. U ovom luu na kona~an izbor a1goritma moze
uticati angazovanih registara memorije, brzina rada a1goritma, sloze
nost a1goritamske strukture i sl.
Slozenost a1goritamske strukture naro~ito se uve~ava prisustvom cik
lickih, posebno promenljivih ciklickih struktura. Dve ciklicke strukture,
kompoziciji algoritma, mogu slediti jedna iza druge ! mogu obuhvatiti
jedna drugu. Za viiie ciklicnih struktura koje slede jedna iza druge kazemo
da cine linijsku kompozicijti cikli~kih struktura. Ako jedna cik1icka stru
ktura nalazi unutar druge cikli~ke strukture kazemo da se radi koncentric
kompoziciji cikli~kihstruktura.
Izracunati vrednost po1inoma
f(x) = + {l + [2 + ... + x(a D _1 + ] 1 (1.5.1)
za = + k. , k = 0,1,2, ... , .
Izracunate vrednosti po1inoma dode1iti promen1jivim F 1 ' i = 0,1, ... , m
tako da
i = 0,1, ... , m
Na l. 1. 5. 1. dat a1goritam za izracunavanje vrednosti p01in()ma,
postupk (1.5.1), za razne vrednosti argumenta. Algoritam se sasto
! od 10 koraka sa dve ciklicke str.ukture ( 1 i Cz), od kojih jedna cikli
cka struktura (Cz) na1azi okviru druge ciklicke strukture ( 1). Prvi a1go
ritamdki korak mni i vr§i postav1janje indeksa!s: A1goritamski ko-
lgoritmi i pro'1'ams1i jezik RRN IV 33
Sl. 1.5.1.
raci od (2) do (7) odgovaraju ranijem primeru izracunavanja vrednosti
linm datom sl. 1.4.6. A1goritamski korak (8) predstav1ja u iz-
1aznog kriterijuma za. iz1azak iz cik1usa l. koraku (9) vri§i se mn
indeksa ls: 6n argumenta za korak t.x·vri§i se desetom a1gori
tamskom koraku. m tome, malom cik1usu 2 vri§i se izr,acunavanje
vrednosti nm n-tog stepena, velikom cik1usu 1 vr§i se mn
argumenta i postavljanje pocetnih vrednosti za odvijanje ciklusa 2 • U algo
ritmu 81. 1.5.1. dolazi do modifikacije u 81ede6im algoritamskim kora
cima (3), (4) i (7), dolazi do mn imena promenljivim ; . i Fk pri
svakoj promeni indeksa i odnosno Js., Postavljanje indeksa i u koraku (2), u
pravilnog odvijanja cik1usa.C2 (izracunavanje vrednosti nm). zo
se restauracija vrednosti promenliive i.
34 ~. ".rezaDoYlc!
1. 6. Algoritmi i programiranje
Videli lgritm mozemo jednozna~no opisati koriste~i
blok ~. Medjutim, algoritam takodje mogli
sati ako koristili izrazavanjem u obliku pisanog teksta. Tako
ni uzeti primer izra~unavanja funkcije
za 1 .. + i. lIx, i = 0,1, ... , i dodeljivanje izra~unatih vrednos
ti funkcije «1) promenljivim Rj', i:: 0.1, ••• , moze opisati l
de~i ~in:
1 korak: Uzeti da i = , i pre~i korak 2,
2 korak: Izra~unati f(xJ = + , i izra<::unatu v:dst dodeliti promenljivoj R1, zatim pre~i korak 3,
korak: Ako i = zv!i raeunanje, ako i'" pre~i korak 4,
4 korak: Pove~ati vrednost argumenta za fJ.x, i pre~i korak 5,
5 korak: Pove6ati indek8 i za jedan, i korak 2.
Poredjenjem gornjeg algoritma i onog datog 81. 1.4.5.
vidi seda opisa u suMini ista. Medjutim, tekstualni opis algorita
nije pogodan za slozenije algoritme, jer uo(!ava struktu
ra algoritma, to mogu6nosti u otkrivanju logickih gresaka.
Sa druge strane pri tekstualnom moze do~i do neprecizno formuli
<::ni, cime unosi ~ u opisivanje algoritma.
Grafi~ko prikazivanje algoritama 6 blok-seme odlikuje
-slede~im in:
1) Omogu~uje 'prikazivanje toka izvrsavanja algoritma, nacin
koji pruza najve6e za otkrivanje logickih gresaka u postavci algo
"ritma.
2-) Omogu6uje kra~i i ! zapis algoritma, nego pisanim jezi-
kom.
4) algoritama u obliku blok-sema nezavisno
kasnij"g koristenja algoritma.
Zadnja ina posebno znaCajna. jer graficko prikazivanje algorit
nije orijentisano na prenoAenje algoritma odredjeni raCunar. 0-
mogu6uje da algoritam u obliku blok-Aeme mogU koristiti i ljudi' koji ne poz.
naju raCunare. Detaljisanje algoritma pri grafikom prikazivanju ! biti
razlicito i zavisi od namene blok-Aeme algoritma. Kada radi prenoAe
nju algoritma cifarske raCunare. radi u stvari takvoj detaljizaciji
algoritma, koja 6 omogu6iti jednoznacno prihvatanje alg<?ritma od strane
raCunara. Ovakav nacin pisanja algoritama zove programiranje, ovako
zapisan algoritam zva6emo programski algoritam ili program. Prema tome,
programski algoritam takav zapis aIgoritma koji omogu6uje njegovo ·pre
noAenje cifarske raCunare. Algoritam zapisan.u obliku blok-Aeme ne
ze biti prihva6en od strane ra~unara, detaljizacija algoritma nije t
go definisana.
Algoritam zapisan preko skupa naredbi racunara prihvatljiv za ra
cunar, ali ne odgovara l!oveku. Nivo maAinskog jezika za programiranje
podrazumeva takvu detaljizaciju algoritma da to predstavlja vrlo mukotrpan
za cove.ka, najva!nije veoma podle!an greAkama. Za pi
sanje programa maAinskom jeziku P9trebno poznavanje konstruktivnih
osobina racunara, takodje veoma ogranicilo broj ljudi koji mogli
koristiti raCunar.
Slede6a faza u reAavanju problema komunikac1je izmedju coveka i ra
cunara' bila uvodjenje simbolicnog programirarija. Simbolicno programira
nje podrazumeva uvodjenje mnemotehnickih skra6enica za kodove operacija,
kao i simbolicno pisanje adresa. Svakako da ovakav simbolican jezik pri
hvatljiviji za coveka nego masinski jezik. Medjutim, i ovaj nacin programi
an zahteva veliku detaljizaciju, koja nosi sve nedostatke mai!iinskog jezi
ka, u bl! formi.
Simbolican jezik mora tako definisan da mogu6e sastavitialgo
ritam za formalno prevodjenje maAinski jezik. ovo prevodjenje
jednoznacno to ga mogu6e izvri!iiti pom06u raCunara.
1.7. UopAte programskim jezicima
Je.zik sredstvo za komunikaciju izmedju najmanje dva korisnika.O
cigledno da jezik biti definisan tako da prihvatljiv za sve korisni-
36 . ParezalloYi~
ke. Ako posmatra bl komunikacije izmedju coveka i racunara
uzeti u obzir dobre i l strane jednog -i drugog i bazi togamo
formirati jezik za njihovu komunikaciju. Jezik veoma si
§ i zbog toga prihvatljiv za coveka. Medjutim, pisani ili govorni
jezik coveka nije dovoljno precizan da prihvatljiv za .
tome. traziti nekakav novi jezik kpji 6 biti prihvatljiv i za coveka
i za . Jezici koji defip.isani da zadovolje ovaj uslov zovu prog
ramski jezici. Programski jezik da odgovori slede6im zahtevima:
1) Da pruzi §to mogu6e ve6i komfor za coveka, pri § l
goritama ,
2) Da omogu6i lako 6 programskog algoritma od §to ve6eg
ljudi, i
3) Da mogu6e formalno prevodjenje programskog jezika
§inski jezik.
Prvi zahtev znaci da programski jezik obezbediti lako izraza
vanje bl koji zeli reAiti 6 . Medjutim, primena
jako Airoka, samim tim i problemi raznovrsni. U takvoj
situaciji definisani programski jezici za pojedine oblasti primene
. Danas najpoznatiji programski jezici:
FORTRAN - naucno-tehnickim problemima (FORmula TRANslating),
ALGOL
COBOL
PL/I
- poslovnoj obradi podataka ( in Orientid Language),
- naucnim, tehnickim i pos1ovnim problemima (Programming Language 1)
Pored ovih jezika postoji desetine programskih jezika. Medju-
tim, od svih ovih jezika najvi§e rasprostranjen FORTRAN. Na skoro 800/0
danaAnjih moze,se koristiti programski jezik FORTRAN.
Drugi navedeni zaht.ey za programski jezik, treba da omogu6i razme
nu programskih algoritamK, medju strucnjacima koji bave odgovaraju6im
problemima. ;tome, g,msk1 jezik:mora biti izgradjen
skupu tipografskih simbola, i konstrukcije u jeziku biti lako
shvatl)ive za Ato Airi krug strucnjaka.
AlgoritJni i programsti jezik PORTRAN IV 37
Tre6i zahtev omogu6uje izradu programa. koji 6 obezbediti da ral:!u
nar vrsi prevodjenje sa programskog na masinski jezik. Ovaj program se.
zove program za prevodjenje. i kao ulazne podatke dobija konstrukcije iz
programskog jezika i prevodi ih u skup naredbi u masinskom jeziku. Kada
program preveden sa programskog masinski jezik, tada moze
njegovo izvrsavanje racunaru~
AlaoritDd .[ ro. ••• . Jezi1: 'ORTRANIV 39
2. PRETHODNE NAPOMENE FORTRAN-JEZIKU
2. 1. OpMi pojmovi
Osnovna, nedeljiva jedinica jezika zove simbol. FOTRAN
tacki jezik, koji definiie nad izabranim skupom simbola. Skup simbola
izabran tako da odgovara uobicajenim tipografskim simbo1ima. Novi sim
boli konstruisani od postoje6ih tipografskih simbo1a, njihova konstruk
cija 1ako shvatljiva za iiri krug strucnjaka raz!icitih profila.
Simbo1 kao jedinica jezika ne izra:lava niAta drugo, osim ito predstav-
1 samog .
simbo1a. E1ementarna konstrukcija ima odredjeno znacenje, 11 za
ne egzistira programu. E1ementarne konstrukcije FORTRAN -jezika
:
- konstante,
- promenljive,
S10zena konstrukcija, FORTRAN jeziku sacinjena od niza simbo-
1 i e1ementarnih konstrukcija. Ona egzistira programu i ima lrdni
smisao za . S10zene konstrukcije FORTRAN-jeziku :
- naredbe,
Naredbe FORTRAN-jezika se dele : izvrshe i opisne. Izvrsne nared
odredjuju koja operacija treba da se izvrsi i nad kojim podacima, pre
tome one predstavljaju akciju koju ra~unar treba da sprovede. Opisane
naredbe pruzaju sve dodatne informacije potrebne za izvrsne naredbe, koje
se odnose to kako treba izvrsiti odredjenu akciju, ili daju informacije '0
programu u celini, sto omogu~uje lakse prevodjenje programa sa FORTRAN
-jezika masinski jezik.
Pravila kako se nad skupom simbola jezika grade elementarne i sloze
ne konstrukcije ~ine gramatiku jezika. Prema tome, poznavanjem gramatike
mozemo re~i svakoj zadatoj konstrukciji u jeziku da li korektna ili nije,
ne ulaze~i u njeno zna~enje. Sintaksa jezika izu~ava gramati~ki korektne
konstrukcije i daje mogu~nost formalnog otkrivanja gresaka u konstrukcija
. Odmah treba uo~iti da sintaksi~ke greske u programtt mogu biti otkri
vene u programu za prevodjenje, jer su formalne prirode.
Semantika jezika izu~ava zna~enje pojedinih konstrukcija u jeziku.
Program sastavlja ~ovek, isve konstrukcije FORTRAN-jezika koje
~ine program, napisane su prema algoritmu sastavljenom za resavanje od
redjenog problema. Prema tome, semanti~ke greske u programu, pra
vilu. ne mogu biti formalno otkrivene, jer su to naj~es~e greske u algoritmu,
samim tim ove greske ne moze otkriti program za provodjenje, ve~ jedino
~ovek.
Pravila kojima se grade pojedine konstrukcije FORTRAN -jezika
lako se pamte, ako se uo~e razlozi za§to su ona uvedena. Zato treba imati
u vidu slede~e:
1) svaka konstrukcija u FORTRAN-jeziku. mora tako definisana
da se jednozna~no razlikuje od svih ostalih konstrukcija,
2) konstrukcije se moraju tako definisati da se omogu6i sto lakse nji
hovo prevodjenje ma!Hnski jezik. i
3) konstrukcije moraju biti sto razumljivije za ~oveka.
Pri definisanju svakog programskog jezika mora se voditi ra~un~
ova tri aspekta jezika. Kako to sprovedeno u FORTRAN-jeziku ~e izlo
zeno u materijalu koji sledi.
AI~itmi .• programsJd Jezit IV 41
2.2. Nal:in pisanja programa
8ve naredbe FORTRAN -programa prenete kartice da
program unet u ral:unar. Da program za prevodjenje pravilno pri
hvatao naredbe sa kartica, se postovati sledec5a pravila busenju
kartica:
1) Od 1. do 5. kolone zakljul:no busi se koji predstavlja obelezje
naredbe.
2) od 7. do 72. kolone zakljul:no busi se niz simbola koji l:ine naredbu.
3) k neka naredba sadrzi vise od 66 simbola, odnosno moze
bu§ena jednoj kartici, moze se koristiti ukupno 20 kartica za njeno §
nje, ali svaka kartica, osim prve, sadrzati znak razlil:it od l i
blanka 6. koloni.
4) Od 73. do 80. kolone moze se busiti kakav tekst. Najl:esc5e
to tekst koji sluzi' za id~ntifikaciju programa i za redosled kartica progra
. 8adrzaj ovih kolona ne uzima u obzir od programa za prevodjenje.
5) Obja§njenja u programu koja se ne odnose program za prevodje
nje, vec5 olaksavaju prac5enje programa od strane l:oveka, pisu se od 2. do
80. kolone, ! u prvoj koloni nala,ziti slovo . Ovakav t~kst
se moze pisati l0 kojem mestu programa, i bez znal:.aja pri formi
ranju masinskog programa.
pogodno pisati FORTRAN-program u formularima oblika prikazanog
sl. 2.2.1.
__ .... 1...-----'
Naredbe FQRTRAN-programa l§ odozgo nadole onim redom kako
izvr§avaju u programu. U okviru naredbe moze se nalaziti proizvoljan
broj simbola blanko. omogu~uje pregledno pisanje naredbe, ne menja
njeno znacenje.
3. SIMBOLI FORTRAN -JEZIA
- velikih slova engleske azbuke,
- dekadnog brojnog sistema,
3.1. Ve1ika slova engleske azbuke
Velika slova engleske azbuke cine 26 simbola FORTRAN -jezika, i to
IllDIIFIGIlrlIILllNIIIQIRISIIUIVlwl
XIYIZ
simbole jezika.
Cifre dekadnog brojnog sistema cine 10 simbola FOTRAN-jezika i to
0111213141516171819
Logicke konstante, koj~ u algebri logike na oznacavaju sim
i 1, u FORTRAN-jeziku pisu
FALSE. 1 . TRUE.
gde konstanta . FALSE. (cita fo:ls, znaci laz) odgovara , • TURE.
(cita tru:, znaci istina) odgovara 1 u algebri lo,gike.
.4. Znaci aritmetickih operacija
+ 1-1 * I / I ** pri cemu imaju sledece znacenje
+ sabiranje
oduzimanje
* mnozenje
/ delenje
** stepenovanje
Znacl za operacije poredjenja u FORTRAN-jeziku su
.LT. I.LE.I .EQ. '.~. I.. l.dE.
pri cemu imaju s1edece znacenje:
· LT. odgovara simbolu < u matematici (simbol sastavljen od pr·,
vih slova engleskih reci "Less Than", sto znaci " od"),
· LE. odgovara simbolu , u matematici (sil sastavljen od pr
vih slova engleskih reci "LeS&. than or Equal to", sto znaci
" il! jednako"),
· EQ. odgovara simbolu ;: u matemat1ci (simbol sastavljen od pr
vih slova engleske reci "EQual to", sto inaci \ljednako"),
loritJDi i plO'1'a •• 1d jezik , IV 45
· NE. odgov~ra liIimbolu r u matematici (liIimbol liIaliltavljen od pr
vih slova engleskih rec:!i "Not Equa1 to", 't znac:!i "ni dna
ko"),
· . odgovara .simbolu > u matematici (simbol sastavljen od pr
slova engleskih rec:!i "Greater han", t znac:!i "ve6e od"),
· . odgova~a simbolu ~ u matematici (simbol sastavljen od pr
slova engleskih rec:!i "Greater than or 1 to", t znac:!i
"ve6e lli jednako").
Znaci za l~gic:!ke operacije u FOBTRAN-jeziku su
.oR.I.AND.I.NOT.
.OR. logicka "11i" operacija,
· AND. logicka "i" operacija.
· NOT .. logicka l'ne" operacija.
ristiti u FORTRAN-jeziku i to su
( I ) I =1 , 1 . 1 s I 1 '.1 &
gde simbol oznacava medjuprostor lli ank izmedju tipografsldh il
bola.
Sluzbene reci su engleske reci koje u FORTRAN-jeziku koriste
kao simboli. znaci da te ! mogu pisati u obliku datom u ta
bleli . 1. U tabeli dat oblik pisanja sluzbene reci u FORRAN-jeziku,
posto znacenje ! ukazuje funkciju simbola u FORTRAN-jeziku to
dat i prevod reci srpskohrvatski jezik radi lakseg koriscenja 'za ci-
46 N. Parozanovic!
taoce koji ne poznaju engleski jezik. Takdoje u tabeli dat i izgovor reci,
zapisan u fonetskoj transkripciji.
1. SSIi dodeli asain
. CALL pozovi kol
5. COMPLEX kompleksan k;)mpleks
6. CONTINUE nastavi kantinju:
7. DATA podaci deitct
8. DIMENSION dimenzija dimensan
9. DO izvrsi du:
11. EQVIV ALENCE odgovarajl1ci ikwivalans
12. EXTERNAL spoljasnji iksta:nal
13. FORMAT raspored fQ:mat
15. GO predji gou tu
16. IF ako if
18. LOGICAL logicki lodzikal
19. PAUSE pauza po:z
20. READ citaj ri:d
21. REAL realan rial
22. RETURN povratak rita:n
23. STOP zaustavi stop
24. SUBROUTINE potprogram stu:ti:
25. WRITE pisi rait
AJoritmi i. ro'1'slli .fezi.ll , IV 47
4. ALGORITMI SA REALNIM KONSTANAA 1 PROMENLJIVIM
Svaki racunski proces moze ral!claniti niz formula, kojima
vrsi izracunavanje medjurezultata i konacnih rezultata. Formula u uo -
bicajenoj matematickoj notaciji sadrzi promenljive i konstp.nte medjusob -
povezane aritmetickim operacijama. Promenljivim, koje nalaze na
desnoj strani neke formul~, moraju biti dodeljene brojne vrednosti pre ra
cunanja toj formuli. Ov promenljive dobijaju brojne vrednosti, pre
cetka rada algoritmu, kao polazne velicine ili su to medjurezultati izra
unanj prethodnim formulama.
sadrzi promenljive l' 2' " cijebrojne vrednosti moraju biti poznate
pre izracunavanja velicine . Na desnoj strani formule (4.1) figurisu i kon
stante 2; , 7 i 4. Izracunavanje formuli (4.1) predstavlja izracunavanje
vrednosti aritmetickog izraza desno od znaka jednakosti, i dodeljivanje iz
racunate brojne vrednosti promenljivoj , levoj strani znaka jednakosti.
Sve opite poznato u matematici i predstavlja"uobicajeni nacin
korii6enja formula od strane iirokog broja ljudi razlicitih profesija.
U glavi 6 biti izlo!eno kako piiiu formule u FORTRAN-jezi
ku. Imaju6i u vidu ita sadrze formule, to u FORTRAN -jeziku mora
ju definisati slede6i :
- kako piiu aritmeticki izrazi,
- kako dodeljuju vrednosti promenljivim,
48 . I'are zaaoYll!
- kako izdaju konacni rezultati.
4. 1. Definicija brojne konstante
U FORTRAN-jeziku brojna konstanta ~oze biti broj mesovit
broj. Ova stroga podela konstanti 1 i mesovite us10vljena nacinom
re~Btrovanja konstanti u memoriji racunara. Celobrojna konstanta regi
struje kao binarni broj, . mesovita konstanta reg!struje kao broj
u pokretnom zarezu.
4. 1. 1. CeU brojevl
broj pise kao niz d~kadnih cifara, ispred kojeg moze stajati
znak + za pozitlvan broj, obavezno znak - za negativan broj. Ovako za
pisana ce1obrojna konstanta mora biti u brojnom interValu [_231, 2'1 -1] •
brojni interval odredjen kapacitetom jednog memorijskog registra
(1.4. 1. 1.). Registar sadrzi 32 ceUje oznacene, na 1. 4. 1. 1, , 1, ••• ,
31. 8adrzaj 31 najvece tezine i registruje znak broja. broj
i 1--- ~------
ZW,+
1 LNA-
81.4.1.1.
re gistrovan u ovakvom re g1stru mora biti u intervalu
_231" 1; 231 -1 = 2.147.483.647
lz izlozene defincije za pisanje ceUh brojeva sledi da
- broj ne sadrzl decima1nu tacku, i
- izmedju cifara celog broja ne moze stajati medjuprostor.
(4.1.1)
Primeri
-386
65
2147483647
35.0
49
) Niz dekadnih , ! cemu se l0! i razlomljeni deo raz
dvajaju decimalnom tackom. Ispred ovakvog niza moze stajati znak + za
zitivne brojeve, stajati znak - za negativne brojeve. Ovako zapisan
mesovit ro imati jednu cifru, najvise 7 dekadnih .
) Oblik kao pod ) iza kojeg pise slovo . zatim navodi
dvocifreni dekadni . koji predstavlja eksponent 10. vred
nost ovako zapisane konstante jednaka proizvodu brojeva ispred slova
i stepena 10, sa celobrojnim eksponentom navedenim iza slova .
111-----1 11--- 5i ----2423-- 11'
SI.4.1.2.
Mesoviti se registruje u memoriji racunara u cu pokretnog
zareza (81.4.1.2.). Ovako regi8trovan inia brojnu vrednost
(4.1.2)
50 . ParelaDoy·ic!
gde eksponent re gistruje 1'>inarni broj.
- 64:1iiX B '63 (4. 1.3)
mantisa registruje u binarno kodiranom heksadekadnom sistemu.
tako da
(4.1.4)
Zamenom (4.1.3) i (4.1.4) u (4.1.2) lako dobija da brojni inter
val za broj u pokretnom zarezu
' I I .. (1_16-6 ).1663 (4.1.5)
Najmanja vrednost mantise raz1icita od nule jeste 16 -1 , tako da svi
brojevi mn! apsolutnoj vrednosti od 16-65 u racunaru registruju
kao nule. Prema tome, broj =1 , mora biti u intervalu
(4.1.6)
(4.1.7)
Mesoviti brojevi, razliciti od nule. zapisani u jednom od dozvoljenih
ob1ika () i1i () moraju brojnoj vrednosti pripadati dozvoljenom interva
lu (4.1.7). Brojevi ispod donje granice intervala registruju kao nule,
brojevi iznad gornje granice ruzku prekoracenje kapac·iteta registra.
Primeri
0.345
-22.0
) Nedozv01jeni obUci mel:iovitih brojeva
2.000.596
-15.I36
25.
1.876.00
4.2.1. Ime promen1jive
u matematici uobicajel'lo da promenljive oznacavaju jednim 10-
vom azbke .• U FORTRAN -jeziku niz simbola oznacavaju promenljivu. Ova
kav niz simbola zove ime promenljive. Niz simbola koji in i pro
menljive mora ispunjavati sledece us10ve:
- prvi simbo1 mora biti veUko s1ovo eng1eske azbuke i11 specijalni
znak ••
- ostaU i mogu biti: veUka s10va eng1eske azbuke. cifre dekad
nog brojnog sistema specijalni znaci •
- broj simb01a koji in ime promenljive moze biti od 1 do 6.
Primeri
Vrsta promenljive odredjuje prema tome kakva brojna vrednost
moze dodeliti promenljivoj. Svaka promenljiva mora biti definisana vrs
ti. znaci da promenljiva dobija i1i celobrojne vrednosti ili meAovite
brojne vrednosti (brojeve u pokretnom zarezu). Ako promenljiva uzima
mo celobrojne vrednosti zove celobrojna promenljiva. ako uzima vre
dnosti meAovitih brojeva zove realna promenljiva.
Vrsta promenljive. unutraAnjoj konvenciji FORTRAN-jezika. defi
nise . sledeci' nacin:
- ako ime promenljive pocinje slovom 1. , . L. ili . to
lobrojna promenljiva.
- ako ime promenljive ne pocinje jednim od navedenih slova. to re
alna promenljiva.
Svakoj promenljivoj u FORTRAN-programu izvrAenja programa
racunaru. dodeljuje jedan registar u kojem cuvati brojna vred
nost promenljive. Ako promenljiva celobrojna njena brojna vrednost
registrovati u odgovarajucem registru kao . Ako promenljiva
realna njena brojna vrednost biti registrovana kao u pokretnom za-
rezu.
irei
1
119
IAB
MASA
4.3. Aritmeticki izraz
Aritmeticki izraz cine jedan argument ill vise argumenata medju
razdvojenih znacima aritmetickih operacija. Argument aritmetickog iz
raza konstanta l1i promenljiva.
4.3.1. Aritmeticke operacije
Aritmeticke operacije su:
** stepenovanje.
ritmki izraz pise kao niz, koji sastoji od naizmenicnog
smenjivanja argumenata i aritmetickih ope~acija, pri cemu:
- niz pocinje argumentom znakom minus (-), koji oznacava pro
menu znaka prvom argumentu, i
- niz zavrsava argumentom.
Vrednost aritmetickog izraza izracunava sleva desno, pri cemu
vaz1 prioritet aritmetickih operacija, prikazan u tabe1i 4. . 1, gde 1
oznacen najvisi prioritet, pz operacija promene znaka argumentu.
l 4. . 1
1 ·*,pz sdesna levo
2 .,/ sleva desno
3 +,- sleva desno
Aritmeticka operacija izmedju dvaargumenta, koja su ceU brojevi,
daje kao rezultat broj. , dele dva la broja rezultat
celobrojni 'deo koUcnika.
realan, -Ugi celobrojni, su rea1na, jeste rea1an.
Za operaciju stepenovanja treba imati u vidu kk ona reaUzuje
raeunaru:
) Ako izlozilac stepena broj, tada operacija stepenovanja
svodi na mnozenje. Prema tome. stepen
racuna, kao
···
) Ako izlozi1ac stepena realan broj, tada vrednost stepena ra
cuna logaritmovanjem i antilogaritmovanjem. ako treba izracunati
to izracunava kao
ti.Ln( 2. 5.tn )
Iz ovoga sledi da u operaciji stepenovanja, kada izlozi1ac reai
an. ne moze pojaviti negativan broj kao osnova jer operacija logaritmovanja
ni definisana za nega.tivne brojeve.
) Niz operacija stepenovanja izvrAavaju s desna na levo. 'Izraz
****
racuna tako Ato najpre odredi ( ** ), zatim ** (**). OV
razUcito od (**) **.
d) Promena znaka ima isti prioritet kao 1 stepenovanje tako ako
napiAe izraz
- **
ovo ~e biti izracunato kao - ( ** ). ne (-)**.
loritmi ,i ro;rsti Je'Zn RRN 55
U tabeli 4.3.2. navedeni BU primeri aritmeti~kih izraza i njihovi ek
vivalenti u matemati~koj notaciji.
Tabela 4.3.2.
ARIEIeKI IZRAZI
/* ~C
- +.-5,6
4. 3~ 2. Upotreba zagrada
Ako utvrdjeni prioritet aritmet1ckiii operacija ne odgovara aritmetic
kom izrazu koji zeli zapisati, mogu koristiti' zagrade. Prem tome, za
grade tr~ba koristiti, kao i, u matematici, kada zeli promeniti p'rioritet
operacija. Deo aritmetickog izraza u okviru otvorene i zatvorene za
grade dobija najviiH prioritet. Ako t1 ve6i broj zagrada, unutra~nja za
grada najviAeg prioriteta. Deo aritmeti~kog izraza izme.dju zagrada, od
nosi pre'ma aritmetickom izrazu u celin1 kao jedan argument.
U tabeli 4.3.3. navedeni su primeri aritmeti~kih izraza zagrada
i njihovi ekvivalenti u matemati~koj notaciji.
4.3.3. Vrsta 'aritm.et1ckog izraza,
Izra~unata brojna vr10st, koja dobija kao rezultat aritmeti~kog
izraza vrsti jeste:
56 . Pal'ozanovl'c!
_ broj, ako su sv! argument1 aritmeti~kog izraza celobrojne kon
stante lli celobrojne promenljive, dn
_ realan. broj, ako barem jedan argument aritmeti~kog izraza re
ln konstanta 111 realna promenljiva.
Tabela 4 . . ARITETI~KI IZRAZI
U FORTRANU U ATEATICI
D
* (/ (+) ) .
+
«-A)**2+A*(D/B»**2 «-) 2+A.~ ) 2
A/(B+C)**2-4./D+3. - 4 + 3
( +<=)2 D
u tabeli 4. . 4. dati su primeri ar1tmeti~kih izrata oznakom vrste
aritmeti~kog izraza,
(/12)*/ broj
(/12)*/3. realan
gde
4.4.1 •. Aritmetil:ka naredba ',. Qpiti oblik aritmetil:ke naredbe :
- ime promenljive,
pretvara u vt brojnog podatka, saglasno vrsti'promenljive .!., i do
deljuje se promenljivoj .!..
U aritmetil:kom izrazu '" ne moze se pojaviti promehljiva kojoj nije
dodeljena brojna vrednost pre izvrsavanja naredbe (4.4.1).
Treba ul: razliku izmedju znaka jednakosti u aritmetil:koj nared
, i uobil:ajenog znal:enja u matematici. Znak jednakosti u aritmetil:koj
naredbi opisuje proces koji sastoji od:
- izral:unavanja vrednosti aritmetickog izraza, desnoj strani zna
ka jednakosti, konkretnim vrednostima promenljivih,
- dovodjenja 1zracunate brojne vrednosti promenljive u celobrojni 111
realni oblik, u saglasnosti vrstom promenljive levoj strani znaka jed
nakoBti, i
strani znaka jednakosti.
Sve navedene faze u izvrsavanju aritmeticke l1aredbe dogadjaju se
dna za drugom. Pl'ema tome, u fazi izral:unavanja vrednosti aritmetickog
izraza moze koristiti n vrednost promenljive, kojoj u zadnjoj
Caz! biti dodeLjena izracUl\ata n vrednost. Kako brojna vrednost
promenljive cuya u odl'edjenom memorijskom registru, to u slul:aju
znaci da sadrzaj Oyog re~Lstra moze korl§cen u fazi izracunavanja
ednosti arittHetickog iz :17.;\, zti unist uisI nove brojne vr.ednosti
koja do(!eljLlje I'l1liv. Tako Iz pisati
58 .~. PatezaDovlt
= + (4.4.2)
t zl sabrati brojne vrednosti promenljivih i i dobijeni rezultati
dodeliti kao brojnu vrednost promenljivoj .
Primeri
I=J+A*~2-4
BRZINA=PUT /VREE
VREDN=CENA*KOLIC
2) Aritmeticka naredba
A=I/3-4*B
za 1 = 10 i = 3.5 dode1juje promen1jivoj brojnu vrednost - 11. .
4.4.2. Naredba u1aza
racunatoj vrednosti aritmetickog izraza. Medjutim, neke promen1jive u 1-
goritmu dobijaju pocetne vrednosti prema konkretnom primeru koji re
sava. Ovakve veliCine zovu se ulazne velicine. Tako, algoritam 1.1.3.5.
sadrzi u1azne velicine l i 2, kojima ,moraju biti 1 brojne vred
nosti pocetku izvrsavanja a1goritma. U lstom algoritmu promenljiva .!. brojnu vrednost preko aritmeticke naredbe. Prema tome, postoja -
promenljivih koje dobijaju brojne vrednosti pocetku algoritma, "
gu~uje primenu algoritma za razlicite konkretne brojne vrednosti ovih pro
men1jivih. Algoritam u kojem postoje promen1jive, kojima brojna
vrednost moze dode1iti kao in koja ulazi u algoritam~ predstav1ja niz
izracunavanja koji pri svakom izvrsavanju algoritma dovodi do istog ',zu1-
tata. Jasno da ovakav a1goritam retko ima praktlcnog l1. Najcesce
potrebno sastaviti a1goritam koji ~e izracunavati rezu1tate za razlicite
polazne podatke. Po1azni podaci nalaze spo1jnim nosiocima informa-
Iritmi i proJ1'amski jeziJt FR.R.N IV 59
macija i program koji ih koristi dodeljuje njihove brojne vrednosti odgova
raju6im promenljivim. Naredba koja omogu6uje v dodeljivanje broj
nih vrednosti promenljivim zove naredba ulaza. Ova naredba piAe u
l
READ(i, j)Usta (4.4. ,r
READ .., sluzbena rec, koja oznacava da radi rtaredbi ulaza,
i - cel~brojna konstanta bez znaka ime celobrojne promen
ljive, kojoj mora biti dodeljena brojna vrednost pre izvrAa
vanje naredbe (4.4.3),
lista .., spisak imena promenljivih, medju r.zdvojenih zare
zima, kojima dodeljuju brojne vrednosti ulaza.
k spoljni nosilac informacija kartica, tada veUcina .! ukazuje
citac kartica kojeg 6 bit~ c1tani brojni podaci. Kod racunara IBM.
-360/44, kada vrii ui.az preko citaca kartica, treba uzeti da 1 = 5.
Naredba ulaza izvrina naredba i i slede6e znacenje: procitati ulazne
podatke ulaznog uredjaja .!' pod kontrolom opisne naredbe 1, i dode
Uti procitane brojne vrednosti promenljivim, navedenim u list1.
Prema tome. izvr naredba sadrzi informaciju tome gde na
laze ulazni podaci (i), i kojim promenljivim dodeljuju (Usta). Medjutim
kako izgledaju brojne vrednosti kartici to ni receno izvrAnom nared
ulaza. Brojni podatak ~artici nalazi u obliku konstante, kon
stante su sastavljene od niza simbola FORTRAN-jezika. Svaki simbol kon
stante busi u jednu kolonu kartice. Vise kolona, koje zauzima dn kon
stanta kartici, in polje. dn viie polja, koja dn kartice
unose u memoriju racuI).ara, in slog. Opisna naredba, kojom opisuje
izgled sloga, pise u obliku
gde
FORMAT(slog) (4.4.4).
.., obelezje naredbe,
FORMAT - sluzbena rec, koja ukazuje da radi naredJ:)i za opis
podataka, i
slog - niz opisa. medju razdvojenih zarezima. kojima opi
suju pojedina polja ulaznog sloga.
Ulazni slog sastavljen od viAe polja. svako l sadrzi jednu
konstantu. Za opis ulaznog sloga potrebno opisati svako l u okviru
sloga. Opis polja zavisi od konstante koja nalazi registrovana u polju.
Neka polja cine jedan ulazni slog. Tada opis sloga sastoji od opisa
pojedinih l. tj. naredba (4.4.4) dobija oblik
FORAT(opis 1 .OpiS2 .is ) (4.4.5)
Opisi pojedinih l navode u naredbi (4.4.5) sleva desno.ona
ko kako slede kartici (l. 4. 4.1).
Da u nizu naredbi koje ci
ne program omoguci1o jednoznacno u
kazivanje odredjenu naredbu pro
grama. uvodi obelezje naredbe. l zje naredbe jednocifren do petocifren neoznacen dekadni broj.
I POLJE1 POLJE2 PQLJE .3 ---
81.4.4.1
Obelezje naredbe leve strane naredbe. Svaka FORAT-naredba
imati obelezje (oznaceno u 4.4.4 i 4.4.5). koje obavezno na
vodi u naredbi ulaza (4.4. ). odnosno izlaza (4.5. l. IzvrAne naredbe FOR
TRAN-programa mogu potrebi imati obelezja. U jednoj programskoj
dinici moze dn obelezje koristiti. kao obelezje. vise od jedne FOR
TRAN-naredbe.
Ako polje sadrzi celobrojnu konstantu, opisuje sledeci nacin
Ik (4.4.6)
- simbol FORTRAN-jezika, koji oznacava da radi celom
(Integer),
k - neoznacen , 'koji ukazuje kolona polja kartici.
Ako k takav, da polje sadrzi veci 'j kolona nego sto to
zahteva brojnog podatka, tada odgovarajuci kolona levoj
lrit:mi i '1'011'.111.11 jeziJt .FRRN .IV 61
strani polja ostaje nebusen. Tako, ako u polju opisom 110 ~oje sadr!i
10 kolona, od 1. do 10.kolone, treba registrovati broj -386, to u kolonama
od 1. do 6. nista buseno, -386 busiti sleva nadesno od 7. do
10. kolone.
gde
gde
Ako polje kartici sadrzi broj, opisuje ·
Fk.d (4.4.7)
F - simbol FORTRAN-jezika, koji oznacava da radi mesovitom
broju (Fixed pOif:lt),
k - neoznacen , koji ukazuje kolona polja kartici,
d - decimalnih mesta brojnog podatka.
k biti tako odredjen da zadovoljava uslov
k ~.c + d + 2
(4.4.8)
2 - jedno mesto za znak broja, i jedno mesto za decimalnu tacku.
Decimalna tacka moze izostaviti kartici, i ! tome od
redjena opisom (4.4.7). Tako u slucaju relacija (4.4.8) ( oblik
k~.c+d+l (4.4.9)
Medjutim, ako postoji decimalna tacka kartici, nije u saglasnosti
opisom (4.4.7), tada prihvaceno mesto (lecimalne tacke kartici,
u opisu (4.4. 7). Tako, opis. F8. upisivati podatke u
riju racunara (lecimalnih mestn, za(!atih decimalnom tackom u
odgovarajucem polju k.ti.
Ako u polju registruju pozitivni bl'ojevi, moze izostaviti
mesto za znnk ,. ako izostavi i .t za d-inlnu tacku, to
r!:'Jacija (4.4.9) svodi
k ~ + (1 (4.4.10)
62 . rareza.oYic!
Za registrovanje vrlo i1i velikih brojeva oblik (4.4.7) nepo
godan, jer zahteva navodjenje svih cifara broja. U ovom slu~aju pogodno
koristiti obli:k
- simbol FORTRAN-jezika, koji ukazuje da radi meiiovitom
broju, zapisanom u eksponencijalnom obl1ku (Exponential form),
k - neozna~en broj koji uk:azuje broj kolona polja kartici,
d - broj decima1nih mesta brojnog podatka.
Konstanta zapisana u eksponencijalnom obliku registruje u polju
kartice, kao i ranije opisana mesovita konstanta s sto iza decimal
nih mesta broja navodi slovo , iza slova izlozilac broja 10. Tako
moze pisat1
sto odgovara decimalnom broju 17, 83.10-15. -Broj zapisan u eksponencijal
obliku zahteva polje
gde
(4.4.12)
6 - jedno mesto za znak broja, jedno mesto za decimalnu ta~ku, slovo
, jedno mesto za znak1eksponenta i dva mesta za dekadne c1fre
eksponenta.
Znak eksponenta moze izostaviti, ako eksponent pozitivan .
Slovo moze izostaviti, ali pri tome obavezno mora pisati znak eks
ponenta. Tako mogu regif!itrovati sledece konstante kartici:
-2. 14720
-2.147+20
+8. 14-02
8. 14-02
Mesoviti brojevl zapisani bez slova i eksponenta mogu blti uneti
opisa (4.4.11), ! se smatrati da eksponent nula.
.\JOritDd .1 pro,=r .... k1 ,Jezlk '·OR.TIUNIV . 63
Tako ' mo!e pisati
20.156
Svi navedeni primeri ~e u memoriji racunara biti registrovani u obliku
kretnog zareza, i predstavlja~e brC?jnu vrednost 20, 156.
4.4. 2. 3. Opis praznog polja
Vrlo cesto potrebno neke kolone kartice preskociti. Da
omogu~ilo uveden opis
gde
nx (4.4.13)
- simbol FORTRAN -jezika,koji oznacava .da r.adi opisu praznog
polja.
- neoznacen broj. koji ukazuje koliko kolona sadr!i polje koje
treba preskociti.
Za zadate vrednosti promenljivih .!. ~. i izra~unati vrednost
= (1 +32.4)(-2)
Velicina .! trocifren broj i nalazi kartici od 1. do;4. kolone.
Velicine ~ ~ i ~ sadrze 1 i 2 decimalna mesta i nalaze se na kartici
od 20. do 40. ko1one. pri cemu svaka zauzima 1 od 7 ko1ona. Izgled
kartice prikazan 1. 4. 4. 2 .
. L Q,
81.4.4.2
Program FORTRAN-jeziku ima slede6i izgled:
REAO(S,LOt I,,8, LO FQRMAT(I~,LSX,F7.2~F7.2,F7.21
Y·tA**1+32.4)*tB-2 •• t
u naredbi FORMAT opisana su polja kartici, sleva ciesno,
koja cine ulazni slog, uklwcujuc1 i polje koje od 5. do 19. ko
lone. Promenljive 1, , i dobijaju brojne vrednosti sleva, nadesno, ka
ko su zapisane u listi naredbe READ. Konstanta 2, u aritmetickoj naredbi
zapisana sa decimalnom tackom, sto znaci da u memoriji racunara
registrovana u obliku pokretnog zareza. N'a nacln, operacija mno
zenja 2. * izvodi se izmedju argumenata u pokretnom zarezu. Ako kon
stanta bila zapisana bez decimalne tacke, tj. aritmeticka naredba u obUku
tada konstanta 2 bila re gistrovana u memoriji racunara kao broj.
znacilo da pre 1zvodjenja operacije mnozenja 2*, konstanta
mora biti prevedena u oblik pokretnog zareza, potom izvr!!iena aritmetic
ka operacija mnozenja. 1 jedan i drugi oblik aritmeticke naredbe korek
t~n i dovodi do istog rezultata. ~[edjutim, ! oblik ( decitna1nom tac
kom) predstavlja l)oljl. zapl.s, takav aritmeticki izt'az bt'ze izra
cunat pri izvrsavanju pt'ograma n.
4.5. Izdavanje bt'ojne vrednosti promenljive
n vrednost promenljivc t'egl.stt'ovana u memot'l.ji racul\ara u
nn brojnom sistu, kao 1)1' ! kao u kt't[\ zarezu.
Binarn~ oblik nepogodan ·ZfJ. koriscenje od strane sit'eg bl'oj" lli
koji korisnici racunal'a. Zato potrebl\o prevesti iz bil\al'!\og u de
kadni brojni sistem, i ['ezu1tate i.zclati u dekadl\om sistu. Potpu
informacija izdavanju n vednosti promenljl.vih, izlazl\i organ,
sadrzi sledece:
- l I'lllivill cije n vredl\()sti zele i.zclati, kao i
- oblik izdaval\ja bl'ojnilt vI'cdl\ostl,
lgoritmi i progTams1d jezik FRRN lV 65
! deo informacije. imenima promen1jivih cije brojne vredno
sti ze1e izdati. zadaje izvr1!inom naredbom izlaza
gde
WRITE (i. j)li~ta (4.5.1)
WRITE - sluzbena . koja ukazuje da radi izdavanju brojnih
vrednosti promen1jivih;
kojem vrsi izdavanje rezultata. Za un IBM -360/44.
kada izlaz ! bu1!iacu kartica to 7. 1!itam
broj 6,
zima, cije se vrednosti izdaju.
Svakoj izvr1!inoj naredbi izlaza, kao sto naredba (4.5.1) pridruzu
jedna opisna FORMAT-naredba, koja sadrzi informacije obliku iz
davanja vrednosti promenljivih. izdavanja zadaje se istim 0-
pisima koji su sluzili za opis podataka kartici. sto sada opisuju
izgled 1!itampanog dokumenta bu1!iene kartice izlazu. Jedan 11i vise
dataka. koji se prenose izlazni organ cine izlazni slog. Duzinaizlaznog
s10ga zavisi od nosioca informacija kojem se vrsi upis informacija
izlaznom organu . Ako izlaz vrsi kartica, tada
maksimalna duzina izlaznog sloga 80 simbola, koji se mogu busiti u 80 ko-
10 jedne kartice. Ako se izlaz vrsi paralelnom stampacu, tada du
zina izlaznog sloga 120 tipografskih simbola ( moze biti i ! kod
nekih tipova stampaca), koji cine jedan red stampanom dokumentu.
gde
FORMAT(slog) (4.5.2)
za (4.5.1),
slog - niz oplsa koji definHiu izlazni slog.
lzdavanje izlaznog sloga paralelnom stampacu ~ahteva informacl
ju vertikalnom pomeranju papira stampacu. 'Qva 1nformacija sadr
zana u simbolu izlaznog ·sloga. ! simbol izlaznog sloga
ze se pojaviti jedan od simbola +, . ili 1 pri cemu imaju sledete znace -
nje:
- pomeranje papira za 2 nova reda, i
1 - pomeranje papira prvi red sledete strane.
Jedan od navedena 4 simbola mora se nalaziti pocetku izla.znog
sloga. Ako ovaj simbol nije obezbedjen prvimopisom u iz1aznom s1ogu,
treba ga navesti izmedju apostrofa jedan od opisa izlaznog s10ga.
Tako naredba
FORAT('b', 13, 2, 12. 5) (4.5.3)
formi"ra izlazni slog od 4 polja. pri cemu polje sadrzi jedan simbol
blanko, drugo polje sadrzi tri simbola za vrednost'celobrojne promenljive,
trete polje sadrzi d-va blanka i cetvrto polje 12 simbola za brojnu vrednost
realne ~romenljive. Prema tome, izlazni slog sadrzi 17 simbola. Kada
ovako form~ran izlazpi slog posalje paralelni stampa~, ! simbol
te upotrebljen kao komandni simbol za. vertikalno pomeranje papira
stampacu, i u ovom slucaju proizveste novi red stampanom dokumentu.
Osta1ih 16 simb()la izlaznog sloga bite stampani od pocetka reda. sleva
desno kako slede u izlaznom slogu.
4.5.1. Opis brojeva
lk (4.5.4)
1 - simbol koji ukazuje da se radi ce1im brojevima,
AlgoritmJ i prograll1s!d l IV 67
k - neozna~en broj. koji odredjuje broj mesta koji 6 zauzeti
brojna vrednoat izlaznom nosiocu inform~cija. broj ti
pografskih simbola Atampanom dokumentu. kada izlaz vr
! Atampa~u. odnosno. broj kolona kartice. kada izlaz vr-
8i b8a~ kartica.
Ako se izlaz vrsi Stampa~u i. pri tome brojna vrednost koja se Stam
prevazilazi duzinu k, odredjenu Stampanom dokumentu tada stampa k
zvezdica (*) u predvidjenom polju.
Najve6i broj koji moze biti registrovan u memorijskom registru
sadrzi 10 dekadnih cifara, ako se uzme u obzir i 1 mesto za znak:,.to ,,~
ci da format 111 uvek obezbedjuje korektno stampane vrednosti celobrojne
promenljive. Brojna vrednost Stampa desnoj strani predvidjenog
lja za stampanje, a"na levoj strani nevaze6e nule 8ta~paju kao medju
prostori (blanko). Znak broja Stampa se neposredno levo prve vaze6e
cifre pri ~em stampa znak (-) za negativne brojeve, znak + se ne
stampa. Prema tome, predvidjanjem ve6e duzine polja one koja
trebna za Stampanje brojne vrednosti moze obezbediti potreban broj -.
djuprostora (blanka) izmedju brojeva koji se Stampaju u jednom redu.
PrimeI"
Na kartici su zadata tri cela broja , i z. Broj busen od 10.
do 15., broj od 20. do 24 •• broj z od 52. do 54. kolone jedne kartice.
Uneti brojeve sa kartice i 8tampati paralelnom i!itampa~u. U ovom slu
potrebne su slede6e FORTRAN naredbe:
READ(5,40IIX,IY,IZ 40 FORMAT(9X,16,4X,I5,27X,131
WRITE(6,411IX,Iy,IZ 41 FORMAT(' ',16,18,161
u naredbi FORMAT sa obelezjem 40, opisi 9, 4 i 27 definisu
prazna polja kartici izmedju brojeva , i z. Naredba WRITE obezbe
djuje stampanje brojnih vrednosti promenljivih IX, IY i IZ redom sleva
nadesno opisima u FORMAT-naredbi sa obelezjem 41. Tako brojne
vrednosti promenljivih IX i IZ biti stampane opisu 16, promenljive
68 N. Parezanovi4!
opisu 18. Kako brojna vrednost promen1jive sadrzi 5 simbola kar
tici, opis 18 odredjuje polje od 8 simbola, to tri simbo1a, leve stra
ne polja biti neiskoriscena za prika:zivanje i sluzice za razmak iz
medju stampanom dokumentu. Slicno razmatranje vazi i za
men1jivu IZ. Stampani dokumenat imati sledeci izgled
ni znak (-),
Mesoviti registruje u memoriji u obliku poketnog zareza.
Ako se za izdavanje vrednosti realne promen1jive koristi opis
(4.5.5)
tada brojna vrednost izlazu biti u obliku:
gde Q} mesto za znakbroja, i to: simbol - za negativne i sim
bol za pozitivne . Oblik (4.5.5) izdaje vrednosti promenljivih u
vidu celobrojnog i razlomljenog dela. Celubrojni deo sadrzi maksimum k
_ d _ 1 tipografsko mesto, ako broj pozitivan, k - d - 2 tipografska
mesta, ako negativan. Razlomljeni deo sadrzi d dekadnih .
Prema tome, k
gde
(4.5.6)
Alpritmi i propam.1d Jez!t IV 69
2 - dn mesto za znak broja (znak negatlvnog broja izdaje se kao
simbol - , zi1ak pozlt1vnog s1mbol ), 1 jedno mesto za
dec1malnu ta~ku.
Ek.d (4.5.7)
gde
- mesto za znak broja, i to: simbol - za negativne brojeve, i -
bol za pozitivne brojeve,
- cifra dekadnog brojnog sistema,
d - broj decimalnih mesta,
k - ukupan broj s1mbola.
Ukupan broj simbola za izdavanje brojne vrednost1 opisom (4.5-. 7)
k.-d + 7 (4.5.8)
Ako u opisima (4.5.5) i (4.5.7) broj k definiAe an! broj s1mbola
od onog koji zahteva zapis brojne vrednost1. to 6 predvidjenoj duzini
k biti izdate zvezdice (*).
4.5. . Opis praznog polja
Razmak izmedju brojeva, sto vec videli, moze ostvariti
predvidjanjem ve6eg broja celih u opisima 1, F i1i . Medjutim, opis
nx (4.5.9)
definise ' izlazu prazno polje od medjuprostora, tako da ov1m opi
mogu definisati proizvoljni razmaci izmedju brojeva.
70 ~. ParC!zanovit
Primer
Na kartici nalaze brojevi 1, i u .sledetem rasporedu:
) od 1. do5. kolone broj 1 (opis 15),
) od 9. do 12. ko1one mesoviti broj (opis F7. 2),
) od 13. do 24. kolone mesoviti broj (opis 12. 5).
Sastaviti program koji te Uneti zadate brojeve kartice i staxpati:
READ(5,8) I,X,Y 8 FORMAT(I5,F7.2,E12.S)
WR I ( 6, 7 ) 1, , 7 FORMAT(' ·,I5,2X,F7~},2X,~12.5)
Za 1=18, =-24.5 i =0.3-20, stampani dokumenat i izgled
,8-24. 50. 30000-20, • -11'1' "1"-1'" • 15 2 F7.2 2 12.5
4.6. Proste linijske 'algoritam1!ke striture
4.6.1. Prekid rada program~ i fizicki kraj programa
Dosadasnje izlaganje FORTRAN-jezika omogutuje zapis prostih'linij
skih algoritamskih struktura. Medjutim, za korektan zapis algoritama na
FORTRAN':'jezikunedostaje mogutnost ukazivanja zadnji lgomski
korak u algoritmu. Ovo u FORTRAN-jeziku vrsi naredbom
STOP (4.6.1)
STOP - sluzbena , koja oznacava kraj rada programu,
- jednocifreni do petocifreni dekadni bez znaka.
U jednom programu moze se nalaziti vise naredbi STOP. Da se
omogucio uvid kojom od vise naredbi zavrseno izvrsavanje programa,
to uveden oblik (4.6.2), koji izdaje naredbu (4.6. 2) stampacu.
,\Igoritmi i pro,ram.ki jezi.k FORTRAN IV 71
Program zapisan FORTRAN-j~ziku. prevodi·se masinski jezik
izvrsavanja racunaru. prevodJenje vrsi rgrai za. prevodje
nje. u kOJi ~ao ulazni podaci u1aze naredbe FORTRAN-programa~ izlaz
ne velicine su naredbe u masinskom jeziku. Da prQgram za prevodjenje
dobio informaciju kada zavrseno prevodjenje i' zadnje naredbe FORTRA~
-programa. uvodi naredba
4.6.2. Primeri algoritama prostim liniki strukturama
Primer 1
jednoj kartici se nalaze brojne vrednosti promeDlj~vih l. X~. ;
4 i xs: u obliku F7. . Izracunati rezu1tat formuli
(4.6.4)
izlazu stampati zadate brojeve Xl. i = 1. 2 •••. 5. i rezultat .
l. 1. . 1. data graficka shema algoritma. FORTRAN-prog
ram ima sledeci izgled:
Y-((l+2)*3-4.S.l . WRITEC6,11) l,2,,~,S,
11 FORMATCI ',F1.,F9.3F9.,F9.,F9.,I9.7) STOP END
u naredbi FORMAT sa obelezjem 11 promenljiva l se stampa u
istom obliku u kojem se nalazi kartici. Ostale ulazne velicine stam
paju u obliku F9. , cime BU obezbedjena dva medjuprostora ~medju bro
jeva koji stampaju. 'Rezultat stampa u obli~ 19. 7. cime 0-
bezbedjen razmak od 5 medjuprostora u odnosu brojnu vrednost promen
ljive 5.
Primer 2
5astaviti program koji za zadatu vrednost - l' ,1, izracunava 10'1./·
formuli
'1./4 2 = 10 :::: 0,9994 + 0,5998 + , 170-3 . (4.6.5)
Neka vrednost argumenta zadata od 1. do 6. ko1one u obliku
F6.3. Na iz1azu stampati vrednost argumenta i vrednosti funkcije (4.6.5)
u obliku 12. 5. Na 1. 4.6.1. data blok-shema algoritma.
51.4.6.1
( 5,101
WRlE(6,151 , 15 FORMAT(' '.F6.,2,12.51
SJOP ENO
tmima sa prostim linijskim strukturama. U toku jednog izvrsavanja takvog
programa, svaka naredba sc izvrsi jedanput. Naredbe izvrsavaju odoz
go dole, kako slede u zapisanom nizu. Dolaskom naredbu STOP
prekida se dalji rad programu.
napomenuti da su navedeni primeri zapisanu u obliku progra
, NEDELJKO PAREZANOVIC
ALGORITMI 1
Knjiga 1 "\~... ""~';:'/. ~""" . . ~ "'0:
./.~ .' .... ~~ :'
'."
...
Savremena raeunska tehnika na1azi sve siru primenu u razliCitim oblastimaCoveCije de1atnosti. Ovo za sobom pov]aci potrebu upoznavanja sirokog kruga ]judi sa naCinom rada i mogucnostima racunara, kao i sa matematickim metodama za resavanje slozenih zadataka racunara. Za ovo neophodno postojanje odgovarajuce literature. 1 serija Matema tickog instituta
SAVREMENA RAtUNSKA TEHNIA 1 NJENA PRIMENA
m osnovni zadatak da potrebnom teorijskom i praktiCnom nivou upozna citaoca sa dostignuCima u ovoi oblasti.
Ova publikacija nije periodicna. Rukopise oprem1jene za stampu slati adresu: atematicki institut,
11000 Beograd, Knez Mihailova 35,
Redakcioni odbor - Comite de r';daction
Glavni urednik - Redacteur chef: N edeljko Parezanovii Sekretar - Secretaire: Bosko Jovanovic
C]ano\'i odbora - Membres du comite: Mirko Stojakovii, Slavisa r i Pavle Pejovii
Tehnicki urednik: Milan (;avcic
~AMPA: SAPARIJA RADIo-LEVIZI RD Batajnicki put 24, telefon 607-073
II INSTITUT - BEOGRAD
NE~LZO PAREZANOVIC
PREDGOVOR
Problem komunikacije izmedju ~oveka i ra~unara, spada u vrl0 aktu
elne probleme danaAnje ra~nske tehnike. problem naj~eA~e danas
reAava uvodjenjem programskih jezika, koji lako,p.rihvatljivi od strane
~oveka, kojih mogu~e izvrAiti formalno prevodjenje maAinski
zik. Kako prevodjenje formalizovano, 'to zna~i da moze biti izvrAeno
od strarie ra~unara. Prema tome, programski jezik mora zadovoljiti dva
osnovna uslova:
- da t prihvatljiviji za ~oveka,
- da tako definisan da za prevodjenje maAinski jezik moz~
na~i postupak ~ kojeg ovo prevodjenje moze izvrAavati ra~una~.
od 1954. godine, kada nastali prvi radovi u oblasti programskih
jezika, do danas definisano nekoliko stotina programskih jezika. Ne
ki od ovih jezika usavrAavani i danas koriste, mnogi od njih pripa
daju ttlrtvim jezicima. FORTRAN-jezik pripada prvoj grupi jezika.
programski jezik razvijen u okviru americke firme IBM. Prva varijanta 0-
vog jezika pojavi1a 1954. godine, i od tada ovaj jezik usavrAavan, ta
ko da dartas najviAe koristi cetvrta varijanta, tzv. FORTRAN IV. Danas
800/0 svih racunara u svetu koristi FORTRAN kao programski jezik.
U ovoj knjizi izlozeni algoritmi i programski jezik FORTRAN IV.
Karakteristike ovog izlaganja :
hovog prenoAenja ' racunar. Detaljno obradjene mogu~e algoritamske
strukture kao i graficki nacin njihovog prikazivanja.
4 N. ParezaDo"i.c!
koje sadrzi jezik.
- Izlozene su op§te vazete de1'inicije FORTRAN-jezika, tamo
gde to bilo potrebno navedene su speci1'i~nosti primene ra~unaru I
-360/44.
Autor zahvaljuje . Cav~itu tehni~koj opremi materijala, kao
i . Zivkovi6 jezi~koj redakturi teksta.
1.03.1972. god. Beograd u t r
1.
2.
3.
4.
SADRZAJ
PREDGOVOR ......................................... .
5
Sh"ana
3
13
1 ~ 1. A1goritam i algbritamski korak . . • . . . . . . . . . • . . • . . . . 13 1.2. Algoritamske strukture i njihovo g!k prikazivanje 17 1. 3. Linijske algoritamske strukture. . . . . . . . . . • . . . . . . . . . 2
1.3.1. Proste linijske strukture ............ ,.. .. .. 20 1. 3. 2. Razgranate linijske strukture • . . . . • . • . . . • . . . 21
1.4. CiklH!ne algoritamske strukture ....•.............. 24
1.4.1. Konstantne ik!k strukture........... .... 25 1.4.2. Promenljive cikli~ke strukture ••....•...... 28
1.5. Slozene algoritamske strukture ...... '.' . . . . . . • . . . . • 31
1. 6. Algoritmi i programiranje , . . . . . . . • . . . . . . • . . . . . . . . . 34
1.7. UopAte programskim jezicima .•...........•...•• 35
PRETHODNE NAPOMENE FORTRAN JEZIKU ••.....•.. 39
2. 1. i!l pojmovi • . . . • . . . . . • . . • . . . . . . . . . . . . . . . . . . . . . . 39
2. 2. Na~in pisanja programa....................... .... 41
SIMBOLI FORTRAN JEZIA •..••...................•..
43
47
4.1.1. Celi brojevi . . . . . . . . • . . . . . . . . . . . . . . . . . . . • . . 48
4.2. Definicija realne prQmenljive. . .•... . .. ... .• ... ..•. 51
4.2.1. Ime promenljiVe .... '" . ...•. .. . ...• .....•. 51
6 . 'arezaaovl ~
4.3.2. Upotreba za,grada ................ '.' . ..... . .. 55
4.4. Dodeljivanje brojne vrednosti promenljivoj. . . . . . . . . . . . 57
4.4.1. itmtik naredba ......................... 57
4.4.~.1. Opis celih brojeva ....... ; .......... 60
4.4.2.2. Opls IXleAovitih brojeva ............. 61
4.4.2. . Opis praznog polja . ... .... . . . .•.. .. . 63
4.5. lzdavanje n vrednosti promenljive ............... 64
4.5.1. Qpis celih brojeva .. . . . ..... ... . .... . .. . .... . 66
4.5.2. Opis meAovitih brojeva .. " . . . . • . . . . . . . . . . . . . . 68
4.5.3. Opis praznog l". . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.6. Proste linijske algoritamske strukture ............... 70
4.6.1. Prekid rada programu i fiziki kraj programa 70
4.6.2. Primeri algoritama sa prostim linijskim struktu- . .... ...... ...... .... .............. ..... 71
4.7. Ra.zgranate linijske algoritamske strukture ............. 73
4. 7. 1. U slovni prelazak vrednosti ritmtikg izraza 73
4. 7 . 2. Bezuslovni prelazak .................. '. . . . . . . . 74
4.7. . ! razgranatih linijskih struktu~a •..... ; .. 74
4.8. Dalje mogu~nosti naredbe FORMAT •............... ; ... 78
4.8.1. Ponavljanje jednog l ....... ;.............. 78
4.8.2. Ponavljanje vi§e opisa ......................•. 78
4.8.3 .. Prelazak novi slog ......................•. ' . 79
4.8.4. Veza izmedju opisa i liste ...... . . . . . . . . . . . . . . . 81
4.8.5. Tekst u FORMAT-naredbi. : ... ;' ............. , . 83
4.9. Elernentarne funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.9.2. Logaritarnska funkcija ........................ 88
pritmi I pro'1'8m.t1 je.zit JlN IV 7
Strana
4.9. 5. Trigonometrijske funkcije '" . . . . . . . . . • . . . . 9
4.9.6. Inverzne trigonometrijske funkcije •....•.. ~ 91
4.9.7. i:n funkcije .................•... 92
4. 11. Dalje mogu~nosti haredbe ulaza . . . . . • . . . • . . . . . . . . . 101
4.11.1. Gk ulazu ...•..................... 101
4. 11. 2. ulaznih podataka ................... 102
4.12. Deklarisanje vrste promenljive .. : .•........•.. '" 102
4.12.1. Eksplicitna deklaracija ............•..•.. 103
4.12.2. Implicitna deklaracija ................... 103
4.13. Tekstuelna nn u programu ............. '" 105
4. 1 . 1. Privremeni prekid rada i poruke operaturu 105
4. 1 . 2. Komental'i u programu • .. .. .. . .. . • . . .. . .. 106
4.14. Primeri .................•...............•..... 106
4.14. 2. Statisti~ki primer ....................... 108
4.14. 3. Izra~unavanje korena transcendentne jedna- cine ......................•.•.......... 110
5. PROMENLJIVE SA INDESIA. - NIZOVI ...........•.•. 113
5.1. Definicija niza ................. ' .............. " .;. 113
5.1.2. Vrsta niza •.... .... .....•.. ...•.. ... .. . . .. 115
5.2.1. Jednodimenzionalni nizovi u listi ulazno-izlaz- nih naredbi ., ..•..•.....•..•... '............ 117
5.2.2. Elementi niza u aritmeti~koj naredbi •....... 119
5. 3. Cikli~ne algoritamske strukture ............. '" • . .. 121
5.3.1. Naredba za opis programskog ciklusa • . . . . . . . 121
5.3.2. Naredba.bez dejstva ....................... 124
5.4. Dvodimenzionalni nizovi .......................... 129
5.4.1. Dvodimenziona1ni nizovi u listi ulazno-izlaz- nih naredbi.. . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 130
5.4.2. Registrovanje dvcidimenzionalnog niza u moriji racunara i ·veza jednodimenzionalnim nizom ......................... , .. , . . . . . 133
5.5. ViAedimenzionalni nizovi ....................... 140
5. 6, Redosled elemenata dva niza ili viAe nizova u listi ulazDo-izlznih naredbi ............. , ... '.' . . . . . . 143
POTPROGRAMl ........ ' ............................. . 1:47
6.3. Funkcijski potprogram ............... , ........ ,. 152
6.4. ! potprogram ........... .... ......... 159
6.4.1. Promenljivi izlaz iz potprograma ... ,.. . . • . 164
6.5. Nacini prenosenja argumenata iz programa u pot- progriime .. ,.................................. 166
6 •. 6. Promenljivi ulazi u potprograme .. , ., ., ........ , . 167
6.7. ImeQa potprograma koji javljaju kao argumenti drugih potprograma .................. , ..... , . . . . 172
6. 8. Nizovi. kao ·argumenti potprograma ..... , . , . . . . . . . 1 ~6
ALGORITMI SA LOGl~lM KONSTANTAA 1 PROMEN- LJIVIM., .. , .. ,.................................... 185
7.1. Operacije poredjenja •.... , ............. ,....... 185
7.2. Logicke operacije ....... , ............... , ..... , 188
7.2. 3, Logicki izraz ..... ", .... , .. " .. ,....... 192
7 , 2,4. Dodeljivanje vrednosti logickim promenljivim 192
7.2.4. 1. Dodeljivanje vrednosti ulaza . . . . 192
7.2.4,2. Logicka naredba . , ... ~ .. , .. ,. , . " 193
Strana
7.2.6. Naredba prelaska vrednosti logi~kog izra- za •....................•............ '" .... 196
ALGORITMI SA REALNIM KONSTANTAMA 1 PROENLJI- VIM DVOSTRUE TACNCSTI •..•.................. " ...
8. 199
8. 3. Dodeljivanje n vrednosti realnim promenljivim dvostruke tacnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . 202
8.3. 1. Aritmeticka naredba . . . . . . . . . . . . . . . . . . . • . . . 202
8.3.2. Naredbaulaza ............................ 202
9. 1. Definicija kompleksne konstant . • . . . . . . . . . . • . . . . . • . 212
9.2. Definicija kompleksne promenljive ................ , 212
9.3. Dodeljivanje vrednosti kompleksnim promenlji'vim .. . 214
9.3.1. Aritmeticka naredba . . . . . . . . . . . . . . . . . . . . . . . 214
9.3.2. Naredba ulaza .......... " .. . .. . ... . ... . . . . 215
9.5. Kompleksne veli~ine dvostruke ta~nosti ............ , 218
9.6. Izracunavanje kompleksnih elementarnih funkcija .• , . 220
10. RACIONALNO KORIstENJE UNUTRASNJE MEMORIJE RA- CUNARA .... ,.".".,.,., .. ,." .. " .. ",., .... ",:" 225
10.1, Promenljiva duzina pOdataka " ., ... " ,' ....... ,., 225
10,2, Visestruko koris~enje memorijskog prostora u okviru jedne programske jedinice , .... ,.,.,.".,.,...... 229
10,2.1. Zajednicka polja za promenljive jednakih du- zina •. ,.,.,., .. ,.",.,., .. ,., ..... , .. " 230
1 . 2. 2. Zajednicka polja za promenlj ive razI!itih duzina ... , ......... ,."." ... , .. ,., .. ,', 231
10.2.3. Zajednicka zona za nizove. , .. , '" .' .. , ,. . 234
10
11.
12.
13.
10.3. ViAestruko korii!i6enje memorijskog prostora od stra .. vii!ie programskih jedinica . . . • . .. ............. 237
10.3.1. Neimenovana zajedni~ka zona u memorij~ .. 237
1 . 3. 2. lna zajedni~ka zona u memoriji .....
DODELJIV ANJE (:N VREDNOSTI PROMENLJIVIM
11.1. Dodeljivanje po~etnih vrednosti promenljivim nared-
239
243
11. 3. Programska jedinica za dodeljivanje etnih vred- nosti zdikim zonama u memoriji .....•....... 248
OFSTE MOGUCNOSTl UNOSENJA IIZDAVANJA PODATAA ......•.•....•••....•.•..••••••••••...•••. 251
\
12.1.1. Opiti opis ttak ............ ..... 251
12.1.2. Koeficijent razmere .....••...•...•....•. 253
12.1.4. . heksadekadnih brojeva . . • • • • • • . • . . • 255
12.1.5. Opis alfabetskih podataka ...••...•.•.•.•• 255
12.2. Promene FORAT-naredbe za vreme izvrAavanja programa ...........•........•...•..•.•.•....•. 257
12.2.1. Postavljanje sadrzaja FORAT-naredbe ulaza ••••••..........•...•.•.•....•• 257
12.2.2. Postavljanje sadrzaja FORAT-naredbe kao vrednosti niza ••.•.•.•..•••.•....•.. 258
1·2. . UnoAenje i izdavanje podataka njihovom. imenu .• 259
KORffiCENJE SPOLJNIH MEMORIJA 263
13.1. Magnetni disk.................................. 263
13.1.1. Definisanje podataka .•.................. 263
13.1.3. podataka. . . .. . ... . . .. . . .•. ... . .• 265
13.1.3.2. Izdavanje podataka sa diska . . .. 265
13.2. Magnetna traka ... .. . ' ....... 167
lpritai i ror8t1 jezi1: 'R IV 11
• Strana
13.2. 1.2. Izdavanje podataka magnetne trake ....................... 268
13. 2. 2. Oznaka kraja grupe podataka . . . . . . . . . . . . 269
13.2.3. Premotavanje.magnetne trake. .......... 269
13.2.3.2. Vra6anjetrake po~etak grupe 269
L i t r t u r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
1. ALGORITJ 1 NDV 8TRUKTURE
1. 1. Algoritam i algoritamski korak
od algoritmom, u najopMijem smislu ove re~H, podrazumevamo
skup svih pravila formulisanih u cilju rei!iavanja odredjene vrste problema.
Jasno da svi mi u svakodnevnom !ivotu sre~emo velikim bl"ojem
algoritama. Neke ovih algoritama nesvesno izvri!iavamo, mnoge
njih pamtimo i prema potrebi koristimo. Posebno matematika obiluje"ve1i
kim brojem algoritama. 8vaka definicija funkcije predstavlja u stvari algo
ritam za njeno izra~unavanje, za zadate vrednosti argumenata. k ovako
uopst"enu definiciju algoritama primenimo matemati~ke probleme, mogli
81.1.1.1
opis ra~nskog procesa, koji primenjen izves
ne brojne podatke dovodi do kona~nih rezultata.
Neka ~kup polaznih podataka l' 2' ••• , ",
i neka zadat algoritam koji ovaj skup podata
ka prevodi u rezultat . ! da 1' i =
= 1'2' ••• , predstavlja ulazne pOdatke za algori
tam broj izlaznu vrednost algoritma. Ne u
laze~i u to kakvim su aritmeti~kim operacijama
vezani ni podaci 1' i = 1, 2, ... , medju
u ci1ju dobijanja broja , ! grafi~ki prikazati algoritam kao blok
ulazima x(.,i=1, 2, ... ,nii;lazom (l. 1.1. 1) .Izra~unavanje veli~ine !
sastojati iz niza aritmeti~kih operacija,tako da u toku primene algoritma
dolazi do medjurezultata l' 2' .•. 'Ym.Drugim re~ima,algoritam u sui!itini
14 . Pareza.oylt:!
mole rzt,tiniz algoritama A~. i=1, 2, .... , ~iji su izlaziYJ;, 1=1, 2, ... , . U-
1azi u a1goritam , mogu biti:proizvo1jan broj e1emenata skupa 1 Xi 1, i =
=1,2, ... ,n, kaoiskupa {)\I, 1=1,2, .•• ,k, gdejek<p{s1. 1.1.2). Iz-
1az 1z a1goritma .. .. ~ uzeti da i rezu1tat a1goritma , tj.
--- ,-----r- r------- r-f--------- I I
!
---
81. 1.1.2
= • Ako su a1goritmi Ai , i = 1,2, ••• , m dov01jno prosti u smis1u pot
punog razumevanja algoritma kale da su Ai i = 1,2, •.• , m koraci
a1goritma . Prema tome, svaki aigoritamski korak ima svoje ulaze i svoj
iz1az, s tim su u1azi u prvi a1goritam.ski korak 1ent1 iz skupa
1 = 1,2, ••• ,, dok u sve druge korake mogu u1azu pojav1t1. i 1z1a
zi iz prethodnih koraka. Prema ovome, izg1eda da svaki s1ede~i ko
rak u a1goritmu sve s10leniji jer pojav1juje sve ve~i broj u1aza. Medju
tim, u prakti~ ril koraci biraju tako da svaki od njih bude
dov01jno prost, malim'brojem ulaza, izvrAav~jem pojedinih koraka
sve viAe priblilavamo kona~om rezultatu a1goritma, tako da i broj
ulaza u a1goritamske korake naj~eA~e smanjuje. Takodje treba imati u vi
du da rezultat a1goritma i pojedinih a1goritamskih koraka mol~
javiti ve~i broj iz1aznih veli~ina, dok mi radi prostijegobjalnjenja u
zeli da ! jedna izlazna veli~ za svaki a1goritamski korak.
i a1guritam u ce1ini.
laoritlDi i prop' .... ld jezik FORRN IV 15
Radi ilutracije ovoga smo do sada rekli a1goritmima, pros1edi
a1goritam izraeuDavanja funkcije
A1goritamski korak neka bude jedna aritmetit!ka operacija (+, - x).Onda,
izrat!unavanje vrednoti funkcije (1.1'.1), za date vrednoti argumenata I '
~
81. 1.1.3
i = 1,2, , 4, 5, o~e rait!laniti na slede~e operacije:
1 = 1 + 2
(1.1.2)
= " •• 1
Niz operacija (1.1. 2) mo~e se grafit!ki"prikazati, .0 ut!injeno na slici
1.1.3.
U ovom primeru algoritamski korak bio jedna od aritmetil!kih
racija, i za svakog ko poznaje aritmetit!ke operacije sabira"nja, oduzimanja
16
i m.nozenja. a1goritam 1. 1.1. 3~ za izra~navanje funkcije . dov01j
jasno napisan. IzvrAavanjem pojedinih a1~oritamskih koraka. u s1u
caju aritmetickih operacija. 1eva desno (1. 1.1.3) d01azimo do vred
nosti funkcije . Medjutim. ako ne bi poznava1i kako izvode pojedine
ritmeticke operacije a1goritam na 1. 1.1.3 ne bi ja~no zapisan. jer ga
prakticno ne bi mog1i koristiti. Tako. .za trenutak zamis1imo da ne zna
operaciju sabiranja viAecifrenih brojeva, 6 sabiranje jednocifre
.ih dekadnih brojeva, onda potrebno opisati a1goritam sabiranja viAecif
.nih dekadnih brojeva. Zaistami znamo napamet· zbir dva jednocifrena de
kadna , medjutim zbir dva viAecifrena ne znamo napamet. a1i
znamo a1goritam kojem d01azf do rezultata. koriste6i cinjenicu da
znamo zbir dva jednocifrena . Neka treba sabrati trocifreni dekadni
ciframa ~ 1 i trocifreni ciframa Y~ 2 1 ' Rezu1-
tat sabiranja moze biti cetvorocifreni dekadni z ciframa Z4 zi Z2 Zl'
Imaju6i vidu pretpostavku da poznajemo rezu1tate sabiranja dva jednocif
rena , to sabiranje brojeva + izvrAili s1ede6i nacin:
Z~ Z2. Z1
z;
gde Pi i ; , i = 1,2,3 1 i1i u
zavisnosti od toga da li zbir odgovara
ju6ih cifara dvocifren ili jednocifren .
Na ! 1. 1.4 prikazan graficki algo-
17
ritam za sabiranje trocifrenih dekadnih brojeva. Na s1:ici pretpostav1je-
da algoritam izvr§ava OOozgo nadole, dok l. 1.1. pretpo
stavili da algoritamski koraci s1ede jedan za drugim sleva nadesno. Vai-
uo~iti ~injenicu da uvek mor.amo znati koji prvi korak, kao i koji
slede6i korak ! izvrsavanju a1goritma.· Ako uvedemo vremena u
izvr§avanja a1goritma, nd ~ vremenski trenutak za izvrAa
vanje prvog a1goritamskog koraka oznal:iti 8 t 1 za ostale a1goritamske
korake redom t a ' t a ' ••• , t l1i (81. 1. 1.2), gde , t 1 < t2 , t a < t ' •.•• t.n..l<t.n. Na sli~an ~in mogu uvesti diskretna vremen~ 1:1 , t z ' •••. , za a1gorit
81. 1.1. i l. 1.1.4. UopAte uzevAi t 1 , t 2 ,.. tm mogu pretstav
ljati vremenske intervale, koji slede jedan za drugim na vremenskoj ska1i.
Na osnovu svega re~eno a1goritmima moiemo navesti slede6e
in algoritama:
diskretnim ns intervalima. Svakom l1lgoritamskom kora
ku pripada OOredjen ns interval . vremenskoj skali.
2) DeterminisQost a1goritma. Sl izlaznih velil:ina izral:unatih u
kom algorita;mskom koraku, jednoznacnp OOredjen ,.1
ulaznih veli~ina u doticnom algoritamskom kl.
) Elementarnost algoritamskog koraka. Zakon dobijanja iz1aznih
licina, ulaznih ve1icina algoritamskog koraka biti
prost i n.
4) Usmerenost algoritma. Za mogu6i skup ulaznih 'velicina u
algoritmu biti definisano Ata treba smatrati rezultatom, 00-
izlaznom velicinom, ;ilgoritma.
5) t algoritma. Sl ulaznih v~i mo~ebiti izabran pod
sl, skupa neograniceno velikim elemenata.
1.2. Algoritamske strukture i graficko prikazivanje
U primerima navecienim u prethodnom ll, predpostavljali
da , pri izvrsavanju algoritrna, algoritarnski koraci izvrAavaju jedan za
drugim leva desno (sl. 1. 1.2 i l. 1. 1. ), odnosno OOozgo do1e
(1. 1.1.4). ulaze u algoritamske korake navOOili podatke nad ko-
18 N. Parezanovic!
jima vr§i obrada u doti~om gitmskm koraku, i,zlazna veli~ina
l rezu1tat a1goritamskog koraka. Ovakvo prikazivanje algoritama nekada
moze blti pogodno, ako se 'zeli ist'a~i tok podataka pri izvr§avanju algoritam
skog . Medjutim, ! ~eo uvesti uprav1janja izvr§avanjem
algoritma i u da1jim izlaganjimagrafi~ki prikazivati algoritme u cilju preg
lednog uvida u redosled algoritamskih koraka pri izvr§avanju ,algoritma. Pod
upravljanjem izvr§avanjem algoritma podrazumeva~emo jednoznacno defi
nisanje pocetnog koraka, kao i svakog slede6eg koraka, nakon izvr§enog
jednog algoritamskog koraka. U primerima s1. 1.1.2 i s1. 1.1.3 uprav
ljanje sastojalo u definiciji prvog sa leva a1goritamskog koraka kaopo
cetnog i susednog desnog slede6eg koraka, dok u primeru 1. 1. 1. 4
! odozgo pocetni, prvi ispod slede6i a1goritamski korak. Medju
tim, u slede6im primerima dolazi6emo do znatno slozenijih algoritamskih
struktura i opisani nacin prikazivanja algoritamskih struktura
godan. U 6 6 u pravougaoniku, koji oznacava algoritamski korak
navoditi kompletnu obradu u d5m koraku, dok ranije navodili
relaciju kojom vezani ulazni podaci, rezultat izlaz
velicina, od sada 6 i rezultat biti pisan unutar algoritamskog koraka.
Ulaz u al~oritamski korak ukaziva6e iz koga algoritamskog koraka pre
! upravljanje doticni algoritamski korak izlaz iz algoritamskog ko
raka ukaziva6e slede6i algoritamski korak.
Da vidimo sada kakve mogu6e obrade, unutar jednog algoritamskog
koraka. svega moze se izraeunavati vrednost funkcije zada
tih vrednosti argumenata, ovo relacija oblika
= f{x 1 , 2'··. ,xU> (1.2.1)
gde su argumenti 1 ' 2, ••• medjusobom povezani aritmetickim
cijama. Nezavisno promenljive ., i = 1,2, ...• i zavisno promenljivu
zva6emo zajednickim imenom promenljive, izuzetno ako potrebno nagla
si6emo da li se ! nezavisnoj zavisnoj promenljivoj. Relacija (1.2.1)
matematici i treba obja§njavati, napomenimo
da iza oznake 1, i = 1,2, ... , podrazumevamo konkretne
vrednosti kojih dolazimo vrednosti . Znak jednakosti
Aloritmi i programski Jezik FORTRAN IV· 19
(=) konstatuje l:injenicu da brojna vrednost levoj strani jednaka broj
vrednosti desnoj strani (i obratno). Medjutim, kod praktil:nog izvr
~avanja algoritama, n kada radi njihovom izvrAavanju
~ cifarskih ral:unara, potrebno osim konstatacije izraziti tok pOdataka
u ral!unaru. U ovom cilju koristi~emo simbol =;> . Ovaj simbol ~e ozna
l!avati da brojna vrednost levoj strani simbt>la uzima, kao n
vrednost promenljive desnoj strani ovog simbola. Tako relacija (1.2.1)
moze napisati u obliku
(1.2.2)
Treba dobro uol:iti razliku izmedju relacije (1.2.1) i (1.2.2). Relacija'
(1.2.2·) izrazava proces izral!unavanja brojne vrednosti levoj strani
simbola, zatim pripisivanje izral:unate brojne vrednosti promenljivoj .
Ovo nam daje mogu~nost da piAemo
(1.2.3)
Ato znal!i da osnovu brojnih vrednosti , i = 1,2, ... , i prethodne
vrednosti izral!unava nova brojna vrednost za promenljivu .
Za grafil!ko prikazivanje algoritama, koristi~emo graficke simbole
koji ~e svojim oblikom ukazivati prirodu pojedinih algoritamskih kora
ka. Nize opisani pojedini graficki simboli:
~ Grafil!ki simbol za algoritamski korak kojem definiAu ulazne velil!ine algoritma.
~ Graficki simbol za algoritamski korak kojem vrsi obrada.
? Graficki simbol za algoritamski korak u kojem definiAu izlaz- n velicine algoritma.
20 N. Par.laDoyi~
Grafi~ki s1mbo1i za a1goritamsk.
~ korake u kojima donose odlu- ke daljem toku a1goritma.
ne
~ ne
( i
PrenoAenje upravljanja ta~ku 111.
1. . Linijske a1goritamske strukture
k-aktistika linijskih algoritamskih struktura da pri jed
nom izvrAavanju a1goritma dolazi samo do jednog izvrAavanja svakog algo
ritamskog·koraka. Prema tome. upravljanje u iiki algoritmima . 0-
karakterisano time se it jednog algoritamskog koraka. upravljanje
ife preneti algoritamski korak koji nije ni jedanput izvrAen.
1. . 1. Proste linijske strukture
Pod prostim linijskim strukturama podrazumeva~emo algoritme ~iji
se koraci sastoje isk1ju~ivo od obrade nad ulaznim podacima, koja kao re
zultat daje broJni podatak bez dejstva prenoseJ1je upravljanja slede~i
algoritamski korak. Prema tome, u ovakvim strukturama redosled algori
tamskih koraka unapred definisan i ne moife biti promenjen u toku rada
lpritmi i programsld jez1Jt I'ORkN 21
a1goritma. Ov algoritamske struktureredovno sre~u pri izra~una
vanju aritmeti~kih izraza. Tako ranije navedeni primer izra~avanja vred
SI. 1.3.1
koja d~ta na 1. 1.3.1.
Veza izmedju dva a1goritamska koraka obrade,
predstavlja bezuslovno prenoAenje uprav1janja
jednog drugi, a1i ovo ni potrebno posebno oz
nal!avati.
lazak jednog a1goritamskog koraka na s1ede~i ne
moze zavisiti od rezu1tata obrade u kojem alg
ritamskom koraku. Medjutim, u rl~!m ra(!unu
vrl0 ~esto tok ra~unanja zavisi od medjurezu1tata
dobijenih u toku ra~llnanja, ili od konkretnih vred
nosti polaznih podataka. U ovakvim algoritmima mora posiojati algoritam-
korak u kojem donosi odluka toku r1nskg procesa odnosno pre
noAenju upravljanja jedan 11! drugi algoritamski kor~k. Najelementarni
razgranata linijska struktura dobija komponovanjem tri proste 1inijske
strukture 1 , 2 i (l. 1. . 2). Struktura 1 neka sastoji od izr.a~u
slede~ih medjurezultata
2 = f2 (X1 ' Xz ····, )
= fm (X1 • 2'···.
(1.3.2)
Funkcija Z ra(!una jednoj od prostih linijskih struktura 2 11i • u
zavisnosti od istinitos.ti relacije €> . gde simbol @ ozna(!ava ma koju re-
22 ~. ParezaDovi~
laciju poredjenja i , brojevi i pripadaju
{
Ip 1 (t 1 ,t ' ... , tJ za €) nije ispunjena
z- Ip 2 (t1 ,t2 ' ••• , t k) za €) ispunjena
(1.3.3)
gde argumenti funkcije 911 i '2 mogu biti iz l polazni1;l veli~ina. jx t },
i = 1,2, ... , ili iz skupa. medjurezultata fYt} i = 1,2, ... , . Rela.cije €)
izmedju i mogu biti:
1) = , suprotno f
2) < , suprotno ~
3) >, sUPiotno ,
S1. 1.3.2
Algorltmi i pro,ramsld jezlJt FR.R.N ~ 23
Ispitivanje istinitosti nazna~ene relacije izmedju brojeva i . grafi~ki
ozna~eno rombom. u ~ijoj unutraAnjosti navodi relacija koja ispituje.
Algoritamski korak u kojem !ile vrAi ispitivanje istinitosti relacije izmedju
brojeva ima jedan ulaz i dva izlaza. Jedan izlaz prenosi upravljanje u slu
~aj da navedena relacija ni zadovoljena (ozna~im() ga NE). drugi iz
laz prenosi upravljanje u slu~aju da relacija zadovoljena (ozna~avamo ga
DA).
IzvrAavanje algoritama razgranatom strukturom uvek sastoji
od prostih linijskih struktura. Tako l. (1.3.2) nikada izvrAavaju
strukture 2 i za konkretne vrednosti polaznih podataka, ve6 6
izvri:liti jedna od ovih struktura. slucaju da naznacena relacija nije ispu
na izvri!li6e struktura l , zatim struktura 2 (l. 1.3.3), odnosno
ako naznacena relacija ispunjena, izvri!li6e struktura 1 zatim (l. 1. 3.4). Povezivanjem elementarnih razgranatih struktura mogu do
biti vrl0 slozene razgranate algoritamske strukture.
. Parez.Doyi~
Izral::unati vrednost formul1
Na l. 1. 3. 5 prikazan grafil::ki a1goritam za izral::unavanje vrednosti .
U navedenom primeru dovoljno ispitati da 1i l< , i l = Xz. k ni
jedan ovih uslova nije ispunjen znal::i da l > , •
DA
Qrakteristika cildll::kih algoritamskih struktura jeste viAestr1,1-
ko izvrAavanje jednog algoritamskog koraka 111 viAe njih za razliku linij
B~ struktura kOO kojih svaki korak j-edanput izvrAava. Razlikova-
A1.80ntmi i pl'Ogramski jezlJt FRRN .IV 25
6- dva tipa ik!kih struktura:
- konstantne cikli~ke strukture i
- promenljive cikli~ke strukture.
stijem slu~aju sastoji se od dve
proste linijske strukture (l i p~.
izmedju kojih se na1azi us10v za iz-
1azak iz ciklusa, odnosno za nasta
v1janje ciklusa (sl. 1.4.1). Iovde.
kao i kod razgranatih 1inijskih struk
tura, us10v se izrazava odnos'om
dva €> . Re1acija izmedju
brojeva i moz~ biti ispunjena i
li ne; u jednom slu~aju uprav1janje
se predaje algoritamskom koraku van ciklusa, u drugom al~aj a1gori
tamskom koraku u ciklusu. Uobi~ajeno da cikli~ke algoritamske stru
kture zovu !! i petlje, us10v za iz1azak iz ciklusa zove !! i iz1azni
kriterijum. Cikli~ka struktura moze imati i vi!ie iz1aza, u zavisnosti od
re1acija koje se ispituju u iz1aznom kriterijumu.
1.4.1. K.onstantne ciklicke strukture
Ako u toku izvr!iavanja a1goritma ne do1azi do promena zakona
de u a1goritamskim koracima koji cine cikli~ku strukturu, kazemo da to
konstantna ciklicka struktura. Iz1azni kriterijum kod konstantnih ciklickih
struktura naj~e!!~e broj izvr!!enih cik1usa il! pak dostignuta ta~nost pri
ra~unanju iterativnom postupku. Nave§~emo primer jednog i drugog iz-
1aznog kriterijuma.
Primer 1
=
v = vz Njutnovoj iter~tivnoj formuli
gde =1= , = , 1,2, ••.. Ovde
izlazni kriterijum broj ponavlja
nja cik1usa u stepenovanja bro
u naAem slu~aju cik1us treba
izvrAiti puta. vrednost
promenljiva od slu~aja do slu~aja,
to bilo nemogu6e algoritam
opisati prostom linijskom struktu
6 bismo za svako razli~ito mo
rali imati posebnu llidjsku struktu
ru. Na l. 1.4.2 prikazan ~ra
fi~ki algoritam za izra~unavanje
n-tog stepena broja .
i = 0,1,2, •.• (1.4. )
gde 6emo uzeti da = z + 1. Proces ra~unanja prekinuti kada sedostig
ne zadata taooost , tako da
(1.4.4)
Formula (1.4. ) dobija.se kao an slu~aj odredjivanja nule funkcije f(x)
P9motu Njutnove tangentne metode (l. 1.4. ). Jedna~ina tangente kroz ta~
ku 1 ima oblik
IJOl'itllif { pro,Ta.'ki Jezi.t FORTlUN IV 27
Ako uzmemo da
{() = 2 - Z (1.4.7)
gde z ~iji kvadratni koren treba odrediti, to iz (1.4.6) dobija
(1.4.3). Moze pOkazati da izlozeni iterativni postupak izra~navanja
kyadratnog korena uvek konvergentan. i da
lim ! = v i .....
(1.4.8)
Na l. 1.4.4 prikazan algoritam za izra~unav.:anje kvadratnog ko
rena. Ovde vazno uo~iti razliku izmedju matematl~ke s.imbo1ike u itera
tivnoj formuli (1. 4. 3) i one koja koriA6ena 1. 1.4.4. formuli
(1. 4. 3~ u svakom iterativnom ciklusu dolazi do uvodjenja nove Qnliv
l ' xz , •.. , kojih moze biti veliki •. t zavisi od brzine konvergenci
iterativnog postupka. Medjutim. u syakom lterativnom ciklusu stvarno
pojavljuju dva brojna podatka: rezultat prethodne iteracije·l rezul
tat iteracije koja ra~una. Pri grafi~kom prikazivanju a1goritma l.
1.4.4 uzetQ da promenljiva predstavlja rezultat prethodne iteracije,
.. rezultat iteracije koja ra~una. Ako nije dOBtignuta zadata ta~nost
dolazi do zamene lzra~unate vrednoBti 1 kao nove pretpostav1jene vredna
Bti i iterativni proceB naBtavlja.
28 N. ParezaDoyl~
Pri grafickom prikazivanju a1goritama treba teziti za manjim
brojem promenljivih. jer to znaci i angazovanih registara
rije. kada se a1goritam prenosi na e1ektronske racunare.
ik!k a1goritamske strukture kod kojih izlazni kriterijum dos
tignuta tacnost u iterativnom postupku iovu se § i iterativne ciklicke
strukture. Vazno uociti da se iterativne ciklicke strukture ne mogu raz
viti u linijsku strukturu. ponavljanja iterativnog ciklusa zavisi od
p01aznih podataka i razlicit za razlicite vrednosti po1aznih pOdataka.
red toga. broj ponavljanja iterativnog ciklusa zavisi~e i od zadate tacnosti
kojom se zeli odrediti trazeno re§enje.
1.4.2. Promenljive cikli~ke strukture
Kod konstantnih ciklickih struktura dolazilo do promene ulaznih
dataka u pojedinl.=! algoritamske korake u ciklusu. zakon obrade u a1go-
1r'ftmi i ro je'Zik ..N 29
ritamskom koraku ostao nepromenjen za vreme izvr~avanja ciklusa. Kod
promenljivih cikli~kih struktura, u toku rada ci~usa, dolazi do promena
zakona obrade u nekom od algoritamskih koraka u okviru ciklusa. Ova pro
mena moze biti promenljivim koje javljaju u algoritamskom koraku
ili nad operacijama kojima su one povezane medju sobom.
(1) '----.,....-_ ...
(3)
(4) L.-__ --'
(5) L.-_"""'-__
S1. 1.4.5
Promene u algoritmu u~injene izvr~avanjem samog algoritmk zva~e
mo modifikacija algoritma. RealizacijaalgO!'itama cifarskim elektron
sldm ra~unarima dozvoljava njihovu modifikaciju, omogu~je znatno
kra~e zapisivanje algoritama u memoriji raCunara. Modifikacija algoritma
znaci mogu~nost obrade n samo polaznih podataka, ve~ i informacija koje
cine i al algoritam.
. Parezaaovic!
za I = + i . / , i = , 1 ••.• ,. Izracunate. vrednosti funkcije [() do
deliti promenljivim R1• Na l. 1.4.5 dat grafi~ki prikaz algoritma za
ovog zadatka. Algoritam sastavljen pet algoritamskih ~oraka.
slici oznacenih sa (1). (2). (). (4) i (5). Algoritamski koraci (2), ().
(4) i (5) nalaze unutar ik:k strukture. dok korak (1) nalazi ispred
ciklicke strukture. Korak (1) sluzi za postavljanje pocetne vrednosti indek
1. tako da u prvom prolazu rezultat algoritamskog koraka (2) dodelju
promenljivoj Ro• U tre6em algoritamskom koraku proverava izlazni
kriterijum iz ciklusa, tako da ako izracunata i vrednost funkcije f(xn) do
lazi do kraja a1goritma. U cetvrti algoritamski korak dolazi ako izlaz
ni kriterijum ni zadovoljen, i izracunava s1ede6a vrednost argumenta
funkcije. Ovo izracunavanje sastoji u dodavanju koraka / prethodnu
vrednost argumenta. Kako prethodna vrednost gunt mora biti
cuvana,to dovoljno imati nu promenljivu ( cija 6 vrednost
tnenjati u toku izvr§avanja algoritma. Peti algoritamski korak karakte
ristican za promenljive cikli~ke strukture. U koraku dolazi do
indeksa.1. to prakticno znaci dq promene imena promenljive kojoj
dodeljuje rezultat drugog algoritamskog koraka .. Prema tome, modifi
kacija algoritma, u slucaju, sastoji u ! mesta gde 6 biti
zapisan rezultat algoritamskog koraka, u memoriji racunara sva
koj promenljivoj dodeljuje registar u kojem cuva na brojna vrednost.
Primer 2
(1.4.10)
za zadatu vrednost .-. Algoritam sastaviti tako da moze koristiti za
koji stepen . Izracunatu vr.ednost li dode1iti promenlji
F. (1.4.1 ) moze napisati u obliku
f(x) = + i 1 + [2 · + ••• + (n_l + . >]} (1.4.11)
koji pogodniji za izracunavanje vrednosti , jer mgu sasta
vljanje ciklicke algoritamske strukture.
Ni l. 1.4.6 dat algoritam za izral!unavarije'vrednosti polinoma
fQrmuli (1.4. 11). Algoritam pored ulaznih i izlaznih koraka' s&.dr!i 6 kora
ka od kojih dva pripremna, ostala 4 nalaze u ciklusu .. prva dva
koraka vrAi postavljanje pol!etne vrednosti za..t i d04eljivanje brojne
vrednosti nula promenljivoj F. Kada prvi put dodje u tre~i al~oritamski
korak, ~e F = , tako da ~e izvrAiti operacija dodeljivanja &11 =-F.
(1 )
81. 1.4.6
u st algoritamskom koraku vrAi mno!enje F i postavljanje pro
izvoda kao nove vrednosti promenljive F. Promenoin indeksa! vrAi
difikacija promenljive l redom promenljive an. a n_l , •.. , l, . Kada
indeks i dostigne vrednost , to znaci da tre~em koraku izvrAeno doda
vanje i zadnje konstante prethodnoj vrednosti pI'bmen1jive F, cime
vrednost polinoma izracunata, i ovim algoritam zavrAava.
1.5. Blozene algoritamske strukture
Do sada upoznali elementarnim algoritamskim struktura
: prostim i razgranatim iinijskim strukturama, kao i ,konstantnim i pro-
32 . ParezaDoyl~
tarnih struktura do1azi do vr10 slozenih i raznovrsnih a1goritamskih
struktura. Jasno takodje da za reiiavanje istog zadatka moze sastavi
ti viiie a1goritama raz1i~itim strukturama. Za ovakve a1goritme kazemo
da 4I;u medjusobom ekviva1entni. Pri prakticnom reiiavanju zadataka treba
medju ekviva1entnim a1goritmima izabrati onaj koji najefikasnije dovodi do
rezu1tata. Ovo posepno vazno kada radi primeni racunara u u
izvriiavanja a1goritama. U ovom luu na kona~an izbor a1goritma moze
uticati angazovanih registara memorije, brzina rada a1goritma, sloze
nost a1goritamske strukture i sl.
Slozenost a1goritamske strukture naro~ito se uve~ava prisustvom cik
lickih, posebno promenljivih ciklickih struktura. Dve ciklicke strukture,
kompoziciji algoritma, mogu slediti jedna iza druge ! mogu obuhvatiti
jedna drugu. Za viiie ciklicnih struktura koje slede jedna iza druge kazemo
da cine linijsku kompozicijti cikli~kih struktura. Ako jedna cik1icka stru
ktura nalazi unutar druge cikli~ke strukture kazemo da se radi koncentric
kompoziciji cikli~kihstruktura.
Izracunati vrednost po1inoma
f(x) = + {l + [2 + ... + x(a D _1 + ] 1 (1.5.1)
za = + k. , k = 0,1,2, ... , .
Izracunate vrednosti po1inoma dode1iti promen1jivim F 1 ' i = 0,1, ... , m
tako da
i = 0,1, ... , m
Na l. 1. 5. 1. dat a1goritam za izracunavanje vrednosti p01in()ma,
postupk (1.5.1), za razne vrednosti argumenta. Algoritam se sasto
! od 10 koraka sa dve ciklicke str.ukture ( 1 i Cz), od kojih jedna cikli
cka struktura (Cz) na1azi okviru druge ciklicke strukture ( 1). Prvi a1go
ritamdki korak mni i vr§i postav1janje indeksa!s: A1goritamski ko-
lgoritmi i pro'1'ams1i jezik RRN IV 33
Sl. 1.5.1.
raci od (2) do (7) odgovaraju ranijem primeru izracunavanja vrednosti
linm datom sl. 1.4.6. A1goritamski korak (8) predstav1ja u iz-
1aznog kriterijuma za. iz1azak iz cik1usa l. koraku (9) vri§i se mn
indeksa ls: 6n argumenta za korak t.x·vri§i se desetom a1gori
tamskom koraku. m tome, malom cik1usu 2 vri§i se izr,acunavanje
vrednosti nm n-tog stepena, velikom cik1usu 1 vr§i se mn
argumenta i postavljanje pocetnih vrednosti za odvijanje ciklusa 2 • U algo
ritmu 81. 1.5.1. dolazi do modifikacije u 81ede6im algoritamskim kora
cima (3), (4) i (7), dolazi do mn imena promenljivim ; . i Fk pri
svakoj promeni indeksa i odnosno Js., Postavljanje indeksa i u koraku (2), u
pravilnog odvijanja cik1usa.C2 (izracunavanje vrednosti nm). zo
se restauracija vrednosti promenliive i.
34 ~. ".rezaDoYlc!
1. 6. Algoritmi i programiranje
Videli lgritm mozemo jednozna~no opisati koriste~i
blok ~. Medjutim, algoritam takodje mogli
sati ako koristili izrazavanjem u obliku pisanog teksta. Tako
ni uzeti primer izra~unavanja funkcije
za 1 .. + i. lIx, i = 0,1, ... , i dodeljivanje izra~unatih vrednos
ti funkcije «1) promenljivim Rj', i:: 0.1, ••• , moze opisati l
de~i ~in:
1 korak: Uzeti da i = , i pre~i korak 2,
2 korak: Izra~unati f(xJ = + , i izra<::unatu v:dst dodeliti promenljivoj R1, zatim pre~i korak 3,
korak: Ako i = zv!i raeunanje, ako i'" pre~i korak 4,
4 korak: Pove~ati vrednost argumenta za fJ.x, i pre~i korak 5,
5 korak: Pove6ati indek8 i za jedan, i korak 2.
Poredjenjem gornjeg algoritma i onog datog 81. 1.4.5.
vidi seda opisa u suMini ista. Medjutim, tekstualni opis algorita
nije pogodan za slozenije algoritme, jer uo(!ava struktu
ra algoritma, to mogu6nosti u otkrivanju logickih gresaka.
Sa druge strane pri tekstualnom moze do~i do neprecizno formuli
<::ni, cime unosi ~ u opisivanje algoritma.
Grafi~ko prikazivanje algoritama 6 blok-seme odlikuje
-slede~im in:
1) Omogu~uje 'prikazivanje toka izvrsavanja algoritma, nacin
koji pruza najve6e za otkrivanje logickih gresaka u postavci algo
"ritma.
2-) Omogu6uje kra~i i ! zapis algoritma, nego pisanim jezi-
kom.
4) algoritama u obliku blok-sema nezavisno
kasnij"g koristenja algoritma.
Zadnja ina posebno znaCajna. jer graficko prikazivanje algorit
nije orijentisano na prenoAenje algoritma odredjeni raCunar. 0-
mogu6uje da algoritam u obliku blok-Aeme mogU koristiti i ljudi' koji ne poz.
naju raCunare. Detaljisanje algoritma pri grafikom prikazivanju ! biti
razlicito i zavisi od namene blok-Aeme algoritma. Kada radi prenoAe
nju algoritma cifarske raCunare. radi u stvari takvoj detaljizaciji
algoritma, koja 6 omogu6iti jednoznacno prihvatanje alg<?ritma od strane
raCunara. Ovakav nacin pisanja algoritama zove programiranje, ovako
zapisan algoritam zva6emo programski algoritam ili program. Prema tome,
programski algoritam takav zapis aIgoritma koji omogu6uje njegovo ·pre
noAenje cifarske raCunare. Algoritam zapisan.u obliku blok-Aeme ne
ze biti prihva6en od strane ra~unara, detaljizacija algoritma nije t
go definisana.
Algoritam zapisan preko skupa naredbi racunara prihvatljiv za ra
cunar, ali ne odgovara l!oveku. Nivo maAinskog jezika za programiranje
podrazumeva takvu detaljizaciju algoritma da to predstavlja vrlo mukotrpan
za cove.ka, najva!nije veoma podle!an greAkama. Za pi
sanje programa maAinskom jeziku P9trebno poznavanje konstruktivnih
osobina racunara, takodje veoma ogranicilo broj ljudi koji mogli
koristiti raCunar.
Slede6a faza u reAavanju problema komunikac1je izmedju coveka i ra
cunara' bila uvodjenje simbolicnog programirarija. Simbolicno programira
nje podrazumeva uvodjenje mnemotehnickih skra6enica za kodove operacija,
kao i simbolicno pisanje adresa. Svakako da ovakav simbolican jezik pri
hvatljiviji za coveka nego masinski jezik. Medjutim, i ovaj nacin programi
an zahteva veliku detaljizaciju, koja nosi sve nedostatke mai!iinskog jezi
ka, u bl! formi.
Simbolican jezik mora tako definisan da mogu6e sastavitialgo
ritam za formalno prevodjenje maAinski jezik. ovo prevodjenje
jednoznacno to ga mogu6e izvri!iiti pom06u raCunara.
1.7. UopAte programskim jezicima
Je.zik sredstvo za komunikaciju izmedju najmanje dva korisnika.O
cigledno da jezik biti definisan tako da prihvatljiv za sve korisni-
36 . ParezalloYi~
ke. Ako posmatra bl komunikacije izmedju coveka i racunara
uzeti u obzir dobre i l strane jednog -i drugog i bazi togamo
formirati jezik za njihovu komunikaciju. Jezik veoma si
§ i zbog toga prihvatljiv za coveka. Medjutim, pisani ili govorni
jezik coveka nije dovoljno precizan da prihvatljiv za .
tome. traziti nekakav novi jezik kpji 6 biti prihvatljiv i za coveka
i za . Jezici koji defip.isani da zadovolje ovaj uslov zovu prog
ramski jezici. Programski jezik da odgovori slede6im zahtevima:
1) Da pruzi §to mogu6e ve6i komfor za coveka, pri § l
goritama ,
2) Da omogu6i lako 6 programskog algoritma od §to ve6eg
ljudi, i
3) Da mogu6e formalno prevodjenje programskog jezika
§inski jezik.
Prvi zahtev znaci da programski jezik obezbediti lako izraza
vanje bl koji zeli reAiti 6 . Medjutim, primena
jako Airoka, samim tim i problemi raznovrsni. U takvoj
situaciji definisani programski jezici za pojedine oblasti primene
. Danas najpoznatiji programski jezici:
FORTRAN - naucno-tehnickim problemima (FORmula TRANslating),
ALGOL
COBOL
PL/I
- poslovnoj obradi podataka ( in Orientid Language),
- naucnim, tehnickim i pos1ovnim problemima (Programming Language 1)
Pored ovih jezika postoji desetine programskih jezika. Medju-
tim, od svih ovih jezika najvi§e rasprostranjen FORTRAN. Na skoro 800/0
danaAnjih moze,se koristiti programski jezik FORTRAN.
Drugi navedeni zaht.ey za programski jezik, treba da omogu6i razme
nu programskih algoritamK, medju strucnjacima koji bave odgovaraju6im
problemima. ;tome, g,msk1 jezik:mora biti izgradjen
skupu tipografskih simbola, i konstrukcije u jeziku biti lako
shvatl)ive za Ato Airi krug strucnjaka.
AlgoritJni i programsti jezik PORTRAN IV 37
Tre6i zahtev omogu6uje izradu programa. koji 6 obezbediti da ral:!u
nar vrsi prevodjenje sa programskog na masinski jezik. Ovaj program se.
zove program za prevodjenje. i kao ulazne podatke dobija konstrukcije iz
programskog jezika i prevodi ih u skup naredbi u masinskom jeziku. Kada
program preveden sa programskog masinski jezik, tada moze
njegovo izvrsavanje racunaru~
AlaoritDd .[ ro. ••• . Jezi1: 'ORTRANIV 39
2. PRETHODNE NAPOMENE FORTRAN-JEZIKU
2. 1. OpMi pojmovi
Osnovna, nedeljiva jedinica jezika zove simbol. FOTRAN
tacki jezik, koji definiie nad izabranim skupom simbola. Skup simbola
izabran tako da odgovara uobicajenim tipografskim simbo1ima. Novi sim
boli konstruisani od postoje6ih tipografskih simbo1a, njihova konstruk
cija 1ako shvatljiva za iiri krug strucnjaka raz!icitih profila.
Simbo1 kao jedinica jezika ne izra:lava niAta drugo, osim ito predstav-
1 samog .
simbo1a. E1ementarna konstrukcija ima odredjeno znacenje, 11 za
ne egzistira programu. E1ementarne konstrukcije FORTRAN -jezika
:
- konstante,
- promenljive,
S10zena konstrukcija, FORTRAN jeziku sacinjena od niza simbo-
1 i e1ementarnih konstrukcija. Ona egzistira programu i ima lrdni
smisao za . S10zene konstrukcije FORTRAN-jeziku :
- naredbe,
Naredbe FORTRAN-jezika se dele : izvrshe i opisne. Izvrsne nared
odredjuju koja operacija treba da se izvrsi i nad kojim podacima, pre
tome one predstavljaju akciju koju ra~unar treba da sprovede. Opisane
naredbe pruzaju sve dodatne informacije potrebne za izvrsne naredbe, koje
se odnose to kako treba izvrsiti odredjenu akciju, ili daju informacije '0
programu u celini, sto omogu~uje lakse prevodjenje programa sa FORTRAN
-jezika masinski jezik.
Pravila kako se nad skupom simbola jezika grade elementarne i sloze
ne konstrukcije ~ine gramatiku jezika. Prema tome, poznavanjem gramatike
mozemo re~i svakoj zadatoj konstrukciji u jeziku da li korektna ili nije,
ne ulaze~i u njeno zna~enje. Sintaksa jezika izu~ava gramati~ki korektne
konstrukcije i daje mogu~nost formalnog otkrivanja gresaka u konstrukcija
. Odmah treba uo~iti da sintaksi~ke greske u programtt mogu biti otkri
vene u programu za prevodjenje, jer su formalne prirode.
Semantika jezika izu~ava zna~enje pojedinih konstrukcija u jeziku.
Program sastavlja ~ovek, isve konstrukcije FORTRAN-jezika koje
~ine program, napisane su prema algoritmu sastavljenom za resavanje od
redjenog problema. Prema tome, semanti~ke greske u programu, pra
vilu. ne mogu biti formalno otkrivene, jer su to naj~es~e greske u algoritmu,
samim tim ove greske ne moze otkriti program za provodjenje, ve~ jedino
~ovek.
Pravila kojima se grade pojedine konstrukcije FORTRAN -jezika
lako se pamte, ako se uo~e razlozi za§to su ona uvedena. Zato treba imati
u vidu slede~e:
1) svaka konstrukcija u FORTRAN-jeziku. mora tako definisana
da se jednozna~no razlikuje od svih ostalih konstrukcija,
2) konstrukcije se moraju tako definisati da se omogu6i sto lakse nji
hovo prevodjenje ma!Hnski jezik. i
3) konstrukcije moraju biti sto razumljivije za ~oveka.
Pri definisanju svakog programskog jezika mora se voditi ra~un~
ova tri aspekta jezika. Kako to sprovedeno u FORTRAN-jeziku ~e izlo
zeno u materijalu koji sledi.
AI~itmi .• programsJd Jezit IV 41
2.2. Nal:in pisanja programa
8ve naredbe FORTRAN -programa prenete kartice da
program unet u ral:unar. Da program za prevodjenje pravilno pri
hvatao naredbe sa kartica, se postovati sledec5a pravila busenju
kartica:
1) Od 1. do 5. kolone zakljul:no busi se koji predstavlja obelezje
naredbe.
2) od 7. do 72. kolone zakljul:no busi se niz simbola koji l:ine naredbu.
3) k neka naredba sadrzi vise od 66 simbola, odnosno moze
bu§ena jednoj kartici, moze se koristiti ukupno 20 kartica za njeno §
nje, ali svaka kartica, osim prve, sadrzati znak razlil:it od l i
blanka 6. koloni.
4) Od 73. do 80. kolone moze se busiti kakav tekst. Najl:esc5e
to tekst koji sluzi' za id~ntifikaciju programa i za redosled kartica progra
. 8adrzaj ovih kolona ne uzima u obzir od programa za prevodjenje.
5) Obja§njenja u programu koja se ne odnose program za prevodje
nje, vec5 olaksavaju prac5enje programa od strane l:oveka, pisu se od 2. do
80. kolone, ! u prvoj koloni nala,ziti slovo . Ovakav t~kst
se moze pisati l0 kojem mestu programa, i bez znal:.aja pri formi
ranju masinskog programa.
pogodno pisati FORTRAN-program u formularima oblika prikazanog
sl. 2.2.1.
__ .... 1...-----'
Naredbe FQRTRAN-programa l§ odozgo nadole onim redom kako
izvr§avaju u programu. U okviru naredbe moze se nalaziti proizvoljan
broj simbola blanko. omogu~uje pregledno pisanje naredbe, ne menja
njeno znacenje.
3. SIMBOLI FORTRAN -JEZIA
- velikih slova engleske azbuke,
- dekadnog brojnog sistema,
3.1. Ve1ika slova engleske azbuke
Velika slova engleske azbuke cine 26 simbola FORTRAN -jezika, i to
IllDIIFIGIlrlIILllNIIIQIRISIIUIVlwl
XIYIZ
simbole jezika.
Cifre dekadnog brojnog sistema cine 10 simbola FOTRAN-jezika i to
0111213141516171819
Logicke konstante, koj~ u algebri logike na oznacavaju sim
i 1, u FORTRAN-jeziku pisu
FALSE. 1 . TRUE.
gde konstanta . FALSE. (cita fo:ls, znaci laz) odgovara , • TURE.
(cita tru:, znaci istina) odgovara 1 u algebri lo,gike.
.4. Znaci aritmetickih operacija
+ 1-1 * I / I ** pri cemu imaju sledece znacenje
+ sabiranje
oduzimanje
* mnozenje
/ delenje
** stepenovanje
Znacl za operacije poredjenja u FORTRAN-jeziku su
.LT. I.LE.I .EQ. '.~. I.. l.dE.
pri cemu imaju s1edece znacenje:
· LT. odgovara simbolu < u matematici (simbol sastavljen od pr·,
vih slova engleskih reci "Less Than", sto znaci " od"),
· LE. odgovara simbolu , u matematici (sil sastavljen od pr
vih slova engleskih reci "LeS&. than or Equal to", sto znaci
" il! jednako"),
· EQ. odgovara simbolu ;: u matemat1ci (simbol sastavljen od pr
vih slova engleske reci "EQual to", sto inaci \ljednako"),
loritJDi i plO'1'a •• 1d jezik , IV 45
· NE. odgov~ra liIimbolu r u matematici (liIimbol liIaliltavljen od pr
vih slova engleskih rec:!i "Not Equa1 to", 't znac:!i "ni dna
ko"),
· . odgovara .simbolu > u matematici (simbol sastavljen od pr
slova engleskih rec:!i "Greater han", t znac:!i "ve6e od"),
· . odgova~a simbolu ~ u matematici (simbol sastavljen od pr
slova engleskih rec:!i "Greater than or 1 to", t znac:!i
"ve6e lli jednako").
Znaci za l~gic:!ke operacije u FOBTRAN-jeziku su
.oR.I.AND.I.NOT.
.OR. logicka "11i" operacija,
· AND. logicka "i" operacija.
· NOT .. logicka l'ne" operacija.
ristiti u FORTRAN-jeziku i to su
( I ) I =1 , 1 . 1 s I 1 '.1 &
gde simbol oznacava medjuprostor lli ank izmedju tipografsldh il
bola.
Sluzbene reci su engleske reci koje u FORTRAN-jeziku koriste
kao simboli. znaci da te ! mogu pisati u obliku datom u ta
bleli . 1. U tabeli dat oblik pisanja sluzbene reci u FORRAN-jeziku,
posto znacenje ! ukazuje funkciju simbola u FORTRAN-jeziku to
dat i prevod reci srpskohrvatski jezik radi lakseg koriscenja 'za ci-
46 N. Parozanovic!
taoce koji ne poznaju engleski jezik. Takdoje u tabeli dat i izgovor reci,
zapisan u fonetskoj transkripciji.
1. SSIi dodeli asain
. CALL pozovi kol
5. COMPLEX kompleksan k;)mpleks
6. CONTINUE nastavi kantinju:
7. DATA podaci deitct
8. DIMENSION dimenzija dimensan
9. DO izvrsi du:
11. EQVIV ALENCE odgovarajl1ci ikwivalans
12. EXTERNAL spoljasnji iksta:nal
13. FORMAT raspored fQ:mat
15. GO predji gou tu
16. IF ako if
18. LOGICAL logicki lodzikal
19. PAUSE pauza po:z
20. READ citaj ri:d
21. REAL realan rial
22. RETURN povratak rita:n
23. STOP zaustavi stop
24. SUBROUTINE potprogram stu:ti:
25. WRITE pisi rait
AJoritmi i. ro'1'slli .fezi.ll , IV 47
4. ALGORITMI SA REALNIM KONSTANAA 1 PROMENLJIVIM
Svaki racunski proces moze ral!claniti niz formula, kojima
vrsi izracunavanje medjurezultata i konacnih rezultata. Formula u uo -
bicajenoj matematickoj notaciji sadrzi promenljive i konstp.nte medjusob -
povezane aritmetickim operacijama. Promenljivim, koje nalaze na
desnoj strani neke formul~, moraju biti dodeljene brojne vrednosti pre ra
cunanja toj formuli. Ov promenljive dobijaju brojne vrednosti, pre
cetka rada algoritmu, kao polazne velicine ili su to medjurezultati izra
unanj prethodnim formulama.
sadrzi promenljive l' 2' " cijebrojne vrednosti moraju biti poznate
pre izracunavanja velicine . Na desnoj strani formule (4.1) figurisu i kon
stante 2; , 7 i 4. Izracunavanje formuli (4.1) predstavlja izracunavanje
vrednosti aritmetickog izraza desno od znaka jednakosti, i dodeljivanje iz
racunate brojne vrednosti promenljivoj , levoj strani znaka jednakosti.
Sve opite poznato u matematici i predstavlja"uobicajeni nacin
korii6enja formula od strane iirokog broja ljudi razlicitih profesija.
U glavi 6 biti izlo!eno kako piiiu formule u FORTRAN-jezi
ku. Imaju6i u vidu ita sadrze formule, to u FORTRAN -jeziku mora
ju definisati slede6i :
- kako piiu aritmeticki izrazi,
- kako dodeljuju vrednosti promenljivim,
48 . I'are zaaoYll!
- kako izdaju konacni rezultati.
4. 1. Definicija brojne konstante
U FORTRAN-jeziku brojna konstanta ~oze biti broj mesovit
broj. Ova stroga podela konstanti 1 i mesovite us10vljena nacinom
re~Btrovanja konstanti u memoriji racunara. Celobrojna konstanta regi
struje kao binarni broj, . mesovita konstanta reg!struje kao broj
u pokretnom zarezu.
4. 1. 1. CeU brojevl
broj pise kao niz d~kadnih cifara, ispred kojeg moze stajati
znak + za pozitlvan broj, obavezno znak - za negativan broj. Ovako za
pisana ce1obrojna konstanta mora biti u brojnom interValu [_231, 2'1 -1] •
brojni interval odredjen kapacitetom jednog memorijskog registra
(1.4. 1. 1.). Registar sadrzi 32 ceUje oznacene, na 1. 4. 1. 1, , 1, ••• ,
31. 8adrzaj 31 najvece tezine i registruje znak broja. broj
i 1--- ~------
ZW,+
1 LNA-
81.4.1.1.
re gistrovan u ovakvom re g1stru mora biti u intervalu
_231" 1; 231 -1 = 2.147.483.647
lz izlozene defincije za pisanje ceUh brojeva sledi da
- broj ne sadrzl decima1nu tacku, i
- izmedju cifara celog broja ne moze stajati medjuprostor.
(4.1.1)
Primeri
-386
65
2147483647
35.0
49
) Niz dekadnih , ! cemu se l0! i razlomljeni deo raz
dvajaju decimalnom tackom. Ispred ovakvog niza moze stajati znak + za
zitivne brojeve, stajati znak - za negativne brojeve. Ovako zapisan
mesovit ro imati jednu cifru, najvise 7 dekadnih .
) Oblik kao pod ) iza kojeg pise slovo . zatim navodi
dvocifreni dekadni . koji predstavlja eksponent 10. vred
nost ovako zapisane konstante jednaka proizvodu brojeva ispred slova
i stepena 10, sa celobrojnim eksponentom navedenim iza slova .
111-----1 11--- 5i ----2423-- 11'
SI.4.1.2.
Mesoviti se registruje u memoriji racunara u cu pokretnog
zareza (81.4.1.2.). Ovako regi8trovan inia brojnu vrednost
(4.1.2)
50 . ParelaDoy·ic!
gde eksponent re gistruje 1'>inarni broj.
- 64:1iiX B '63 (4. 1.3)
mantisa registruje u binarno kodiranom heksadekadnom sistemu.
tako da
(4.1.4)
Zamenom (4.1.3) i (4.1.4) u (4.1.2) lako dobija da brojni inter
val za broj u pokretnom zarezu
' I I .. (1_16-6 ).1663 (4.1.5)
Najmanja vrednost mantise raz1icita od nule jeste 16 -1 , tako da svi
brojevi mn! apsolutnoj vrednosti od 16-65 u racunaru registruju
kao nule. Prema tome, broj =1 , mora biti u intervalu
(4.1.6)
(4.1.7)
Mesoviti brojevi, razliciti od nule. zapisani u jednom od dozvoljenih
ob1ika () i1i () moraju brojnoj vrednosti pripadati dozvoljenom interva
lu (4.1.7). Brojevi ispod donje granice intervala registruju kao nule,
brojevi iznad gornje granice ruzku prekoracenje kapac·iteta registra.
Primeri
0.345
-22.0
) Nedozv01jeni obUci mel:iovitih brojeva
2.000.596
-15.I36
25.
1.876.00
4.2.1. Ime promen1jive
u matematici uobicajel'lo da promenljive oznacavaju jednim 10-
vom azbke .• U FORTRAN -jeziku niz simbola oznacavaju promenljivu. Ova
kav niz simbola zove ime promenljive. Niz simbola koji in i pro
menljive mora ispunjavati sledece us10ve:
- prvi simbo1 mora biti veUko s1ovo eng1eske azbuke i11 specijalni
znak ••
- ostaU i mogu biti: veUka s10va eng1eske azbuke. cifre dekad
nog brojnog sistema specijalni znaci •
- broj simb01a koji in ime promenljive moze biti od 1 do 6.
Primeri
Vrsta promenljive odredjuje prema tome kakva brojna vrednost
moze dodeliti promenljivoj. Svaka promenljiva mora biti definisana vrs
ti. znaci da promenljiva dobija i1i celobrojne vrednosti ili meAovite
brojne vrednosti (brojeve u pokretnom zarezu). Ako promenljiva uzima
mo celobrojne vrednosti zove celobrojna promenljiva. ako uzima vre
dnosti meAovitih brojeva zove realna promenljiva.
Vrsta promenljive. unutraAnjoj konvenciji FORTRAN-jezika. defi
nise . sledeci' nacin:
- ako ime promenljive pocinje slovom 1. , . L. ili . to
lobrojna promenljiva.
- ako ime promenljive ne pocinje jednim od navedenih slova. to re
alna promenljiva.
Svakoj promenljivoj u FORTRAN-programu izvrAenja programa
racunaru. dodeljuje jedan registar u kojem cuvati brojna vred
nost promenljive. Ako promenljiva celobrojna njena brojna vrednost
registrovati u odgovarajucem registru kao . Ako promenljiva
realna njena brojna vrednost biti registrovana kao u pokretnom za-
rezu.
irei
1
119
IAB
MASA
4.3. Aritmeticki izraz
Aritmeticki izraz cine jedan argument ill vise argumenata medju
razdvojenih znacima aritmetickih operacija. Argument aritmetickog iz
raza konstanta l1i promenljiva.
4.3.1. Aritmeticke operacije
Aritmeticke operacije su:
** stepenovanje.
ritmki izraz pise kao niz, koji sastoji od naizmenicnog
smenjivanja argumenata i aritmetickih ope~acija, pri cemu:
- niz pocinje argumentom znakom minus (-), koji oznacava pro
menu znaka prvom argumentu, i
- niz zavrsava argumentom.
Vrednost aritmetickog izraza izracunava sleva desno, pri cemu
vaz1 prioritet aritmetickih operacija, prikazan u tabe1i 4. . 1, gde 1
oznacen najvisi prioritet, pz operacija promene znaka argumentu.
l 4. . 1
1 ·*,pz sdesna levo
2 .,/ sleva desno
3 +,- sleva desno
Aritmeticka operacija izmedju dvaargumenta, koja su ceU brojevi,
daje kao rezultat broj. , dele dva la broja rezultat
celobrojni 'deo koUcnika.
realan, -Ugi celobrojni, su rea1na, jeste rea1an.
Za operaciju stepenovanja treba imati u vidu kk ona reaUzuje
raeunaru:
) Ako izlozilac stepena broj, tada operacija stepenovanja
svodi na mnozenje. Prema tome. stepen
racuna, kao
···
) Ako izlozi1ac stepena realan broj, tada vrednost stepena ra
cuna logaritmovanjem i antilogaritmovanjem. ako treba izracunati
to izracunava kao
ti.Ln( 2. 5.tn )
Iz ovoga sledi da u operaciji stepenovanja, kada izlozi1ac reai
an. ne moze pojaviti negativan broj kao osnova jer operacija logaritmovanja
ni definisana za nega.tivne brojeve.
) Niz operacija stepenovanja izvrAavaju s desna na levo. 'Izraz
****
racuna tako Ato najpre odredi ( ** ), zatim ** (**). OV
razUcito od (**) **.
d) Promena znaka ima isti prioritet kao 1 stepenovanje tako ako
napiAe izraz
- **
ovo ~e biti izracunato kao - ( ** ). ne (-)**.
loritmi ,i ro;rsti Je'Zn RRN 55
U tabeli 4.3.2. navedeni BU primeri aritmeti~kih izraza i njihovi ek
vivalenti u matemati~koj notaciji.
Tabela 4.3.2.
ARIEIeKI IZRAZI
/* ~C
- +.-5,6
4. 3~ 2. Upotreba zagrada
Ako utvrdjeni prioritet aritmet1ckiii operacija ne odgovara aritmetic
kom izrazu koji zeli zapisati, mogu koristiti' zagrade. Prem tome, za
grade tr~ba koristiti, kao i, u matematici, kada zeli promeniti p'rioritet
operacija. Deo aritmetickog izraza u okviru otvorene i zatvorene za
grade dobija najviiH prioritet. Ako t1 ve6i broj zagrada, unutra~nja za
grada najviAeg prioriteta. Deo aritmeti~kog izraza izme.dju zagrada, od
nosi pre'ma aritmetickom izrazu u celin1 kao jedan argument.
U tabeli 4.3.3. navedeni su primeri aritmeti~kih izraza zagrada
i njihovi ekvivalenti u matemati~koj notaciji.
4.3.3. Vrsta 'aritm.et1ckog izraza,
Izra~unata brojna vr10st, koja dobija kao rezultat aritmeti~kog
izraza vrsti jeste:
56 . Pal'ozanovl'c!
_ broj, ako su sv! argument1 aritmeti~kog izraza celobrojne kon
stante lli celobrojne promenljive, dn
_ realan. broj, ako barem jedan argument aritmeti~kog izraza re
ln konstanta 111 realna promenljiva.
Tabela 4 . . ARITETI~KI IZRAZI
U FORTRANU U ATEATICI
D
* (/ (+) ) .
+
«-A)**2+A*(D/B»**2 «-) 2+A.~ ) 2
A/(B+C)**2-4./D+3. - 4 + 3
( +<=)2 D
u tabeli 4. . 4. dati su primeri ar1tmeti~kih izrata oznakom vrste
aritmeti~kog izraza,
(/12)*/ broj
(/12)*/3. realan
gde
4.4.1 •. Aritmetil:ka naredba ',. Qpiti oblik aritmetil:ke naredbe :
- ime promenljive,
pretvara u vt brojnog podatka, saglasno vrsti'promenljive .!., i do
deljuje se promenljivoj .!..
U aritmetil:kom izrazu '" ne moze se pojaviti promehljiva kojoj nije
dodeljena brojna vrednost pre izvrsavanja naredbe (4.4.1).
Treba ul: razliku izmedju znaka jednakosti u aritmetil:koj nared
, i uobil:ajenog znal:enja u matematici. Znak jednakosti u aritmetil:koj
naredbi opisuje proces koji sastoji od:
- izral:unavanja vrednosti aritmetickog izraza, desnoj strani zna
ka jednakosti, konkretnim vrednostima promenljivih,
- dovodjenja 1zracunate brojne vrednosti promenljive u celobrojni 111
realni oblik, u saglasnosti vrstom promenljive levoj strani znaka jed
nakoBti, i
strani znaka jednakosti.
Sve navedene faze u izvrsavanju aritmeticke l1aredbe dogadjaju se
dna za drugom. Pl'ema tome, u fazi izral:unavanja vrednosti aritmetickog
izraza moze koristiti n vrednost promenljive, kojoj u zadnjoj
Caz! biti dodeLjena izracUl\ata n vrednost. Kako brojna vrednost
promenljive cuya u odl'edjenom memorijskom registru, to u slul:aju
znaci da sadrzaj Oyog re~Lstra moze korl§cen u fazi izracunavanja
ednosti arittHetickog iz :17.;\, zti unist uisI nove brojne vr.ednosti
koja do(!eljLlje I'l1liv. Tako Iz pisati
58 .~. PatezaDovlt
= + (4.4.2)
t zl sabrati brojne vrednosti promenljivih i i dobijeni rezultati
dodeliti kao brojnu vrednost promenljivoj .
Primeri
I=J+A*~2-4
BRZINA=PUT /VREE
VREDN=CENA*KOLIC
2) Aritmeticka naredba
A=I/3-4*B
za 1 = 10 i = 3.5 dode1juje promen1jivoj brojnu vrednost - 11. .
4.4.2. Naredba u1aza
racunatoj vrednosti aritmetickog izraza. Medjutim, neke promen1jive u 1-
goritmu dobijaju pocetne vrednosti prema konkretnom primeru koji re
sava. Ovakve veliCine zovu se ulazne velicine. Tako, algoritam 1.1.3.5.
sadrzi u1azne velicine l i 2, kojima ,moraju biti 1 brojne vred
nosti pocetku izvrsavanja a1goritma. U lstom algoritmu promenljiva .!. brojnu vrednost preko aritmeticke naredbe. Prema tome, postoja -
promenljivih koje dobijaju brojne vrednosti pocetku algoritma, "
gu~uje primenu algoritma za razlicite konkretne brojne vrednosti ovih pro
men1jivih. Algoritam u kojem postoje promen1jive, kojima brojna
vrednost moze dode1iti kao in koja ulazi u algoritam~ predstav1ja niz
izracunavanja koji pri svakom izvrsavanju algoritma dovodi do istog ',zu1-
tata. Jasno da ovakav a1goritam retko ima praktlcnog l1. Najcesce
potrebno sastaviti a1goritam koji ~e izracunavati rezu1tate za razlicite
polazne podatke. Po1azni podaci nalaze spo1jnim nosiocima informa-
Iritmi i proJ1'amski jeziJt FR.R.N IV 59
macija i program koji ih koristi dodeljuje njihove brojne vrednosti odgova
raju6im promenljivim. Naredba koja omogu6uje v dodeljivanje broj
nih vrednosti promenljivim zove naredba ulaza. Ova naredba piAe u
l
READ(i, j)Usta (4.4. ,r
READ .., sluzbena rec, koja oznacava da radi rtaredbi ulaza,
i - cel~brojna konstanta bez znaka ime celobrojne promen
ljive, kojoj mora biti dodeljena brojna vrednost pre izvrAa
vanje naredbe (4.4.3),
lista .., spisak imena promenljivih, medju r.zdvojenih zare
zima, kojima dodeljuju brojne vrednosti ulaza.
k spoljni nosilac informacija kartica, tada veUcina .! ukazuje
citac kartica kojeg 6 bit~ c1tani brojni podaci. Kod racunara IBM.
-360/44, kada vrii ui.az preko citaca kartica, treba uzeti da 1 = 5.
Naredba ulaza izvrina naredba i i slede6e znacenje: procitati ulazne
podatke ulaznog uredjaja .!' pod kontrolom opisne naredbe 1, i dode
Uti procitane brojne vrednosti promenljivim, navedenim u list1.
Prema tome. izvr naredba sadrzi informaciju tome gde na
laze ulazni podaci (i), i kojim promenljivim dodeljuju (Usta). Medjutim
kako izgledaju brojne vrednosti kartici to ni receno izvrAnom nared
ulaza. Brojni podatak ~artici nalazi u obliku konstante, kon
stante su sastavljene od niza simbola FORTRAN-jezika. Svaki simbol kon
stante busi u jednu kolonu kartice. Vise kolona, koje zauzima dn kon
stanta kartici, in polje. dn viie polja, koja dn kartice
unose u memoriju racuI).ara, in slog. Opisna naredba, kojom opisuje
izgled sloga, pise u obliku
gde
FORMAT(slog) (4.4.4).
.., obelezje naredbe,
FORMAT - sluzbena rec, koja ukazuje da radi naredJ:)i za opis
podataka, i
slog - niz opisa. medju razdvojenih zarezima. kojima opi
suju pojedina polja ulaznog sloga.
Ulazni slog sastavljen od viAe polja. svako l sadrzi jednu
konstantu. Za opis ulaznog sloga potrebno opisati svako l u okviru
sloga. Opis polja zavisi od konstante koja nalazi registrovana u polju.
Neka polja cine jedan ulazni slog. Tada opis sloga sastoji od opisa
pojedinih l. tj. naredba (4.4.4) dobija oblik
FORAT(opis 1 .OpiS2 .is ) (4.4.5)
Opisi pojedinih l navode u naredbi (4.4.5) sleva desno.ona
ko kako slede kartici (l. 4. 4.1).
Da u nizu naredbi koje ci
ne program omoguci1o jednoznacno u
kazivanje odredjenu naredbu pro
grama. uvodi obelezje naredbe. l zje naredbe jednocifren do petocifren neoznacen dekadni broj.
I POLJE1 POLJE2 PQLJE .3 ---
81.4.4.1
Obelezje naredbe leve strane naredbe. Svaka FORAT-naredba
imati obelezje (oznaceno u 4.4.4 i 4.4.5). koje obavezno na
vodi u naredbi ulaza (4.4. ). odnosno izlaza (4.5. l. IzvrAne naredbe FOR
TRAN-programa mogu potrebi imati obelezja. U jednoj programskoj
dinici moze dn obelezje koristiti. kao obelezje. vise od jedne FOR
TRAN-naredbe.
Ako polje sadrzi celobrojnu konstantu, opisuje sledeci nacin
Ik (4.4.6)
- simbol FORTRAN-jezika, koji oznacava da radi celom
(Integer),
k - neoznacen , 'koji ukazuje kolona polja kartici.
Ako k takav, da polje sadrzi veci 'j kolona nego sto to
zahteva brojnog podatka, tada odgovarajuci kolona levoj
lrit:mi i '1'011'.111.11 jeziJt .FRRN .IV 61
strani polja ostaje nebusen. Tako, ako u polju opisom 110 ~oje sadr!i
10 kolona, od 1. do 10.kolone, treba registrovati broj -386, to u kolonama
od 1. do 6. nista buseno, -386 busiti sleva nadesno od 7. do
10. kolone.
gde
gde
Ako polje kartici sadrzi broj, opisuje ·
Fk.d (4.4.7)
F - simbol FORTRAN-jezika, koji oznacava da radi mesovitom
broju (Fixed pOif:lt),
k - neoznacen , koji ukazuje kolona polja kartici,
d - decimalnih mesta brojnog podatka.
k biti tako odredjen da zadovoljava uslov
k ~.c + d + 2
(4.4.8)
2 - jedno mesto za znak broja, i jedno mesto za decimalnu tacku.
Decimalna tacka moze izostaviti kartici, i ! tome od
redjena opisom (4.4.7). Tako u slucaju relacija (4.4.8) ( oblik
k~.c+d+l (4.4.9)
Medjutim, ako postoji decimalna tacka kartici, nije u saglasnosti
opisom (4.4.7), tada prihvaceno mesto (lecimalne tacke kartici,
u opisu (4.4. 7). Tako, opis. F8. upisivati podatke u
riju racunara (lecimalnih mestn, za(!atih decimalnom tackom u
odgovarajucem polju k.ti.
Ako u polju registruju pozitivni bl'ojevi, moze izostaviti
mesto za znnk ,. ako izostavi i .t za d-inlnu tacku, to
r!:'Jacija (4.4.9) svodi
k ~ + (1 (4.4.10)
62 . rareza.oYic!
Za registrovanje vrlo i1i velikih brojeva oblik (4.4.7) nepo
godan, jer zahteva navodjenje svih cifara broja. U ovom slu~aju pogodno
koristiti obli:k
- simbol FORTRAN-jezika, koji ukazuje da radi meiiovitom
broju, zapisanom u eksponencijalnom obl1ku (Exponential form),
k - neozna~en broj koji uk:azuje broj kolona polja kartici,
d - broj decima1nih mesta brojnog podatka.
Konstanta zapisana u eksponencijalnom obliku registruje u polju
kartice, kao i ranije opisana mesovita konstanta s sto iza decimal
nih mesta broja navodi slovo , iza slova izlozilac broja 10. Tako
moze pisat1
sto odgovara decimalnom broju 17, 83.10-15. -Broj zapisan u eksponencijal
obliku zahteva polje
gde
(4.4.12)
6 - jedno mesto za znak broja, jedno mesto za decimalnu ta~ku, slovo
, jedno mesto za znak1eksponenta i dva mesta za dekadne c1fre
eksponenta.
Znak eksponenta moze izostaviti, ako eksponent pozitivan .
Slovo moze izostaviti, ali pri tome obavezno mora pisati znak eks
ponenta. Tako mogu regif!itrovati sledece konstante kartici:
-2. 14720
-2.147+20
+8. 14-02
8. 14-02
Mesoviti brojevl zapisani bez slova i eksponenta mogu blti uneti
opisa (4.4.11), ! se smatrati da eksponent nula.
.\JOritDd .1 pro,=r .... k1 ,Jezlk '·OR.TIUNIV . 63
Tako ' mo!e pisati
20.156
Svi navedeni primeri ~e u memoriji racunara biti registrovani u obliku
kretnog zareza, i predstavlja~e brC?jnu vrednost 20, 156.
4.4. 2. 3. Opis praznog polja
Vrlo cesto potrebno neke kolone kartice preskociti. Da
omogu~ilo uveden opis
gde
nx (4.4.13)
- simbol FORTRAN -jezika,koji oznacava .da r.adi opisu praznog
polja.
- neoznacen broj. koji ukazuje koliko kolona sadr!i polje koje
treba preskociti.
Za zadate vrednosti promenljivih .!. ~. i izra~unati vrednost
= (1 +32.4)(-2)
Velicina .! trocifren broj i nalazi kartici od 1. do;4. kolone.
Velicine ~ ~ i ~ sadrze 1 i 2 decimalna mesta i nalaze se na kartici
od 20. do 40. ko1one. pri cemu svaka zauzima 1 od 7 ko1ona. Izgled
kartice prikazan 1. 4. 4. 2 .
. L Q,
81.4.4.2
Program FORTRAN-jeziku ima slede6i izgled:
REAO(S,LOt I,,8, LO FQRMAT(I~,LSX,F7.2~F7.2,F7.21
Y·tA**1+32.4)*tB-2 •• t
u naredbi FORMAT opisana su polja kartici, sleva ciesno,
koja cine ulazni slog, uklwcujuc1 i polje koje od 5. do 19. ko
lone. Promenljive 1, , i dobijaju brojne vrednosti sleva, nadesno, ka
ko su zapisane u listi naredbe READ. Konstanta 2, u aritmetickoj naredbi
zapisana sa decimalnom tackom, sto znaci da u memoriji racunara
registrovana u obliku pokretnog zareza. N'a nacln, operacija mno
zenja 2. * izvodi se izmedju argumenata u pokretnom zarezu. Ako kon
stanta bila zapisana bez decimalne tacke, tj. aritmeticka naredba u obUku
tada konstanta 2 bila re gistrovana u memoriji racunara kao broj.
znacilo da pre 1zvodjenja operacije mnozenja 2*, konstanta
mora biti prevedena u oblik pokretnog zareza, potom izvr!!iena aritmetic
ka operacija mnozenja. 1 jedan i drugi oblik aritmeticke naredbe korek
t~n i dovodi do istog rezultata. ~[edjutim, ! oblik ( decitna1nom tac
kom) predstavlja l)oljl. zapl.s, takav aritmeticki izt'az bt'ze izra
cunat pri izvrsavanju pt'ograma n.
4.5. Izdavanje bt'ojne vrednosti promenljive
n vrednost promenljivc t'egl.stt'ovana u memot'l.ji racul\ara u
nn brojnom sistu, kao 1)1' ! kao u kt't[\ zarezu.
Binarn~ oblik nepogodan ·ZfJ. koriscenje od strane sit'eg bl'oj" lli
koji korisnici racunal'a. Zato potrebl\o prevesti iz bil\al'!\og u de
kadni brojni sistem, i ['ezu1tate i.zclati u dekadl\om sistu. Potpu
informacija izdavanju n vednosti promenljl.vih, izlazl\i organ,
sadrzi sledece:
- l I'lllivill cije n vredl\()sti zele i.zclati, kao i
- oblik izdaval\ja bl'ojnilt vI'cdl\ostl,
lgoritmi i progTams1d jezik FRRN lV 65
! deo informacije. imenima promen1jivih cije brojne vredno
sti ze1e izdati. zadaje izvr1!inom naredbom izlaza
gde
WRITE (i. j)li~ta (4.5.1)
WRITE - sluzbena . koja ukazuje da radi izdavanju brojnih
vrednosti promen1jivih;
kojem vrsi izdavanje rezultata. Za un IBM -360/44.
kada izlaz ! bu1!iacu kartica to 7. 1!itam
broj 6,
zima, cije se vrednosti izdaju.
Svakoj izvr1!inoj naredbi izlaza, kao sto naredba (4.5.1) pridruzu
jedna opisna FORMAT-naredba, koja sadrzi informacije obliku iz
davanja vrednosti promenljivih. izdavanja zadaje se istim 0-
pisima koji su sluzili za opis podataka kartici. sto sada opisuju
izgled 1!itampanog dokumenta bu1!iene kartice izlazu. Jedan 11i vise
dataka. koji se prenose izlazni organ cine izlazni slog. Duzinaizlaznog
s10ga zavisi od nosioca informacija kojem se vrsi upis informacija
izlaznom organu . Ako izlaz vrsi kartica, tada
maksimalna duzina izlaznog sloga 80 simbola, koji se mogu busiti u 80 ko-
10 jedne kartice. Ako se izlaz vrsi paralelnom stampacu, tada du
zina izlaznog sloga 120 tipografskih simbola ( moze biti i ! kod
nekih tipova stampaca), koji cine jedan red stampanom dokumentu.
gde
FORMAT(slog) (4.5.2)
za (4.5.1),
slog - niz oplsa koji definHiu izlazni slog.
lzdavanje izlaznog sloga paralelnom stampacu ~ahteva informacl
ju vertikalnom pomeranju papira stampacu. 'Qva 1nformacija sadr
zana u simbolu izlaznog ·sloga. ! simbol izlaznog sloga
ze se pojaviti jedan od simbola +, . ili 1 pri cemu imaju sledete znace -
nje:
- pomeranje papira za 2 nova reda, i
1 - pomeranje papira prvi red sledete strane.
Jedan od navedena 4 simbola mora se nalaziti pocetku izla.znog
sloga. Ako ovaj simbol nije obezbedjen prvimopisom u iz1aznom s1ogu,
treba ga navesti izmedju apostrofa jedan od opisa izlaznog s10ga.
Tako naredba
FORAT('b', 13, 2, 12. 5) (4.5.3)
formi"ra izlazni slog od 4 polja. pri cemu polje sadrzi jedan simbol
blanko, drugo polje sadrzi tri simbola za vrednost'celobrojne promenljive,
trete polje sadrzi d-va blanka i cetvrto polje 12 simbola za brojnu vrednost
realne ~romenljive. Prema tome, izlazni slog sadrzi 17 simbola. Kada
ovako form~ran izlazpi slog posalje paralelni stampa~, ! simbol
te upotrebljen kao komandni simbol za. vertikalno pomeranje papira
stampacu, i u ovom slucaju proizveste novi red stampanom dokumentu.
Osta1ih 16 simb()la izlaznog sloga bite stampani od pocetka reda. sleva
desno kako slede u izlaznom slogu.
4.5.1. Opis brojeva
lk (4.5.4)
1 - simbol koji ukazuje da se radi ce1im brojevima,
AlgoritmJ i prograll1s!d l IV 67
k - neozna~en broj. koji odredjuje broj mesta koji 6 zauzeti
brojna vrednoat izlaznom nosiocu inform~cija. broj ti
pografskih simbola Atampanom dokumentu. kada izlaz vr
! Atampa~u. odnosno. broj kolona kartice. kada izlaz vr-
8i b8a~ kartica.
Ako se izlaz vrsi Stampa~u i. pri tome brojna vrednost koja se Stam
prevazilazi duzinu k, odredjenu Stampanom dokumentu tada stampa k
zvezdica (*) u predvidjenom polju.
Najve6i broj koji moze biti registrovan u memorijskom registru
sadrzi 10 dekadnih cifara, ako se uzme u obzir i 1 mesto za znak:,.to ,,~
ci da format 111 uvek obezbedjuje korektno stampane vrednosti celobrojne
promenljive. Brojna vrednost Stampa desnoj strani predvidjenog
lja za stampanje, a"na levoj strani nevaze6e nule 8ta~paju kao medju
prostori (blanko). Znak broja Stampa se neposredno levo prve vaze6e
cifre pri ~em stampa znak (-) za negativne brojeve, znak + se ne
stampa. Prema tome, predvidjanjem ve6e duzine polja one koja
trebna za Stampanje brojne vrednosti moze obezbediti potreban broj -.
djuprostora (blanka) izmedju brojeva koji se Stampaju u jednom redu.
PrimeI"
Na kartici su zadata tri cela broja , i z. Broj busen od 10.
do 15., broj od 20. do 24 •• broj z od 52. do 54. kolone jedne kartice.
Uneti brojeve sa kartice i 8tampati paralelnom i!itampa~u. U ovom slu
potrebne su slede6e FORTRAN naredbe:
READ(5,40IIX,IY,IZ 40 FORMAT(9X,16,4X,I5,27X,131
WRITE(6,411IX,Iy,IZ 41 FORMAT(' ',16,18,161
u naredbi FORMAT sa obelezjem 40, opisi 9, 4 i 27 definisu
prazna polja kartici izmedju brojeva , i z. Naredba WRITE obezbe
djuje stampanje brojnih vrednosti promenljivih IX, IY i IZ redom sleva
nadesno opisima u FORMAT-naredbi sa obelezjem 41. Tako brojne
vrednosti promenljivih IX i IZ biti stampane opisu 16, promenljive
68 N. Parezanovi4!
opisu 18. Kako brojna vrednost promen1jive sadrzi 5 simbola kar
tici, opis 18 odredjuje polje od 8 simbola, to tri simbo1a, leve stra
ne polja biti neiskoriscena za prika:zivanje i sluzice za razmak iz
medju stampanom dokumentu. Slicno razmatranje vazi i za
men1jivu IZ. Stampani dokumenat imati sledeci izgled
ni znak (-),
Mesoviti registruje u memoriji u obliku poketnog zareza.
Ako se za izdavanje vrednosti realne promen1jive koristi opis
(4.5.5)
tada brojna vrednost izlazu biti u obliku:
gde Q} mesto za znakbroja, i to: simbol - za negativne i sim
bol za pozitivne . Oblik (4.5.5) izdaje vrednosti promenljivih u
vidu celobrojnog i razlomljenog dela. Celubrojni deo sadrzi maksimum k
_ d _ 1 tipografsko mesto, ako broj pozitivan, k - d - 2 tipografska
mesta, ako negativan. Razlomljeni deo sadrzi d dekadnih .
Prema tome, k
gde
(4.5.6)
Alpritmi i propam.1d Jez!t IV 69
2 - dn mesto za znak broja (znak negatlvnog broja izdaje se kao
simbol - , zi1ak pozlt1vnog s1mbol ), 1 jedno mesto za
dec1malnu ta~ku.
Ek.d (4.5.7)
gde
- mesto za znak broja, i to: simbol - za negativne brojeve, i -
bol za pozitivne brojeve,
- cifra dekadnog brojnog sistema,
d - broj decimalnih mesta,
k - ukupan broj s1mbola.
Ukupan broj simbola za izdavanje brojne vrednost1 opisom (4.5-. 7)
k.-d + 7 (4.5.8)
Ako u opisima (4.5.5) i (4.5.7) broj k definiAe an! broj s1mbola
od onog koji zahteva zapis brojne vrednost1. to 6 predvidjenoj duzini
k biti izdate zvezdice (*).
4.5. . Opis praznog polja
Razmak izmedju brojeva, sto vec videli, moze ostvariti
predvidjanjem ve6eg broja celih u opisima 1, F i1i . Medjutim, opis
nx (4.5.9)
definise ' izlazu prazno polje od medjuprostora, tako da ov1m opi
mogu definisati proizvoljni razmaci izmedju brojeva.
70 ~. ParC!zanovit
Primer
Na kartici nalaze brojevi 1, i u .sledetem rasporedu:
) od 1. do5. kolone broj 1 (opis 15),
) od 9. do 12. ko1one mesoviti broj (opis F7. 2),
) od 13. do 24. kolone mesoviti broj (opis 12. 5).
Sastaviti program koji te Uneti zadate brojeve kartice i staxpati:
READ(5,8) I,X,Y 8 FORMAT(I5,F7.2,E12.S)
WR I ( 6, 7 ) 1, , 7 FORMAT(' ·,I5,2X,F7~},2X,~12.5)
Za 1=18, =-24.5 i =0.3-20, stampani dokumenat i izgled
,8-24. 50. 30000-20, • -11'1' "1"-1'" • 15 2 F7.2 2 12.5
4.6. Proste linijske 'algoritam1!ke striture
4.6.1. Prekid rada program~ i fizicki kraj programa
Dosadasnje izlaganje FORTRAN-jezika omogutuje zapis prostih'linij
skih algoritamskih struktura. Medjutim, za korektan zapis algoritama na
FORTRAN':'jezikunedostaje mogutnost ukazivanja zadnji lgomski
korak u algoritmu. Ovo u FORTRAN-jeziku vrsi naredbom
STOP (4.6.1)
STOP - sluzbena , koja oznacava kraj rada programu,
- jednocifreni do petocifreni dekadni bez znaka.
U jednom programu moze se nalaziti vise naredbi STOP. Da se
omogucio uvid kojom od vise naredbi zavrseno izvrsavanje programa,
to uveden oblik (4.6.2), koji izdaje naredbu (4.6. 2) stampacu.
,\Igoritmi i pro,ram.ki jezi.k FORTRAN IV 71
Program zapisan FORTRAN-j~ziku. prevodi·se masinski jezik
izvrsavanja racunaru. prevodJenje vrsi rgrai za. prevodje
nje. u kOJi ~ao ulazni podaci u1aze naredbe FORTRAN-programa~ izlaz
ne velicine su naredbe u masinskom jeziku. Da prQgram za prevodjenje
dobio informaciju kada zavrseno prevodjenje i' zadnje naredbe FORTRA~
-programa. uvodi naredba
4.6.2. Primeri algoritama prostim liniki strukturama
Primer 1
jednoj kartici se nalaze brojne vrednosti promeDlj~vih l. X~. ;
4 i xs: u obliku F7. . Izracunati rezu1tat formuli
(4.6.4)
izlazu stampati zadate brojeve Xl. i = 1. 2 •••. 5. i rezultat .
l. 1. . 1. data graficka shema algoritma. FORTRAN-prog
ram ima sledeci izgled:
Y-((l+2)*3-4.S.l . WRITEC6,11) l,2,,~,S,
11 FORMATCI ',F1.,F9.3F9.,F9.,F9.,I9.7) STOP END
u naredbi FORMAT sa obelezjem 11 promenljiva l se stampa u
istom obliku u kojem se nalazi kartici. Ostale ulazne velicine stam
paju u obliku F9. , cime BU obezbedjena dva medjuprostora ~medju bro
jeva koji stampaju. 'Rezultat stampa u obli~ 19. 7. cime 0-
bezbedjen razmak od 5 medjuprostora u odnosu brojnu vrednost promen
ljive 5.
Primer 2
5astaviti program koji za zadatu vrednost - l' ,1, izracunava 10'1./·
formuli
'1./4 2 = 10 :::: 0,9994 + 0,5998 + , 170-3 . (4.6.5)
Neka vrednost argumenta zadata od 1. do 6. ko1one u obliku
F6.3. Na iz1azu stampati vrednost argumenta i vrednosti funkcije (4.6.5)
u obliku 12. 5. Na 1. 4.6.1. data blok-shema algoritma.
51.4.6.1
( 5,101
WRlE(6,151 , 15 FORMAT(' '.F6.,2,12.51
SJOP ENO
tmima sa prostim linijskim strukturama. U toku jednog izvrsavanja takvog
programa, svaka naredba sc izvrsi jedanput. Naredbe izvrsavaju odoz
go dole, kako slede u zapisanom nizu. Dolaskom naredbu STOP
prekida se dalji rad programu.
napomenuti da su navedeni primeri zapisanu u obliku progra