Biblioteke funkcija

Site: vpf.gnomio.com
Course: 18/19: Programiranje IT 2
Book: Biblioteke funkcija
Printed by: Guest user
Date: Thursday, 11 December 2025, 11:02 PM

Description

Ovde se upoznajemo sa bibliotekama funkcija: * sa standardnim bibliotekama funkcija koje smo ionako koristili * i kako kreirati sopstvenu biblioteku funkcija

1. Standardne biblioteke funkcija

Funkcije potrebne u većini programa (standardne funkcije) nisu sastavni dijelovi C-a, već dolaze s programom prevodiocem. Razvrstane su prema nameni i spremljene u fioke - biblioteke funkcija.

Kada je potrebno koristiti funkciju iz određene fioke (biblioteke), ona se jednostavno "otvori" naredbom #include i programu su dostupne sve funkcije iz nje.

Jedna od važnijih razlika između C-a i ostalih programskih jezika je u tome što je program u C-u sastavljen od niza funkcija.
Standardne funkcije (funkcije potrebne u većini programa) ipak nisu ugrađene u sam C, već se nalaze u bibliotekama funkcija koje se isporučuju  s programom prevodiocem.

Biblioteke funkcija nastale su standardizacijom C-a, pa je dovoljno na početku programa najaviti da će se koristiti određena biblioteka i kroz celi program dostupne su sve funkcije koje se u njoj nalaze. Tako se, npr. biblioteka u kojoj se nalaze funkcije za ulaz i izlaz podataka naziva stdio.h, matematičke funkcije nalaze se u biblioteci math.h, a funkcije za rad sa znakovnim promenljivima u biblioteci string.h.

Korišćenje određene biblioteke funkcija najavljuje se pretprocesorskom naredbom #include<> koja se piše na početku programa prije funkcije main().

Između znakova<> piše se naziv biblioteke koja se poziva.

Na primer: #include<stdio.h>

1.1. Standardne biblioteke koje koristimo

Uz programski jezik C se isporučuju standardne biblioteke funkcija. Biblioteke sadrže procedure, funkcije i promenljive. Funkcije iz biblioteka se uključuju u program ključnom reči:    #include <biblioteka.h>
Standardne biblioteke funkcija su:

<assert.h> <ctype.h> <errno.h> <float.h> <limits.h> <locale.h> <math.h> <setjmp.h> <signal.h> <stdarg.h> <stddef.h> <stdio.h> <stdlib.h> <string.h> <time.h>

U novijim verzijama C standarda postoji još više dodatih biblioteka funkcija - u ovom momentu ih je 29 ...

Neke od funkcija koje koristimo u toku ove školske godine:

Stdio.h   funkcije:

  • fopen/fclose – otvaranje/zatvaranje datoteke
  • fprintf/fscanf – štampanje/čitanje iz datoteke
  • printf/scanf – štampanje/čitanje iz standardnog ulaza/izlaza (tastatura/ekran)
  • putc/getc – štampanje/učitavanje jednog znaka iz standardnog ulaza/izlaza
  • puts/gets – štampanje/učitavanje stringa iz standardnog ulaza/izlaza
  • fread/fwrite – učitavanje/snimanje bloka bajtova iz datoteke

Math.h   funkcije:

  • sin, cos, tan
  • asin, acos, atan
  • sinh, cosh, tanh
  • exp(x) -> ex
  • log(x) ->à ln(x)
  • log10(x) -> log(x)
  • pow(x, y) -> xy
  • sqrt – kvadratni koren
  • ceil – zaokružuje na gore
  • floor – zaokružuje na dole

Stdlib.h     funkcije:

  • atof – konverzija stringa u float
  • atoi – konverzija stringa u int
  • atol – konverzija stringa u long
  • rand, random – pseudoslučajni broj
  • malloc/free – alokacija/oslobađanje memorije
  • exit – završetak rada programa
  • system – izvršava program
  • abs – apsolutna vrednost
  • qsort – QUICK SORT
  • div – celobrojno deljenje

String.h    funkcije:

  • strcpy – kopira polazni string u odredišni
  • strncpy – kopira polaznih n slova u odredišni string
  • strcat – spaja drugi string na kraj prvog
  • strncat – spaja najviše n slova drugog stringa na kraj prvog
  • strcmp – poredi stringove
  • strncmp – poredi najviše n slova prvog stringa sa drugim
  • strchr – vraća pokazivač na prvo mesto zadatog slova u stringu
  • strstr – vraća pokazivač na prvu pojavu zadatog stringa u prvom stringu
  • strlen – vraća dužinu stringa

Ctype.h   funkcije:

  • isalpha – da li je slovo
  • isdigit – da li je broj
  • isalnum – da li je alfanumerik (slovo ili broj)
  • iscntrl – da li je kontrolni znak
  • islower/isupper – da li je malo/veliko slovo
  • isxdigit – da li je heksadecimalna cifra

Time.h    funkcije:

  • time – vraća trenutno kalendarsko vreme
  • difftime – vraća razliku dva vremena u sekundama
  • strftime – pravi formatiranu tekstualnu reprezentaciju vremena i datuma
Na Internetu postoji dosta tutorijala i referentnih priručnika sa listom biblioteka i funkcija koje se nalaze u njima, kao na primer OVDE.

2. Korisnički definisane biblioteke funkcija

Ako želimo da imamo naše biblioteke funkcija, onda ih možemo sami napisati.

Razlika u upotrebi u odnosu na ugrađene biblioteke funkcija koje dolaze zajedno sa kompajlerom je u sledećem:

  • ugrađene funkcije se pozivaju sa na primer: #include <stdio.h>  => koriste se zagrade  <>
  • korisnički definisane biblioteke se pozivaju kao na primer #include "moj_fajl.h"   => koriste se navodnici " "

Obično nas ne interesuje gde se nalaze biblioteke funkcija koje su ugrađene - o tome vodi rečuna kompajler. Međutim, ako koristimo naše (korisnički definisane) biblioteke funkcija,  najlakše je ako se nalaze na istom mestu gde i program koji ih koristi.

Za početak:

Najlakše je napisati gomilu funkcija u nekom fajlu, i ako se taj fajl sačuva pod nekim imenom koje završava sa .h onda možemo da ga upotrebimo u koliko god hoćemo različitih programa. - ovo je najlakše rešenje za početnike -

- Na ovaj način kreiramo biblioteke funkcija na prvom delu časova vežbi - biblioteke funkcija za rad sa bitovima, biblioteke funkcija za rad sa nizovima, biblioteke funkcija koje rade aritmetičke operacije. - (ovo će biti postavljeno kasnije)

Malo kasnije:

Generalno je bolje napisati funkcije u posebnom .c fajlu, a u .h fajlu postaviti samo deklaracije funkcija koje su definisane u onom posebnom fajlu.

- Na ovaj način ćemo kreirati biblioteku funkcija na drugom delu časova vežbi - gde će učenici za kreiranje sopstvene biblioteke funkcija koristiti funkcije za rad sa nizovima koje su napisali za domaći zadatak

Na ovaj način se postiže bolja preglednost i dobija se elgantnije rešenje. S druge strane, na ovaj način je napisana većina od biblioteka funkcija koje se mogu pronaći online

2.1. Zadatak sa časa u kojem se koristi biblioteka funkcija

.... biće postavljeno kasnije ...