38
POJAM ALGORITMA Algoritam je precizno opisan postupak za rešavanje nekog problema. Obi!no je to spisak uputstava ili skup pravila kojima je, korak po korak, opisan postupak za rešavanje zadatog problema. Svaki korak algoritma, odnosno svako uputstvo iz spiska, mora da bude definisana operacija.

Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

POJAM ALGORITMA

� Algoritam je precizno opisan postupakza rešavanje nekog problema.

� Obično je to spisak uputstava ili skuppravila kojima je, korak po korak, opisanpostupak za rešavanje zadatogproblema.

� Svaki korak algoritma, odnosno svakouputstvo iz spiska, mora da budedefinisana operacija.

Page 2: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

POJAM ALGORITMA

� Algoritmi u računarstvu imaju veomaznačajnu ulogu.

� Postoji i posebna naučna disciplina kojase bavi problematikom algoritama -teorija algoritama.

� Algoritmi moraju da budu nedvosmislenii da završavaju u konačnom brojukoraka.

Page 3: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

FAZE REŠAVANJA ZADATKAPRIMENOM RAČUNARA

1. Analiza, definicija i preciznaidentifikacija problema.

2. Globalni opis odgovarajućeg algoritma,3. Detaljna izrada algoritma.4. Pisanje programa za računar na

osnovu detaljnog algoritma.5. Testiranje programa na računaru.6. Izvođenje programa za rešavanje datog

zadatka.

Page 4: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

SISTEMSKA ANALIZA

� Problematikom što preciznijegdefinisanja problema koje treba rešitiprimenom računara bavi se posebnagrana računarstva koja se nazivasistemska analiza.

Page 5: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

ANALIZA, DEFINICIJA I PRECIZNAIDENTIFIKACIJA PROBLEMA

� Analiza, definicija i precizna identifikacijaproblema je veoma bitna fazaprogramiranja, mada joj se često neposvećuje dovoljna pažnja.

Page 6: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

GLOBALNI OPIS I DETALJNA IZRADAALGORITMA

� Kada je dovoljno precizno obavljena ovafaza i kada su jasno sagledani zahteviprema računaru u rešavanju konkretnogproblema pristupa se globalnom opisualgoritma na osnovu čega se kasnijedetaljno izra]uje odovarajući algoritam.

Page 7: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

PISANJE PROGRAMA

� Sistematičnost i postupnost su veomavažni kod izrade algoritma kako bikasnije pisanje programa bilo štojednostavnije.

Page 8: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

TESTIRANJE PROGRAMA

� Kada se program napiše i unese uračunar sledi faza testiranja programa naračunaru.

� U toku ove faze uočavaju se i otklanjajueventualne greške ili pojedina lošaprogramska rešenja.

Page 9: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

TESTIRANJE PROGRAMA

� Ova faza može da bude i dugotrajna, pačak i da nas vrati na prvu fazu ukoliko sepokaže da još u pripremnim radnjamanismo dovoljno dobro analizirali problemkoji treba da rešimo.

Page 10: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

IZVOĐENJE PROGRAMA ZAREŠAVANJE DATOG ZADATKA

� Program može da se koristi sa pravimpodacima i za rešavanje praktičnihproblema zbog kojih je i napravljen tekkada se u fazi testiranja uverimo da jepouzdan.

� Prilikom izrade algoritama krajnji cilj jeuvek izrada programa za računar.

Page 11: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

BLOK DIJAGRAMI

� Program, u stvari, predstavlja opisalgoritma u nekom programskom jeziku.

� Radi preglednosti često se algoritmipredstavljaju posebnim grafičkimsimbolima u obliku posebnog grafičkogprikaza poznatog pod imenom blok-dijagram.

Page 12: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

ALGORITMI

Prema načinu izvršavanja instrukcijaalgoritmi mogu da budu:

� linearni,� ciklički,� granajući.

Page 13: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

