Cjelobrojno programiranje oblik je linearnog programiranja u kojem postoji zahtjev da rješenja moraju poprimiti cjelobrojne iznose. Dvije najznačajnije metode za rješavanje cjelobrojnog programiranja su metoda cjelobrojnih formi i metoda odsijecajućih ravnina. Najčešći problemi u kojima se javlja potreba za cjelobrojnim programiranjem su problem fiksnih troškova, problem optimalne investicijske odluke i problem ranca. Na problem ranca moguće je naići u svakodnevnom životu, stoga je napravljena aplikacija koja rješava problem ranca, naziva "Zero-One Knapsack". U prilogu se nalazi instalacijska datoteka za aplikaciju, a instalacija i korištenje aplikacije objašnjeni su na kraju rada