330 likes | 677 Views
Programiranje 1 algoritmi. Staša Vujičić. Formiranje algoritma. Konstruisati efikasan algoritam znači dati skup preciznih uputstava kako do ć i do re š enja z adatog problema Algoritmi se mogu opisivati: pseudo jezikom prirodnim jezikom dijagramom toka.
E N D
Programiranje 1algoritmi Staša Vujičić
Formiranje algoritma • Konstruisati efikasan algoritam znači dati skup preciznih uputstava kako doći do rešenja zadatog problema • Algoritmi se mogu opisivati: • pseudo jezikom • prirodnim jezikom • dijagramom toka.
OPIS ALGORITAMA PRIRODNIM JEZIKOM • Opisati prirodnim jezikom detaljno, precizno i nedvosmisleno korake pri rešavanju problema,vodeći računa o redosledu operacija koje se izvršavaju.
OPIS ALGORITAMA PSEUDO JEZIKOM • Pseudo jezik je neformalna kombinacija prirodnog jezika i nekog programskoj jezika. • Priupotrebi pseudo jezika mora se voditi računa da se jezičke konstrukcije koriste uvek na istinačin i da budu praćene objašnjenjima (ako je potebno).
OPISIVANJE ALGORITAMA dijagramom toka • Za ovaj oblik opisa koriste se grafički simboli čiji je opis propisan ISO standardom. Tekst kojiopisuje obradu se zapisuje unutar grafičkih simbola. Tok rada algoritma se opisuje linijamakoje povezuju grafičke simbole koji reprezentuju obradu.
Zdravo svete! • Napisati algoritam za ispisivanje poruke ”Zdravo svete” na izlazu. • Algoritam Ispis ulaz: Nema podataka na ulazu. izlaz: poruka ”Zdravo, svete!!!” početak izlaz: "Zdravo, svete!!!" kraj
Sabiranje 2 broja • Napisati algoritam za sabiranje dva broja. • Algoritam Sabiranje ulaz: x,y izlaz: zbir brojeva x,y početak ulaz x,y; zbir = x + y; izlaz zbir; kraj
razmena dva broja • Napisati algoritam za razmenu dva broja. • Algoritam razmena ulaz: dva broja izlaz: razmenjena dva broja početak ulaz x,y; pom=x; /* pom je pomocna promenljiva */ x=y; y=pom; izlaz x,y; kraj
Površina i zapremina valjka • Dat je prav valjak visine H i poluprečnika osnove r.Izračunati površinu i zapreminu valjka. • Algoritam P i V valjka ulaz: visina valjka H i poluprecnik osnove r izlaz: P i V valjka početak ulaz H,r; B = πr2; V = B * H; O = 2πrH; P = O + 2B; izlaz P,V; kraj
Grananjamaksimum dva broja • Napisati algoritam za određivanje maksimuma dva broja. • Algoritam Maksimum dva broja ulaz: x, y; izlaz: veći od brojeva x i y početak ulaz x,y; ako je x>y onda je max=x; inace je max=y; izlaz max; kraj
Grananjakvadratna jednačina • Napisati algoritam koji rešava kvadratnu jednačinu a * x2 + b * x + c. • Algoritam kvadratna jednačina ulaz: koeficijenti a, b, c izlaz: rešenje kvadratne jednačine x1 i x2 početak ulaz a,b,c;
D = b2 - 4ac; ako je D >= 0 onda je { x1 = (- b + √D)/2a x2 = (- b - √D)/2a } inace je { x1 = (-b + i √-D)/2a x2 = (-b - i √-D)/2a } izlaz x1, x2; kraj
Petlje • Napisati algoritam za izračunavanje sume brojeva koji se unose na ulazu sve dok se neunese nula. • Algoritam Zbir ulaz: brojevi sve dok se ne unese nula izlaz: zbir brojeva početak zbir = 0; /* Inicijalizujemo zbir na nulu */ ulaz x; /* Unosimo prvi u nizu brojeva */
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
Petlje • Napisati algoritam za izračunavanje maksimuma brojeva koji se unose na ulazu sve dokse ne unese nula. • Algoritam Maksimum brojeva ulaz: brojevi sve dok se ne unese nula izlaz: maksimum unetih brojeva početak ulaz x; max = x;
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 maksimumai ako jeste onda tekućem maksimumu dodeljujemo njegovu vrednost */ } izlaz max; /* Na izlaz šaljemo izračunati maximum */ kraj
Petlje • Napisati algoritam za određivanje faktorijela prirodnog broja. • Algoritam n! ulaz: prirodan broj n izlaz: faktorijel prirodnog broja n početak ulaz n; f=1;
sve dok je n>1 radi { f=f*n; n=n-1; } izlaz f; kraj
petlje • Napisati algoritam za izračunavanje celobrojnog količnika q i ostatka r pri deljenjubroja x sa brojem y: x = qy + r; 0 ≤ r < y; 0 ≤ q. • Algoritam količnik ulaz: prirodni brojevi x i y izlaz: količnik q i ostatak r pri deljenju x sa y početak ulaz x,y;
kolicnik=0; ostatak=x; sve dok je ostatak>=y radi { ostatak=ostatak-y; kolicnik=kolicnik+1; } izlaz kolicnik, ostatak; kraj
petlje • Napisati algoritam za izračunavanje n-tog Fibonačijevog broja. • Algoritam Fibonaci ulaz: n izlaz: n-ti Fibonacijev broj početak ulaz n; x0=0; x1=1;
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
NZD • Naći najveći zajednički delitelj za dva broja. • Algoritam NZD1 ulaz: prirodni brojevi a, b izlaz: nzd(a,b) početak ulaz a,b; nzd = 1; br=2;
sve dok je br <= a i br <= b radi { ako je a%br==0 i b%br==0 onda je nzd=br; br=br+1; } izlaz nzd; kraj
nzd • Algoritam NZD2 ulaz: prirodni brojevi a, b izlaz: nzd(a,b) početak ulaz a,b; nzd = 1; ako je a < b onda je nzd=a; inace je nzd=b; indikator=1;
sve dok je indikator=1 radi { ako je a%nzd==0 i b%nzd==0 onda je indikator=0; inace je nzd=nzd-1; } izlaz nzd; kraj
Euklidov algoritam • Algoritam Euklid 1 ulaz: prirodni brojevi a, b izlaz: nzd(a,b) početak ulaz a,b; sve dok je a!=b radi { ako je a>b onda je a=a-b; inace je b=b-a; }
izlaz a; kraj