Anda di halaman 1dari 5

ALGORITMI

su niz preciznih uputa koje nas korak po korak vode do rjeenja nekog problema . To su zapravo toliko precizne upute da za njihovo izvravanje nije potrebna inteligencija. Drugim rijeima, upute moraju biti jednostavne i precizne tako da ih moe izvravati i stroj.

PSEUDOKOK-ALGORITAM ZAPISAN RIJEIMA Algoritmi kojima smo se bavili u prolim lekcijama mogu se zapisati na vie naina, a dva najeda su pseudokod i dijagram toka. Pseudokod je algoritam zapisan rijeima. Pseudo nam dolazi od grkog la, lani, nadri, nazovi, tobonji... Kod je skup dogovorenih znakova kojima moemo oblikovati neku poruku, komunicirati. U programiranju se pod kodom razumijeva izvorni program napisan u nekom programskom jeziku. Prema tome, na pseudokod bi bio program "lanjak". Zato pseudo? Jer upute ne piemo u nekom od programskih jezika ved dogovorenim rijeima i znakovima iz govornog jezika. Dakle, ako hodemo pisati algoritme rijeima moramo se prije dogovoriti koje demo rijei koristiti. Logian slijed radnji u nekom programu je ulaz podataka, obrada i izlaz podataka. Prema tome demo i odabrati prikladne rijei koje demo opisati u tablici: poetak upii ili ulaz ili unesi ili uitaj ispii ili izlaz kraj svaki algoritam ima samo jedan poetak ovo bi bile prikladne rijei za unos podataka preko tipkovnice, mia, bar-kod itaa ili neke druge ulazne jedinice ispis podataka na zaslonu monitora, pisau... broj instrukcija u algoritmu mora biti konaan, svaki algoritam mora imati kraj i to samo jedan kraj

U tablici nema rijei za obradu podataka jer za to obino koristimo izraze koji nisu nita drugo doli prepisane n pr. matematike formule. Idemo probati napisati pseudokod za na "dva i dva" iz prethodne lekcije. No, vie nedemo koristiti depno raunalo nego demo algoritam napisati kao da piemo program, odnosno upute pravom raunalu: poetak upii 2 Ovdje demo malo zastati. Ako bismo napisali upii 2 tada bi na algoritam bio samo za zbrajanje 2 i 2 i cijeli svoj ivot bi radio samo to. Raunalni se programi piu to opdenitije, pa demo i mi pokuati napisati algoritam za zbrajanje bilo koja dva broja. Kako ne moemo predvidjeti koja de dva broja netko poeljeti zbrojiti, morati demo umjesto brojeva koristiti VARIJABLE. U matematici je varijabla neka promjenjiva veliina, a u naem programu to de biti mjesto u radnoj memoriji koje je rezervirano za broj koji zbrajamo (ne bi bilo loe ovdje se malo podsjetiti von Neumannovog modela

raunala). U naem primjeru de nam trebati tri takova mjesta. Neka to budu varijable a i b za brojeve koje zbrajamo i c za rezultat. Pokuajmo sada ponovno napisati pseudokod: ALGORITAM ZBRAJANJA 2 BROJA poetak upii a, b c=a+b ispii c kraj U tredem redu naeg pseudokoda izraz za zbrajanje varijabli a i b napisali smo malo naopako od onoga kako bismo dva broja zbrojili na papiru. Isto tako taj tredi red ne bismo proitali kao u matematici c je jednako a + b. Sjetimo se da radimo s mjestima rezerviranim u radnoj memoriji. Tako sadraj mjesta u memoriji za rezultat c postaje jednak zbroju sadraja mjesta u kojima su spremljeni brojevi a i b. Zato to i itamo c postaje a + b.

Za vjebu: Po uzoru na pseudokod za zbrajanje dva broja probajte napisati algoritme za jednostavne probleme kao to su izraun povrine pravokutnika, pravokutnog trokuta, opseg i povrinu kruga, brzinu ako su poznati put i vrijeme, silu ako su poznati masa i akceleracija... VARIJABLE I OPERATORI Pri razmatranju pseudokoda pokuali smo objasniti to su varijable. Prisjetimo se da se podaci i instrukcije (program) nalaze u radnoj memoriji raunala (RAM). Procesor izvrava instrukcije programa jednu po jednu. Na osnovu instrukcija uzima podatke iz memorije, obrauje ih, te rezultate obrade vrada nazad u memoriju na za to predviena mjesta i odatle ih alje na neku od izlaznih jedinica - monitor, pisa, zvunike... Za programiranje je bitno shvatiti postupanje s varijablama. Ovisno od programskog jezika u kojem demo pisati programe, podatke koji de biti smjeteni u pojedine varijable treba vie ili manje detaljno opisati. Rekli smo ved da se pojedini podaci smjetaju u rezervirana mjesta u memoriji. Ti dijelovi memorije imaju svoju adresu i mi im u postupku programiranja dajemo imena. Radi racionalnog koritenja memorije varijable treba definirati, tj. redi raunalu koji tip podataka de biti smjeten u kojoj varijabli. To mogu biti cjelobrojne vrijednosti, realni brojevi, logike vrijednosti, jedan znak ili niz znakova... Mi demo se uglavnom baviti problemima s nekim brojanim vrijednostima. Za razliite operacije nad podacima koristimo razliite operatore. Operatori koje demo koristiti malo su drugaiji od onih na koje smo navikli dok "pjeice" radimo

