SlideShare a Scribd company logo
Algoritmi


         Definicija
     Elementi algoritma
  Predstavljanje algoritama
Definicija algoritma
 Algoritam predstavlja konačan skup jasno definisanih pravila
   za rešavanje nekog zadatka.

 Algoritam je opis za rešavanje nekog problema


 Poznati programerski istraživač i profesor Niklaus Wirth je dao
   ovakvu definiciju:
           Programs = Algorithms + Data

 Iz prethodnog stava sledi da je algoritam je plan za izradu
   programa
O nastanku
 Algoritam je u matematiku uveo arapski
   matematičar Muhamed Al Horezmi.

 Napisao je knjigu Al Horezmi o indijskoj
   veštini računanja, gde u arapsku matematiku
   uvodi indijske cifre i decimalni brojni sistem.

 Ova knjiga je kasnije prevedena na latinski
   kao Algoritmi de numero indorum.

 Od lošeg latinskog prevoda njegovog
   prezimena i potiče reč algoritam,

 Reč algoritam dugo je označavala postupak
   za račun sa decimalnim brojnim sistemom (i
   indijskim odnosno, kako se kasnije pričalo,
   arapskim ciframa).
Gde sve srećemo algoritme?
 Danas se reč algoritam često vezuje za pojam računarstva
   mada uopšteno algoritam možemo smatrati kao uputstvo kako
   rešiti neki zadatak ili problem.

 U svakodnevnom životu smo zapravo stalno u kontaktu sa
   algoritmima, a često i postupamo po algoritmima a da toga
   nismo svesni.

 Znati "algoritamski" razmišljati dobro je bez obzira da li se
   bavimo programiranjem ili ne.
Gde sve srećemo algoritme?

 Neko je rekao da je računar idiot velike brzine. To je ustvari
   suština priče o algoritmima:

           put do rešenja moramo toliko rascepkati i detaljno
            napisati da bi ga mogao razumeti i taj "idiot velike
            brzine".

 Drugim rečima, uputstva moraju biti jednostavna i precizna tako
   da ih može izvršavati i mašina.
Gde sve srećemo algoritme?
Evo najpre jednog jednostavnog algoritma za spremanje čaja:

1.   Ako u čajniku nema vode napunite čajnik vodom
2.   Stavite čajnik na šporet i uključite odgovarajuću ringlu.
3.   Uzmite šolju za čaj.
4.   Stavite kesicu čaja u šolju za čaj.
5.   Ako želimo dodamo šećer, mleko ili limun.
6.   Ako kuvamo dve šoljice čaja vratimo se na korak 3.
7.   Ako voda u čajniku nije provrela idite na korak 7, ako jeste idite na korak 8.
8.   Isključite ringlu.
9.   Sipajte vodu iz čajnika u šolju (pazite da ne prelijete).
KoraciDa li 6 i 7 sadrže donošenje (i u kom) treba da donese neka
       1,5, se u nekom od koraka odluka,
Koraciodluka?
       6 i 7 sadrže ponavljanje:
    kod koraka 6 vraćamo se unazad i ponavljamo korake 3,4 i 5
      Da li se neki koraci ponavljaju i koliko puta?
    ukupno dva puta
    kod koraka 7 izvršava proces čekanja na vodu sve dok ne provri.
Elementi algoritma
    Uputstvo može sadržati korake
       koji se izvšavaju samo jednom,
       one koji se ponavljaju više puta ili
       korake kada treba doneti neku odluku, na osnovu nekog
        kriterijuma.


    Algoritam se dobija kao sklop sledećih struktura:
    1.   Sekvenca – niz (proces)
    2.   Odlučivanje (selekcija)
    3.   Ponavljanje (repeticija, iteracija, ciklus, petlja)
Elementi algoritma
Sekvenca (niz operacija)

    Sekvenca znači da se svaki korak sekvence izvršava u unapred datom
     redosledu – onako kako se pojavljuju u sekvenci, jedan za drugim.

Odluka (Selekcija)

    Selekcija omogućava izbor puta kojim će se nastaviti izvršavanje
     instrukcija.

    Odluka se bazira na uslovu koji može da ima vrednost tačno ili netačno,
     na primer:

        AKO danas je sreda ONDA imam laboratorijski dan
Elementi algoritma

    Tvrdnja (uslov) može biti ILI tačna ILI netačna, tj. “danas JE sreda ili
     danas NIJE sreda”. (Ne može istovremeno i jedno i drugo, niti nešto treće)

    Odluka može da ima i nešto složeniji oblik:

        AKO uradio sam više od 5 pitanja
        ONDA dobiću pozitivnu ocenu
        U SUPROTNOM dobiću keca.

    Ovo znači da ako je tvrdnja tačna tada se izvršava proces1 a ako je
     netačna proces2.
