Linijski algoritmi

Po definiciji, linijska algoritamska struktura je ona kod koje se svaki korak izvršava tačno jedanput. Linijski algoritmi su osnovni. Oni predstavljaju najjednostavnije programe - ikada. To su programi koji imaju ulaz (unos podataka), izlaz (ispis podataka), i između ta dva obradu podataka (naravno, ne obavezno tim redosledom).

Da biste u potpunosti razumeli ovo što radimo, neophodno je da savladate tipove podataka, promenljive i izraze.

Pored ovih primera, pripremili smo vam još dosta zanimljivih zadataka iz linijskih algoritama, sa rešenjima.

Jednostavni računski zadaci

Primer: Cena i količina

Za unetu količinu nekog proizvoda K i njegovu cenu C, treba izračunati ukupnu vrednost V i ispisati je. (Ukupna vrednost se dobija kada se pomnože cena i količina)

Evo jednog jednostavnog zadatka za "zagrevanje". Najpre zadajemo naredbu (korak) ulaza čime kažemo računaru da, kada se program pokrene, treba da zatraži od korisnika da unese dve vrednosti. Ove dve vrednosti se smeštaju u promenljive K (količina) i C (cena). Kako računar "zna" šta je šta? Pa, ustvari i ne zna - to "K" i "C" služi nama, da bismo se u programu lakše snašli. U praksi, dobri programeri promenljivama uvek daju duže, opisne nazive.

U sledećem koraku se vrši obrada podataka - kažemo računaru da pomnoži vrednosti koje se nalaze u promenljivama K i C i da rezultat smesti u novu promenljivu V (kao "vrednost"). Primećujete da mi, dok programiramo, ne znamo kolika će da bude količina, a ni cena, već pripremamo program za bilo koje dve vrednosti. Naravno, podrazumeva se da su u pitanju dva broja. Pokušajte da pokrenete program i onda unesete neke tekstualne vrednosti. Dobićete grešku u izvršavanju, jer tekstovi ne mogu da se množe.

Konačno u poslednjem koraku - naredbi izlaza, zadajemo računaru da ispiše prigodan tekst na koji dodaje vrednost iz, upravo izračunate, promenljive V. Kako sad mogu da se "sabiraju" tekst i broj? Jednostavno, operator + (plus), specijalno predstavlja dve operacije - obično sabiranje, ali i konkatenciju (nadovezivanje) stringova (tekstova). Čim je jedan od operatora string, drugi će takođe odmah, automatski da se konvertuje u string i izvršiće se konkatenacija.

alg-lin-npr-cena-kolicina-sr

Primer: Obim pravouglog trougla

Unose se katete a i b pravouglog trougla. Treba izračunati njegov obim i ispisati ga na ekranu.

Ovaj primer nam je značajan jer tu prvi put koristimo neku funkciju. U ovom slučaju to je funkcija sqrt(), koja računa kvadratni koren zadate vrednosti. Kao što vidite, funkcije se lako koriste - samo je ubacimo u izraz. Ako funkcija ima argument (npr. broj koji se zadaje), obavezno ga ubacujemo unutar zagrada.

Većina funkcija vraća neku vrednost koja se onda koristi za računanje ostatka izraza. U ovom slučaju, to je koren zadatog broja.

alg-lin-npr-obim-pravouglog-sr

Rad sa promenljivama i ciframa broja

Primer: Zamena vrednosti dve promenljive

Napisati algoritam za zamenu vrednosti dve unete promenljive A i B.

Ovo je klasičan početnički zadatak, kojim se proverava da li smo shvatili rad sa promenljivama. Poenta je u "žongliranju" vrednostima uz korišćenje pomoćne promenljive.

alg-lin-npr-zamena-sr

Primer: Ispis poslednje cifre

Za uneti celi broj X, ispisati poslednju cifru.

Rad sa ciframa broja predstavlja čitavu klasu zadataka. Glavni "trik" je u korišćenju operatora celobrojnog deljenja (div) i ostatka celobrojnog deljenja (mod ili %) i to sa nekim stepenom broja 10 (zavisno od zadatka - koja cifra se traži).

alg-lin-npr-cif-poslednja-sr

Grafika

Primer: Dijagonale grafičkog okvira

Napisati algoritam za crtanje linija koje će spojiti suprotne uglove grafičkog okvira. Linije treba da budu crvene boje.

Ovim zadatkom počinjemo da vežbamo korišćenje grafičkih funkcija. Ove funkcije služe samo da kreiraju crtež u grafičkom okviru, pa tako ne vraćaju nikakvu vrednost i zato ih i ne koristimo unutar izraza. Ovde konkretno isprobavamo funkcije color() i line() koje služe za zadavanje boje linije i crtanje same linije od tačke do tačke.

Pošto veličina grafičkog okvira nije stalna, koristimo sistemske konstante _WIDTH i _HEIGHT kako bismo otkrili njegovu trenutnu širinu i visinu.

alg-lin-npr-graf-dijagonale-sr
Svi elementi sajta Web'n'Study, osim onih za koje je navedeno da su u javnom vlasništvu, vlasništvo su autora i ne smeju se koristiti, u celosti ili delimično bez pismenog odobrenja autora. To uključuje tekstove, slike, ilustracije, animacije, prateći grafički materijal i programski kod.
Ovaj sajt koristi tehnologiju kolačića (cookies). Detaljnije o tome možete pročitati u tekstu o našoj politici privatnosti.