петак, 19 априла, 2024
Како да...?

Увод у програмски језик C (11. део)

Аутор: Никола Харди

Шта углавном желимо да направимо?

Почетници у програмирању углавном имају идеју за програм коју желе да реализују па из те идеје проистекне жеља за учењем неког програмског језика. Често је реч о некој апликацији са графичким интерфејсом, о системском програмирању и раду са хардвером или са неком занимљивом математиком. У овом тексту биће представљени примери таквих апликација и биће дате смернице о томе како је такве апликације могуће направити.

Класична GUI апликација

Ово је класичан тип десктоп апликација са дугмићима (енг. buttons), падајућим листама (енг. drop down, combo box), менијима (енг. menu) и сличним контролним елементима. Иако је објектно оријентисани приступ данас најзаступљенији у развоју оваквих апликација, постоје и библиотеке за језик C као што је GTK+.

Рад са базом података

У претходном делу серијала је споменуто да је датотеке погодно заменити базама података. Рад са базама подразумева много ствари, попут успостављања везе са сервером. Занимљив приступ је и рад са SQLite (Ес-кју-лајт) базом која је сачувана у једној датотеци. Цео систем за управљање базом је енкапсулиран у једну датотеку и једну библиотеку – SQLite управљачки програм (драјвер).

Комуникација са удаљеним рачунарима

Међурачунарске мреже могу бити врло сложене. Комуникација између два рачунара може да се врши на разним нивоима и разним протоколима. Међутим, корисницима (и програмерима) углавном је довољно да пренесу неки низ бајтова из једног програма у други. Ово се може обавити помоћу транспортног слоја, механизмом „мрежних утичница” (енг. network sockets) и протокола TPC или UDP. Потребно је свега десетак линија C кода да би се успоставила веза између два програма путем мреже, а потом се пренос података састоји од припреме података у форми поруке (стринг и меморијски блок), слања тих података и евентуалног чекања на одговор. Кључне речи за претрагу на интернету су „BSD sockets” или „Berkleu sockets”.

Напредна конзолна апликација

Конзолне апликације могу да имају сложенији интерфејс – могло би се рећи чак и графички интерфејс. Реч је о библиотеци Ncurses, која има веома дугу историју. Помоћу ове библиотеке могуће је изградити заиста занимљиве конзолне апликације.

Рад са графиком

Рад са графиком такође може да подразумева много тога. Пре свега, прича се дели на 2Д и 3Д графику. За рад са 2Д графиком може послужити SDL (Ес-ди-ел), а за 3Д OpenGL (Опен-џи-ел). Постоје и друге библиотеке са сличним функционалностима. За напреднији рад са 3Д графиком (рецимо, 3Д игрom) постоје потпуни покретачи (енг. game engine) као што је OGRE 3D (Object-Oriented Graphics Rendering Engine).

Компјутерска визија

Иако и ови пројекти на неки начин спадају у рад са графиком, заслужују посебан одељак. Реч је научно-истраживачким пројектима који настају зарад истраживања у области машинског учења и вештачке интелигенције у домену компјутерске визије. Рецимо, примери оваквих пројеката били би препознавање лица, препознавање објеката и аутоматска корекција фотографија. За овакве задатке од непроцењиве важности је библиотека OpenCV (Опен-си-ви).Претходни део овог серијала можете прочитати овде.