Elementi algoritma

Ponavljanje (Iteracija)
   Iteracija omogućava ponavljanje određenih koraka potreban broj puta.
    Broj ponavljanja može biti unapred poznat (npr. kuvam 2 čaja ili kuvam 10
    čajeva...) ili se nešto ponavlja dok se ne ispuni zadati uslov (čekam dok
    ne provri, učim dok ne shvatim...)
   Evo jednog primera

        do
        Dodaj šolju vode u čajnik            TELO PETLJE
        while čajnik nije pun                USLOV na dnu

    U predhodnom primeru prvo sipamo, pa proveravamo da li je čajnik pun.

           Šta ako je čajnik već bio pun kada je ciklus započet?
           Doći će do neželjenog procesa koji će izazvati prelivanje vode
           iz čajnika.
Elementi algoritma

    Za takve slučajeve pogodnije je koristiti while…do ciklus:

        while čajnik nije pun                 USLOV na vrhu
        Dodaj šolju vode u čajnik             TELO PETLJE

    Pošto se odluka da li je čajnik pun ili ne donosi pre sipanja vode,
     mogućnost prelivanja je eliminisana.
Metode prikazivanja algoritama


 Neke od metoda za prikaz algoritama:


          Prirodni jezik (koračna forma)

          Pseudo kod (Pseudo cod)

          Dijagrami toka (Flowcharts)
Prirodni jezik
 Ovom tehnikom se algoritam prikazuje kao niz brojem označenih
   koraka opisanih jednom ili sa više rečenica prirodnog jezika.

 Primer: Prikazati (na monitoru računara, na primer) dvostruku vrednost
   broja koji je predhodno unet u računar (pomoću tastature)

 Algoritam u priprodnom jeziku:
         1.   Tražiti od korisnika da uz pomoć tastature unese broj.
         2.   Učitati broj koji korisnik ukuca na tastaturi.
         3.   Pomnožiti učitani broj sa brojem 2.
         4.   Prikazati rezultat operacije iz koraka 3 na monitoru računara.

 Prednosti prirodnog jezika:
    Jednostavan za učenje, jer se ionako služimo prirodnim jezikom.
 Nedostaci:
    Koraci su predugački jer se mora koristitu puno reči za njihov opis.
    Prevođenje iz prirodnog jezika u kompjuterski jezik može biti teško.
Pseudo kod
 Tehnika slična prirodnom jeziku ali se umesto prirodnog jezika koristi
   neki drugi jezik koji koristi manji broj unapred zadatih reči.

 Dovoljno je razumljiv za čoveka, a istovremeno pogodan za dalje
   transformisanje algoritma u program.

 Predhodni primer algoritma prikazan pseudo kodom :

         1.   display poruka
         2.   read broj
         3.   rezultat = broj*2
         4.   display rezultat

 Prednosti:
    Jednsotavan za učenje skoro kao i kod prirodnog jezika.
    Lakši za prevođenje u programski jezik.
 Nedostaci:
    Može biti malo zbunjujuće – meša se prirodni i simbolički jezik.
Dijagrami toka (Flowcharts)

 Dijagram toka podataka je grafički prikaz algoritma.


 Prednosti dijagrama toka nad pseudokodom:


       Zapisivanje ne zavisi od govornog jezika onoga koji sastavlja
        algoritam.

       Grafički prikaz je jednostavan, pregledan, lako se pronalaze greške.

       Problem se može jednostavno analizirati i skratiti vreme pronalaženja
        rešenja.
Dijagrami toka (Flowcharts)
 Grafički simboli koji se najčešće koriste za prikaza algoritama
   dijagramom toka su sledeći:

                     Granično mesto
                      (početak, kraj,
                         prekid)                          Odluka
                                                         (uslovno
                     Ulaz (unošenje                      grananje)
                      podataka za
                        obradu)
                                                        Potprogram
                     Izlaz (izdavanje
                                                       (ranije opisan
                    rezultata obrade)
                                                          proces)
                        Sekvenca                         Spajanje
                       (operacija ili                 (mesto spajanja
                     grupa operacija)                  dve linije toka)

                       Linija toka
                      (vezna linija)
Dijagrami toka (Flowcharts)
 Prethodni primer prikazan dijagramom toka:


                početak

                poruka                     display
                                              poruka

                  broj
                                           read broj

               broj=broj*2
                                           rezultat =
                                              broj*2
                  broj

                                           display
                  kraj                        rezultat