ALGORITMI

� U linearnim algoritmima se svakaoperacija izvršava samo jedanput.

� U cikličnim se neke operacije izvršavajuviše puta.

� U granajućim se neke operacijeizvršavaju u zavisnosti od ispunjenostiodre|enig uslova.

Page 14: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog
Page 15: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

PROGRAMI, PROGRAMIRANJEI PROGRAMSKI JEZICI

� Programi su algoritmi opisani na načinkoji može da razume računar.

� Program je, dakle, niz instrukcija kojenalažu računaru šta da uradi i kako to daobavi.

�Čin stvaranja računarskog programanaziva se programiranje.

Page 16: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

HARDVER I SOFTVER

� Da bi se određeni zadatak obavio naračunaru potrebni su računarski sistem iodgovarajući programi.

� Sve ono što je u vezi sa fizičkomrealizacijom računara naziva semašinska oprema ili hardver(hardware).

� Sve ono što je u vezi sa programimanazivamo programska oprema ilisoftver (software).

Page 17: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

KOMUNIKACIJA ČOVEK-RAČUNAR

� Na koji način čovek i računarkomuniciraju kada znamo da računarirazumeju samo jezik binarnih jedinica inula ili kako se još naziva mašinskijezik i reaguju samo na binarneelektrične signale?

Page 18: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

KOMUNIKACIJA ČOVEK-RAČUNAR

�Čoveku bi bilo najprikladnije kada bi saračunarom komunicirao na način koji jenajbliži međusobnom komuniciranju ljudi,koristeći prirodne jezike (engleski, srpskiitd.).

Page 19: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

PROGRAMSKI JEZICI

� Da bi se premostile ove razlike ukomuniciranju između ljudi i računara -stvoreni su veštački jezici koji senazivaju programski jezici, kao što suFORTRAN, COBOL, PASKAL, C,DELPHI, PHP, VB, JAVA itd.

Page 20: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

PROGRAMSKI JEZICI

Programski jezici su čoveku mnogoprikladniji od mašinskog jezika, a računarusu bliži od prirodnih jezika, jer nemaju nekenedostatke koje imaju prirodni jezici kao štosu:

� zamršena sintaksa,� komplikovana gramatička pravila,� česte nejasnoće i dvosmislenosti kod

određivanja značenja rečenice (semantike).

Page 21: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

PREVODILAC

� Kako računar razume samo mašinskijezik, neophodno je da se programinapisani u programskom jeziku višegnivoa prevedu na mašinski jezik.

� Tu funkciju obavlja poseban program zaprevođenje koji se naziva prevodilac.

Page 22: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

PREVODILAC� Prevodilac prevodi program sa višeg

programskog jezika na mašinski jezik uskladu sa gramatičkim pravilima togjezika.

� Ukoliko u toku prevođenja prevodilacotkrije gramatičke greške, kaže se daprogram ima sintaksičke greške.

� Takve geške moraju da se isprave azatim se program ponovo prevodi.

Page 23: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

PREVODILAC

� Međutim, postoje i greške kojeprevodilac ne može da otkrije a koje zaposledicu imaju da izvršavanje programasa određenim podacima ne dajeispravne rezultate.

� Za ovakve greške kažemo da susemantičke i one se teže otklanjaju.

Page 24: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

SISTEMSKA PROGRAMSKA PODRŠKA

� Osnovna karakteristika računarskihsistema je integralna povezanostmašinske i programske podrške,odnosno hardvera i softvera.

� Zato je razvoj hardvera pratio i razvojsoftvera.

Page 25: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

SISTEMSKA PROGRAMSKA PODRŠKA

Razvoj sistemske programske podrškekretao se od minimalnog skupaprograma, koji je omogućavao samofunkcionisanje računarskog sistema, pado savremenog sistemskog softvera savelikim brojem programa koji upravljaju ikontrolišu rad računarskog sistema.

Page 26: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

