Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
Staša Vujičić
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
Opisati prirodnim jezikom detaljno, precizno i nedvosmisleno korake pri rešavanju problema, vodeći računa o redosledu operacija koje se izvršavaju.
3
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
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
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
Napisati algoritam za sabiranje dva broja.
Algoritam Sabiranjeulaz: x,yizlaz: zbir brojeva x,ypočetakulaz x,y;zbir = x + y;izlaz zbir;kraj
7
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
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
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
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
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
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
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
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
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
Napisati algoritam za određivanje faktorijela prirodnog broja.
Algoritam n!ulaz: prirodan broj nizlaz: faktorijel prirodnog broja npočetakulaz n;f=1;
17
sve dok je n>1 radi{
f=f*n;n=n-1;
}izlaz f;kraj
18
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
kolicnik=0;ostatak=x;sve dok je ostatak>=y radi{
ostatak=ostatak-y;kolicnik=kolicnik+1;
}izlaz kolicnik, ostatak;kraj
20
Napisati algoritam za izračunavanje n-tog Fibonačijevog broja.
Algoritam Fibonaciulaz: nizlaz: n-ti Fibonacijev brojpočetakulaz n;x0=0;x1=1;
21
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
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
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
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
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
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
izlaz a;kraj
28