konstruisati efikasan algoritam znači dati skup preciznih...
TRANSCRIPT
![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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.site/reader030/viewer/2022021800/5e4876f42a4d731ed651041c/html5/thumbnails/28.jpg)
izlaz a;kraj
28