Primeri linijskih algoritama
 Uneti poluprečnik osnove r i visinu H valjka. Izračunati i štampati
   poršinu i zapreminu valjka.

 Napisati algoritam kojim se izračunava i štampa koliko sati, minuta i
   sekundi ima u datom broju dana.

 Za učenike zaposlene preko omladinske zadruge izračunati bruto i
   neto dohodak, ako je poznat broj radnih sati, cena po satu i procenat
   odbijanja na osnovu određenih doprinosa.

 Napisati program kojim se prevodi temperatura iz skale Celzijusa u
   skalu Farenhajta po formuli: Temeratura po Farenhajtu=(Temperatura
   po Celzijusu)*1.80+32
Primeri linijskih algoritama

 Napisati program kojim se prevodi količina tečnosti iz galona u litre
   (1galon = 4.54L)

 Napisati program kojim se američki dolari pretvaraju u evre ako se
   unosi dinarski kurs ovih valuta.

 Data su dva ugla ALFA i BETA izražena u stepenima, minutama i
   sekundama. Naći i prikazati njihov zbir i razliku.

 Ako je vrednost nekog artikla u dinarima data promenljivom cena,
   odrediti najmanju količinu novčanica od 1000din, 200din, 100din, 10din
   i 1din kojim se može platiti dati artikal.
Uneti poluprečnik osnove r i visinu H valjka. Izračunati i štampati
poršinu i zapreminu valjka.
Napisati algoritam kojim se izračunava i štampa koliko sati, minuta i
sekundi ima u datom broju dana.
Za učenike zaposlene preko omladinske zadruge izračunati bruto i neto
dohodak, ako je poznat broj radnih sati, cena po satu i procenat odbijanja
na osnovu određenih doprinosa.
Napisati program kojim se prevodi temperatura iz skale Celzijusa u skalu
Farenhajta po formuli: Temeratura po Farenhajtu=(Temperatura po
Celzijusu)*1.80+32
Napisati program kojim se prevodi količina tečnosti iz galona u litre
(1galon = 4.54L)
Napisati program kojim se američki dolari pretvaraju u evre ako se unosi
dinarski kurs ovih valuta.
Ako je vrednost nekog artikla u dinarima data promenljivom cena,
odrediti najmanju količinu novčanica od 1000din, 200din, 100din, 10din i
1din kojim se može platiti dati artikal.




                                             Ako su operandi dva cela
                                             broja:

                                             Operator / daje celobrojni
                                             količnik dva cela broja

                                             Operator % daje ostatak
                                             pri deljenju dva cela broja
Data su dva ugla ALFA i BETA izražena u stepenima, minutama i
sekundama. Naći i prikazati njihov zbir i razliku.




                                           Ako su operandi dva cela
                                           broja:

                                           Operator / daje celobrojni
                                           količnik dva cela broja

                                           Operator % daje ostatak
                                           pri deljenju dva cela broja

More Related Content

What's hot

Prezentacija o internetu
Prezentacija o internetuPrezentacija o internetu
Prezentacija o internetu
OS Cegar Nis
 
Jedinice mere za površinu
Jedinice mere za površinuJedinice mere za površinu
Jedinice mere za površinu
Ивана Ћуковић
 
Veštačka inteligencija
Veštačka inteligencijaVeštačka inteligencija
Veštačka inteligencija
Nikola Milosevic
 
Nikola Tesla prezentacija
Nikola Tesla prezentacijaNikola Tesla prezentacija
Nikola Tesla prezentacija
SiraKK2
 
Python - osnove
Python - osnovePython - osnove
Python - osnove
Zoran Vulikić
 
Hardverske komponente PC racunara
Hardverske komponente PC racunaraHardverske komponente PC racunara
Hardverske komponente PC racunarazornik
 
Uticaj racunara na zdravlje ljudi i zivotnu sredinu
Uticaj racunara na zdravlje ljudi i zivotnu sredinuUticaj racunara na zdravlje ljudi i zivotnu sredinu
Uticaj racunara na zdravlje ljudi i zivotnu sredinu
Siniša Ćulafić
 
Banka pitanja windows- za 5 razred test
Banka pitanja windows- za 5 razred testBanka pitanja windows- za 5 razred test
Banka pitanja windows- za 5 razred test
Ivana Grujovic
 
Uvod u programiranje
Uvod u programiranjeUvod u programiranje
Uvod u programiranje
sabinacustovic
 
Prezentacija Severne Amerike
Prezentacija Severne  AmerikePrezentacija Severne  Amerike
Prezentacija Severne AmerikeTanja Milanović
 
Pojam naselja i nastanak prvih naselja
Pojam naselja i nastanak prvih naseljaPojam naselja i nastanak prvih naselja
Pojam naselja i nastanak prvih naselja
prijicsolar
 
Bezbednost na internetu, prezentacija
Bezbednost na internetu, prezentacijaBezbednost na internetu, prezentacija
Bezbednost na internetu, prezentacija
Mr Vladimir Stankovic
 
