28
Staša Vujičić

Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Staša Vujičić

Page 2: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Konstruisati efikasan algoritam znači dati skup preciznih uputstava kako doći do rešenja zadatog problema

Algoritmi se mogu opisivati:pseudo jezikomprirodnim jezikomdijagramom toka.

2

Page 3: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Opisati prirodnim jezikom detaljno, precizno i nedvosmisleno korake pri rešavanju problema, vodeći računa o redosledu operacija koje se izvršavaju.

3

Page 4: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Pseudo jezik je neformalna kombinacija prirodnog jezika i nekog programskoj jezika.

Pri upotrebi pseudo jezika mora se voditi računa da se jezičke konstrukcije koriste uvek na isti način i da budu praćene objašnjenjima (ako je potebno).

4

Page 5: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Za ovaj oblik opisa koriste se grafički simboli čiji je opis propisan ISO standardom. Tekst koji opisuje obradu se zapisuje unutar grafičkih simbola. Tok rada algoritma se opisuje linijama koje povezuju grafičke simbole koji reprezentuju obradu.

5

Page 6: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Napisati algoritam za ispisivanje poruke ”Zdravo svete” na izlazu.

Algoritam Ispisulaz: Nema podataka na ulazu.izlaz: poruka ”Zdravo, svete!!!”početakizlaz: "Zdravo, svete!!!"kraj

6

Page 7: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Napisati algoritam za sabiranje dva broja.

Algoritam Sabiranjeulaz: x,yizlaz: zbir brojeva x,ypočetakulaz x,y;zbir = x + y;izlaz zbir;kraj

7

Page 8: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Napisati algoritam za razmenu dva broja.

Algoritam razmenaulaz: dva brojaizlaz: razmenjena dva brojapočetakulaz x,y;pom=x; /* pom je pomocna promenljiva */x=y;y=pom;izlaz x,y;kraj

8

Page 9: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Dat je prav valjak visine H i poluprečnika osnove r. Izračunati površinu i zapreminu valjka.

Algoritam P i V valjkaulaz: visina valjka H i poluprecnik osnove rizlaz: P i V valjkapočetakulaz H,r;B = πr2;V = B * H;O = 2πrH;P = O + 2B;izlaz P,V;kraj

9

Page 10: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Napisati algoritam za određivanje maksimuma dva broja.

Algoritam Maksimum dva brojaulaz: x, y;izlaz: veći od brojeva x i ypočetakulaz x,y;ako je x>y onda je

max=x;inace je

max=y;izlaz max;kraj

10

Page 11: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Napisati algoritam koji rešava kvadratnu jednačinu a * x2 + b * x + c.

Algoritam kvadratna jednačinaulaz: koeficijenti a, b, cizlaz: rešenje kvadratne jednačine x1 i x2početakulaz a,b,c;

11

Page 12: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

D = b2 - 4ac;ako je D >= 0 onda je{

x1 = (- b + √D)/2ax2 = (- b - √D)/2a

}inace je{

x1 = (-b + i √-D)/2ax2 = (-b - i √-D)/2a

} izlaz x1, x2;

kraj12

Page 13: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Napisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve dok se ne unese nula.

Algoritam Zbirulaz: brojevi sve dok se ne unese nulaizlaz: zbir brojevapočetakzbir = 0; /* Inicijalizujemo zbir na nulu */ulaz x; /* Unosimo prvi u nizu brojeva */

13

Page 14: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

sve dok je x!=0 radi{

zbir=zbir+x; /* Na tekuću vrednost zbira dodajemo broj sa ulaza */

ulaz x; /* Unosimo novi ulazni broj */}izlaz zbir; /* Na izlaz saljemo izračunati zbir */kraj

14

Page 15: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Napisati algoritam za izračunavanje maksimuma brojeva koji se unose na ulazu sve dok se ne unese nula.

Algoritam Maksimum brojevaulaz: brojevi sve dok se ne unese nulaizlaz: maksimum unetih brojevapočetakulaz x;max = x;

15

Page 16: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

sve dok je x!=0 radi{ulaz x; /* Unosimo novi ulazni broj */ako je x>max onda je max=x; /* Proveravamo da li je uneti broj veći od tekućeg maksimuma i ako jeste onda tekućem maksimumu dodeljujemo njegovu vrednost */}izlaz max; /* Na izlaz šaljemo izračunati maximum */kraj

16

Page 17: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Napisati algoritam za određivanje faktorijela prirodnog broja.

Algoritam n!ulaz: prirodan broj nizlaz: faktorijel prirodnog broja npočetakulaz n;f=1;

17

Page 18: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

sve dok je n>1 radi{

f=f*n;n=n-1;

}izlaz f;kraj

18

Page 19: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Napisati algoritam za izračunavanje celobrojnog količnika q i ostatka r pri deljenju broja x sa brojem y: x = qy + r; 0 ≤ r < y; 0 ≤ q.

Algoritam količnikulaz: prirodni brojevi x i yizlaz: količnik q i ostatak r pri deljenju x sa ypočetakulaz x,y;

19

Page 20: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

kolicnik=0;ostatak=x;sve dok je ostatak>=y radi{

ostatak=ostatak-y;kolicnik=kolicnik+1;

}izlaz kolicnik, ostatak;kraj

20

Page 21: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Napisati algoritam za izračunavanje n-tog Fibonačijevog broja.

Algoritam Fibonaciulaz: nizlaz: n-ti Fibonacijev brojpočetakulaz n;x0=0;x1=1;

21

Page 22: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

ako je n=0 onda je rezultat=x0;inace je

{sve dok je n>1 radi{

pom=x0;x0=x1;x1=pom+x1;n=n-1;

}}

rezultat=x1;izlaz rezultat;kraj 22

Page 23: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Naći najveći zajednički delitelj za dva broja.

Algoritam NZD1ulaz: prirodni brojevi a, bizlaz: nzd(a,b)početakulaz a,b;nzd = 1;br=2;

23

Page 24: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

sve dok je br <= a i br <= b radi{

ako je a%br==0 i b%br==0onda je nzd=br;br=br+1;

}izlaz nzd;kraj

24

Page 25: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Algoritam NZD2ulaz: prirodni brojevi a, bizlaz: nzd(a,b)početakulaz a,b;nzd = 1;ako je a < bonda je nzd=a;inace je nzd=b;indikator=1;

25

Page 26: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

sve dok je indikator=1 radi{

ako je a%nzd==0 i b%nzd==0onda je indikator=0;inace je nzd=nzd-1;

}izlaz nzd;kraj

26

Page 27: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

Algoritam Euklid 1ulaz: prirodni brojevi a, bizlaz: nzd(a,b)početakulaz a,b;sve dok je a!=b radi{

ako je a>bonda je a=a-b;inace je b=b-a;

} 27

Page 28: Konstruisati efikasan algoritam znači dati skup preciznih ...poincare.matf.bg.ac.rs/~nina/4-algoritmi.pdfNapisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve

izlaz a;kraj

28