Mevludin Avdic-Fortan Programiranje Za Windows

Embed Size (px)

DESCRIPTION

fghtrgtr vfdgrerer

Citation preview

  • Dr sci. Mevludin Avdi6

    FORTRAN PROGRAMIRANJE ZA WINDOWSE

    Recenzenti:

    Dr sci. Jugoslav Stailov, red.prof. Tehnoloskog fakulteta u Tuzli Dr sci. Naser Prljaca, docent Fakulteta elektrotehnike i masinstva

    lzdavac: Rudarsko-geolosko-gradevinski fakultet u Tuzli

    Za izdavaca: red. prof. df sci. Sadudin Hodzi6

    TeJ.1nicka priprema i DTP: doc. dr sci. Mevludin Avdi6 i mr sci. IZlldin BaJrektarevic

    Stampa: DOO "COPY GRAF" - Tuzla

    Tiraz: 250 primjeraka

    ! --~------------.------------'~--.

    I I I

    CIP - Katalogizaeija U pllblikaeiji Naeionalna i univerzitetska biblioteka Bosne i Hercegovine, Sarajevo 004 . 432 .2 FORTRAN ( 075 . 8 ) 004 . 42 : 004 . 432 .2] (075. 8 )

    AVDIC, Mevludin S. Fortran: programiranje za Windowse I Mevludin

    S. Avdic. - Tuzla : Rudarsko-geolosko-gradevinski fakultet, 200 1. - 197. str. : i]ustr. , 24 em Bibliografija: str. [198-199] ISBN 9958-628-02-3

    COBISS/BiH-lD 9224198

    UNIVERZITET U TUZLI RUDARSKO-GEOLOSKO-GRADEVINSKI F AKULTET

    Mevludin S. Avdic

    TUZLA, 2001.

  • Napamena: Reprodukavanje (fotakopiranje iIi l1a bila kcijP'11acin njeno umnozavanje) iii ponavna abjavljivanje ove knjige, u cjelini iii dijelovima, nije dazvaljena bez"pretbodne izricite saglasnosti i pismenag adabrenja izdavaca.

    Predgovor

    Ova je knjiga namijenjena studentima RGGF-a, Univerziteta u Tuzli, kao i onima koji izucavaju FORTRAN programskijezik.

    Tzlazena materija abuhvata nekolika segmenata, koji magu predstavljati cjelinu, ali je prvenstveno orijentirana na sintaksi FORTRAN programskog jezika, sa tezistem na windaws apiikacije. Prije desetak godina rad sa FORTRAN-am, kaji nije imaa mnaga interfejsa sa astalim programskim jezicima, bio je sa V AX-FORTRAN-am. Danas je na nasim PC racunarima maguce koristiti nave verzije FORTRAN-a kaje su obagacene sa magucnastima interfejsa sa drugim programskimjezicima.

    Nave verzije pragramskog jezika FORTRAN amogucuju bagatu graficku podrsku (QWIN, zahvaljujuci API-ju), magllcnost kambinacije sa drugim pragramskim jezicima (Visual Basic, C, C++ i u okviru Developed Studia).

    Za strucnu pamac i sllgestije zahvaljujem recenzentima prof dr Jugaslavu Stahavu i dr Naseru Prljaci, te mr tzudinu Bajrektarevicu, mr Ruzi Celikavic mr Husrefu Bukvicll, Zeljku Kavacevicu, Celikavic Mevludinu,.

    Organizacija knjige Knj iga je napisana u cetiri dijela od koj ih svaki maze cla predstavlja

    ZaSebl1Ll cjelinu. Jedini zajednicki sadrzilac je FORTRAN pragramski jezik i to kompajleri: POWER STATION 1, POWER STATION 4 i DIGITAL FORTRAN (Visual FORTR~N).

    Uvadni dia knjige sadrzi asnavne elemente razvoja algaritma. Navedeni prirnjeri 11 ovom dijelu koristelli w i u drugom ciijelu.

    Drugi dio daje osnavne elemente programiranja za windawse sa pragramskim jezikam FORTRAN. Razradena je sintaksa avag programskog jezika U obimu koji je neapbodan za studente, a za korisnike koji rade, ili studente koji nastavljaju koristiti avaj programski jezik, date su tabelarna apisane funkcije i kratak opis magucnasti FORTRAN-a. Svi primjeri su za konzolnu aplikaciju.

    U trecem su dijelu ukratko oSl1avni elemenati racunarske grafike i karistenje FORTRAN-a za pisanje vlastitih pragrama. U ovam dijelu dato je teziste na "Qwickwin" i standardnu graficku aplikaciju.

    Kao posljednji dio dat je apis koristenja FORTRAN-a sa drugim programskim jezicima (Visual Basic i C++). Ovaj clio saddi kratak rezime avih programskib jezika, ali koristenje DLL ap likacije trazi ad karisnika poznavanje i jednag iii oba ava programska jezika pared poznavanja FORTRAN-a. Kratki i jednastavni primjeri amogucuju korisnicima da sa avim informacijama i mastam naprave vlastite karisnicke programe.

  • SADRZAJ

    Koristene skracenice

    I DVOD D RI\CDNARE 1. DVOD ................................................................. . 2. ISTORIJAT R4..CDNARA ......................................... 2 2.1 PODJELA RACUNARA ............................................ , 3 3. SAST A NI DlJELOVI RACUNARA ........................... 6 3.1 PREGLED KOMPJUTERSKOG HARD VERA I

    SOFTVERA ........................................................... 6 3.2 MIKROKOMPJUTERSKI SISTEMI .............................. 9 3.3 PROGRAMSKI JEZICI ............................................. 16 4. RAZVOJ ALGORITMA I PRA VLJENJE

    PROGRAMA ........................................................ 21 4.1 OSNOVNE PROGRAMSKE NAREDBE ........................ 22

    II FORTRAN-PROGRAMSKI JEZIK ZA WINDOWSE 1. DVOD ................................................................. 35 2. OSNOVNI ELEMENTI FORTRAN JEZIKA ............... 36 2.1 REDOSLIJED NAREDBI U FORTRAN-U ..................... 37 2.2 PRA VILA PISANJA PROGRAMA U FORTRAN-U ......... 38 3. TIPOVI PODATAKA U FORTRAND ......................... : 39 3.1 KONSTANTE U FORTRAN-U .................. :............... 39 3.2 PROMJENLJIVE U FORTRAN-U .............................. 40 3.3 OPERATORI U FORTRAN-U ...................... .............. 42 3.4 SISTEMSKE FUNKCIJE U FORTRAN-U ...................... _4c-:-4 __ ~, 4. NAREDBE ULAZA I IZLAZA: INPUT-OUTPUT ........ :. 49 4.1 OPISIV ACI ZA CIJELE VRIJEDNOSTI ........................ 52 4.2 OPISlV ACI ZA REALNE VRIJEDNOSTI ..................... 52 4.3 OPISIV ACI ZA KARAKTER VRIJEDNOSTI .. . . . . ... .. . ... .. 54 4.4 OPISIV ACI ZA STRINGOVE I KONTROLU ................. 55 5. NAREDBE KONTROLE OSNOVNIH

    ODLUCIVANJA .................... ............................... 56 5.1 BEZUSLOVNI PRELAZAK GOTO ................. ............ 56 5.2 USLOVNE NAREDBE I KONSTRUKCIJE

    GRANANJA ........................................................ 59 5.3 IF NAREDBA ....................................................... 61 5.4 IF STRUKTURA ................................................... 62 5.5 SELECT CASE. . .. . . . . .. . . . . . .. . . . .. . .. . . . . ... .. . . .. . . . . .... . . . . ... 65 6. PETLJE - CIKLICKE STRUKTURE ....................... 67 6.1 PETLJE SA BROJACEM ............ ......... .................... 67 6.2 USLOVNE PETLJE ........ ......... ............................... 71

  • 7. NIZOVI - INDEKSIRANE V ARIJABLE ................. .. 7.1 NAREDBE DEKLARISANJA NIZOVA ..................... .. 7.2 INPUT/OUTPUT NIZOVA ...................................... . 7.3 RAD SA NIZOVllVIA ........... '" ., .... ' ........ " .. , ...... , ... . 8. PROGRAMSKE JEDINICE ................................... . 8.1 GLA VNI PROGRAM ............................................ . 8.2 PROGRAMSKA JEDINICA FUNCTION ..................... . 8.3 PROGRAMSKA JEDINICA SUBROUT]J\i'E ................ .. 8.4 PROGRAMSKA JEDINICA MODULE ...................... .. 8.5 PROGRAMSKA JEDINICA BLOCK DATA ............... . 9. RAD SA DATOTEKAMA .......................... _ .. , .. 10. PRIMJERI FORTRANSKIH PROGRAMA ............... . 10.1 PRIMJERI FORTRANSKIH PROGRAMA IZ

    I DIJELA .......................................................... . 10.2 PRIM JERI IZ MEHANlKE ...... _ ......... _ ................... . 10.3 MJESOVITI PRIM JERI ........................................ .

    HI RACUNARSKA GRAFIKA SA FORTRANOM 1. UVOD ............................................................ .. 2. OSNOVNI ELEMENT! RACUNARSKE

    GRAFIKE ...................................................... _ .. 2.1 RA V ANSKE TRANSFORMACIJE ........................... . 2.2 PROSTORNE TRANSFORlVIACIJE ......................... . 2.3 GRAFIKA SA FORTRANOM (VISUAL FORTRAN) ... .. 3. GRAFIKA SA PAKETOM ARRAY VISUALIZER .. _ .. 4. GRAFIKA SA P AKETOM PLOT88 ................. " .... .

    ----_.

    XV FORTRAN I DRUGI PROGRAMSKI JEZICI 1. UVOD ......................................... _ .................. . 2. PROGRAMSKI JEZIK C/C++ ............ , ................. . 2.1 OSNOVA STRUKTURA C JEZIKA .................. " " ... 2.2 PROCES STV ARANJA PROGRAMA ....................... . 2.3 VISUAL FORTRANIVISUAL C++ ......................... .. 3. PROGRAMSKI JEZIK VISUAL BASIC ................... . 3.1 VISUAL FORTRANIVISUAL BASIC ....................... .

    INDEX

    LITERATURA

    72 73 81 8J 84 84 87 91 94

    a~ / !

    97 109

    109 113 l22

    129

    130 130 141 152 161 169

    177 178 179 180 185 191 193

    KORISTENE SKRACENICE

    AI ALU API ASCII BCD BIT BPC CAD CAE CAM CAP CASE CPS CPU DBMS DLL EBCDIC GL GUI HPGL IBM PC FPS RAM ROM SQL SVGA VDU

    - Artificial Inteligence - Arithmetic Logic Unit - Application Programming Interface - American Standard Code for Information Interchanae _ Binary Coded Decimal '" - Binary Digit - binarna citi'a - Business Planning and Control - Computer Aided Desing - Computer Aided Engineering - Computer Aided Manufacturing - Computer Aided Programming - Computer Aided Software Engineering - Couple Procesor Sistems - Central Procesing Unit - Data Base Management Systems - Dynamic Link Library - Exterded BCD Interchange Code - Generation Languages - Graphic User Interface - Hewlell Packard Graphic Language - International Business Machiness - Personal Computer _. Production Planing and Control - Random Acces Memory - Read Only Memory - Structured Query Language

    Super Visual Graphics Adapter -Visual Display Unil

  • 1. UVOD

    Ni jedan izum do danas nije toliko doprinio nauci i inzinjerstvu i izmijenio njihov tok kao sto je kompjuter. Kompjuter ima fascinantnu ulogu u svim naucnim clisciplinama. Digitalni kompjuteri (poznati sa oclomacenim nazivom kao kompjuteri - racunari) Llcestvuju Ll razlicitim "egzoticnim" granama za proracun trajektorija svemirskih broclova, upravljanja i vodenja zeljeznickog i avionskog saobracaja (Ll posljeclnje vrijeme - pocetkol11 2000. gocline i putnickog saobracaja - eksp. fazi), digitalnog prijenosa signala slike sa planeta naseg sustava koje su bilionima kilometara claleko, simultanog vodenja ratnih operacija, projektovanja i dizajniranja nuklearnih reaktora, rjesavanja problema biomehanike i ostalih disciplina nauke, tehnike, politike itd.

    Prvobitna cijena racunara i njihova primjena bila je clostupna samo oclrec1enol11 krugu pojedinaca iii firmi kojimaje budzet to omogucavao. Neke od inicijativa u siroj primjeni racunara su rezervacije za avionski i zeljeznicki saobracaj, prikaz bankovnog stanja, prevodenje sa jednog jezika na drugi, projektovanje elektricnih generatora, prijenos i distribucija, projektovanje grac1evinskih i rudarskih konstrukcija i objekata, optimalizacija velike skale ekonomskih i socijalnih sistema, kontrola biznisa, izrada horoskopa i astroloskih predvictanja, video igara (ukljucujuci sah), tekst-procesori, dijagnoze i predvidanje dogadaja, elektronske kOll1unikacije (ukljucujuci i telell1atiku), robotika, geoloski procesi, projektovanje podzell1nih objekata i projektovanje u grac1evinarstvu i masinstvu.

    Mnogi !judi posmatraju racunar kao imaginarnu stvar i ll1isteriozni predll1et koji "misli" i "rjesava" sve probleme sa kojima se susrecell1o. Jednostavno receno, kompjuter je sofistificirana elektronska masina, kao i sve druge !lIasi!le, sal!IO 5tO ona moze da clizajnira. CoYjek upravija kompjuterom, a ne kompjuter covjekom. KOll1pj uter izvrsava set instrukcija za odred~ni posao. Ne treba biti poseban naucnik iii savrsen matematicar da bi se bio programer.

    Program moze napisati inteligentna osoba koja razumije problem koji treba rjesavati i kodiranje (kompjuterski jezik) koje sluzi za kOll1unikaciju covjek - masina. Rad za poznavanje programiranja u bilo kojem programskom jeziku moze biti uspjesno okon6an za nekoliko sedmica sa intezivnom praksom od 3+4 sata dnevno.

  • FORTRAN programiranje za windowse

    2. ISTORIJAT RACUNARA

    Do nedavno rjesavanje proracuna, osim vrlo jednostavnih, nije bilo moguee, jer su !judi za ove postupke upotrebljavali deset cifara (0-9). Prvi komk prema razvoju mehanickih uredaja za racunanje, a istovremeno i kljucni korak u razvoju matematike, predstavljala je pojava razlicitih nacina fizick~g oznacavanja i zapisivanja. Najranija forma fucnog pomagala za racunanje je "Abacus". U kratkim crtama opisat ee se evolucija racunara:

    ,/ Abacus - prema nekim izvorima napravljen je prije 5000. god. u Kini, a neke verzije koristene su u Japanu i zemljama Evrope. .

    ,/ Pascal - napravio je prvi mehanicki kalkulator za sabiranje i oduzimanJe 1642. god.

    ' N;lpier - dao je poj

  • FORTRAN programiranje za windowse

    2.1 PODJELA RACUNARA

    U oclnosli na konstrukciju, nacin rada i primjenu razlikuju se tri tipa racunara: digitalni, analogni i hibridni racLlnari.

    Analogni meunari se primjenjuju u optimalizaciji regulacionog upravljanja kompleksnim tehnickim procesima. Rade sa neprekidnim velicinama. U elektronskom analognom racunaru matematicke promjenljive iIi fizicke velicine, predstavljene SLl analognim elektricnim naponom iii strujom. Umjesto ispitivanja postavljenog problema vrsimo ispitivanje analognog elektricnog model a koji se formira na analognom elektricnom racunaru.

    . Ovi racLlnari se danas sve rjede upotrebljavaju, prvenstveno zbog njihove cijene.

    Na slici 1.1 je prikazan analogni racLlnar TARA koji sluzi za rjesavanje problema provjetravanja rudnika i/ili protoka Huida.

    Slika 1.1

    Digitalni racllnari rade na principu vrlo brzih diskretnih elektricnih impulsa sa vrlo visokom lIcestaloseu. lmpulsi slijede po jednom logickom redu koj i je strogo odreden postavljenim programom. Danas se ovi racunari sve vise lIpotrebljavaju u svim segmentima zivota i rada, i sve brZe razvijaju.

    Hibridni meunari su kombinacija analognih i digitalnih racunara. S obzlrom na to da se za upravljanje tehnoloskim sistemima i obradu

    digitalnih podataka koristi digitalni racunar, to eemo analiziOrati nacin rada samo ovog tipa racunara, pri cemu se naglasava da se termin "racunar" odnosi na ovu vrstu racunara.

    Prema velicini, racunare mozemo podijeliti na: ./ Mini racllnari - su , u principu, mali opstenamjenski kompjuteri. Oni su u

    prosjeku moclliji od mikrokompjutera, a slabiji od velikih i super-kompjutera. Ipak, najmoeniji mikrokompjuteri su jaci i od nekih mini-

    4

    Uvod u racunare

    kompjutera, a najmoeniji minikompjuteri su jaci od nekih sllperkompjutera. ani su se pojavili sredinom 60-tih godina, a veoma rasirili krajem 60-tih i pocetkom 70-tih godina zbog rapidno rastueeg trzista kompjutera i potraznje za njima. Hardverski gledano, minikompjuteri imaju sve kvalitativne karakteristike velikih kompjutera, S tim da su obicno nesto kvantitativl10 oslabljeni. Sitematski softver za minikompjutere ukljucuje niz veoma moenih i razvijenih operativnih sistema i sistema za upravljanje bazama podataka, kao i niz prevodilaca za kompjuterske jezike (FORTRAN, COBOL, PASCAL, itd.)

    -./ Veliki kompjuterski sistemi - climenziono Sll veei i mocnlJ! od minikompjuterskih sistema. To, naravno, vrijedi kada uzimamo tipicne predstavnike tih klasa kompjuterskih sistema. Njihova snaga se ogleda u slijedeeem:

    I. Posjeduju jedan iii vise veoma moenih procesora (32 - bitnih iii jacih ) koji rade na veeim brzinama (reda desetina miliona instrukcija u sekundi).

    2. Imaju veci kapacitet prinlarne 11lelTIOrije (reda nekoliko 111egabajta) i veiiki kapacitet medija sekundarne memorije (nekoliko desetina gigabajta memorije u magnetnom disku).

    3. Sposobni su da usluzuju nlnogo korisnika istovrel11eno, posto istovremeno mogu iZVfS(lVati nekoliko program a i kontrolisati veei broj ulaznihlizlaznih jedinica.

    Dok se mikrokompjuteri koriste za obradu fJodataka za samo jednog za manje grupe iii organizacije, veliki

    sistemi se koriste da bi zadovoljili potrebe de5etina i "totina Korisnika u velikim organizacijama koje su liZ to i prostorno distribuirane.

    i tipovi racunara koj i imaju svoje glavne specificnosti, a to su:

    -./ Superkompjuteri (Supercomputer) - predstavljaju posebnu klasu izuzetno mocnih kompjuterskih sistema. Manji broj slIperkompjutera se namjenski izradi godisnje, i uglavnom se koriste za potrebe armija, meteoroloskih i naucnih zavoda i 51. Vodeei pro izvodaci superkompjutera su:' Cray Research, sa modeJima Cray I, Is, X-MP i Y-MP, te Control Data Corporation sa razlicitim modelima Cyber. Cijene ovih kompjuterskih sistema variraju, idu i do 15 miliona $.

    ./ Opstenamjenski kompjuteri (General - purpose computers) - koji sluze za obradu informacija i koji su konstruisani za sirok spektar primjene. Nekad je daleko ekonomicnije kreirati specij

  • FORTRAN programiranje za winciowse

    robotoll1 iIi ll1ikrotalasnO!Tl peenicom, iii pak kompjuter koji cita etikete na proizvodill1a iii kreditne kartice sa magnetnim zapisom.

    Mnogi se kompjuteri cetvrte generacije mogu klasifikovati kao multiprocesorski kompjuterski sistemi (Multiprocessor computer systems). Za obavljanje svojih operacija ne koriste jedan CPU, vee vise njih.

    Meau najznacajnije tipove multiprocesorskih sistema spadaju: v' Sistemi sa pomoenim procesorom (Support processor systems). Kljucno 1I

    ovom konceptu muitiprocesorskih sistema je koristenje mikroprocesora za obavljanje pojedinih vaznih funkcija obrade, kao 5to je ulazliz!az, kontrola urectaja za sekundarnu memoriju, komunikacija. Tako se oslobada glavni procesor (koji se nekada naziva i instrukcionim procesorom) za obavljanje kliucnih zadataka obrade.

    v' Sistemi sa spregnutim procesorima ( Couple procesor systems). Ovaj dizajn podrazumijeva kori5tenje nekoliko razlicitih ravnopravnih CPU-ova, koji dijele zajednicke memorijske resurse.

    v' Grupe specijalizovanih procesnih sistema (Subsidiary processing systems). Ova zamisao predstavtja udruzivanje autonomnih kompjuterskih sistema, koj i se organizuju u zeljenu hijerarhiju, sa fiksiranim zadacima.

    v' Distribuirani procesni sistemi (Distributed processing systems) predstavljajn mrezllo spregnute nezavisne kompjuterske sisteme, koji 1110gU biti organizaciono i prostorno disperzirani unutar organizacije.

    3. SASTAVNI DIJELOVI RAC:UNARA

    3.1 PREGLED KOMPJUTERSKOG HARDVERA I SOFTVERA

    Kompjuterski hardver sastojise od opreme koja cil1i kompjuterski sistem, kao i ulazno-izlaznih i memorijskih medija (kao 5to su magnetna traka iIi diskovi) koji su stvarni, opipljivi materijali na koji se podaci zapisuju. Hardver se moze podijeliti na slijedeee glavne kategorije.

    Procesor kompjutera Primarna hardverska jedinica kompjuterskog sistema je CPU, koja se

    zove i mikroprocesorom kod mikrokompjuterskih sistema, ALU kontrolna jedinica i primarna memorijska jedinica, zatim drugi specijalizovani ureaaji kao 13to su bafovi i ulazno-izlazni portovi. Mnogi savremeni kompjuterski sistemi ukljucuju dodatne specijalizovane procesore (kao sto su aritmeticki i ulaznil izlazni procesori) koji pomazu CPU u izvrsenju zadaiaka.

    6

    Uvod u racunare ------------------------

    Periferna oprema i mediji (nosioci podataka)

    Kategorija hardvera ukljucuje sve uredaje koji Sll izvan sistema iii su (iii mogu biti) ONLINE - u sklopu sistema, tj. elektronski povezani i kontrolisani od CPU. Periferali ukljucuju siroki opseg ulaznih/izlaznih oprema (kao 5tO su na primjer video-terminali za prikazivanje). Mediji za perifernu opremu sastoje se primarno od magnetnih diskova i traka, kao i papirnih dokumenata.

    , , , , ,

    , ,

    , , , , , , ,----------------- -----

    DATA SIGNAL! KONTROLNI SIGNAL!

    GLAVNA MEMORJJSKA

    JEDINICA

    KONTROLNA JEDINICA

    ARITMETICKA LOGICKA

    JEDINICA (ALU)

    ,

    , , , ,

    , , , ,

    - ______ - __ -----------.1

    ---- ------ --- --~- ---, ,

    CPU [ KON~OLA

    Slika 1.2 Sastavni dijelovi hardvera

    Pomocna opl"ema i mediji

    Ova kategorija ukljucuje opremu kojaje offline - nezavisna, tj. oprema kojaje odvojena i nije pod kontrol0111 CPU. Pomoena oprema pomaze funkciju lliaza, izlaza i memorisanja kompjuterskog sistema i ukljllcuje: (I) offline opre11111 za unos podataka (priprema lllaza) kao sto su busaci traka iIi disk masine koje pretvaraju podatke sa izvornih dokumenata na magnetne ulazne medije za kasniji ulaz u kompjuterski sistem, (2) offline oprema za izlaz i memorisanje, kao 5tO Sll ureaaji za kopiranje i razvrstavanje, (3) nosioci obradenih podataka kao 5to su papirni formulari koji se koriste u radu kompjuterskog sistema.

    Mnogi tipovi kompjuterskih periferala i medija mogu se koristiti i za ulaz i za sve tri funkcije lliaza, izlaza i sekundarnog memorisanja. Npr. oprema

    7

  • FORTRAN programiranje Z(l windowse

    magnetnog diska koristi magnetne diskove kao nosioca podataka i izvrsava sve tri funkcije ulaza, izlaza i sekundarnog memorisanja.

    Kompjuterski terminali se sastoje od tastature za direktan unos podataka u kompjuterski sistem i CRT video ekrana za direktni pnkaz vlzuelnog lzlaza. Oni se zovu ulazno/izlazni uredaji.

    KOMPJUTERSKI SOFTVER ukljucuje sve tipove program a koji daju naredbe i kontrolisu kompjuterski hardver kod izvrsenja funkcija obra?e informacija. Kompjuterski softver moze se podijeliti u dvije glavne kategorIJe: sistemski softver i aplikacioni softver.

    Kao primjer mozemo navesti slijedece program~ke pakete: . ,/ Sistemski softver - programi koji kontrolisu ! podrZavaJu operacije

    kompjuterskog sistema. 'v' v ,/ Operativni sistem -integrisana grupa program a koj i kontrollsu I podrzavaJu

    operacije kompjuterskog sistema dok se izvrsavaju apllkatlVI1l programl korisnika. ..

    ,/ Sistemi za upravljanje bazom podataka (DBMS) - grupa program,~ kO}1 kontrolisu kreiranje, oddavanje i upotrebu baze podataka, memonsal.11h podataka i informacija kojima se moze pristupiti preko nekollko korisnikovih aplikacija. ..

    ,/ Prevodilac programskog jezika - program koji prevodi instrukclJe programa napisane u programskom jeziku, kao npr. BASIC iIi FORTRAN u bl~arnobazirane kodove instrukcija masinskog jezika koje racunar. moze ?a izvrsava. On korisnicima i programerima omogucava da pisu svoJe vlastlte programe.

    APLIKACIONI SOFTVER - programi koji daju direktive za obradu pojedinacnog posla iii aplikacije kompj:ltera .. Aplikacioni softve~, iy aplikacioni programi, od~eauje trazel:e .aktlvno~tl ?br~de za kOl~pletlr~:lJI~ specificnih zadataka kompJutersklh kons111ka. AplIkaCIOl1l softver ~e cesto dlJed na poslovne aplikacione programe, naucne aplikacione programe I razne drul?e kategorije aplikacionih programa. Primjeri mogu biti kontrol.a ll1ventara, Jil programi obrade placanja u pos\ovima, i inzenjerstvu,. I. progra.I::1 za kompjuterske - pomocne instrukcije ili video igre U obrazovanJu I rekreaclJl:

    ,/ Paket elektronskih prikaza obrazaca - program koji prika~uje obrasce iIi redove i kolone u koje korisnik moze upisati podatke I formule kOJe predstavljaju model korisnikovog problema. Program zati~ ~utoma~s~~ maniPlllise podacima U obrascima prema komandama kons111ka, daJucl odlicno sredstvo za analizu i planiranje.

    ,/ Paket za obradu teksta - program koji automatski.~ Jreira, ureduje i stampa dokumenta (pisma, izvjestaje, itd.), elektronski obradujuci tekst podataka (rijeci, fraze, recenice, i s1.) za korisnika.

    8

    Uvod 1I racunare

    ,/ Paket za pracenje poslovanja - programi koji vrse potrebne aktivnosti obrade informacija za opsta racunanja iIi druge poslovne funkcije. Primjer su analize placanja, potraznih i dugovnih racuna, kontrole inventara, opsta racunanja glavne knj ige i obrade plata.

    Svi kompjuterski sistemi funkcionisu na Istlm princlplma, ali i pored toga meau njima postoje znacajne razlike u vezi sa unutrasnjom organizacijom i procesnom snagom. Stoga se mogu podijeliti na osnovu nekoliko kriterija: ,/ Po velicini - na mikrokompjutt;re, mini-kompjutere, velike i super-

    kompjutere, ,/ Po vrsti - na digitalne i analogne kompjutere i hibridne ,/ Po namjeni - na opstenamjenske i specijalizovane

    Kompjuterskim sistemima se cesto daju imena, kao sto su: personalni kompjuteri , mali poslovni kompjuteri , naucni kompjuteri iii multiprocesorski kompjuteri.

    3.2 MIKROKOMPJUTERSKI SISTEMI

    Od 1975. godine, bda su se pojavili u elektronici, mikrokompjuteri su presli ogroman put i postali uobicajena licna i poslovna potrepstina. Danas se mogu nabaviti u raznim oblicima: od cipova, dzepnih kompjutera, kompjutera velicine sveske, sve do velicine aktovke iii tv-aparata.

    Mikrokompjuter se sastoji od mikroprocesora i odgovarajuce elektronike za funkcije kontrole, memorije, i ulaz/izlaz, kojaje smjestena ujednom cipu.

    Po velicini se razlikuju: mikrokompjuteri na jednom cipu, dzepni mikrokompjuteri, rucni mikrokompjuter, mikrokompjuteri velicine sveske, mikrokompjuteri koji staju na krilo-Laptop, mikrokompjuteri koji se mogu transportovati i stoni mikrokompjuteri.

    S obzirom na namjenu, mikrokompjuteri mogu biti specijalizovani, kucni, personalni, profesionalni, mali poslovni, i radne stanice. Medutim, danas je za mikrokompjutere najpopularnije ime personalni kompjuter, zbog toga sto se oni koriste svuda, u kuci, u skoli i na poslu .

    Gd velicine, vrste i namjene mikrokompjutera zavisi hardver kojim ce oni biti opremljeni. Ipak, najcesca je organizacija hardvera kao na slici 2.6. Naravno, treba imati na umu da je i mikrokompjuter kompjuterski sistem. Drugim rijecima, on mora posjedovati hardver koji omogucava obavljanje osnovnih funkcija sistema za obradu informacija - ulaz, obrade, izlaz, kontrole i memorisanja: -/ Ulaz se sastoji od tastature, ekranskog misa i drugih uredaja. ,/ Gbrada i kontrola se vrse u glavnom dijelu sistema, koji sadrzi

    mikroprocesor i kontrolnu elektroniku.

    9

  • FORTRAN programirallje za windowse

    ./ Memorisana primarna memorija se sastoji od ROM i RAM cipova u glavnom dijelu sistema, sekundarna memorija se sastoji od uredaja za flopi diskove, urectaja za fiksne diskove i drugih ureaaja, koji mogu biti iii dio glavnog dijela sistema iIi spolja prikopeani.

    .,/ Izlaz se vrsi koristenjem video-monitora i printera (uz generator zvuka i ostale uredaje).

    Da bismo stekli bolji lltisak 0 tome kako mikrokompjuter funkcionise, pogledajmo jedan IBM PC kompatibilni kompjuter. Integrisana kola (eng. integrated circutis - iii eipovi), koja su u njega ugractena nalaze se u plastienim kl1Cistima koja su iJi zalemljena na stampanu ploeu iii mehanicki uglavljena u lezista koja su sama zalemljena za maticnu ploeu. Meausobno su povezana elektricnim vodovima, a tu SLI otpornici i kondenzatori. Glavna komponenta je eip koji sadrzi mikroprocesor, U ovom slucaju tipa Intel 80486, veoma visokih performansi. Radni takt ovoga mikroprocesora je 33 MHz (megaherca-miliona ciklusa u sekundi).

    MIKROPROCESOR GLA VNA MEMORlJA

    /-Z~7l!]lUJ Itt 1

    DRUGI SISTEl'vlSKI KONTROLERJ

    I UREflA.Jl

    SJSTEMSKi BUS (clat~ bus - address bus - control bus)

    t 1 1 t t I 'if Tastatura Video Paraielni Flopi interfejs clisplej inrerfe:js disk kontroler kontroler kontroler kontroler I !

    Slika 1.3 Hardver mikrokompjuterskog sistema

    Memorijski cipovi PC kompjutera sadrze 32 KB (Kilobyte - kolieina od 1024=2 10 bajta). Najveci dio eipova memorije za citanje i pisanje se koristi za smjestanje aplikacionih programa i korisnikovih podataka.

    Mikrokompjuteri koriste ROM iii RAM cipove za primarnu memoriju. Kapacitet primarne memorije se tipicno mjeri stotinama kilobajta iii megabajta. Pri tome se velieina memorije sastoji od RAM eipova. U RAM memoriji se smjestaju podaci i programi koje mikrokompjuteri izyr.savaju za korisnika. U ROM memoriji, koja se ne moze pisati, tj. modifikovati, cuvaju se odreaeni dijelovi operativnog sistema koji treba da budu na usluzi sve vrijeme rada mikrokompjuterskog sistema. Najpopularniji mediji sekundarne memorije za mikrokompjutere su magnetni diskovi, bilo diskete iIi fiksni diskovi. Kapaciteti 10

    Uvod u racunare

    disketa idu od nekOliko stotina kilobajta do jednog iii dva megabajta, a kapaciteti hard diskova od nekoliko desetina do nekoliko stotina megabajta. Najeesci primjeri oba tipa medija magnetnih diskova Sll 5,25 i u zaclnje vrijeme sve cesce 3,5 inca. Za smjestaj podataka PC kOlllpjuteri se opremaju i dr. medijillla kakva je magnetna traka iii strimer, eiji je kapacitet ogroman. N,~jcesca ulaznajeclinica za mikrokompjutere je tastatura. Ona je iIi zaseban ureaaj iii je fizieki ukomponovana u glavnu jedinicu mikrokompjutera. Pored standardnih postoje i nUlllericke tastature za brzi lInos poclataka, zatilll kursorski i funkcijski tasteri. Pristup komunikaciji korisnika sa kompjuterom moze se vrsiti i preko drugih ulaznih jedinica vecinom vezanih za kontrolu. To je u stvari kursor iIi pokazivac kojeg po ekranll pOllljeramo uz POlllOC misa. Pored misa, za istu svrhu moze se koristiti i svjetlosna olovka, graficki tablet, ekran osjetljiv na dodir, palica za igru i dl'.

    Najcesca mikrokompjuterska hardverska izlazna jedinica je vizuelni displej.

    Drllga vazna izlazna jedinica je printer, koj i sluzi za dobijanje rezultata u stampanoj formi. Najcesce se koriste matricni, lepezasti, ink - dzet, i termalni printeri. Pored ovih vrsta printera za prirllcno stampanje se sve vise koriste laserski printeri.

    Druge izlazne jedinice SlI sintetizatori zVllka i govora. Modem se moze koristiti kao ulazno-izlazna jedinica za komunikaciju dvaju kompjutera.

    Kao sto je slueaj sa svim kompjllterima, tako je i hardver bezivotan bez softvera. I ovdje softver ima dvije komponente: sistemski i aplikacioni softver. Najvaznij i paket sistemskog softvera je operativni sistem. Meau najpoznatije operativne sisteme kod danasnjih mikrokompjutera spadaju: MS-DOS, UNIX, OS/2, Windows, System17, QNX, NeXT. Druga vazna grupa sistemskih programa su prevodioci kompjuterskih jezika, kako im samo ime kaze prevode programe pisane u nekom oel kompjuterskih jezika (C, Pascal, FORTRAN, COBOL, itd.) u masinski jezik koji "razumije" CPU.

    Slijedeca vazna vrsta sistemskih programa za mikrokompjutere su sistemi za upravljanje bazama podataka (DBMS). Oni olaksavaju i standarelizuju stvaranje, oddavanje i koristenje baze podataka. Popularni DBMS paketi za mikrokompjutere su: dBASE III+, Clipper, Clarion, Fox Base, Paradox, Oracle, SQL i dl'.

    Tri su osnovna tipa DBMS ito: ./ Hijerarhijski ./ MreZni ./ Relacioni

    Postoji mnogo paketa aplikacionih softvera koji se mogu koristiti na danasnjim mikrokompjuterima, a neki od njih sluze za: ./ Obradu dokumenata - programi koji automatizuju kreiranje, modifikaciju i

    stampanje dokumenata elektronskom obradom tekstualnih i slikovnih podataka.

    11

  • FORTRAN programiranje za windo~vse

    ./ Elektronske tabelarne proracune - programi koji prikazuju tabele u cije celije, poredane u redove i kolone, korisnici mogu ubacivati podatke i formule, kreirajuci model svog problema,

    ./ Graficke primjene - kompjuteri su sposobni pretociti grupe tekstualnih podataka u tabele, dijagrame i os tale vrste prikaza. Ovdje spadaju paketi kao 5to je Harward Graphics, Corel Draw, PhotoPaint i dr.

    ./ Rad u integrisanom okruzenju - postoji niz, za korisnika veoma ugodnih, radnih platformi koje povezuju i omogucavaju istovremen rad raznih komplikacija. Takve platforme naJcesce su: Presentation Manager operativnog sistema OS/2 na PC kompjuterima, GEJ\:I na Macintoshovom operativnom sistemu Systeml7, te odgovarajuce komponente operativnog sistema Windows i NeXT.

    ./ Opste poslovne primjene - kompjuterski programi za takve primjene su obracuni plata, analiza prodaje, vodenje inventara itd .

    ./ Zabava i hobiji - jedan od cestih vidova upotrebe mikrokompjutera za mnoge korisnike postale SLJ igre. Mec!u igrama se mogu naci i one koje jacaju logicko razmisljanje, prostorno snalazenje, brzinu reakcija i dr.

    ./ Kucne primjene - u voc!enju domacinstva takoc!e se mogu koristiti l11ikrokompjuteri. Npr. vOdenje evidencije 0 placanju racuna, utrosku struje, vode i dr.

    ./ Obrazovanje i licni razvoj sa sirokim spektrom programa koji se mogu naci u raznil11 dOl11enima takoc!e se mogu upotrijebiti l11ikrokompjuteri za sire obrazovanje.

    Memorisanje informadja u memorijskoj jedinici (binami sistem, oktalni sistem, heksadecimalni, 32-bitni)

    Rinarni sistem brojeva

    U obicnom radu, iIi dosadasnjem radu, koristili smo decimalni sistem brojeva koji se sastoji od brojeva 0,1,2,3,4,5,6,7,8,9 na osnovu kojih mozemo napisati bilo koji broj. Svakom broju odgovara odreaena potencija od baze 10.

    Npr. Broj 357,06 3 102 + 5 . 101 + 7.10 + O 10-1 + 6 .10-2

    Binarni sistem je mnogo jednostavniji i sastoji se od sarno dva znaka: 0 i 1. Za razliku od decimalne jedinice upotrebJjava se rimska oznaka I iii slovo L.

    Prirnjer: Binarni znaci nazivaju se BIT (BINARY DIGIT) 0=0 =0 2=1 =1 21+=2 =IO

    12

    i+21=3 =II 4=100 5=101 6=IIO

    Uvod u racunare

    Prednost ovog sistema jeste u tome sto je prilicno jeclnostavan, jer se sve 4 racunske operacije mogu svesti na sabiranje i oduzimanje. Binarni brojevi su 3,3 puta cluzi od obicnih i imaju 3,3 puta vise znakova. Medutim, to SLl jedine mane, ali Ll primjeni racunara prednosti su visestruke.

    Binarni znakoviu racunaru ostvaruju se kao elektricni signali kod kojih je jedinica pozitivni napon, a binarne nl1le nulti napon, tj. bez napona, a ti znaci su u racunaru upisani na principu magnetizma.

    Oktaini i heksadecimalni sistem brojeva

    Posto je binarni broj duzi od decimalnog, daje nepregledan i nepogodan za citanje, onda se umjesto binarnog sistema koristi oktalni iIi heksadecimalni sistem brojeva. Njime se koristimo kad zelimo interpretirati iii raditi sa binarnim brojevima, npr. zelimo dati sadrzaj memorije (DUMP). Okta1nim brojevima je baza 8, a heksadecimalnim brojevima je baza 16. Na taj nacin jedna okta1na zamjenjuje tri binarna, ajedna heksadecimalna cetiri binarna znaka.

    Oktalni sistem brojeva koristi znake 0-7,a proizvoljan se broj predstavlja zbirom proizvoda tih znakova i odgovarajuce potencije od baze 8.

    Primjer: 423(8) =4.8 2 +2.81 +38 =256+16+3=257(10)

    Da bi se oktalni broj pretvorio u binarni potrebno je svaki oktalni znak pretvoriti U odgovan0uci troznamenkasti binarni broj.

    465 (8) = 100 no WI

    Heksadecimalni sistern brojeva irna za bazu 16 i sastoji se od: 0, 1,2,3, 4,5,6,7, 8, 9, A, B, C, D, E, F.

    Primjer: 3EC(16) = 3.16 2 + 14 .161 + 12 .160 = 1004(10)

    13

  • FORTRAN programirwrje za windowse ___________ u =-_vo,-,d-,-,,-u-,--r=ac:..:~l=tn:..:.a=r=e __________ _

    Tabela !.1 I 33 00100001 41 21 90 OlOllDlO 132 SA " 34 00100010 42 22 127 01111111 177 7F # 35 00 I OO() II 43 23 123 01111011 173 7B

    A 65 01000001 101 41 193 I I OO()OO I 301 CI $ I 36 I 00100100 44 24 91 01011011 133 5B % 37 00100101 45 25 108 01101100 154 6C

    I

    & 38 00100110 46 26 80 01010000 120 50 B 66 01000010 102 42 194 110000 I 0 302 CH C 67 0100001 I 103 43 195 I 10000 I I 303 C3 D 68 01000100 104 44 196 I 1000 I 00 I 304 C4 39 00100111 47 27 125 01111101 175 7D

    ( 40 00101000 50 28 77 01001101 lIS 4D ) 41 00101001 51 29 93 01011101 135 5D

    E 69 0100010] 105 45 197 11000 I 0 I 305 C5 F 70 OlOOOllO 106 46 198 11000110 306 C6 G 71 01000 I I I 107 47 199 I 100 II I 307 C7 H 72 01001000 110 48 200 I 100 I 000 310 C8 42 00101010 52 2A 92 01011100 134 5C

    + 43 00101011 53 2B 78 01001110 116 4E comma, 44 00101100 54 2C 107 OliO 10 11 153 6B minus - 45 0010110 I 55 2D 96 01100000 140 60

    T i 73 01001001 I I I 49 201 1100 I 00 I 311 C9 J 74 0100.1010 102 4A 209 11010001 321 I DI K 75 0100101 I 113 4B 210 11010010 322 D2

    46 00101110 56 2E 75 01001011 113 4B / 47 00101111 57 2F 97 01100001 141 61

    58 OOIIIOID 72 3A 122 OllllOlO 172 7A 59 00111D11 73 3B 94 01011110 136 5E

    < 60 00111100 74 3C 76 o 1 00 II 00 114 4C -

    61 00111 101 75 3D 126 OIl I I 110 176 7E > 62 0011 I I 10 76 3E 110 01101 I 10 156 6E

    I L 76 01001100 114 4C 21 I IIOIOOll 323 D3 ! M 77 01001101 lIS 4D 212 11010100 324 D4 N 78 0100 I I 10 116 4E 213 11010101 325 D5 0 79 OIOOlIII 117 4F 214 IIOlOllO 326 D6 P 80 I 01010000 118 50 215 I 10 101 II 327 D7 -~ Q 81 01010001 121 51 216 11011000 330 I D8 : R 82 01010010 122 52 217 110 II 001 331 D9 S 83 010 lOO I 0 123 53 226 I 101 1000 342 E2 '? 63 00 I I I I I I 77 3F I I I 01101 I I I 157 6F

    @ 64 01000000 IDO 40 124 01111100 174 7C [ 91 01011011 133 5B - ------------ -

    T 84 0101001 I 124 54 227 II lOOOI J 343 I E3 U , 85 OIOIOIOI 125 55 228 11 100l 00 344 E4

    [ \ 92 01011100 134 5C 224 I 11100000 340 EO I V 86 01010! 10 126 I 56 229 1] lOO 10 I 345 65 W 87 01010111 127 57 230 11100110 I 346 E6 I 1 93 01011101 135 5D - ------------- - -X 88 01011000 130 58 231 I I I 100 III 347 E7 1\ 94 01011110 136 5E - ------------- - -

    - 95 0101111 1 137 SF 109 01101101 155 6D Y 89 01011001 13 I I 59 232 I I 101000 350 Ell Z 90 01011010 132 5A 233 11101001 351 E9 - 96 o I 1 00000 140 60 - ------------- - -

    0 48 00110000 60 30 240 11110000 360 FO a 97 01100001 141 61 129 10000001 201 81

    I 49 0011000 I 61 31 241 I II 10001 361 FI b 98 o 11000 10 142 62 130 10000010 202 82

    2 50 00110010 62 32 242 111]0010 362 F2 c 99 ! 01100011 143 63 131 10000011 203 83 3 51 00110011 63 33 243 1]110011 363 F3 I d 100 01100100 144 64 132 10000100 204 84 4 52 00110100 64 34 244 I III IOIOO 364 F4 e 101 01100101 145 65 133 10000101 205 85

    5 53 00110IOI 65 35 245 11110101 365 F5 f i 102 01100110 146 66 134 10000110 206 86 'J 103 01100111 147 67 135 100001li 207 87 b I 6 54 00110110 66 36 246 I I I 101 10 366 F6

    7 55 00110 III 67 37 247 J U 101! I 367 F7 h 104 01lO1000 150 68 I 136 10001000 I 210 88 8 56 00111000 70 38 248 11111000 370 F8 i 105 01101001 151 69 137 10001001 211 89 9 57 00111001 71 39 250 11111001 371 F9 J 106 01101010 152 6A I 145 10010001 221 91

    Blank 32 00100000 40 20 64 01000000 100 40 I k 107 01101011 153 6B 146 10010010 222 92

    14 15

  • FORTRAN programiranje za windowse

    I 108 01101100 154 6C 147 10010011 223 93 m 109 o I I () I 101 155 6D I ]48 I 00 I 0 100 224 94 n I 10 01101110 156 6E 149 10010101 225 95 0 III 01101111 157 6F 150 100 I 0 II 0 226 96

    P 112 01110000 160 70 151 10010111 I 227 97 q 113 01110001 161 71 152 10011000 230 98 r 114 01110010 162 72 153 100] 1001 231 99 s lIS 01110011 163 73 162 10100010 242 A2 l J 16 0] 110100 164 74 163 10100011 243 A3 u 117 01 J 10101 165 75 164 10100100 244 A4 v 118 01110110 166 76 165 10100101 245 AS w 119 01110111 167 77 166 10100110 246 A6 x 120 01111000 170 78 167 10100111 247 A7

    Y 121 01111001 171 79 168 10101000 250 A8 z 122 01111010 172 7A 169 10101001 251 A9 { 123 01111011 173 7B 192 11000000 300 CO I 124 01111100 174 7C 79 01001111 117 4F } 125 01111101 175 7D 208 11010000 320 i DO -

    126 01111110 176 7E - ------------ - -DEL 127 01111111 177 7F - ------------- - -

    ------ ---------- ----- ------- 74 01001010 112 4A / ------- ---------- I ----- ------- 95 01011111 137 5F

    3.3 PROGRAMSKI JEZICI

    Masinski jezik i Asembier

    Prvi su se racunari programirali samo u masinskom jeziku. Program u masinskom jeziku sastoji se od niza nula i jedinica pa je gotovo necitljiv za ljude. Da bi se olaksalo citanje i pisanje, uveden je simbolicki zapis programa koji se zove Assembler. ledna naredba Assemblera prevodi se u jednu naredbu masinskog jezika. Svaki procesor ima razlicit masinski jezik, pa ima i razlicit Assembler. On je vrlo neproduktivan sa gledista programera, ali se njime mogu maksimalno iskoristiti sve mogucnosti racunara. On se i danas upotrebljava za pisanje kratkih kriticnih dijelova programa kad je potrebno postici maksimalnll brzinu i efikasnost. Da bi se ipak, koliko je moguce, povecala produktivnost programera, uvedena su razlicita poboljsanja U odnosu pre,ma masinskomjezikll. Npr. niz asemblerskih naredaba koji se vise puta upotrebljava, moze se zamijeniti jednom makronaredbom.

    16

    Uvod u racunare ---------------------------

    Proceduralni jezici

    Ubrzo su se pojavile ideje visib programskih jezika. Ti jezici su orijentirani prema problemu koji se rjesava, pa su citljivi i za !jude, ali racunari ne mogu neposredno izvrsavali tako napisane programe. Potrebno je prije prevesti programe na masinski jezik. Citljivost za !jude je vazna zbog lakseg ispravljanja pogresaka, modifikacija, ucenja tehnike prograllliranja itd. Svaka naredba u visem programskom jeziku prevodi se obicno u mnogo naredbi masinskog jezika pa se visilll jezicima znatno skracuje zapis program a i ml1ogostruko povecava procluktivnost program era. Programi za prevodenje s viseg u masinski jezik zovu se interpreteri i compileri. To su zapravo kompjuterski programi ciji su ulazni poclaci naredbe II viselll programskom jeziku, a rezllitati naredbe u Assembleru. Visim programskim jezicima pripadaju ALGOL, FORTRAN, BASIC. PASCAL, C. FORT!!, COBOL, PLl,MODULA-2, ADA, ... Navedeni se jezici ZOVll proceduralni, jer se u njima masini propisuje svaka operacija koju treba izvrsiti. Svaki jezik ima svoje karakteristike i svoje podrucje primjene.

    Stepen citlj ivosti programa za ljude bitno ovisi 0 sistematicnosti programera, mnemotehnickom izboru imena varijabli, podjeli programa na potprograme itd. Da bi se omogucilo programerima da pislI programe maksimalno pregledno i citljivo, uvecleno je tzv. strukturno programiranje koje predstavlja niz pravila za dobru organizaciju programa, te programski jezik koji nastoj i onemoguciti nj ihovo krsenje. Takvo strukturno programiranje se primijenilo u jeziku PASCAL. Kasnije je autor PASCALA, Niklaus Wirth, tu ideju usavrsio u jezicima MODULA-2 i OBERON.

    S c1ruge strane, disciplina koja namece strukturalno programiranje predstavlja ogranicenje slobode progralllera I smallJenJe tleksibilnosti, posebno kad se radi 0 nestandardnim zahtjevima u sistemskim programima. Za izradu takvih programa vrlo je popularan jezik C, premda odstupa od pravila strukturalnog programiranja. Dobar programer se ipak drzi discipline, osim na onim mjestima u programu gdje je "nedisciplinirano" rjeSenje jednostavnije.

    Masinski jezik

    Kod operanda

    JOlO

    IOJJ

    Operand

    11001

    11010

    (Zamijeni tekuGu vrijednost u akumulatoru za vrijednosti Y

    na lokaciji flOOI)

    (Dodaj vrzjednost Z na lokaciji I IOlO na vrijednost Z it akumulatoru)

    17

  • FORTRAN priJRramimnje za windowse

    1100

    Asemblerski jezik

    Kod operanda

    LD

    AD

    ST

    Jezik visokog nivoa

    Fortran

    Cohol

    Jezik 4. generacije

    11011

    Operand

    X

    y

    z

    X=Y+Z

    (Pohrani vrijednost Xu akumulatoru IW lokaciju lIOll )

    (Na[Jllni X u akumulutor)

    (Dociaj YakullwLatoru)

    (Pohrani re::.ultat u Z)

    COMPUTE X=Y+Z

    SUiv! THE FOLLOWING TWO NUMBERS

    Deklarativni jezici

    Osim proceduralnih jezika uvedene Sll i druge vrste jezika. PROLOG je primjer deklarativnog jezika. U njemu se opisuju relacije meau simbolickim objektima i pravila stvaranja slozenijih relacija uz pomoc jednostavnijih. Korisnik zatim moze postavljati pitanja na koja program odgovara. Programer ne mora opisivati postupak trazenja odgovora jer je postupak ugraaen u sam jezik. Time se u odnosu prema proceduralnim jezicima visestruko ubrzava rad programera, barem za one za koje je PROLOG pogodan a to je posebno u podrllcju "lImjetne inteligencije". Ipak se programi u PROLOG-u redovito sporije izvrsavaju nego u proceduralnim jezicima.

    18

    __________________________ ~[_~)_C_)c_l_lI_r_(_lc_i~Il~/[~lr~e __________________________ _

    Funkcionalni jezici

    Jezici PRO i MIRANDA. primjeri su funkcionalnih jezika. LISP je takode funkcionalni jezik iako ima i pfoceduralnih elemenata. LISP je najpopuldrniji funkcionalni jezik koji se (kao i PROLOG) mnogo upotrebljava u poclrucju "ullljetne inteligencije". Funkciollalni jezici opisuju citave programe pomocu niza Illedusobno nezavisnih funkcija. Ne postoje globalne varijable. Ovi su jezici takode vrlo produktivni za programera, ali najcesce sporiji za racunar od proceduralnih.

    PonekacI su deklarativni jezici bolji oel funkcionalniil, dok je Ll nekim clrugim situacijama obrnuto. Teoreticari "umjetne il1teligencije" predvic1aju cIa ce jezici sljedeee generacije, koji ce precistavijati poopeenu sintezu obaju tipova jezika, biti mnogo pogodnij i od jednih i clrugih. Takvi jezici danas jos ne postoje jer nije dovoljno razvijena potrebna teorija.

    Objektno orijentirani jezici

    Danas se takode intenzivllo razvijajll objektno orijentirani jezici. Prvi njihov predstavnik je SMALLTALK. Osnovna je ideja da se clefiniraju objekti i operacije meau njima. Normalno, ista operacija ima razlicito znacenje kad se primjenjllje na razlicite objekte. Novi objekt moze, po zelji programera, naslijecliti neka svojstva od prije definiranih objekata, a druga se svojstva mogu posebno definirati. Tako se opis slicnih ali ne potpuno jednakih objekata zllatno skracuje, pojednostavljuje i cini jos pregleclnijim. Time se poveeava efikasnost

    ___________ progranlera. - Cini se ela jezik SJ\!lALLTALK nije postigao narocitu popularnost, ali icleja objektne jest, pa su nastale nove objekll1o orijentirane verzije mllogih vee oel prije postojeeih jezika. Tako je nastao C++ (objektno orijentirana verzija jezika C), nekoliko varijanti objektno orijentiranog PASCliLA, OBERON (nastao evolucijom PAS'CALA i MODULE-2) itd. Postoji i objektno orijentirana verzija PROLOG-a.

    Paralelni i vektorski jezici

    Da bi se iskoristile prednosti raclinara s paraleinim procesorima, jezici se moraju prilagoditi takvoj arhitekturi racunara. OCAM je kOl1cipiran specijalno kao jezik za paralelne procesore transportere, ali su razvijene "paralelne" verzije mnogih paralelnih programskih jezika od FORTRAN-a dalje. Postoji i PARLOG, 5to znaci "paralelni PROLOG". Slicno postoje i varijante raznih jezika za vektorske procesore.

    19

  • FORTRAN progrc/illiranje ~([ windmvse

    Automatsko generiranje programa

    Godine 1978. izraden je program namijenjen generiranjll FORTRAN-skog programa za metodu konacnih elel11enata. Upotrijebljen je sil11bolicki jezik /vJACSYMA koji analiticki provodi operacije s polinol11il11a, ukljucujuei derivacijll i integracijll. Slieni su programi izradeni za kvantnu fiziku, nebesku mehaniku, opeu relativl1ost, fiziku plazme i hidromehaniku.

    ,

    U posljednje se vrijeme razvilo vise specijalnih programa za pisanje kompjuterskih programa na bazi malog broja zahtjeva. To se podrueje zove CASE (Computer Aided Software Engineering). Mnogima od tih programa zadaje se dijagram toka koji se pomoeLi specijalnih editora crta na ekranu, a oni generiraju program u nekom visem jeziku. Za sada se CASE primjenjuje najvise za poslovne programe.

    Generatori compilera

    Compileri su se na poeetku pisali u Assembleru a kasnije i U V1Slm jezicima. Zanimljivo je da je prvi PASCAL compiler napisan u PASCAL-u, a FORT!! compiler u FORTII-u. Pisanje cOl11pilera je vrlo opsezan i tezak posao pOl se pojavila ideja stvaranja specijalnih jezika za pisanje compilera. Ti se jezici zovu generatori compilera iIi compiler compileri. To su specijalni programi kojima su ulazni podaci opisi sintakse i semantike visih jezika za koje se zeie generirati compileri, a rezultati su sami compileri. To su COCO, CERES, YACe.

    Generatori compilera mogu se, osim navedenoga, primijeniti i za pisanje ulaznih modula kompjuterskih programa U obliku specijaliziranih jezika.

    "Umjetna inteHgencija" AI

    Treba odmah istaknuti da naziv "umjetna inteligencija" (AI - Artificial Inteligenee) stvara zabunu kod neupueenih jer je pretjeran i neadekvatan. S druge strane, on je odomaeen u svjetskoj literaturi pa ga je sada tesko zamijeniti nekim skromnijim i pogodnijim nazivom. Radi se zapravo 0 revolucionarnom tipu softwera kod kojeg je dominantna manipulacija simbolima. Pri tome se doista postizu izvanredni rezultati ali to nije inteligencija.

    AI treba shvatiti kao termin koj i nema doslovno znacenje. To je podrucje u intenzivnom razvoju i, kako je spomenuto, dosadasnji su rezultati impresivni. AI se bavi problemima prirodnog jezika, eksperimentalnim sListavima, prepoznavanjem oblika, robotikom, analiwm i sintezom glasa, automatskim dokazivanjem matematickih teorema. generiranjem kompjuterskih programa i mnogim drugim. Granice izmeau AI i konvencionaln_og programiranja nisu evrste jer se iskustva AI sve vise prihvaeajll i II drllgim podruejima.

    20

    Uvod u racunare ----------------------------

    Prirodni jezik

    To je bilo koji ljudski jezik, u praksi najeesee engleski. Nastoji se da jezik komunikacije eovjeka i masine bude 5tO blizi prirodnom jeziku. To se upotpunjuje hardwareom i softwareom za analizu i sintezn ljudskog glasa, pa ee uskoro covjek usmeno razgovarati s raeunarom. Dakako, pravi je prirodni jezik govor koj im se !judi medusobno sporazumijevaju, pun asocijacija, nepreciznosti, dvosmislenosti, ironije i drugih teskoea za cije je razumjevanje potrebna prava inteligencija. Razgovor eovjek - racunar ee se odvijati ipak, barem neko (po svojoj prilici ne bas kratko) vrijeme, na jeziku koji je samo donekle sliean prirodnom. Vee danas neki konvencionalni programi imaju takav ulazni dio.

    Ekspertni sistemi

    To su progral11i koji zal11jenJu.lu zivog eovjeka eksperta. Upotrebljavaju se za probleme 0 kojima postoji "meko znanje" te za probleme s "kol7lbinatorickom ekspZozijom". "Jvleko znanje" je ono koje ima samo pribliznu - najcesee empirieku vrijednost (npr. l11edicinska dijagnostika), za razlikll od npr. aksiomatski zasnovanog znanja matematike koje se moze nazvati "tvrdim" Ekspertni sistemi sadrZe "baz.u znunjCl". To je niz pravila kojima se iz podataka izvode zakljueci u konkretnoj situacij i. Osim toga redovno su povezani s bazama podataka. Cesto se sluze "mekom logikom" (Fuz.zy logic). To je logika kod koje ni premise ni konkluzije nemaju potpunu sigurnost. Ekspertni sistemi mogu zakljucivati i na osnovi nepotpllnih i djelimieno pogresnih podataka. Korisnik, osim rezultata, moze dobiti i objasnjenja 0 upotrijebljenim pravilima i logiekim koracima.

    Baza znanja moze se form irati 1I konsultacijama tzv. znzenjera znanja sa zivim ekspertima. J)ruga je moguenost da se programu "pokazuju" primjeri s rezultatima iz kojih onda program indllktivno "uci" pravila.

    Neuralne mreie

    One SLl vee opisane 1I vezi S razvojem hardwarea. Osim hardverskih razvijene su i mnogo jeftinije, ali sporije softverske simulacije tih mreZa. One formalno ne spadaju u AI, ali konkuriraju ekspertnim sistemima prema podrucju primjene. Umjesto programiranja one se "treniraju" na primjerima. Postoje suprotna misljenja medu vrhunskim ekspertima 0 blldllenosti neuralnih mreza. Uglavnom svi se slazu da ee takve mreze imati znaeajnu primjenu u interpretacij i podataka koj i ulaze u raeunar preko senzora. Npr. opticki senzor "gleda" nacrt a neuralna mreza ga interpretira i konvertira u digitalne podatke koji onda ulaze u program za staticki proracun, troskovnik i ostalo.

    21

  • FORTRAN progr({lilirollje W IVilldmvse

    4. RAZVOJ ALGORITMA I PRAVLJENJE PROGRAMA

    Pisanje kompjuterskog programa za ljesavanje problema je visesrepeni proces koj i se sastoj i od najmanje cetiri glavna koraka. ZabiljeZeno je da je samo jedan clio ovog procesa fokusiran na koristenje odreoenog programskog jezika. Ostala tri koraka odnose se na razvoj i pristup rjesavanju problema.

    Prvi korak razvoja programa je najznacajniji. Ako brizljivo definisete problem, L10cicete da je rjesenje jeclnostavno, a ako ga pogresno clefinisete, iniJ{:ete vel ike teskoce 1I kasnijim koracima.

    Drugi korak u razvoju programa je pravljenje algoritma. Algoritam je lllapa za izbor ljesenja problema. Ovom semolll se precizllo odreouje red kojim ce se izvrsavati jJ!ogram. Kao sto se moze vicljeti, svi problemi, bez obzira koliko slozeni bili, mogu se reclukovati na kombinacijll samo tri osnovna bloka izgradnje. Dalje se da uvidjeti da je algoritam nezavisan od jezika (programskog). To znaci cia programer 1I FORTRAN-ll moze koristiti algoritam razvijen i od programera koji radi sa Paskalom.

    Treci korak 1I razvoju programa jeste kocliranje, tj. konverzija (prevoctenje) algoritma u zeljeni programski jezik. Algoritam daje programeru vizuelan pregled rjesenja, ali je isuvise neprecizan za njegovo izvrsavanje na racunaru. Zbog toga 11l0ramo promijeniti algoritam u mnogostrukturnu semu izvornog koda iii progral11a. Program ce slijediti odredena pravila zahtijevana 00 ocirectenogjezika (tj. svaki program il11a svoja pravila pisanja).

    ZavrSni korak u proceSLl programiranja jeste testirnje i otklanjanje siabih tacaka. Vecina programa saorzi 'siabe tacke' koje se mogu rangirati 00 jednostavnih gresaka Ll primjeni jezika (sintaksne greske) do kompleksnih gresaka u samom aigoritmu (lol;ic)

  • 24

    FORTRAN programiranje za winc/owse

    Koraci razvoja programa: logick~ greskc

    sinlaksne greske

    f--I READ *,X,Y Y I IFeX.LE.Y) THEN ~ \I I ~ EL~~X*Y '--y' ~ '--y' Z=X/Y

    ~ END IF M 1"'N"'2 a) programski konccpt b) razvoj algorilm

  • d ro =-

    2 d

    r = - - t I 2

    FORTRAN prograllliral1je za windowse

    V=~'TC.(r~ -r/) w=yv

    Sve prol'acune smo smjestiliu jecinu procesnu kutiju cia pojecinostavimo sel11u toka. Takocter Sl110 koristili iste simbole u semi i za ulaz i za izlaz. Oak se koriste ovi isti simboli, obicno se u njih jos cloclajll i natpisi Read iIi Print da bi se izbjegla zabuna.

    Zaclnja sekvencionalna naredba jeste neuslovni prelazak. Ovo je jedlla ad jednostavnijih naredbi. To je prosto premjestanje izmeau tacaka u programll. Ova naredba odgovara GO TO naredbi. Mozete koristiti ovu naredbu za ponavljanje niza drugih instrukcija, npr. 5kok preko drugog niza instrukcija.

    26

    Serna taka

    "0 == d/2 rj==d/2-t

    v == 4rr13(r/-r/) w == Liv

    Ai gorita/11

    Unosenje precnika d i podataka t i L1

    Racunanje unutrasnjeg i vanjskog poillprecnika ro i rj Racunanje zapremine kllgle v Racunanje tezine kugle w

    Stampanje podataka v i w

    _____________ .-:=Uvod u racunare

    Pril17jerl_3: Prepisati prethodne primjere, s tim cia se racuna tezina kugle za razlicite ulazne podatke.

    Sema toka

    Read d, t, Li

    ~'Ii==d/2 ri == d/2 - t

    v == 4rr13(rr/-r/) w == Liv

    Operacije grananja

    Aigoritam

    Unosenje precnika d i podataka t i Li

    Racllnanje unutrasnjeg i vanjskog poluprecnika ro i rj Racllnanje zapremine kugle v Racllnallje tezine kugle w

    Stampanje podataka vi w i ponovni unos podataka

    Sa sekvencijalnim instrukcijama, kompjuter lzvrsava instrukcije jednu za drugom. Nema 11l0gucnosti preskakanJa preko jedne instrukcije sa sekvencijalnom operacijom. Meautim, cesta se javlja potreba za grananjem. Grana je tacka u programu gclje ce kompjuter oclluciti koji ce !liz instrukcija izvrsiti. U FORTRAN-LI ovo grananje predstavlja izbor izmeau dvije alternative. Na pitanje koje koristimo za odluku na koju granu ce preci, odgovor 1110ze biti samo DA iIi NE.

    Sematski simbol za grananje je romb u koji se postavlja pitanje. Pitanje se mora postaviti tako da je jedini 1110guci odgovor LI izlazu DA iIi NE. Tacla, zavisllo od odgavora, kontrolne strelice vode u jednom iIi drugom smjeru.

    27

  • FORTRAN programiranje za windowse Uvod u racunarc

    Pril7ljerl_ 4: Napraviti algoritam i semu toka za citanje elva broja i odreouje da Ii su jeelnaki.

    Sema toka

    Stop

    Primjerl _5:

    Algoritam

    Unesi vrijednosti xi y

    x jednako y ?

    Ako j'iste pisi 'jednako' Ako riije pisi 'nije jednako'

    Kraj grananja

    Napraviti algoritam i semu toka za odrec1ivanje cia Ii taci

  • FORTRAN programironje za windowse ----------------------~

    ,~ema toka

    da II < () ? nc

    Struktm'a odabira slucaja (Select Case)

    Alr;oritam

    Ucitaj n

    Da Ii je n

  • FORTRAN programiranje za windowse

    Petlje

    Petlje Sll treci glavni tip kontrolne strukture koj i je potreban za izvrsenje. Postoje dva razlicita tipa petlji, petlje sa brojacem i uslovne petlje. Petlja sa brojacem ponavlja odrec1eni broj pula n~redbe, dok uslovna petlja ponavlja dok se ne zadovolji postavljeni uslov.

    Razlike izmeoll ove clvije struktllre Sli bitne. Brojac u brojivoj petlji clrzi put izvooenja petlje. Kada brojac otkrije jeclnolll predefinisani broj, petlja se zatvara. Vazna tacka 1I ovomje claje granica za broj izvodenja naredbi odreoena prije samog pocetka petlje i lle moze se izmijeniti kada se petlja pokrene. Uslovna petlja, u clrugu ruku, nellla clefinisanll tacku prekicla, Svaki put kacla se petlja izvoditestira se i oclreduje kacla ce se zaustaviti. Brojiva petljaje najcesce koristena petlja u kompjuterskim programima. Sestougaonik je sematski simbol za brojivu petlju. Unlltar sestougaonika upisuje se pocetna i zavrsna vrijeclnost za kontro!nu vrijeclnost petlje. Takode se claje korak kojim ce kOlllpjuter definisati koliko puta ce izvrsiti petlju,

    Primjer 1_8: Napraviti algoritam i semu toka za stampanje brojeva od 1 do 100 i nj ihovih kvadrata.

    Serna toka

    start = I stop = 100

    step = I

    Print LCY, LCy2

    ALRoritam

    Petlja (n, pocetna vrijeclnost = I; kraj = 100; korak = 1

    Stampaj vrijednost LCV I i LCV2

    Kraj petlje

    I LCY - brojac ponavljanja (li ovom siucaju je to varijabla n) 32

  • 1. UVOD

    FORTRAN (FORmula TRANslation) je vjerovatno najpoznatlJI I najrasireniji programski jezik. Dokaz za to je njegova egzistencija u periodu koji traje vise od cetrdeset god ina. Naime FORTRAN je prvi put standardizovan 1966 godine pod imenom FORTRAN IV i FORTRAN66, zatim 1978 poznat pod imenom FORTRAN77 i 1991 godine pod imenom FORTRAN90. FORTRAN je u pocetkll bio projektovan za nllll1ericka izracllnavanja i nallcne aplikacije. Za upravljanje numerickim izracunavanjima FORTRAN ima veliki spektar operatora i predefinisanih funkcija.

    Treei ciklus standardiz3c,iJe FORTRAN-a po ceo je kao logicna posljedica sve ve6ih aplikacija osamclesetih goclina. Radni naslov ove verzije je bio FORTRAN8x, a ova verzija nije trebala samo cia predstavlja prosto prosirenje FORTRAN77 nego se gledalo i na druge jezike za koncepcijska rjesenja i nove funkcionalne komponente. Osnovni problem predstavljalo je ubacivanje napreclnih i dokazanih funkcionalnosti clrngih programskih jezika a da se pri tome ne narnsi kompatibilnost sa prethoclnim verzijama FORTRAN-a. Logicna posljedica tako visoko postavljenih zahtijeva je i veoma dugacak otvoren proces (vise ocl 10 godina) sto svjedoci i ime sa sufiksom 90 umjesto 8x kako je prvobitno bilo planirano.

    Osnovne karakteristike za rad sa Windowsima Sll slijede6e: ../ Startovanjem FORTRAN-a pojavljllje se izbor mogu6nosti za rad sa

    programoll1 za slijede6e aplikacije:

  • FORTRAN programiranje za wit/dowse

    To je tzv. radni prostor za projekte, a mogucnosti pojedinih opcija su slijedece: v'" Fortran Console Application omogucava koristenje iii izradu program a u

    FORTRAN-u sa standardnim aplikacijama, bez mogucnosti grafike i koristenja studija, a izvrsna verzija programa je sa ekstenzijom .EXE.

    ./ FOliran Dynamic Link Library omogucava izradu programa u FORTRAN-u sa mogucnosti povezivanja programa sa dijelovima programa napisanim u drugom programskom jeziku u sklopu studija (VB, C, C++, EXCEL), a izvrsna verzija programa je sa ekstenzijom .DLL. Koristenje grafickih naredbi u sklopu ovog izbora aplikacije nije omogu6en.

    ./ Fortran Standard Graphics or QuickWin Application omogucava izradu programa u FORTRAN-u za graficke aplikacije u jednostavnoj iIi QuickWin grafici, iIi Windows aplikaciji. Izvrsna verzija je sa ekstenzijom .EXE. Pri koristenju ove opcije mora se voditi racuna da je display setovan na 256 boja.

    v'" Fortran Static Library omogucava koristenje klasicne biblioteke fortranskih programa

    U ovom poglavlju obraaena je Fortran konzolna aplikacija, a graficka i .DLL aplikacije obraaene su u narednim poglavljima.

    2. OSNOVNI ELEMENTI FORTRAN JEZIKA

    ASCII karakter set Fortrana ukljucuje:

    v'" velika i mala slova engleske abecede (A-Z, odnosno a-z), ./ deset cifara od 0 do 9. Cifre mogu biti upotrijebljene za definisanje imena

    promjenljivih iii varijabli, ali ne mogu biti na prvom mjestu, ./ specijalne znakove i.simbole sadrzane u ASCII setl! karaktera ukljucujuci i

    prazno mjesto i TAB karakter. Znak ( _ ) mo'Ze biti upotrijebljen za definisanje varijabli iIi imena promjenljivih, ali ne moze biti na prvom mjestu.

    Fortran kompajler prepoznaje velika i mala slova u svakom pogJedu, na primjer PRINT *, i print potpuno su identicne naredbe, ali 'ijk' i 'ljK' su razliciti izrazi, odnosno varijable (karakter konstanta).

    Dvadesetjedan specijalnikarakter je saddan u Fortranu. To su slijede6i karakteri:

    36

    FORTRAN program.skijezik w windowse

    Tabela 2.1 Karakter Opis Karakter Opis

    prazno mjesto dvotacka = jednako I usklicnik + plus " dupli apostrof - mlllUS & znak pridruzivanja

    mnozenje-zvjezdica % I postotak / podijeljeno-kroz tacka-zarez ( lijeva zagrada < manje od ) dcsna zagrada > vece od

    z.arez ) znak pitanja-upitnik decimalna tacka $ znak dolara

    aposlrof

    2. I REDOSLIJED NAREDBI U FORTRAN-u

    Naredbe opisuju, specificiraju i klasificiraju elemente programa, kako dobro i koje 6e aktivnosti program imati. Ansi standard za FORTRAN opisuje redoslijed naredbi i linija u Fortranskim programskim jedinicama. U tabeli 2.2 dat je redoslijed tih naredbi.

    I

    Tabela? ? _.-OPTIONS naredbe

    PROGRAM, FUNCTION, SUBROUTINE, MODULE iii BLOCK DATA naredba

    USE naredbe IMPLICIT NONE naredbe

    Linije P ARI\METER IMPLICIT komentara,

    NAMEUST, naredbe naredbe INCLUDE FORMATi interfejs blokovi, tipovi Naredbe i ENTRY PARAMETERi deklaracionih naredbi, direktive naredbe DATA naredbe funkcijskih

    naredbe potprograma i specificirane naredbe

    DATA naredbe Izvrsne naredbe CONTAINS naredbe

    Interni potprogrami iIi Module pOtjJrogrami END naredba

    Data tabela oznacava redosljed naredbi u programu iii programskoj jedinici. Tabela je predstavljena sa verikalnim linijama koje pomazu u poziciji naredbi a horizontalne linije odvajaju pojedine grupe naredbi.

    37

  • FORTRAN programiranje za wit/dowse

    Na prirnJer, nareba IMPLlCIT koja deklarise promjenljivu mora biti prije naredbi DATA iii END.

    Kao dopuna ove tabele mora se istaci slijedece:

    ,/ Svaka programskajedinica mora imati naredbu END ,/ Linije komentara mogu biti bilo gdje ,/ Naredbe BLOCK DATA, FUNCTION, PROGRAM i SUBROUTINE

    moraju biti na pocetku prije svih drugih naredbi. ,/ Naredbe navedene u tabeli bit ce obraaene u narednim dijelovima knjige -

    uabenika.

    2.2 PRA VILA PISANJA PROGRAMA U FORTRAN-u

    Program u FORTRAN-u sastoji se od niza linija. Postoje dva nacina pisanja FORTRAN programa ito: ,/ slobodni format i ,/ fiksirani format.

    Broj kolona za fiksirani format je 72, a za slobodni format duzina linija moze biti 132 I Meautim, u dokumentacij i za kompaj ler pozeljno je provjeriti navedenu duzinu. Sigurno je da ce program raditi bez ikakvih problema ako se koriste linije od 72 kolone.

    Program se moze poceti pisati bilo gclje u liniji, ali je to obicno od ko]one I, za sloboclni format, oclnosno od kolone 7 za fiksirani format.

    Marke naredbi moraju biti na pocetku od prve kolone, i 1ll0gU biti sastavljene oel pet cifara.

    Komentar pocinje sa znakolll "!" (sloboelni format), odnosno sa s]ovom "C" (fiksirani format). Linije komentara mogu biti smjestene bilo gelje u programu.

    Kontinuitet linija, gclje naredba preiazi 72 kolone, ostvamje se znakom "&" na kraju linije za sloboelni format, odnosno ciframa 1-9 u sestoj koloni za fiksiran format.

    Primjer: Napisati FORTRAN program u slobodnom formatu koji korisniku zeli dobrodoslicu na kursu Fortrana.

    PROGRAM DOBRODOSLICE PROGRAM ZDRA VO

    CHARACTER *20 1ME PRINT *,' UNES1 POD APOSTROFOM SVOJE 1ME I PREZ1ME - DO 20 &

    I Ovo se odnosi na FORTRAN 90 ( ) 38

    FORTRAN proRrarnskijezik za windowse

    SLOVA' READ *,1ME

    PRINT *,' DOBRO DOSLl " 1ME,' NA KURS FORTRANA' END

    Primjer: Ponoviti prethodni primjer, s tim da je program napisan u fiksiranom formatu.

    listing 2 -, 4 5 6 7

    1234567R901234567R901234567890123456789012345678901234567R90123456789012

    C PROGRAM DOBRODOSLICE PROGRAM ZDRA VO CHARACTER *201ME PRINT *,' UNESI POD APOSTROFOM SVOJE 1ME I PREZIME - DO 20

    SLOVA' READ *,IME PRINT *,' DOBRO DOSLI " 1ME,' NA KURS FORTRANA' END

    input: korisnik korisnik

    output: DOBRO DOSLI korisnik korisnik NA KURS FORTRANA

    3. TIPOVI PODATAKA U FORTRAN-u

    U FORTRAN-u postoji sest sustinskih tipova podataka. Oni se mogu podijeliti u elvije kategorije: Ilumericke i nenumericke. Numericki tipovi su integer, real, double precision i complex. Nenumericke podaci su character (karakter) i logical (logicke) konstante.

    3.1 KONSTANTE U FORTRAN-u

    INTEGER konstante

    Integer (intidzer) vrijednosti su cijeli brojevi. Rang vrijednosti, koji moze biti, zavisan je od tipa racllnara. Tipicno podrucje je od _T12_1 do + 232_1, za 32-bitne racllnare.

    REAL i DOUBLE PRECISION konstante

    Ovo je drugi tip numerickih konstanti, a nazivajll se realne (real). Realni brojevi se memorisu II racunaru kao dvDe komponente: mantisa reda velicine iz;medu 0.1 j 1.0 i eksponencijalnog dijela sa eksponentom 10. Realne konstante

    39

  • FORTRAN programiranje za windowse

    SU obicni frakcioni brojevi koji mogu biti pozitivni iii negativni i uvijek imaju decimalnu tacku. Ovi brojevi se primjenjuju za izvoaenje aritmetickih radnji, dok se integer konstante upotrebljavaju za kontinuitet izvrsenja programa.

    COMPLEX konstante

    U inzinjerstvu i nauci cesto se koriste kompleksni brojevi, na primjer 4 + 2i (gdje je i 2=_ 1), sto predstavlja jedan broj koji ima realni i imaginarni dio.

    Algebarski prikaz: Prikaz u FORTRAN-u:

    realni dio + i (imaginarni dio) (realili dio, imaginarni dio)

    CHARACTER konstante

    Ovo je tip konstanti neophodan za rad sa nenumerickim vrijedl1ostima, l1a primjer imena i adrese studenata. konstanta je bilo koji set znakova iii simbola koji se l1alazi izmeou apostrofa (') iii ("): ../ mogu biti slova (velika iii mala) ../ brojevi 0 do 9 ../ specijalni karakteri +-0.,*/='$;%7!& ../ prazno mjesto ../ znak podvlacenja_

    konstante

    Ovo je posljednji tip konstanti, i one mogu imati samo dvije vrijednosti. Njihovaje uloga vrlo jednostavna: utvrditi da Ii je ndto istinito .TRUE. iIi Iazno .FALSE..

    2.4 PROMJENLJIVE U FORTRAN-u

    PromjenIjive (varijable) u FORTRAN-u su imena koja dajemo za identifikaciju razlicitih kvantiteta u programu. One mogu mijenjati svoju vrijednost u toku izvrsenja programa, da budu ulazni podaci jli izlazni podaci.

    Primjer: Izracunati povrsinu trougla koristenjem Heronovog obrasca.

    input: a,b,c, (stranice trougla) postupak:

    40

    FORTRAN progrwnskijezik za windowse ---------------------------

    a+b+c s-

    2 P=s ~(s -a)' (s - b) (s -c)

    listing: PROGRAM lrougao PRfNT *, ' unesi slranice troughl a, hie' READ'" a, b, c s= (a+h+c)/2. P=SQRT (s*(s-a)*(s-b )*s-c)) PRINT *, ' povrsina lrougia je P=',P END

    input: unt:si stranice trougla a, b i c 3.,4.,5.

    output: povrsina trougia je P=6 .

    Kada dajemo imena varijabli-promjenIjivih, mora se voditi racuna 0 sIUedecem:

    -/ varijabia moze imati 1-32 karaktera duzine -/ samo slova (A-Z), brojevi (0-9) i znak podvlacenja( _ ) se l110gu koristiti -/ prvi karakter mora biti siovo -/ veiika i mala slova su ekvivalclItlId -/ za razliku od ranijih verzij a Fortrana prazna mjesta nisu dozvoljena.

    U prethodnom dijelu opisano je sest tipova konstanti, ali nisu definisane varijable. Ako broj ima decimalnu tacku tretira se kao rea! an, a ako ne, onda je cjelobrojna velicina - integer.

    U FORTRAN-u se promjenIjive mogu implicitno definisati na osnovu prvog slova imena promjenljive:

    ../ Promjenljive koje pocinju sa prvim slovom A-H iii O-Z su realne. -/ Promjenljive koje pocinju sa prvim siovom J-N Sll intidzer (integer).

    Eksplicitno definisanje promjenljive u FORTRAN-l.I je jednostavna procedura da specificiramo kako ce se koja promjenljiva tretirati: kao realna iIi cjelobrojna. Moze biti upotrijebljeno nekoliko nacina deklarisanja promjenljivih:

    41

  • FORTRAN programiranje za windowse

    Primjer: Tabela') "\

    -.-

    Opis naredbi ReZl.lltat RE/\L ::X,Y,Z Deklarisanje X, Y i Z kao relane varijeble REAL :: LENGTH Definisanje LENGTH kao realne variiable INTEGER :: COUNT Definisanje COUNT kao intidzer varijable COMPLEX :: PHASE Definisanje PHASE kao kompleksne varijable LOGICAL :: YESNO Definisanje YESNO kao logicke varijable DOUBLE PRECJSlON ::X Dcfinisanje X kao double precision varijable

    3.3 OPERATORI U FORTRAN-u

    Promjenljive ilili konstante dovode se u meousodni odnos pomocl! odreoenih operacija, koje se dijeJe na:

    ,/ aritmeticke operatore ,/ operatore poreoenja ,/ logicke operatore

    Logicke operacije Sl! samo za logicke promjenljive aritmeticke i poredbene operacije za ostale.

    konstante, a

    U tabeli 2.4 datje prikaz aritmetickih operacija i hijerarhijski redoslijed rjesavanja.

    Tabela') d. -..

    Prioritet Algebarski simbol Fortran simbol Opis ] Ab

    ** Eksponent 2 X * Mnozenje 2 / . Dijeljenje 3 + + Sabiranje 3 - - Oduzimanje

    Kad kreiramo matematicki izraz, to mora biti u jednostavnoj liniji, za razliku od zadataka u algebri, gdje se moze upotrijebiti vise linija. Na primjer, da napisemo izraz: x podijeljeno sa z, u FORTRAN-u je napisano: XJZ.

    Sve racunske operacije su ekvivalentne hijerarhijiskom redoslijedu (osim **), i izvode se sa Jijevo u desno. Na primjer: 9.012.0*4.0 daje 18.0, jer se prvo vrsi operacija dijeJjenja, 2**3**4 je isto kao 2**(3**4) iIi 2**81, jer se operacija vrsi sa des no u lijevo.

    Primjer: Napisati matematicki izraz:

    42

    FORTRAN programski jezik za windowse

    y+ 2z- d x=-----

    Y-7 . ,.

    u FORTRAN-n.

    Rjesenje:

    x=(y +2*Z-D)/(Y-Z)

    Kad radimo sa realnim brojevima, rezultat ce biti real an broj i bit ce tacan. Meoutim, cesto se dolazi II situaciju operacija cjelobrojnih iii mjesovitih vrijednosti. U tom slucaju mora se voditi racuna da se dijeljenjem dvije cjelobrojne velicine dobija cje!obrojna velicina: ,/ rad sa realnim vrijednostima: 3.0/2.0 = 1.5 (rezultat je realan braj) ,/ rad sa cjelobrojnim velicinama: 3 / 2 = 1 (cjelobrojne veliCine nemaju

    decima/a !)

    Operacije poreoenja i odgovarajuci operatori dati su u narednoj tabeli:

    Tabela'25 Operator Opis Primjer RezuHat

    .LT. Less than (manje od)(

  • I

    FORTRAN progrwlliranje z,a windowse

    Logicki operatori opensu II logickim izrazima. Prvi (.NOT.) rnijenja logicku vrijednost argumenta. Ako je A Istinita (true), tad a je (.NOTA) lui (false) . Drllgi operatori porede dvije logicke vrijednosti i vracaju jednostavnu vrijednost koja se nalazi u ovom intervalu.

    Primjer: Pomocu logickih operatora 5tampati sve brojeve koje se nalaze 1I inetervalu: 1.0 < x < 10.

    READ"', X IF(l.O .LTX .AND.X. LT.IO.O) PRINT", X,' izmedju vrijednosti 1.0 i 10.0'

    Kao 5to se moze vicljeti, matematicki izraz je: 1.0

  • FORTRAN programiranje za windowse

    UDALJENOST IZMEDJU DVIJE TACKE (XI,YI) I (X2,Y2)

    PRINT*, 'UNESI X I Y ZA PRVU TACKV' READ*, XI,YI PRINT*, 'UNESI X I Y ZA DRUGU TACKU' READ*, X2,Y2 D = SQRTX2-XI)**2 + (Y2-YI)**2) PRINT*, 'RASTOJANJE MEDJU TACKAMA JE " D END

    Kod nekih programa mora se voditi racuna da je broj ispod korijena ;:;~'zitivna velicina. Ukoliko ne znamo koja ce to vrijednost biti, moramo napraviti ;Z!Tljenu u programu.

    UDALJENOST IZMEDJS' DVlJE TACKE eXI,Yl) I (X2,Y2)

    PRINT", 'U]\!ESI X I Y ZA PRVU TACKV' READ*, XI,Yl PRINT*, 'UNESI X I Y ZA DRUGU TACKU' READ*, X2,Y2 D = SQRTCABSC(X2-Xl)**2 + (Y2-YI)**2 PRINT*, 'RASTOJANJE MEDJU TACKAMA JE " D END

    Primjer: . . Slijedeci program ucitava dvije fealne vrijednosti j pretvara ih u komp!eksl1l broJ gdje je X realni dio, a Y imaginarni dio.

    PROGRAM ZA STVARANJE KOMPLEKSNOG BROJA IZ REALNOG DIJELAX I IMAGINARNOG DUELA Y COMPLEX:: Z PRINT*, 'UNESI REALNI DIO KOMPLEKSNOG BROJA' READ*,X PRINT*, 'UNESI IMAGINARNI DIO KOMPLEKSNOG BROJA' READ*, Y Z = CMPLX (X,Y) PRINT*, Z END

    Slijedeca grupa funkcija u FORTRAN-u su one koje operisu sa jednostavnim tipovima podataka. Uopsteno, to su jednostavne matematicke funkcije, koje prihvataju za argument sarno podatke jednostavne strukture, kao 5to su varijable koje sadde samo jedan broj.

    46

    FORTRAN programski jezik za windowse ----------------------~

    Tabela') 8 -.

    Naziv Opis Argument Rezult. Primjer Daje imaginarni

    Kompleksni I I AIMAG(Z) dio kompleks. realni I X=AIMAG3.0,4.0 broja I

    AINT(X,K) Skracivanje na Realni I realni I X=AINT(3.9999) cio broj X=AINT(3.999_4) Zaokruzivanje I X=AN INT(3.999) ANINT(X,K) na najblizi cio Realni realni X=ANINT(3.999_ 4) broj

    I Upucivanje na I

    KIND(X) KIND rijednost Bilo koji I cijeli I=K1ND(1.O_ 4) zaX

    LEN(C) Upucuje na Karakter cijeli I=LEN('abcd') duzinu karaktera

    Treca grupa naJcesce koristenih funkcija su one koje operisn sa matricama. Matrice su kompleksnije forme podataka, u koje se smjesti velika grupa brojeva pod jednom varijablom. Na primjer, vektor sile F u fizici ima tri komponente koje djeluju duz tri ose, pa se ova grupa od tri podatka ipak daje pod jednim imenom varijable F.

    Tabeia') 9 -.

    Naziv Opis I Arg. Rezult. Primjcr

    DOT_PTWDUCT Realni I realni Proizvod cijeli A=DOT (X.Y) XiV Cijeli i Komp!. komp!.

    MnozenJe Realni realni MATMUL(X,Y) Cijeli cijeli A=MATMULeX,Y) matrica Komp!. komp!.

    Lociranje pozicije Realni realni

    MAXLOceX) maksimalne Cijeli cUeli I=MAXLOceX) vrijednosti u Komp!. komp!.

    matrici Pronalazenje Realni realni

    MAXVAL(X) najvece Cijeli cijeli A=MAXV AL(X) vrijednosti u Kompl. kompl.

    matrici

    47

    I

  • I

    I

    FORTRAN progral7liranje z,a wine/Ollise

    Lociranjc pozicije

    ?vlINLOC(X) minimalne i Cijeli I cijeli I

    I=MINLOC(X) vrijednosti u Kompl. , kompl.

    matrici Pronalazenje Realni realni

    MINYAL(X) najmanje Cijeli cijeli A=MINY AL(X) vrijedllosti u

    matrici Kompl. komp/. I

    Suma Rcalni realni SUM(X) elcmenata Cijcli cijeli A=SUM(X)

    matrice Kompl. kompl.

    Transpoi1Ov. Realni realni TRANSPOSE(X) Cijeli cijeli Y=TRANSPOSE(X)

    malricc Kompl. kompl.

    Primjer: Ako je dat vektor A = [1.O,2.0,3.0J i vektor 13 = [2.0,4.0,6.0], tada se slijecleeim programom dobija proizvod ova dva vektora koristenjem funkcije DOT_PRODUCT. To je u stvari suma proizvoda komponenti dva vektora: 1.0*2.0 + 2.0*4.0 + 3.0*6.0.

    x = DOT ]RODUCT(A,B) PRI"TT* X.

    Cetvrta grupa nareclbi u FORTRAN-li moze se primijeniti prilikom pozivanja potprograma. U tabel i su data dva najcesce koristena tipa naredbi.

    Tabela 2 10 Naziv Opis Rezult. Primjer

    RANDOM~NUMBER(X) Daje slucajni

    realni CALL broj RANDOM~NUMBER(X) Postavlja RANDOM~SEED generator CALL RANDOM~SEED

    slucajnog broja

    48

    I

    FORTRAN progrwlIskijezik::.(/ windmvse ----------------------~

    4. NARED13E ULAZA I IZLAZAINPUT-OUTPUT

    Najlaksi nacin za lInos iii ispis podataka je takozvana direktna lista naredbi. Koristenjem ove naredbe ne moramo voditi racuna 0 obliku pojavljivanja poclataka vee samo 0 tome sta zelimo unijeti odnosno stampati u izlazu. Opsti oblik ove naredbe je:

    READ *, varijablal, varijabla2, ..

    a za izlaz koristimo odgovarajueu naredbu:

    PRINT *, vcu'ijablal, varijabla2, ..

    Zvjezdica koja se pojavljuje u obaclvije nareclbe upueuje na koristenje sloboclnog formata. Siobodni format znaci da ce kOl11pjuter koristiti ranije definisane instrukcije za citanje i stal11panje podataka. Npr. l11asina ee odrediti koliko ce broj il11ati decimalnih mjesta. koliko ee ostaviti praznih mjesta izmedu brojeva itd.

    Pril17jer: Da bismo ilustrovali kako radi direktni lInos podataka, razll1otrimo slijeclecu naredbu:

    READ *, x, y, z

    Ovo znaci da mommo unijeti tri broja za odgovarajuee varijable.

    Primjer:

    READ *, x, y, z PRINT *, x, y, z

    x = 14.3 Y = -27.943 z = 0.0034567

    input:

    14.3,-27.943,0.0034567

    output:

    14.3 -27.943 0.0034567 123456789012345678901234567890123456789012345678901234567890

    12345 6

    49

  • FORTRAN pror;ramiranje w windmvse

    Ovim naredbama morajll se unijeti tri pod atka za odgovarajllce varijable a kompjuter sa naredbom PRINT mora da stampa ista tri podatka. Kompjuter ce koristiti sopstvena pravila za stampanje izlaznih podataka i ovaj izgled izlaza zavisi od kompajlera do kompajlera.

    Naredba PRINT moze da sadrzi i karakter stringove kao i matematicke izraze u izlaznoj listi.

    Primjer: X = 2.4 PRltlT*, 'X =', X, 'X**2=', X*X

    U izlazu bi smo dobili:

    output:

    X=2.40()()OO X**2=5 .760000 J234567890J234567890J2345678901234567890J2345678901234567890

    J 2 345 6

    FORMAT naredbe

    Formatiranje predstavlja stepen kontrole izgleda izlaza sto se direktnom listom ne moze llciniti. Sa formatiranjem se izlaz moze uciniti mnogo atraktivnijim i citljivijim.

    Instrukcije formatiranja se mogu koristiti samo uz naredbe ulna, odnosno izlaza. Bez ovih odgovarajucih naredbi sam a naredba formatiranja je beskorisna.

    READ br, varijablal, varijabla2, ... br FORMAT(lista instrukcija)

    Na slican nacin dobijamo par za izlaz:

    br PRINT br, varijabla 1, varijabla2, .. FORMAT(lista instrukcija)

    U odnosu na slobodni format formatirani ulazlizlaz ima umjesto ,*, broj labele, odnosno linije u kojoj se nalazi naredba format. Broj format linije se pise od prve do seste kolone kao cio broj, a sama naredba FORMAT pise se od sedme kolone. .

    Za izlaz, lista instmkcija koja se nalazi pod naredbom FORMAT, sastoji se od kontrolnih karaktera i liste opisivaca editora. Mogu se svrstati u:

    ../ Tip varijable i broj decirnalnih mjesta.

    50

    FORTRAN pror;ramskijezik za windowse

    ../ Broj koione Ll kojoj se pocinje stampati.

    ../ Za realne brojeve da Ii se primjenjuje plutajuca tacka iii eksponencijalni oblik.

    ../ Broj praznih mjesta i praznih linija.

    ../ Bilo koji tekst.

    Postoje specificna pravila za svaku od ovih fl.lnkcija. Kontroini karakter izlaza je uvijek na prvom mjestu u listi instrukcija i koristi se sarno ~a formatiranje izlaza. Svrha 11111 je da pomjeri glavu stampaca za koionu I. PostoJe razliciti kontrolni karakteri koji se mogu koristiti:

    '0' 'I' '+'

    jeclan vi:ortikalni pomjeraj dllpli vertikalni prostor nova strana pisanje na trenutnoj liniji

    OpisivaCi editora

    Ovi opisivaci daju detaljne informacije 0 tome kako se vrijednosti moraju stampati iii citati. Format-specifikacije se mogu svrstati u dvije glavne kategorije. Prva kategorija sadrzava pravila za kontrolisanje l1umerickih iii slovnih podataka, dok druga kategorija kontrolise funkcije rasporeda.

    Numericki podaci:

    I cijeli brojevi

    F realni brojevi

    E realni, eksponencijaini

    D dllpla preciznost

    0 realni, opsti

    Slovni podaci:

    A slovne varij able A w

    slovni stringovi 'xx'

    Iw

    Fw.d

    Ew.d Dw.d

    Ow.d

    A20

    12

    F6.2

    E6.2 D20.8

    08.2

    'primjer'

    Slijedeci niz format-specifikacija kontrolise fizicki polozaj, kao sto Sll razmaci, ta~ulatori, poravnanja itd .

    51

  • FORTRAN progrwnimnje ;:a windowse

    Rastojanja X preskoci n mjesta nX T predi na kolonu n Tn TR predi clesno za n mjesta TRn TL preoi lijevo za 11 mjesta TLn / nova linija I

    Ponovi r( ) Ponovi specifikacije u ( ) r( )

    4.1 OPISIY ACI ZA ClJELE VRIJEDNOSTI

    5X T7 TR3 TU / 2(f4.1 )

    Kacla stampamo cijele brojeve, moramo vocliti racllna 0 tome cia ostavimo c1ovoljno prostora za stampanje te vrijeclnosti.

    Sintaksa: Iw

    Gdje I preclstavlja format specifikaciju za cijeli broj a w predstavlja ukupan broj mjesta za taj broj ukljucujuci i predznak.

    Primjer: !BRO] == 624 JBROJ == -2845 PRINT 17, IBROJ, JBROJ

    17 FORMATC', 16.19)

    output:

    624 -2845 f234567890f234567890f234567890f234567890J2345678901234567890

    J 2 J 456

    Ovim naredbama smo postigli slijecleci izgled izlaza: , , oclmakni jedno mjesto, zatim pisi vrijeclnost broja IBRO] za koje je rezervisano 6 mjesta, zatim vrijednost ]BROJ za kojeg je rezeryisano 9 mjesta. Ako je broj manj i od broja rezervisanih mjesta stamp ace se visak kao prazna mjesta, Ukoliko je broj yeci nego sto smo za njega rezervisali n1jesta, dobit cemo u izlazu samo zvjezdice ***.

    4.2 OPISIV ACl ZA REALNE VRIJEDNOSTI

    Kada zelimo stampanje realnih podataka, moramo voditi racllna 0 ukupnom broju mjesta (w) i broju decimal nih mjesta (d). Dakle, kada koristimo format Fw.d, w mora biti najmanje za tri mjesta vece nego broj decimalnih mjesta (w ?: d +3).

    52

    FORTRAN progro/11skijez.ik W windowse

    Primier:

    Udalj == 12.345 Vrij == 0.0034 Brzi == udalj/vrij PRINT 5, udalj, vrij, brzi

    5 FORMATC', 8.3, 8.4, FIO.I)

    (brzi= 12.345/0.00345=3578.2608)

    output:

    F7.2 F9.6 FIO.I

    12.35 0003450 3578.3 J 234567890 J 234567890 J 2345678W) J 234567890 J 23456 7890 f 23456 7890

    J 2 3 4 5 6

    Realni brojevi takoae se mogu iZrazltl u naucnoj notaclJI. Opsti oblik definisanja ispisa reainih brojeva u eksponencijalnom oblikuje:

    Ew.d gdje E = ukazuje eksponencijalni format (mantisa x 1011)

    W = rezervisanje polja za ukupan broj mjesta d = broj clecimalnih mjesta

    uz uslov da je: w?:d+7

    Prethoclni primjer bit ce iskoristen za prikaz ove opcije uz izmjenu:

    5 FORMAT(", EI2.4, E14.6, FIO.I)

    output:

    E=12.4 E=14.6 FIO.I

    O.1235E+02 O.345000E-02 3578.3 12345678901234567890J23456789012345678901234567890J234567890

    1 2 3 4 5 6

    Za stampanje brojeya sa Double prectSlon koristi se slican oblik eksponencijalnog formata: Dw.d gdje D = ukazuje daje double precision format (tj .. 123 D+003)

    w = rezeryisanje polja za ukupan broj mjesta d = broj decimalnih mjesta

    53'

  • uz uslov da je: w?:d+8

    FORTRAN programiranje za windowse

    Isti primjer uz izmjenu:

    5 FORMAT(",D12.4,Dl1.3,DIO.I)

    output:

    D= 12A D=I1.3 DIO.l

    0.123SD+002 O.34SD-002 OAD+004 123451578901234515789012345157890 123451578YO 12345157890 J 234567890

    J 2 345 6

    Za ispis realnib brojeva u format opsteg tipa moze se koristiti i G format: gdje G == ukazuje tip formata

    w = rezervisanje poija za ukupan broj mjesta d = broj znacajnih mjesta

    Ovaj format predstavlja kombinaciju formata sa 'plutajucom' tackom i eksponencijale forme (E-format). Primjer rada sa ovim tipom formata dat je 11 narednoj tabeli:

    Tabela') II -.

    Vrijednost: Opisivac: Output: 0.010000 --0.1 OOE-O 1 0.100000 --0.100----1.000000 GII.3 ---1.00----10.00000 ---10.()----100.0000 ---100.----1000.000 --0.100E+04

    (oznaka. - =prazno mJesto)

    4.3 OPlSIVACI ZA KARAKTER-VRIJEDNOSTI

    Kao i kod cjelobrojnih vrijednosti, i kod karakter-vrijednosti jedino vodimo racuna 0 ukupnom broju mjesta. Oznakaje:

    Aw

    Aje format karakter-vrijednosti w je ukupna sirina rezervisana za karakter.

    Pril1ljer:

    54

    CHARACTER:: IME*20 IME ==' DAMIR MUSTAFIC'

    10

    FORTRAN programslcijezilc za windowse

    PRINT 10, 1MB FORMAT (' ',A 20)

    Postoj i i mogucnost da koristimo samo oznaku za format karaktera A bez davanja broja mjesta za taj karakter gdje ce ga sam racunar autol11atski smjestiti sa tacno onoliko I11jesta koliko taj karakter sadrzi.

    4.4 OPISIV ACt ZA STRINGOVE I KONTROLU

    U opisivace kontrole pojavljivanja podataka u izlazu spadaju i stringovi i kOl1tro[ori razmaka. Sringovi su linije teksta koje se dodaju fadi citljivosti iziaza. Kontrola razmaka daje mogucnost da pomjeramo horizontalno iii vertikalno nase izlazne podatke opet, radi poboljsanja citijivosti.

    Primjer: Koristenje stringa koji se daje u naredbi FORMAT pod apostrofima:

    PRINT 30 30 FORMATC',' UNEST PODATKE X,Y,Z:')

    Primjer: X = 43.765 Y=-11.381 PRINT 10, X,Y,X

    10 FORMAT(lX, 'X =', F6.3, 'Y =', F7.3, 'X*Y =', FIO.S)

    U izlazll bismo dobili:

    X = 43.765 Y = -11.38! X*Y =-498.08946

    Postaji nekoliko format specifikacija koje su korisne za kreiranje izgleda izlaza.

    X / T TR TL

    IIi

    nX / Tn TRn TLn

    3X I 17 TR7 TL3

    preskace tri 111 j esta prelazi u narednu liniju prelazi u kolonu 7 pomjeri se desno za 7 mjesta od trenutne pozicije pomjeri se Jijevo za 3 mjesta od trenlltne pozicije

    Formatiranje ulaza i izlaza mozemo uraditi i na slijedeci nacin:

    PRINT"(' ',13,2(F7.2, I X))", !, A, B

    55

  • FORTRAN progrum irullje ::,u windowse

    CHARACTER (LEN=40) :: FMT FMT = "(' ',13,2(F7.2, IX))," PRINT FMT, L A. B

    Prilikom pisanja programa moguce je cIa dode do nekoliko vrsta pogresaka. Njih je moguce ukloniti ukoliko postoji dobra tehnika pisanja programa iii dobra vjestina otklanjanja gresaka. Za unapredenje dobrog stiia pisanja programa mogu se koristiti neke upute, kao sto su: ./ koristenje kratkih poruka koje ce se pojavljivati na ekranu prilikoill izvrsenja

    programa i koje ce podsjecati na to koje podatke, kojim recIoslijedolll i u kojem obliku ih treba unijeti;

    ./ 'eho' unesenih podataka na ekranu koji ce omoguciti da odmah nakon unosa podataka vidite cia Ii ~te ispravno unijeli podatke;

    ./ ne unositi naredbe formatiranja u program sve dok se ne uvjerite daje logika rada programa ispravna

    ./ izbjegavati koristenje F formata za realne brojeve u pocetnim verzijama programa.

    5. NAREDBE GRANANJA

    U prvom dijelu navedena su tri oblika struktura. Kod sekvencijalnih (Iinijskih) struktura program uzvrsava instrukcije koje su date jedna za drugom. Meautim, vrlo cesto se dogaaa neophodnost izmjene redosljeda navedenih instrukcija i toka izvrsavanja programa. Naredbe koje omogucavaju izmjenu redosljeda izvrsavanja naredbi nazivaju se naredbama welaska iIi g:rananja. Prema nacinu na koji se vrsi prelazak l! programu ove nareelbe se dijele na:

    ./ naredbe bezuslovnog prelaska

    ./ naredbe uslovnog prelaska

    ./ specijalni oblici IF naredbe i naredbaSELECT CASE

    Sa ovim naredbama omogucava sa grananje u programu, tako da se pri izvfsavanju programa prolazi samo kroz jednu od mogucih grana. Ovakve strukture se nazivaju jeelnostavnim imenom: razgranate strukture. Broj grana u razgranatoj strukturi je razlicit zavisno od siozenosti problema i algoritma.

    5.1 BEZUSLOVNI PRELAZAKGOTO

    Naredba nekonvencionalnog prelaska (bezuslovrrbg) iIi GOTO naredba je jednostavna operacija prelaska. Predstavlja prelazak sajedne linije programa u neku drugu. Opsti oblik nareelbe je: 56

    FORTRAN programskijezik:m windowse ----------------------~

    GOTO broj Iinije sa naredbom (ml) ml predstavlja broj -labelu- sa kojom je oznacena naredbu oel koje se nastavlja kontinuitet izvrsavanja program

  • FORTRAN programiranje za windowse

    gdje nl .nk predstavljaju brojeve (label e) linija na kojoj se nastavlja kontuitet izvrsavanja program a, a koji ce broj biti zavisno je od varijable i.

    lzr;.lGunati vrijednost funkcije F(x) clate izrazom F(x) = 4.0(xI + 2X2 + 3x} + 4X4 + 2xs + 3X6 + x7 + 2xs + 3x~) gdje je x k = -J1O - k , k = 1; ... ,9

    Proracunska procedura je:

    j. setuj SUM = O. i 1= i 2. ponavljaj sve korake do 10 za k = 1,2, ... ,9 3. racunajx= -JIO-k 4. ako je I = I icli na korak 5, 1=2 icli na korak 6, 1= 3 idi na korak 7 5. SUM = SUM + x preskoci na korak 8 6. SUM = SUM + 2x preskoci na korak 8 7. SUM = SUM + 3x idi na slijedeci korak 8. prirastaj I za I 9. ako je I> 3, I = I i slati na korak I 10. napisi rezultat II. kraj programa

    SUM=O I I DO K=I,9 X=SQRTtFLOAT( IO-K GOTO (11,24,13), I

    II SUM=SUM+X

    24

    13 12

    58

    GOTO 12 SUM=SUM+2.0*X GOT012 SUM=SUM+3.*X 1=1+1 1F(LGT,3) 1= I END DO FX=4.*SUM PR1NT*, FX END

    FORTRAN progrwnskijezik za windowse ----------------------~

    Pridruieni prelazak3

    Opsti oblikje: ASSIGN