Zdrava hrana - pravilna ishrana
Zdrava hrana - pravilna ishranaZdrava hrana - pravilna ishrana
Zdrava hrana - pravilna ishranaGordana Janevska
 
Autorska prava
Autorska pravaAutorska prava
Autorska prava
Miroslav
 
Прича о дечаку и Месецу
Прича о дечаку и МесецуПрича о дечаку и Месецу
Прича о дечаку и Месецу
UciteljicaSmilja
 
Hardver i softver - Dimitrije Stevanović - Dragan Ilić
Hardver i softver - Dimitrije Stevanović - Dragan IlićHardver i softver - Dimitrije Stevanović - Dragan Ilić
Hardver i softver - Dimitrije Stevanović - Dragan Ilić
NašaŠkola.Net
 
Zanimljiva matematika 2
Zanimljiva matematika 2Zanimljiva matematika 2
Zanimljiva matematika 2
Veronaukaonline
 
Razvoj Aplikacija Za Mobilne Telefone
Razvoj Aplikacija Za Mobilne TelefoneRazvoj Aplikacija Za Mobilne Telefone
Razvoj Aplikacija Za Mobilne Telefone
carr
 
Srednjovekovni gradovi
Srednjovekovni gradoviSrednjovekovni gradovi
Srednjovekovni gradoviandjelan
 

What's hot (20)

Prezentacija o internetu
Prezentacija o internetuPrezentacija o internetu
Prezentacija o internetu
 
Jedinice mere za površinu
Jedinice mere za površinuJedinice mere za površinu
Jedinice mere za površinu
 
Veštačka inteligencija
Veštačka inteligencijaVeštačka inteligencija
Veštačka inteligencija
 
Nikola Tesla prezentacija
Nikola Tesla prezentacijaNikola Tesla prezentacija
Nikola Tesla prezentacija
 
Python - osnove
Python - osnovePython - osnove
Python - osnove
 
Hardverske komponente PC racunara
Hardverske komponente PC racunaraHardverske komponente PC racunara
Hardverske komponente PC racunara
 
Uticaj racunara na zdravlje ljudi i zivotnu sredinu
Uticaj racunara na zdravlje ljudi i zivotnu sredinuUticaj racunara na zdravlje ljudi i zivotnu sredinu
Uticaj racunara na zdravlje ljudi i zivotnu sredinu
 
Banka pitanja windows- za 5 razred test
Banka pitanja windows- za 5 razred testBanka pitanja windows- za 5 razred test
Banka pitanja windows- za 5 razred test
 
Uvod u programiranje
Uvod u programiranjeUvod u programiranje
Uvod u programiranje
 
Prezentacija Severne Amerike
Prezentacija Severne  AmerikePrezentacija Severne  Amerike
Prezentacija Severne Amerike
 
Ekologija - osnovni pojmovi
Ekologija - osnovni pojmoviEkologija - osnovni pojmovi
Ekologija - osnovni pojmovi
 
Pojam naselja i nastanak prvih naselja
Pojam naselja i nastanak prvih naseljaPojam naselja i nastanak prvih naselja
Pojam naselja i nastanak prvih naselja
 
Bezbednost na internetu, prezentacija
Bezbednost na internetu, prezentacijaBezbednost na internetu, prezentacija
Bezbednost na internetu, prezentacija
 
Zdrava hrana - pravilna ishrana
Zdrava hrana - pravilna ishranaZdrava hrana - pravilna ishrana
Zdrava hrana - pravilna ishrana
 
Autorska prava
Autorska pravaAutorska prava
Autorska prava
 
Прича о дечаку и Месецу
Прича о дечаку и МесецуПрича о дечаку и Месецу
Прича о дечаку и Месецу
 
Hardver i softver - Dimitrije Stevanović - Dragan Ilić
Hardver i softver - Dimitrije Stevanović - Dragan IlićHardver i softver - Dimitrije Stevanović - Dragan Ilić
Hardver i softver - Dimitrije Stevanović - Dragan Ilić
 
Zanimljiva matematika 2
Zanimljiva matematika 2Zanimljiva matematika 2
Zanimljiva matematika 2
 
Razvoj Aplikacija Za Mobilne Telefone
Razvoj Aplikacija Za Mobilne TelefoneRazvoj Aplikacija Za Mobilne Telefone
Razvoj Aplikacija Za Mobilne Telefone
 
Srednjovekovni gradovi
Srednjovekovni gradoviSrednjovekovni gradovi
Srednjovekovni gradovi
 

Similar to Algoritmi

Pitanja Maturski Fe
Pitanja Maturski FePitanja Maturski Fe
Pitanja Maturski Feguest199a1d0
 