npr. matematiku. Operacija zbrajanje oduzimanje mnoenje dijeljenje Operator + * /

U gornjoj tablici su dani operatori za osnovne raunske operacije. U nekim programskim jezicima operatori za operacije nad realnim i nad cijelim brojevima nisu isti. Tako n pr. se za dijeljenje cijelih brojeva moe koristiti operator div koji kao rezultati daje opet cijeli broj. Pogledajmo tablicu s komentarima: 11.9394 / 2.2 = 5.427 11 / 2 = 5.5 realan broj de biti i rezultat dijeljenja dva cijela broja ako upotrijebimo operator dijeljenja za realne brojeve, zato rezultat piemo s jednim decimalnim mjestom ako nije drugaije odreeno ako upotrijebimo operator dijeljenja cijelih brojeva rezultat de biti cijeli broj ak i onda kada djeljenik nije djeljiv s djeliteljem

dijeljenje dva broja operatorom za realne brojeve daje rezultat realan broj

10 / 2 = 5.0

10 div 2 = 5 11 div 2 = 5

Kod dijeljenja cijelih brojeva pojavljuje se jo jedan koristan operator. To je mod. Rezultat dijeljenja cijelih brojeva s operatorom mod daje ostatak cjelobrojnog dijeljenja. Pogledajmo primjere: 11 mod 2 = 1 10 mod 3 = 1 8 mod 3 = 2 8 mod 2 = 0 11 podijeljeno s 2 je 5 i 1 je ostatak 10 podijeljeno s 3 je 3 i 1 je ostatak 8 podijeljeno s 3 je 2 i 2 je ostatak 8 podijeljeno s 2 je 4 i 0 je ostatak

Zato je operator mod koristan. Na primjer, pomodu njega moemo

utvrditi da li je neki broj djeljiv s nekim drugim brojem. Ako je, ostatak takovog dijeljenja mora biti 0. Ili npr. da li je neki broj smjeten u odreenoj varijabli u memoriji paran ili neparan. Paran broj dijeljen s 2 daje ostatak 0, odnosno neparan broj dijeljen s dva daje 1 ostatak. Pokuajte dodi do rezultata slijededih izraza: A = 5; B = 7; C = A MOD 3 + B A = 3; B = 2; R = A DIV B A = 7; B = 4; X = 2 * B / A C = _______ R = _______ X = _______

Isto tako ponekad de trebati usporediti neke veliine. Zato koristimo relacijske operatore: Operator > < = >= <= <> ili # DIJAGRAM TOKA
Rekli smo ve da se algoritmi najee zapisuju kao pseudokod i dijagram toka. Dijagram toka je grafiki prikaz algoritma. Takav nain zapisivanja ima nekoliko prednosti pred pseudokodom. Zapisivanje se vri meunarodno dogovorenim simbolima i ne ovisi o govornom jeziku onoga koji sastavlja algoritam. Grafiki prikaz je jednostavan, pregledan, lako se pronalaze greke. Nadalje, problem se moe jednostavno analizirati, usporediti s nekim drugim problemom, skratiti vrijeme pronalaenja rjeenja. Evo osnovnih simbola dijagrama toka: poetak

Opis vede manje jednako vede ili jednako manje ili jednako razliito

ulaz podataka

deklaracija varijabli i konstanti; postavljanje na poetnu vrijednost; obrada podataka izlaz podataka

kraj spojna toka, radi lakeg praenja toka podataka obino se u spojnu toku upisuju brojevi koji su veze izmeu razliitih dijelova algoritma Simboli za ulaz i izlaz podataka su istog oblika. Kod jednostavnih algoritama ulaz i izlaz su odmah uoljivi. Meutim, kod vrlo sloenih algori tama dobro je u paralelogram koji simbolizira ulaz pri dnu povui vodoravnu crtu i ispod nje napisati rije ulaz. Isto to je dobro uiniti i za izlaz podataka. Simboli dijagrama toka se povezuju strelicama koje pokazuju tok podataka. Evo ponovno naeg "dva i dva".

Nakon poetka prvo e netko morati preko tipkovnice upisati dva broja koja eli zbrojiti. Zamislimo 3 i 5. Ta dva broja smjetaju se u radnoj memoriji kao varijable a i b. Drugim rijeima broj 3 ui u dijelu memorije koji smo nazvali a, broj 5 se raskomotio u dijelu memorije koji smo nazvali b. Sadraj varijable c postaje zbroj sadraja varijabli a i b. Odnosno u dio memorije koji smo nazvali c smjeta se zbroj brojeva 3 i 5, dakle 8.

Krajnji cilj obrade je dobiti rezultat. Ispisujemo sadraj varijable c. Na zaslonu monitora ili na pisau, ovisno kako jednoga dana budemo to definirali u programu, pojaviti e se broj 8.

Kraj.

Anda mungkin juga menyukai