ALGORITMI TEORIJSKA OSNOVA RAUNARA Sve poslove koje raunar
- Slides: 36
ALGORITMI
TEORIJSKA OSNOVA RAČUNARA Sve poslove koje računar obavlja izvode se postupno, korak po korak, u konačnom vremenu. Svaki korak je jasno preciziran, kao i prelazak na svaki naredni korak. Na kraju postupka, kad računar završi rad (ukoliko se to uopšte desi, jer moguće je i da se rad nikada ne završi), dobije se nešto kao rezultat.
TEORIJSKA OSNOVA RAČUNARA Algoritam predstavlja skup akcija sa definisanim redosledom njihovog obavljanja, koji primenjen na polazni skup podataka, dovodi do traženih rezultata. U procesu programiranja, skup akcija definisan je mogućnostima računara, odnosno naredbama programskog jezika koji se koristi, dok se redosled izvršavanja akcija zadaje pomoću algoritamskih (programskih) struktura.
TEORIJSKA OSNOVA RAČUNARA Efektivni postupci su svuda prisutni u realnosti, od onih svakodnevnih: buđenja, ustajanja, umivanja, doručka, koji se obično izvode rutinski, po ustaljenim navikama i redu.
OSNOVNI POJMOVI ALGORITAMA Pomenimo da postoji veliki broj različitih matematičkih formalizacija pojma algoritma. Mi ćemo pomenuti najvažnije: 1. 2. 3. 4. 5. 6. 7. Tjuringove mašine Postovi sistemi Karkovljevi algoritmi Rekurzivne funkcije Čerčov -račun Kombinatorski račun URK (beskonačne registarske mašine)
OSNOVNI POJMOVI ALGORITAMA Matematički se dokazuje da su sve ove formalizacije algoritama međusobno ekvivalentne, odnosno svaki algoritam koji se može predstaviti pomoću jedne od ovih formalizacija, može se predstaviti i pomoću bilo koje druge.
OSNOVNI POJMOVI ALGORITAMA Za nas je dovoljno da koristimo neku od intuitivnih definicija algoritma: Ø Algoritam je precizan opis postupaka koji vode željenom cilju. Ø Algoritam je uputstvo za obavljanje posla. Ø Algoritam je skup uputstava koja opisuju kako doći do rešenja problema.
OSNOVNI POJMOVI ALGORITAMA Svaki programski jezik predstavlja neku formalizaciju algoritama, pa zato možemo koristiti definiciju pojma program: Program je algoritam zapisan na nekom programskom jeziku.
OPISIVANJE ALGORITMA Na osnovu prethodno rečenom o algoritmu, jasno je da se algoritam može opisati kako pomoću bilo koje od navedenih matematičkih formalizacija, tako i pomoću nekog programskog jezika. Upoznaćemo neke od načina za opisivanje algoritama: Ø prirodni jezik Ø pseudo jezik Ø blok šeme (dijagrami toka)
OPIS ALGORITMA PRIRODNIM JEZIKOM Da bi algoritam koji saopštavamo prirodnim jezikom bio precizan i dovoljno detaljan potrebno je voditi računa da izlaganje bude jasno i nedvosmisleno, što je posebno značajno pri izlaganju redosleda operacija koje se moraju izvršiti.
OPIS ALGORITMA PSEUDO JEZIKOM Pseudo jezik je neformalna kombinacija prirodnog jezika i nekog zamišljenog programskog jezika, pa njegova upotreba podrazumeva zapisivanje algoritama u obliku koji je nalik na neki programski jezik. *Zdravo svete! #include <iostream. h> int main () { cout << "Zdravo svete!n"; return 0; }
OPIS ALGORITMA DIJAGRAMOM TOKA
PROMENLJIVE VELIČINE U ALGORITMU Promenljiva je prostor u memoriji računara koji je imenovan i služi za čuvanje odgovarajućih vrednosti. Pri izradi algoritama promenljivim se daju imena (oznake) po želji, bitno je samo da se ta imena mogu zapisati u okviru zapisa algoritma. U programimskim jezicima imena se obično ograničavaju na slova latinice i još neke dopunske simbole.
PROMENLJIVE VELIČINE U ALGORITMU primeri Napraviti algoritam za povećavanje promenljive X za 2. rešenje: X = X+2. Napraviti algoritam za međusobnu zamenu vrednosti promenljivih X i Y. rešenje: Z = X; X = Y; Y = Z.
ELEMENTARNE STRUKTURE ALGORITMA Strukturno programiranje je stil programiranja (pisanja programa i formiranja algoritama) koji podrazumeva upotrebu izvesnih pravila koja su poznata kao (lepo pisanje) koja obezbeđuju preglednost programa.
ELEMENTARNE STRUKTURE ALGORITMA Kao rezultat upotrebe novog stila rada povećana je čitljivost programa, smanjena verovatnoća pojavljivanja grešaka i olakšano njihovo pronalaženje, olakšano je dokazivanje korektnosti programa, pojednostavljen je postupak naknadnog prilagođavanja i prepravljanja programa.
ELEMENTARNE STRUKTURE ALGORITMA Dokaz da se svaki algoritam može predstaviti i bez upotrebe skokova, samo uz upotrebu programskih struktura: if. . . then. . . else. . . (ako. . . onda. . . inače. . struktura koja obezbeđuje odlučivanje i grananje) i while. . . repeat. . . (dok važi. . . ponavljaj. . . struktura koja obezbeđuje ponavljanje) praktično je omogućeno zasnivanje i upotrebu novog stila. Radi čitljivosti i efikasnosti proceduralni programski jezici najčešće obuhvataju i još neke programske strukture.
ELEMENTARNE STRUKTURE ALGORITMA Pod algoritamskom (programskom) strukturom podrazumevamo više koraka (komandi programskog jezika) koji čine jednu celinu. Postoje tri elementarne algoritamske strukture: § § § Linijska Razgranata Ciklična
LINIJSKA STRUKTURA Niz algoritamskih koraka koji se bezuslovno izvode jedan za drugim naziva se linijskom (sekvencijalnom) algoritamskom strukturom.
LINIJSKA STRUKTURA Linijska algoritamska struktura ima tačno jednu ulaznu tačku, tačno jednu izlaznu tačku i takav tok da se svaki njen korak bezuslovno izvršava tačno jednom. Predstavićemo pseudo jezikom i dijagramom toka elementarnu linijsku strukturu koju čini niz od dva koraka: • proces 1; • proces 2;
LINIJSKA STRUKTURA primer: Svima nama poznat je algoritam koji opisuje kako staviti mleko u frižider:
RAZGRANATA STRUKTURA Algoritamska struktura koja obezbeđuje izvođenje dva različita postupka pri čemu izbor zavisi od nekog uslova naziva se uslovnim grananjem ili razgranatom algoritamskom strukturom.
RAZGRANATA STRUKTURA Uslovno grananje ima tačno jednu ulaznu tačku, tačno jednu izlaznu tačku i takav tok da se svaki njen korak izvršava najviše jednom, pri čemu će svaki korak biti izvršen pod nekim odgovarajućim uslovom (ne postoji korak koji se ni pod kojim uslovima neće izvršiti).
RAZGRANATA STRUKTURA Poseban slučaj uslovnog grananja je višestruko grananje. Višestruko grananje možemo predstaviti kao više dvostrukih uslovnih grananja, a u slučaju kada se odlučuje na osnovu vrednosti samo jednog izraza tada možemo koristiti i poseban zapis:
RAZGRANATA STRUKTURA
CIKLIČNA STRUKTURA Ponavljanjem, ili cikličnom algoritamskom strukturom nazivamo strukturu koja obezbeđuje ponavljanje nekih koraka algoritma.
CIKLIČNA STRUKTURA Ciklična algoritamska struktura ima tačno jednu ulaznu tačku, tačno jednu izlaznu tačku i obezbeđuje da se u zavisnosti od nekog uslova izvršavaju koraci koji se ponavljaju ili izlazi iz strukture. U upotrebi je više cikličnih struktura: (dok) struktura (while) (do) struktura (until) brojačka struktura (for)
CIKLIČNA STRUKTURA Predstavićemo “dok” strukturu pseudo jezikom i na dva načina dijagramom toka: 1. dok je ispunjen uslov ponavljati: 2 2. proces;
CIKLIČNA STRUKTURA Ovo je primer upotrebe "dok" strukture.
CIKLIČNA STRUKTURA Formirati algoritam za izračunavanje proizvoda dva prirodna broja: Ovo je primer upotrebe "do" strukture.
CIKLIČNA STRUKTURA Brojačka struktura obezbeđuje ponavljanje nekog procesa zadati broj puta. Ulazna tačka je početak brojanja, izlazna tačka je kraj brojanja. Brojačka struktura predstavlja skraćivanje zapisa "dok" strukture:
CIKLIČNA STRUKTURA 1. 2. 3. 4. neka je brojač : = početak; dok je brojač <= kraj ponavljati: 3 -4 proces; brojač : = brojač + 1;
CIKLIČNA STRUKTURA u obliku: za brojač : = početak do kraj (sa korakom 1) ponavljati: 2 proces; Brojačku strukturu u dijagramu toka možemo predstavljati kao gde je i brojač, p početna vrednost brojača, k krajnja vrednost brojača i s korak kojim se brojač menja.
CIKLIČNA STRUKTURA primer Formirati algoritam za izračunavanje sume brojeva 1 do N, gde se N učitava:
FORMIRANJE ALGORITMA Postoji više metoda formiranja algoritma, ali mi ćemo se zadržati na metodu od vrha naniže (top-down). Metod formiranja algoritama od vrha prema dnu podrazumeva postepeno rešavanje detalja u polaznom vrlo uopštenom algoritmu. Rešavanje po nivoima omogućava izgradnju složenog algoritma iz više jednostavnijih, čime se postupak čini jednostavnijim i bržim i smanjuje se verovatnoća pojavljivanja grešaka.
FORMIRANJE ALGORITMA Konstrukcija algoritma se završava kada svi procesi budu do kraja razvijeni, odnosno opisani dovoljno detaljno da se algoritam može implementirati. Ovaj metod se dobro uklapa u strukturno programiranje i kao svoj završni rezultat daje program na nekom programskom jeziku.
- Raunar
- Gl parotidea parasempatik innervasyonu
- Kako je koren kovač sve vragove zastrašio
- Magnet otáčivý kolem své osy
- Druga palatalizacija
- Prolecna pesma note
- Sve verbalizzazione esami unicatt
- Hiatus of the facial canal
- Sve vrste brodova
- Sve što nas okružuje
- Nosi nosi sve sto si mi dala
- Prošao je zemljom čineći dobro ppt
- Trilogija o glembajevima
- Adresiranje na internetu
- O mamama sve najbolje
- Sve zbog jednog dječaka tema
- Vlastite imenice
- Starac i more stilske figure
- Já držím pohár ve své dlani
- Goole znalac
- Lektira bijeli jelen kviz
- Najstarija hrvatska solana
- Deklinacija pokaznih zamjenica
- O glembajevima
- Sve materije se dele na sagorive i nesagorive
- Referat o nogometu
- Sve na svijetu bože dragi dare ti prikazuje
- Sestra leke kapetana pesma
- Nosac samuel analiza likova
- Misljenje alekseja karenjina o polozaju zena
- Sve ili svo
- Algoritmi zadaci
- Probleme cu cifrele unui numar c++
- Ako poskladat rozlozenu rubikovu kocku
- Algoritmi in scratch
- Znanje.org c++
- Algoritmi notevoli