PROGRAMIRANJE-C-IIRAZRED.pdf
PROGRAMIRANJE-C-IIRAZRED.pdfPROGRAMIRANJE-C-IIRAZRED.pdf
PROGRAMIRANJE-C-IIRAZRED.pdf
MilicaJovanovi14
 
FOR PETLJA-CIKLICNE STRUKTURE
FOR PETLJA-CIKLICNE STRUKTUREFOR PETLJA-CIKLICNE STRUKTURE
FOR PETLJA-CIKLICNE STRUKTURE
Brankica Jokić
 
Paskal-Izračunavanje vrednosnih funkcija
Paskal-Izračunavanje vrednosnih funkcijaPaskal-Izračunavanje vrednosnih funkcija
Paskal-Izračunavanje vrednosnih funkcija
Osnovna škola "Žarko Zrenjanin"
 
Obrazovni resurs.ppt
Obrazovni resurs.pptObrazovni resurs.ppt
Obrazovni resurs.ppt
MersihaBulic
 
06.-08. CIKLICNE ALGOR STRUKTURE FOR.pptx
06.-08.  CIKLICNE ALGOR STRUKTURE FOR.pptx06.-08.  CIKLICNE ALGOR STRUKTURE FOR.pptx
06.-08. CIKLICNE ALGOR STRUKTURE FOR.pptx
Brankica Jokić
 
Dev c++ sekcija OS"N.Tesla" Prnjavor (Brankica Jokic)
Dev c++ sekcija OS"N.Tesla" Prnjavor (Brankica Jokic)Dev c++ sekcija OS"N.Tesla" Prnjavor (Brankica Jokic)
Dev c++ sekcija OS"N.Tesla" Prnjavor (Brankica Jokic)
Brankica Jokić
 
MISS Ponavljanje B 2022.pdf
MISS Ponavljanje B 2022.pdfMISS Ponavljanje B 2022.pdf
MISS Ponavljanje B 2022.pdf
Sanja409412
 
Postupci sortiranja u programskom jeziku c
Postupci sortiranja u programskom jeziku cPostupci sortiranja u programskom jeziku c
Postupci sortiranja u programskom jeziku c
rankoman84
 
01 - Brojni sistemi i prevodjenje brojeva.pdf
01 - Brojni sistemi i prevodjenje brojeva.pdf01 - Brojni sistemi i prevodjenje brojeva.pdf
01 - Brojni sistemi i prevodjenje brojeva.pdf
OsnovnakolaJovanCvij
 
1-20-algoritmi-uvod prezentacija algoritmi
1-20-algoritmi-uvod prezentacija algoritmi1-20-algoritmi-uvod prezentacija algoritmi
1-20-algoritmi-uvod prezentacija algoritmi
NenadDimovski1
 
Pripreme za programiranje 8. drugi dio
Pripreme za programiranje 8. drugi dioPripreme za programiranje 8. drugi dio
Pripreme za programiranje 8. drugi dio
Brankica Jokić
 
R3 t9 z71
R3 t9 z71R3 t9 z71
R3 t9 z71
NašaŠkola.Net
 
Osnovne komponente DTP-a.pdf
Osnovne komponente DTP-a.pdfOsnovne komponente DTP-a.pdf
Osnovne komponente DTP-a.pdf
Vlada Nedic
 
Prikaz koriscenja
Prikaz koriscenjaPrikaz koriscenja
Prikaz koriscenjaVeksy92
 
PARETO analiza.pdf
PARETO analiza.pdfPARETO analiza.pdf
PARETO analiza.pdf
Radivoj Jovanov
 
PWM control of LED-diodes on the MSP430x series development board
PWM control of  LED-diodes on the MSP430x series development boardPWM control of  LED-diodes on the MSP430x series development board
PWM control of LED-diodes on the MSP430x series development board
Jovan Vlajic
 

Similar to Algoritmi (20)

Pitanja Maturski Fe
Pitanja Maturski FePitanja Maturski Fe
Pitanja Maturski Fe
 
PROGRAMIRANJE-C-IIRAZRED.pdf
PROGRAMIRANJE-C-IIRAZRED.pdfPROGRAMIRANJE-C-IIRAZRED.pdf
PROGRAMIRANJE-C-IIRAZRED.pdf
 
FOR PETLJA-CIKLICNE STRUKTURE
FOR PETLJA-CIKLICNE STRUKTUREFOR PETLJA-CIKLICNE STRUKTURE
FOR PETLJA-CIKLICNE STRUKTURE
 
Paskal-Izračunavanje vrednosnih funkcija
Paskal-Izračunavanje vrednosnih funkcijaPaskal-Izračunavanje vrednosnih funkcija
Paskal-Izračunavanje vrednosnih funkcija
 
Obrazovni resurs.ppt
Obrazovni resurs.pptObrazovni resurs.ppt
Obrazovni resurs.ppt
 