U SISTEMSKU PROGRAMSKUPODRŠKU SPADAJU:

• operativni sistemi• programi za prevođenje• uslužni programi.

Page 27: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

OPERATIVNI SISTEM

� Operativni sistem je skup programa kojiupravlja radom računara.

� Osnovna funkcija operativnog sistema jeda omogući optimalno korišćenjeračunarskog sistema.

Page 28: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

FUNKCIJE OPERATIVNOG SISTEMA

� raspodela hardvera, korisničkihprograma i podataka između ko-risnika računarskog sistema

� kontrola odvijanja ulaznih i izlaznihoperacija

� otkrivanje programskih grešaka

Page 29: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

FUNKCIJE OPERATIVNOG SISTEMA

� testiranje hardvera i njegovo povezivanje� planiranje redosleda odvijanja poslova� raspodelu vremena centralnog procesora

između različitih procesa kod operativnihsistema sa višestrukom obradom itd.

Page 30: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

RAZVOJ OPERATIVNIH SISTEMA

� Prvo su nastali operativni sitemi koji supodržavali takozvanu serijsku obradu,gde su se programi izvršavali serijski -jedan za drugim, a operativni sistem jekontrolisao njihovo izvršavanje.

� Savremeni operativni sistemi (Windows,UNIX,...) su veoma kompleksni, ali sumnogo pristupačniji korisnicima.

Page 31: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

SVI OPERATIVNI SISTEMI MOGU SEPODELITI NA:

• serijske (batch) i• multiprogramske.

Page 32: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

SERIJSKI OPERATIVNI SISTEM

� Serijski operativni sistem jejednostavan operativni sistem kod kojegse programi izvršavaju jedan za drugim,u datom redosledu.

� Dok se ne završi izvršavanje jednogprograma ne može da počne izvršavanjedrugog programa.

Page 33: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

MULTIPROGRAMSKI OPERATIVNISISTEMI

� Multiprogramski operativni sistemiomogućavaju da se više programa nađuistovremeno u glavnoj memoriji i da deleraspoložive resurse.

� Ovi operativni sistemi imaju posebnemodule sistema prekidanja kojiomogućuju prekid jednog i nastavakizvršavanja drugog programa.

Page 34: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

MULTIPROGRAMSKI OPERATIVNISISTEMI

� Kod ovih operativnih sistemaistovremeno se može obavljati višeulaznih i izlaznih operacija, dok centralniprocesor, zapravo, u jednom trenutkuizvodi instrukcije samo jednog programa.

Page 35: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

PROGRAM ZA PREVOĐENJE -PREVODILAC (COMPILER)

� Program za prevođenje - prevodilac(compiler) ima osnovni zadatak daprogram napisan u nekom višemprogramskom jeziku prevede namašinski jezik.

Page 36: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

PROGRAM ZA PREVOĐENJE -PREVODILAC (COMPILER)

Međutim rezultat rada prevodioca običnojoš uvek nije u obliku programa koji semože izvršiti, jer se u višim programskimjezicima upotrebljavaju potprogrami, tojest, jednom instrukcijom se zamenjujeviše instrukcija - na primer zastandardne funkcije, ulazne i izlazneoperacije itd.

Page 37: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

PROGRAM ZA POVEZIVANJE (LINKER).

� Potrebno je ovim potprogramima, koji senalaze u biblioteci sistemskih programa,dopuniti prevedeni program.

� Taj zadatak obavlja uslužni program zapovezivanje (linker).

Page 38: Algoritam je precizno opisan postupak Obi no je to spisak ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06N.pdfPROGRAMSKI JEZICI Programski jezici su !oveku mnogo prikladniji od mašinskog

PROGRAMA ZA PUNJENJE (LOADER)

Dopunjen prevedni program se zatimpomoću uslužnog programa zapunjenje (loader) smešta u memoriju itek tada je spreman za izvršavanje.