konstruisati efikasan algoritam znači dati skup preciznih...

Post on 02-Feb-2020

11 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related