06.-08. CIKLICNE ALGOR STRUKTURE FOR.pptx
06.-08.  CIKLICNE ALGOR STRUKTURE FOR.pptx06.-08.  CIKLICNE ALGOR STRUKTURE FOR.pptx
06.-08. CIKLICNE ALGOR STRUKTURE FOR.pptx
 
Dev c++ sekcija OS"N.Tesla" Prnjavor (Brankica Jokic)
Dev c++ sekcija OS"N.Tesla" Prnjavor (Brankica Jokic)Dev c++ sekcija OS"N.Tesla" Prnjavor (Brankica Jokic)
Dev c++ sekcija OS"N.Tesla" Prnjavor (Brankica Jokic)
 
MISS Ponavljanje B 2022.pdf
MISS Ponavljanje B 2022.pdfMISS Ponavljanje B 2022.pdf
MISS Ponavljanje B 2022.pdf
 
Postupci sortiranja u programskom jeziku c
Postupci sortiranja u programskom jeziku cPostupci sortiranja u programskom jeziku c
Postupci sortiranja u programskom jeziku c
 
01 - Brojni sistemi i prevodjenje brojeva.pdf
01 - Brojni sistemi i prevodjenje brojeva.pdf01 - Brojni sistemi i prevodjenje brojeva.pdf
01 - Brojni sistemi i prevodjenje brojeva.pdf
 
C++ za 90 minuta
C++ za 90 minutaC++ za 90 minuta
C++ za 90 minuta
 
1-20-algoritmi-uvod prezentacija algoritmi
1-20-algoritmi-uvod prezentacija algoritmi1-20-algoritmi-uvod prezentacija algoritmi
1-20-algoritmi-uvod prezentacija algoritmi
 
Uor pitanja
Uor pitanjaUor pitanja
Uor pitanja
 
Pripreme za programiranje 8. drugi dio
Pripreme za programiranje 8. drugi dioPripreme za programiranje 8. drugi dio
Pripreme za programiranje 8. drugi dio
 
R3 t9 z71
R3 t9 z71R3 t9 z71
R3 t9 z71
 
Osnovne komponente DTP-a.pdf
Osnovne komponente DTP-a.pdfOsnovne komponente DTP-a.pdf
Osnovne komponente DTP-a.pdf
 
Prikaz koriscenja
Prikaz koriscenjaPrikaz koriscenja
Prikaz koriscenja
 
Paskal zadaci
Paskal zadaciPaskal zadaci
Paskal zadaci
 
PARETO analiza.pdf
PARETO analiza.pdfPARETO analiza.pdf
PARETO analiza.pdf
 
PWM control of LED-diodes on the MSP430x series development board
PWM control of  LED-diodes on the MSP430x series development boardPWM control of  LED-diodes on the MSP430x series development board
PWM control of LED-diodes on the MSP430x series development board
 

