Sloeni tipovi podataka 2 3 Sloeni tipovi podataka

  • Slides: 9
Download presentation
Složeni tipovi podataka

Složeni tipovi podataka

2. 3. Složeni tipovi podataka C raspolaže sljedećim složenim tipovima podataka: Nizovi (indeksirane promjenljive)

2. 3. Složeni tipovi podataka C raspolaže sljedećim složenim tipovima podataka: Nizovi (indeksirane promjenljive) jednodimenzionalno = NIZ, dvodimenzionalno = MATRICA, višedimenzionalno strukture unije

2. 3. 1. Nizovi Niz ili vektor je jednodimenzionalno polje To je skup podataka

2. 3. 1. Nizovi Niz ili vektor je jednodimenzionalno polje To je skup podataka istog tipa U memoriji se smješta u niz uzastopnih mem. lokacija Svi podaci u nizu imaju jedno ime = IME NIZA Ime niza predstavlja početnu adresu niza u memoriji Svaki element u nizu određen je: imenom niza, i indeksom (pomjerajem u odnosu na početak niza) niz[7] niz[6] niz[5] niz[4] niz[3] niz[2] niz[1] niz[0] MEMORIJA

2. 3. 1. Nizovi Deklaracija niza Opšti oblik deklaracije: tip ime_niza [broj_elemenata] = {lista

2. 3. 1. Nizovi Deklaracija niza Opšti oblik deklaracije: tip ime_niza [broj_elemenata] = {lista vrijednosti} tip niza (tip podataka u nizu) ime niza (identifikator u skladu sa sintaksom jezika, važe sva pravila kao i za skalarne promjenljive) vrijednosti elemenata u nizu (inicijalizacija niza) (nije obavezno inicijalizovanje) (vrijednosti se razdvajaju zapetama) broj elemenata u nizu (cjelobrojna konstanta) (rezerviše se potreban broj bajtova za memorisanje deklarisanog broja elemenata)

2. 3. 1. Nizovi Deklaracija niza Primjer deklaracije: int niz[5]; char tekst[10]; tekst[9] tekst

2. 3. 1. Nizovi Deklaracija niza Primjer deklaracije: int niz[5]; char tekst[10]; tekst[9] tekst 10*1 B = 10 B Primjer: #define MAX 5 #define LENG 10 main() { int niz[MAX]; char tekst[LENG]; . . . } tekst[1] tekst[0] niz[4] niz[3] niz[2] 5*2 B = 10 B niz[1] niz[0] MEMORIJA

2. 3. 1. Nizovi Deklaracija niza Primjer deklaracije sa inicijalizacijom: A[0] int A[3]={1, 2,

2. 3. 1. Nizovi Deklaracija niza Primjer deklaracije sa inicijalizacijom: A[0] int A[3]={1, 2, 3}; int B[]={1, 2, 3, 4}; int C[5]={10}; int D[5]={0}; 1 A[1] 2 A[2] 3 B[0] B[1] B[2] 1 2 3 C[0] C[1] C[2] 10 0 0 D[0] D[1] D[2] 0 0 0 B[3] 4 C[3] C[4] 0 0 D[3] D[4] 0 0

2. 3. 1. Nizovi Primjer: Učitati niz od n cijelih brojeva, pa ih ispisati

2. 3. 1. Nizovi Primjer: Učitati niz od n cijelih brojeva, pa ih ispisati redoslijedom kojim su učitani. #include <stdio. h> #define MAX 100 main() { int niz[MAX]; int i, n; do { printf(”n=”); scanf(”%d”, &n); } while (n<1); for ( i=1 ; i<=n ; i++ ) { printf(”Unesite %d. broj: ”); scanf(”%d”, &niz[i-1]); } printf(”Unijeli ste: ”); for ( i=0 ; i<n ; i++ ) printf(” %d”, niz[i]); } POČETAK n ISTINA n<1 LAŽ i = 1, n niz[i-1] i = 0, n-1 niz[i] KRAJ

2. 3. 1. Nizovi Primjer: Učitati niz od n cijelih brojeva, pa ih ispisati

2. 3. 1. Nizovi Primjer: Učitati niz od n cijelih brojeva, pa ih ispisati obrnutim redoslijedom. #include <stdio. h> #define MAX 100 main() { int niz[MAX]; int i, n; do { printf(”n=”); scanf(”%d”, &n); } while (n<1); for ( i=1 ; i<=n ; i++ ) { printf(”Unesite %d. broj: ”); scanf(”%d”, &niz[i-1]); } printf(”Unijeli ste: ”); for ( i=n ; i>=1 ; i++ ) printf(” %d”, niz[i-1]); } POČETAK n ISTINA n<1 LAŽ i = 1, n niz[i-1] i = n, 1 niz[i-1] KRAJ

2. 3. 1. Nizovi Primjer: Učitati niz od n cijelih brojeva, pa ispisati njihovu

2. 3. 1. Nizovi Primjer: Učitati niz od n cijelih brojeva, pa ispisati njihovu aritmetičku sredinu i one učitane brojeve koji su veći od sredine. POČETAK T n ISTINA as = s/n n<1 i = 0, n-1 LAŽ s=0 i = 0, n-1 ISTINA niz[i]>as niz[i] s = s + niz[i] T KRAJ LAŽ #include <stdio. h> #define MAX 100 main() { int niz[MAX]; int i, n, s=0; float as; do { printf(”n=”); scanf(”%d”, &n); } while (n<1); for (i=0; i<=n-1; i++) { printf(”Unesite broj: ”); scanf(”%d”, &niz[i]); s+=niz[i]; } as=(float)s / n; printf(”Sredina: %7. 3 fn”, as); printf(”Veci su: ”); for ( i=0 ; i<n ; i++ ) if (niz[i]>as) printf(” %d”, niz[i]); }