Jendodimenzionalno polje Zoran Hercigonja mag edu inf 1

  • Slides: 35
Download presentation
Jendodimenzionalno polje Zoran Hercigonja, mag. edu. inf. 1

Jendodimenzionalno polje Zoran Hercigonja, mag. edu. inf. 1

Polje • Polje je niz varijabli istog tipa imenovanih zajedničkim identifikatorom, koje se nalaze

Polje • Polje je niz varijabli istog tipa imenovanih zajedničkim identifikatorom, koje se nalaze na uzastopnim memorijskim lokacijama • Svaka varijabla u polju se naziva element polja 2

Jednodimenzionalno polje • Najednostavniji oblik polja • Elementi se dohvaćaju s pomoću samo jednog

Jednodimenzionalno polje • Najednostavniji oblik polja • Elementi se dohvaćaju s pomoću samo jednog indeksa • Elementi polja nalaze se u linearnom slijedu 3

Sintaksa deklaracije jednodimenzionalnog polja tip_elemenata_polja ime [duljina_polja]; 4

Sintaksa deklaracije jednodimenzionalnog polja tip_elemenata_polja ime [duljina_polja]; 4

Sintaksa deklaracije jednodimenzionalnog polja • tip_elemenata_polja- ili tip_podataka predstavlja jedan od osnovnih tipova podataka

Sintaksa deklaracije jednodimenzionalnog polja • tip_elemenata_polja- ili tip_podataka predstavlja jedan od osnovnih tipova podataka u C-u • Koji tipovi podataka postoje? • ime-ili identifikator • duljina polja- ili broj_elemenata polja je najveći mogući broj elemenata koji se mogu upisati u dano polje 5

Jednodimenzionalno polje int p[5]; p[0] p[1] p[2] p[3] p[4] Svaka varijabla u polju ima

Jednodimenzionalno polje int p[5]; p[0] p[1] p[2] p[3] p[4] Svaka varijabla u polju ima indeks preko kojeg joj se pristupa Posljednji element polja Prvi element polja uvijek duljine N ima indeks 0! indeks N-1! 6

Jednodimenzionalno polje • Važno : • Deklaracijom jednodimenzionalnog niza u memoriji se za svaki

Jednodimenzionalno polje • Važno : • Deklaracijom jednodimenzionalnog niza u memoriji se za svaki element rezervira posebna memorijska lokacija • Rezervirane lokacije obično idu jedna iza druge 7

Jednodimenzionalno polje • Pitanje • Kakvog su tipa podataka varijable u polju? • Da

Jednodimenzionalno polje • Pitanje • Kakvog su tipa podataka varijable u polju? • Da li su istog tipa ili različitog tipa podataka? 8

Jednodimenzionalno polje • Varijable u polju su sve istog tipa podataka 9

Jednodimenzionalno polje • Varijable u polju su sve istog tipa podataka 9

Jednodimenzionalno polje • Ako deklariramo niz od 7 elemenata program prevoditelj osigurava u memoriji

Jednodimenzionalno polje • Ako deklariramo niz od 7 elemenata program prevoditelj osigurava u memoriji neprekinut prostor za 7 realnih podataka float a[7] 10

Jednodimenzionalno polje Indeksi a 0 1 2 3 4 5 6 Ime niza 11

Jednodimenzionalno polje Indeksi a 0 1 2 3 4 5 6 Ime niza 11

Jednodimenzionalno polje • Važno: • Ako se niz deklarira kao globalna varijabla onda je

Jednodimenzionalno polje • Važno: • Ako se niz deklarira kao globalna varijabla onda je početna vrijednost svih elemenata niza jednaka 0 • Ako se deklarira kao lokalna varijabla onda elementi niza nisu inicijalizirani • Ako je potrebno polje se može inicijalizirati prilikom deklaracije ili u programu 12

Jednodimenzionalno polje • Ako prilikom inicijalizacije skup vrijednosti ima manje elemenata nego što je

Jednodimenzionalno polje • Ako prilikom inicijalizacije skup vrijednosti ima manje elemenata nego što je deklarirano, vrijednost preostalih elemenata su 0 13

Jednodimenzionalno polje 1. #include<stdio. h> 2. int main(void) 3. { 4. int b[7]={10, 20,

Jednodimenzionalno polje 1. #include<stdio. h> 2. int main(void) 3. { 4. int b[7]={10, 20, 30, 40, 50}; 5. printf("n %d", b[6]); 6. system("pause"); 7. return 0; 8. } 14

Jednodimenzionalno polje b[0] b[1] b[2] b[3] b[4] b[5] b[6] 10 20 30 40 50

Jednodimenzionalno polje b[0] b[1] b[2] b[3] b[4] b[5] b[6] 10 20 30 40 50 0 0 15

Jednodimenzionalno polje • Važno: • broj elemenata unutra polja može biti jednak veličini polja

Jednodimenzionalno polje • Važno: • broj elemenata unutra polja može biti jednak veličini polja ili manji 16

Jednodimenzionalno polje 1. 2. 3. 4. 5. 6. 7. #include<stdio. h> int main(void) {

Jednodimenzionalno polje 1. 2. 3. 4. 5. 6. 7. #include<stdio. h> int main(void) { int b[3]={10, 20, 30, 40, 50}; system("pause"); return 0; } 17

Jednodimenzionalno polje • Duljina niza može se i izostaviti. Program prevoditelj će tada sam