Algoritmi

  • 1. Algoritmi Definicija Elementi algoritma Predstavljanje algoritama
  • 2. Definicija algoritma  Algoritam predstavlja konačan skup jasno definisanih pravila za rešavanje nekog zadatka.  Algoritam je opis za rešavanje nekog problema  Poznati programerski istraživač i profesor Niklaus Wirth je dao ovakvu definiciju: Programs = Algorithms + Data  Iz prethodnog stava sledi da je algoritam je plan za izradu programa
  • 3. O nastanku  Algoritam je u matematiku uveo arapski matematičar Muhamed Al Horezmi.  Napisao je knjigu Al Horezmi o indijskoj veštini računanja, gde u arapsku matematiku uvodi indijske cifre i decimalni brojni sistem.  Ova knjiga je kasnije prevedena na latinski kao Algoritmi de numero indorum.  Od lošeg latinskog prevoda njegovog prezimena i potiče reč algoritam,  Reč algoritam dugo je označavala postupak za račun sa decimalnim brojnim sistemom (i indijskim odnosno, kako se kasnije pričalo, arapskim ciframa).
  • 4. Gde sve srećemo algoritme?  Danas se reč algoritam često vezuje za pojam računarstva mada uopšteno algoritam možemo smatrati kao uputstvo kako rešiti neki zadatak ili problem.  U svakodnevnom životu smo zapravo stalno u kontaktu sa algoritmima, a često i postupamo po algoritmima a da toga nismo svesni.  Znati "algoritamski" razmišljati dobro je bez obzira da li se bavimo programiranjem ili ne.
  • 5. Gde sve srećemo algoritme?  Neko je rekao da je računar idiot velike brzine. To je ustvari suština priče o algoritmima:  put do rešenja moramo toliko rascepkati i detaljno napisati da bi ga mogao razumeti i taj "idiot velike brzine".  Drugim rečima, uputstva moraju biti jednostavna i precizna tako da ih može izvršavati i mašina.
  • 6. Gde sve srećemo algoritme? Evo najpre jednog jednostavnog algoritma za spremanje čaja: 1. Ako u čajniku nema vode napunite čajnik vodom 2. Stavite čajnik na šporet i uključite odgovarajuću ringlu. 3. Uzmite šolju za čaj. 4. Stavite kesicu čaja u šolju za čaj. 5. Ako želimo dodamo šećer, mleko ili limun. 6. Ako kuvamo dve šoljice čaja vratimo se na korak 3. 7. Ako voda u čajniku nije provrela idite na korak 7, ako jeste idite na korak 8. 8. Isključite ringlu. 9. Sipajte vodu iz čajnika u šolju (pazite da ne prelijete). KoraciDa li 6 i 7 sadrže donošenje (i u kom) treba da donese neka 1,5, se u nekom od koraka odluka, Koraciodluka? 6 i 7 sadrže ponavljanje: kod koraka 6 vraćamo se unazad i ponavljamo korake 3,4 i 5 Da li se neki koraci ponavljaju i koliko puta? ukupno dva puta kod koraka 7 izvršava proces čekanja na vodu sve dok ne provri.
  • 7. Elementi algoritma  Uputstvo može sadržati korake  koji se izvšavaju samo jednom,  one koji se ponavljaju više puta ili  korake kada treba doneti neku odluku, na osnovu nekog kriterijuma.  Algoritam se dobija kao sklop sledećih struktura: 1. Sekvenca – niz (proces) 2. Odlučivanje (selekcija) 3. Ponavljanje (repeticija, iteracija, ciklus, petlja)
  • 8. Elementi algoritma Sekvenca (niz operacija)  Sekvenca znači da se svaki korak sekvence izvršava u unapred datom redosledu – onako kako se pojavljuju u sekvenci, jedan za drugim. Odluka (Selekcija)  Selekcija omogućava izbor puta kojim će se nastaviti izvršavanje instrukcija.  Odluka se bazira na uslovu koji može da ima vrednost tačno ili netačno, na primer: AKO danas je sreda ONDA imam laboratorijski dan
  • 9. Elementi algoritma  Tvrdnja (uslov) može biti ILI tačna ILI netačna, tj. “danas JE sreda ili danas NIJE sreda”. (Ne može istovremeno i jedno i drugo, niti nešto treće)  Odluka može da ima i nešto složeniji oblik: AKO uradio sam više od 5 pitanja ONDA dobiću pozitivnu ocenu U SUPROTNOM dobiću keca.  Ovo znači da ako je tvrdnja tačna tada se izvršava proces1 a ako je netačna proces2.
  • 10. Elementi algoritma Ponavljanje (Iteracija)  Iteracija omogućava ponavljanje određenih koraka potreban broj puta. Broj ponavljanja može biti unapred poznat (npr. kuvam 2 čaja ili kuvam 10 čajeva...) ili se nešto ponavlja dok se ne ispuni zadati uslov (čekam dok ne provri, učim dok ne shvatim...)  Evo jednog primera do Dodaj šolju vode u čajnik TELO PETLJE while čajnik nije pun USLOV na dnu  U predhodnom primeru prvo sipamo, pa proveravamo da li je čajnik pun. Šta ako je čajnik već bio pun kada je ciklus započet? Doći će do neželjenog procesa koji će izazvati prelivanje vode iz čajnika.
  • 11. Elementi algoritma  Za takve slučajeve pogodnije je koristiti while…do ciklus: while čajnik nije pun USLOV na vrhu Dodaj šolju vode u čajnik TELO PETLJE  Pošto se odluka da li je čajnik pun ili ne donosi pre sipanja vode, mogućnost prelivanja je eliminisana.
  • 12. Metode prikazivanja algoritama  Neke od metoda za prikaz algoritama:  Prirodni jezik (koračna forma)  Pseudo kod (Pseudo cod)  Dijagrami toka (Flowcharts)
  • 13. Prirodni jezik  Ovom tehnikom se algoritam prikazuje kao niz brojem označenih koraka opisanih jednom ili sa više rečenica prirodnog jezika.  Primer: Prikazati (na monitoru računara, na primer) dvostruku vrednost broja koji je predhodno unet u računar (pomoću tastature)  Algoritam u priprodnom jeziku: 1. Tražiti od korisnika da uz pomoć tastature unese broj. 2. Učitati broj koji korisnik ukuca na tastaturi. 3. Pomnožiti učitani broj sa brojem 2. 4. Prikazati rezultat operacije iz koraka 3 na monitoru računara.  Prednosti prirodnog jezika:  Jednostavan za učenje, jer se ionako služimo prirodnim jezikom.  Nedostaci:  Koraci su predugački jer se mora koristitu puno reči za njihov opis.  Prevođenje iz prirodnog jezika u kompjuterski jezik može biti teško.
  • 14. Pseudo kod  Tehnika slična prirodnom jeziku ali se umesto prirodnog jezika koristi neki drugi jezik koji koristi manji broj unapred zadatih reči.  Dovoljno je razumljiv za čoveka, a istovremeno pogodan za dalje transformisanje algoritma u program.  Predhodni primer algoritma prikazan pseudo kodom : 1. display poruka 2. read broj 3. rezultat = broj*2 4. display rezultat  Prednosti: Jednsotavan za učenje skoro kao i kod prirodnog jezika.  Lakši za prevođenje u programski jezik.  Nedostaci:  Može biti malo zbunjujuće – meša se prirodni i simbolički jezik.
  • 15. Dijagrami toka (Flowcharts)  Dijagram toka podataka je grafički prikaz algoritma.  Prednosti dijagrama toka nad pseudokodom:  Zapisivanje ne zavisi od govornog jezika onoga koji sastavlja algoritam.  Grafički prikaz je jednostavan, pregledan, lako se pronalaze greške.  Problem se može jednostavno analizirati i skratiti vreme pronalaženja rešenja.
  • 16. Dijagrami toka (Flowcharts)  Grafički simboli koji se najčešće koriste za prikaza algoritama dijagramom toka su sledeći: Granično mesto (početak, kraj, prekid) Odluka (uslovno Ulaz (unošenje grananje) podataka za obradu) Potprogram Izlaz (izdavanje (ranije opisan rezultata obrade) proces) Sekvenca Spajanje (operacija ili (mesto spajanja grupa operacija) dve linije toka) Linija toka (vezna linija)
  • 17. Dijagrami toka (Flowcharts)  Prethodni primer prikazan dijagramom toka: početak poruka display poruka broj read broj broj=broj*2 rezultat = broj*2 broj display kraj rezultat
  • 18. Primeri linijskih algoritama  Uneti poluprečnik osnove r i visinu H valjka. Izračunati i štampati poršinu i zapreminu valjka.  Napisati algoritam kojim se izračunava i štampa koliko sati, minuta i sekundi ima u datom broju dana.  Za učenike zaposlene preko omladinske zadruge izračunati bruto i neto dohodak, ako je poznat broj radnih sati, cena po satu i procenat odbijanja na osnovu određenih doprinosa.  Napisati program kojim se prevodi temperatura iz skale Celzijusa u skalu Farenhajta po formuli: Temeratura po Farenhajtu=(Temperatura po Celzijusu)*1.80+32
  • 19. Primeri linijskih algoritama  Napisati program kojim se prevodi količina tečnosti iz galona u litre (1galon = 4.54L)  Napisati program kojim se američki dolari pretvaraju u evre ako se unosi dinarski kurs ovih valuta.  Data su dva ugla ALFA i BETA izražena u stepenima, minutama i sekundama. Naći i prikazati njihov zbir i razliku.  Ako je vrednost nekog artikla u dinarima data promenljivom cena, odrediti najmanju količinu novčanica od 1000din, 200din, 100din, 10din i 1din kojim se može platiti dati artikal.
  • 20. Uneti poluprečnik osnove r i visinu H valjka. Izračunati i štampati poršinu i zapreminu valjka.
  • 21. Napisati algoritam kojim se izračunava i štampa koliko sati, minuta i sekundi ima u datom broju dana.
  • 22. Za učenike zaposlene preko omladinske zadruge izračunati bruto i neto dohodak, ako je poznat broj radnih sati, cena po satu i procenat odbijanja na osnovu određenih doprinosa.
  • 23. Napisati program kojim se prevodi temperatura iz skale Celzijusa u skalu Farenhajta po formuli: Temeratura po Farenhajtu=(Temperatura po Celzijusu)*1.80+32
  • 24. Napisati program kojim se prevodi količina tečnosti iz galona u litre (1galon = 4.54L)
  • 25. Napisati program kojim se američki dolari pretvaraju u evre ako se unosi dinarski kurs ovih valuta.
  • 26. Ako je vrednost nekog artikla u dinarima data promenljivom cena, odrediti najmanju količinu novčanica od 1000din, 200din, 100din, 10din i 1din kojim se može platiti dati artikal. Ako su operandi dva cela broja: Operator / daje celobrojni količnik dva cela broja Operator % daje ostatak pri deljenju dva cela broja
  • 27. Data su dva ugla ALFA i BETA izražena u stepenima, minutama i sekundama. Naći i prikazati njihov zbir i razliku. Ako su operandi dva cela broja: Operator / daje celobrojni količnik dva cela broja Operator % daje ostatak pri deljenju dva cela broja