4 Slozeni Tipovi Polje Struct

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

SLOŽENI TIPOVI

PODATAKA
STRUCT
PONOVIMO
1. Kako razlikujemo tipove podataka?
2. Koji su jednostavni?
3. Koji su složeni?
4. Čemu služi enum?
5. Čemu služi typedef?
6. Što je struktura?
7. Čemu služi?
8. Kako se deklarira struktura?
9. Kako se deklarira strukturna varijabla?
10. Kako se inicijalizira strukturna varijabla?
11. Kako ćeš pojednostaviti deklariranje strukturne varijable korištenjem
typedef?
12. Kada ćemo koristiti strukturu unutar strukture?
13. Koje operacije nad strukturama su dozvoljene?
14. Koje su operacije dozvoljene nad članovima
15. strukture?
16. d.z. kreiraj i inicijaliziraj strukturu trgovina (naziv, adresa, vlasnik,
prodavac, tip)
NIZ ILI POLJE STRUKTURA

• pogodno za rad s velikim brojem podataka koji se


mogu grupirati u strukture
• evidencija o radnicima u poduzeću,
• učenicima u školi,
• artiklima u skladištu

• baze podataka su nastale na temelju nizova


struktura
PRIMJER

struct ucenik{
char ime[10]; NIZ
char prezime[10]; STRUKTURA
char oib[10]; UCENIK
};
main(){
struct ucenik uc[30];
uc[0].ime="Petar";
} ime prvog
učenika u
nizu je Petar
INICIJALIZACIJA ČLANOVA NIZA
STRUKTURA
struct ucenik uc[30];

• obavezno navesti INDEKS uz ime niza:

uc[0].ime="Petar";
...
uc[29].ime="Ivan";

• točka operator služi za pristupanje članovima


strukture
INICIJALIZACIJA NIZA STRUKTURA

struct ucenik{
char ime[10];
char prezime[10];
char oib[10];
};
struct ucenik uc[]={
{"Petar", "Peric", "3452617"},
{"Ivan", "Ivkovic", "9871234"}
};
ZADATAK

• Napišite funkciju koja provjerava da li su svi upisani


učenici mlađi od 18 godina.

• zadana je struktura
struct ucenik{
char ime[10];
char prezime[10];
int godina_rodj;
};
struct ucenik uc[30];
STRUKTURA KAO ARGUMENT
FUNKCIJA
• identično kao i kod jednostavnih tipova, strukturna
varijabla može biti argument funkcija
void ispis (struct ucenik uc1,int m)
{
printf("%s ime", uc1.ime);
printf("%s prezime", uc1.prezime);
printf("%d godina", 2014 - uc1.godina_rodj);
}
main(){
ispis(uc1, m); //poziv funkcije
}
• da li je to CALL BY VALUE ili CALL BY REFERENCE?
NIZOVI STRUKTURA KAO ARGUMENTI
FUNKCIJA
void unos(struct ucenik uc[30],int m)
{
for (int i=0;i<m;i++){
scanf("%s",&uc [i].ime);
scanf("%s",&uc [i].prezime);
scanf("%d",&uc [i].godina);
}

• napomena: često se strukturne varijable koriste kao


globalne, da li ih je tada potrebno prenositi u
funkciju?
ZADATAK

• napiši funkciju koja računa sniženu cijenu 20


artikala, za zadanu strukturu:
struct artikl{
char naziv[20];
float cijena;
int snizenje;
}
struct artikl art[20];
PONOVIMO

1. Kada se koristi niz struktura?


2. Kako ćemo inicijalizirati naziv 10. elementa niza
struktura artikl? Koji mu je indeks?
struct artikl{
char naziv[20];
} art[100];
3. Kako prosljeđujemo strukture u funkciju?
4. Da li je to prosljeđivanje po adresi ili vrijednosti?
(call by value ili call by reference)
ZADATAK ZA DZ

• Napravite program koji će izračunati prosječnu


dnevnu i prosječnu noćnu temperaturu 10 hrvatskih
gradova u 5 dana, odnosno noći.
• koristiti
• struct gradovi{
int dan[5];
int noc[5];
}grad[10];

You might also like