Polja
U C-u možemo definirati polje varijabli određenog tipa.
To je korisno kada želimo da nekoliko varijabli dijele isto ime, ali ih razlikujemo po poziciji u polju.
npr;
int a[5];
Na ovaj način smo u memoriji rezervirali mjesta za pet podataka tipa int.
Pojedini članovi polja mogu se dohvaćati pomoću cjelobrojnih indeksa te mijenjati neovisno o ostalim članovima polja.
float x[]S= {1258, 254.52, 12., -17, 0.25};
Ovim smo napravili polje x tipa float s 5 elemenata ( x[0]S= 1258, x[1]S= 254.52, x[2]S= 12, x[3]S= -17, x[4]S= 0.25);
Prilikom deklariranja polja moramo predvidjeti maksimalni broj elemenata koje ćemo u njega spremati jer ako pokušamo spremiti više elemenata nego što smo definirali, prevoditelj će javiti grešku.
Prvi član u polju ima indeks 0, a zadnji član ima indeks za 1 manji od duljine polja.
Moguće je kreirati i dvodimenzionalna polja:
int MojaTablica[3][5];
Na ovaj način smo napravili matricu od tri retka i 5 stupaca.
Na ovaj način deklarirano polje (kada ga ne inicijaliziramo) ima slučajne vrijednosti.
Članove dovodimenzionalnog polja dohvaćamo pomoću dva indeksa: broja retka i broja stupca.
MojaTablica[0][1]S= 15; // 1. redak, 2. stupac
MojaTablica[2][4]S= 52; // 3. redak, 5. stupac
int MojaTablica[3][5]S= { {11,12,13,14,15},
{21, 22, 23, 24, 25}};
Na ovaj način smo napravili dvodimenzionalno polje od 3 retka i 5 stupaca, i postavili smo vrijednosti za prva dva retka.
Rezultat:
11 12 13 14 15
21 22 23 24 25
0 0 0 0 0
int[3][5]SMojaTablica
Prilikom deklaracije polja odmah smo predali vrijednosti za neke članove, pa se oni inicijaliziraju s tim vrijednostima, ostali članovi se postavljaju na nulu.
Jedno od ograničenja pri korištenju polja jest da duljina polja mora biti specificirana i poznata u trenutku prevođenja koda.
Duljina jednom deklariranog polja se ne može mijenjati tijekom izvođenja programa.
Funkcije za ispis i unos podataka
Deklaracija:
<povratni_tip> ime_funkcije (<tip> arg1, <tip> arg2);
Tip ispred imena funkcije određuje kakvog će tipa biti podatak kojeg će funkcija vraćati pozivatelju kao rezultat izvođenja.
Argumenti unutar zagrada iza imena funkcije su podaci koji se predaju funkciji prilikom njena poziva.
Broj i tip argumenata može biti proizvoljan.
Funkcija mora biti deklarirana u izvornom kodu prije nego što se prvi put pozove.
Definicija funkcije sadrži i tijelo funkcije.
//ovo je samo deklaracija funkcije
double kvadrat(float);
//ovo je definicija funkcije
double kvadrat(float x){
return x * x;
}
Svaka definicija funkcije je ujedno i deklaracija.
Nakon definicije nije dozvoljeno ponavljati deklaracije.
Main
Glavna funkcija u C programu. Svaki program napisan u C-u ju mora imati.
printf
Funkcija za ispis na ekran.
Potrebna biblioteka stdio.h.
Funkcija kao rezultat vraća broj uspješno ispisanih znakova na ekran.
deklaracija:
int printf(
const char *format [,
argument]...
);
Argument format se sastoji od običnih znakova, posebnih znakova za oblikovanje teksta i znakova za prikaz argumenata koji slijede iza argumenta format.
Znakovi za oblikovanje teksta:
\n – novi red
\t – pomicanje za jedan tab
Znakovi za prikaz vrijednosti varijabli
%d – prikaz cijelog broja
%.kf – prikaz realnog broja s k decimalnih mjesta (%.3f – tri decimalna mjesta)
%s – string
npr.:
printf("ispis brojeva \n\t cijeli broj: %d \n\t realni broj na tri decimale: %.3f", 5, 5.24567);
Na zaslon ispisuje:
ispis brojeva
cijeli broj: 5
realni broj na tri decimale: 5.246
scanf
Funkcija za unos podataka s ekrana.
Potrebna biblioteka stdio.h.
Funkcija kao rezultat vraća broj uspješno pridruženih vrijednosti varijablama.
deklaracija
int scanf(
const char *format [,
argument]...
);
npr.:
int a;
float b;
scanf ("%d %f", &a, &b);
Prilikom korištenja funkcije scanf potrebno je umjesto varijable proslijediti pokazivač (pointer) prema varijabli.
(&a – na ovaj način umjesto varijable a, mi prosljeđujemo pokazivač prema mjestu u memoriji gdje se nalazi varijabla a;
detalji o pokazivačima će biti opisani kasnije, u idućim postovima).