petak, 19 aprila, 2024
Kako da...?

Uvod u programski jezik C (11. deo)

Autor: Nikola Hardi

Šta uglavnom želimo da napravimo?

Početnici u programiranju uglavnom imaju ideju za program koju žele da realizuju pa iz te ideje proistekne želja za učenjem nekog programskog jezika. Često je reč o nekoj aplikaciji sa grafičkim interfejsom, o sistemskom programiranju i radu sa hardverom ili sa nekom zanimljivom matematikom. U ovom tekstu biće predstavljeni primeri takvih aplikacija i biće date smernice o tome kako je takve aplikacije moguće napraviti.

Klasična GUI aplikacija

Ovo je klasičan tip desktop aplikacija sa dugmićima (eng. buttons), padajućim listama (eng. drop down, combo box), menijima (eng. menu) i sličnim kontrolnim elementima. Iako je objektno orijentisani pristup danas najzastupljeniji u razvoju ovakvih aplikacija, postoje i biblioteke za jezik C kao što je GTK+.

Rad sa bazom podataka

U prethodnom delu serijala je spomenuto da je datoteke pogodno zameniti bazama podataka. Rad sa bazama podrazumeva mnogo stvari, poput uspostavljanja veze sa serverom. Zanimljiv pristup je i rad sa SQLite (Es-kju-lajt) bazom koja je sačuvana u jednoj datoteci. Ceo sistem za upravljanje bazom je enkapsuliran u jednu datoteku i jednu biblioteku – SQLite upravljački program (drajver).

Komunikacija sa udaljenim računarima

Međuračunarske mreže mogu biti vrlo složene. Komunikacija između dva računara može da se vrši na raznim nivoima i raznim protokolima. Međutim, korisnicima (i programerima) uglavnom je dovoljno da prenesu neki niz bajtova iz jednog programa u drugi. Ovo se može obaviti pomoću transportnog sloja, mehanizmom „mrežnih utičnica” (eng. network sockets) i protokola TPC ili UDP. Potrebno je svega desetak linija C koda da bi se uspostavila veza između dva programa putem mreže, a potom se prenos podataka sastoji od pripreme podataka u formi poruke (string i memorijski blok), slanja tih podataka i eventualnog čekanja na odgovor. Ključne reči za pretragu na internetu su „BSD sockets” ili „Berkleu sockets”.

Napredna konzolna aplikacija

Konzolne aplikacije mogu da imaju složeniji interfejs – moglo bi se reći čak i grafički interfejs. Reč je o biblioteci Ncurses, koja ima veoma dugu istoriju. Pomoću ove biblioteke moguće je izgraditi zaista zanimljive konzolne aplikacije.

Rad sa grafikom

Rad sa grafikom takođe može da podrazumeva mnogo toga. Pre svega, priča se deli na 2D i 3D grafiku. Za rad sa 2D grafikom može poslužiti SDL (Es-di-el), a za 3D OpenGL (Open-dži-el). Postoje i druge biblioteke sa sličnim funkcionalnostima. Za napredniji rad sa 3D grafikom (recimo, 3D igrom) postoje potpuni pokretači (eng. game engine) kao što je OGRE 3D (Object-Oriented Graphics Rendering Engine).

Kompjuterska vizija

Iako i ovi projekti na neki način spadaju u rad sa grafikom, zaslužuju poseban odeljak. Reč je naučno-istraživačkim projektima koji nastaju zarad istraživanja u oblasti mašinskog učenja i veštačke inteligencije u domenu kompjuterske vizije. Recimo, primeri ovakvih projekata bili bi prepoznavanje lica, prepoznavanje objekata i automatska korekcija fotografija. Za ovakve zadatke od neprocenjive važnosti je biblioteka OpenCV (Open-si-vi).Prethodni deo ovog serijala možete pročitati ovde.