Osnovna Škola "Učitelj Tasa", Niš

Home Школа Преузимања Programiranje i programski jezici Algoritmi, razvoj softvera i programski jezici
Преузимања
Up

Algoritmi, razvoj softvera i programski jezici

Osnove programiranja

Algoritmi

Ako želimo da produbimo svoje znanje i naučimo da pravimo kompleksne web sajtove i web aplikacije, moramo da naučimo i nešto o programiranju. Ovde se obrađuju osnove programiranja - algoritmizacija problema, rad sa promenljivama, kontrola toka, strukture podataka

Već smo zaključili da su za rad računara potrebni programi, koji nastaju zahvaljujući posebnoj vrsti aplikacija – programskom softveru. U programski softver spadaju sve aplikacije koje služe za pisanje drugih programa. Ponekad je za to dovoljan najjednostavniji tekst editor, a ponekad su u pitanju veoma složeni softverski paketi.

Najjednostavnije rečeno, algoritam predstavlja neki precizno opisan postupak. Taj postupak je obično svrsishodan, što znači da nas vodi do nekog cilja (rešenja problema) do koga možemo doći praćenjem niza koraka. Tako možemo reći da je algoritam precizno definisan postupak za rešavanje nekog problema u konačnom broju koraka.

U algoritmu koraci moraju biti jasno odvojeni, a sam algoritam mora biti nedvosmislen i mora se završiti posle nekog određenog broja koraka. Za iste početne vrednosti, algoritam uvek daje iste rezultate i primenljiv je za veći broj različitih početnih vrednosti.

Algoritam je kao recept za kolače. Tu je naveden tačan redosled radnji koje treba da obavimo od početka do kraja kako bismo dobili rezultat (kolač).

Algoritmi su značajni za programiranje iz prostog razloga što sami programi predstavljaju konkretnu realizaciju algoritama na računaru.

Algoritmi mogu biti opisani na razne načine, od kojih su neki više (pseudokod) ili manje (prirodan jezik) formalizovani. Jedan od najpoznatijih i najpreglednijih načina za predstavljanje algoritama je putem algoritamske šeme (blok-dijagrama).

Postoji nekoliko podela algoritama, a najpoznatija je prema načinu izvršavanja koraka. Po njoj, algoritmi mogu biti:

Naravno, svaki malo složeniji algoritam u sebe uključuje elemente sva tri tipa.

Treba da znamo da se kvalitet svakog programa, a samim tim i algoritma, ocenjuje po dva osnova, a to su brzina i korišćenje memorije. Iz ranijih tekstova o hardveru, sećamo se da brzina i memorija predstavljaju dva ključna elementa u razvoju računara – procesori postaju sve moćniji i brži, a kapaciteti unutrašnje i spoljne memorije se sve više povećavaju.

To znači da, sa jedne strane, proizvođači hardvera pokušavaju sve više da ubrzaju računare i da im ugrade što je moguće više memorije, dok se, sa druge strane, programeri trude da pišu bolje programe koji će raditi brže i zauzimati manje memorije. Na taj način računari mogu da rade sa većom količinom podataka i time budu upotrebljiviji.

Bolji algoritam je onaj koji je efikasniji po pitanju korišćenja memorije i koji u manjem broju izvršenih koraka dolazi do rezultata.

Razvoj softvera i programski jezici

Razvoj bilo kakve složenije aplikacije danas nije posao koji se prepušta slučaju. U pitanju je proces koji sve više podleže standardizaciji i kome se i te kako ozbiljno i planski pristupa.
 
Sam tok razvoja softvera može se podeliti na nekoliko etapa, a jedna podela bila bi na:
  • planiranje,
  • analizu zahteva,
  • dizajn,
  • programiranje,
  • testiranje i
  • korišćenje u realnim uslovima.
Prve tri etape predstavljaju pripremne faze, kojima se određuju plan i metodologija rada i oblikuje koncept aplikacije. Sledi programiranje koje rezultuje radnom verzijom programa. Program se tada testira i ispravljaju mu se greške, da bi potom počelo njegovo korišćenje u probnom periodu, tokom koga se ocenjuje koliko program odgovara početnim zahtevima. Čak i kada program potpuno odgovara zahtevima, angažman programera se nastavlja na održavanju i unapređenju softvera. Suštinski, ove etape predstavljaju 4 faze klasičnog razvoja – definisanje šta program radi, definisanje kako program to treba da radi, programiranje i korišćenje.

Programski jezik je veštački jezik koji se koristi za kontrolisanje rada računara. Prema nekim autorima, programski jezik je samo onaj jezik kojim se može predstaviti svaki mogući algoritam.

Kao i prirodni jezici, svaki programski jezik ima određena pravila:
  • sintakse (gramatike) - pravila koja određuju način pisanja programa i
  • semantike (smisla) - pravila kojima se definiše da ono što je napisano ima neko značenje.
Pogledajmo primer naredbe kojom se proizvod promenljivih X i Y smešta u promenljivu A. Pravila sintakse programskog jezika Pascal nam zabranjuju da tu naredbu napišemo npr. kao:

a = *(x,y).
Prethodni red ima veliki broj grešaka (naredba dodele nije isto što i operator jednakosti, operator množenja se mora naći između dva operanda, posle naredbe se ne stavlja tačka, itd). Sintaksno ispravan način zapisa ove naredbe bio bi:

a := x * y;
Međutim, šta ako promenljive X i Y nisu numeričke već tekstualne? U tom slučaju, iako smo napisali sintaksno ispravnu naredbu, ona nema smisla, jer ne postoji stvar kao što je proizvod dva teksta.

Tokom godina, razvijeno je nekoliko stotina programskih jezika, namenjenih rešavanju specifičnih grupa problema. Neki od njih su u širokoj upotrebi, dok se neki koriste samo u posebne svrhe. 

 

 

Powered by Phoca Download