Jednodimenzionalno polje • Duljina niza može se i izostaviti. Program prevoditelj će tada sam odrediti duljinu niza prema broju elemenata navedenih unutar vitičastih zagrada 18

Jednodimenzionalno polje 1. 2. 3. 4. 5. 6. 7. 8. 9. #include<stdio. h> int

Jednodimenzionalno polje 1. 2. 3. 4. 5. 6. 7. 8. 9. #include<stdio. h> int main(void) { int b[]={10, 20, 30, 40, 50}; printf("n %d", b[5]); system("pause"); return 0; } 19

Ispis elemenata jednodim. polja • Naredba za ispis se kombinira s programskim petljama koje

Ispis elemenata jednodim. polja • Naredba za ispis se kombinira s programskim petljama koje omogućuju pomicanje po nizu promjenom indeksa • Od tri programske petlje najpraktičnija je for petlja 20

Ispis elemenata jednodim. polja • for (kv=0; kv<n; kv++) • printf („n format”, ime_polja[kv]);

Ispis elemenata jednodim. polja • for (kv=0; kv<n; kv++) • printf („n format”, ime_polja[kv]); • kv- kontrolna varijabla • n-veličina niza (najveći broj elemenata) • format-format za ispis kojiovisi o tipu elemenata upisanih u niz 21

Ispis elemenata jednodim. polja 1. #include<stdio. h> 2. 3. 4. 5. 6. 7. 8.

Ispis elemenata jednodim. polja 1. #include<stdio. h> 2. 3. 4. 5. 6. 7. 8. 9. int main (void) { int i, b[3]={1, 2, 3}; for(i=0; i<3; i++) printf ("n %d", b[i]); system("pause"); return 0; } 22

Ispis elemenata jednodim. polja Što će ispisati sljedeći program? 1. #include<stdio. h> 2. 3.

Ispis elemenata jednodim. polja Što će ispisati sljedeći program? 1. #include<stdio. h> 2. 3. 4. int i, b[10]={2, 4, 6, 8, 10, 12, 14, 16}; int main (void) { 5. 6. 7. 8. 9. for(i=1; i<10; i+=2) printf ("n %d", b[i]); system("pause"); return 0; } 23

Ispis elemenata jednodim. polja Ispis: 4, 8, 12, 16, 0 Zašto? Kontrolna vrijednost u

Ispis elemenata jednodim. polja Ispis: 4, 8, 12, 16, 0 Zašto? Kontrolna vrijednost u petlji jednaka je 1 što znači da će prvi element imati indeks 1 to jest dat će broj 4 Vrijednost kontrole varijable uvećava se za 2 pa se svaki drugi element preskače Prilikom deklaracije polja zauzeto je 10 mjesta, a aprilikom inicijalizacije popunjeno je samo 8. Deveti i deseti element automatski se popunjava nulom 24

Unošenje vrijednosti elemenata u polje • Kao i kod ispisa vrijednosti, za njihovo unošenje

Unošenje vrijednosti elemenata u polje • Kao i kod ispisa vrijednosti, za njihovo unošenje koriste se programske petlje. • for (kv=0; kv<n; kv++) • printf („n format”, &ime_polja[kv]); 25

Unošenje vrijednosti elemenata u polje 1. #include<stdio. h> 2. 3. 4. 5. 6. 7.

Unošenje vrijednosti elemenata u polje 1. #include<stdio. h> 2. 3. 4. 5. 6. 7. 8. 9. { int main(void) int i, b [3]; for(i=0; i<3; i++) printf("n %d", b[i]); system("pause"); return 0; } 26

Unošenje vrijednosti elemenata u polje Prethodni zadatak kombiniran s ispisom 1. #include<stdio. h> 2.

Unošenje vrijednosti elemenata u polje Prethodni zadatak kombiniran s ispisom 1. #include<stdio. h> 2. 3. 4. 5. 6. int main(void) { int i, b [3]; for(i=0; i<3; i++) scanf("n %d", &b[i]); 7. for(i=0; i<3; i++) 8. printf("n %d", b[i]); 9. system("pause"); 10. return 0; 11. } 27

Zadatak 1 • Deklarirajte polje od 10 elemenata • a[10]={2, 4, 6, 8, 10,

Zadatak 1 • Deklarirajte polje od 10 elemenata • a[10]={2, 4, 6, 8, 10, 12, 14, 16, 18, 20}; 28

29

29

Zadatak 2 • Deklarirajte polje od 10 elemenata • a[10]={2, 4, 6, 8, 10,

Zadatak 2 • Deklarirajte polje od 10 elemenata • a[10]={2, 4, 6, 8, 10, 12, 14, 16, 18, 20}; • I ispišite 1, 4, 6 i 10 element 30

31

31

Zadatak 3 Nadogradite zadatak 2 tako da deklarirate novo polje od 10 elemenata b[10];

Zadatak 3 Nadogradite zadatak 2 tako da deklarirate novo polje od 10 elemenata b[10]; i u njega napravite unos od 5 elemenata 32

33

33

Zadatak 4 • Nadogradite zadatak 3 tako da upotrebom for petlje napravite ispis elemenata

Zadatak 4 • Nadogradite zadatak 3 tako da upotrebom for petlje napravite ispis elemenata polja a[10]={2, 4, 6, 8, 10, 12, 14, 16, 18, 20}; 34

35

35