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
<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
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 ...