Složeni tipovi podataka

Save this PDF as:
 WORD  PNG  TXT  JPG

Størrelse: px
Begynne med side:

Download "Složeni tipovi podataka"

Transkript

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

2 Polja NIZOVI? 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

3 Polja 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) broj elemenata u nizu (cjelobrojna konstanta) (rezerviše se potreban broj bajtova za memorisanje deklarisanog broja elemenata) vrijednosti elemenata u nizu (inicijalizacija niza) (nije obavezno inicijalizovanje) (vrijednosti se razdvajaju zapetama)

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

5 Polja NIZOVI? Deklaracija niza Primjer deklaracije sa inicijalizacijom: int A[3]=1,2,3; int B[]=1,2,3,4; A[0] A[1] A[2] B[0] B[1] B[2] B[3] int C[5]=10; int D[5]=0; C[0] C[1] C[2] C[3] D[0] D[1] D[2] D[3] C[4] 0 D[4] 0

6 Polja 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

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

8 Polja 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 n ISTINA n < 1 s = 0 LAŽ i = 0, n-1 niz[i] s = s + niz[i] ISTINA niz[i] T as = s/n i = 0, n-1 niz[i]>as 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.3f\n,as); printf( Veci su: ); for ( i=0 ; i<n ; i++ ) if (niz[i]>as) printf( %d, niz[i]); T

9 Polja NIZOVI? SORTIRANJE Primjer: Program koji učitava niz cijelih brojeva, a zatim ih ispisuje u rastućem redoslijedu. Sortiranje niza: Sortiranje je postupak kojim se mijenja poredak elemenata u nizu, kako bi se podaci doveli u željeni redoslijed: rastući (ascending) opadajući (descending) Rješenje problema? Postoji velik broj algoritama za sortiranje Najpopularniji algoritmi za sortiranje: select-sort bubble-sort quick-sort shell-sort stack-sort...

10 Polja NIZOVI? SORTIRANJE SELECT-SORT int i, j, niz[] = 5, 2, 9, 4, pom; for(i=0; i<3; i++) // N-1 PROLAZA for(j=i+1; j<4; j++) if(niz[i]>niz[j]) pom = niz[i]; niz[i]=niz[j]; niz[j] = pom; niz[] pom ?

11 Polja MATRICE? Dvodimenzionalna polja Element niza može da bude novi niz tako dobijamo dvodimenzionalno polje (matrica) j... m-1 mat[1][0] i red (vrsta) n-1 mat[i][j] kolona (stupac) mat[n-1][m-1]

12 Polja MATRICE? Deklaracija matrice Opšti oblik deklaracije: tip ime_mat [D1][D2] = L1,L2,...,Ln-1 tip matrice (tip podataka) ime matrice vrijednosti elemenata u matrici inicijalizacija matrice nije obavezno inicijalizovanje dimenzije matrice D1 = broj redova D2 = broj kolona rezerviše se potreban broj bajtova za memorisanje D1*D2 elemenata

13 Polja MATRICE? Deklaracija matrice Primjer deklaracije: char tablica[2][3]; logička predstava tablica[1][2] tablica[1][1] tablica[1][0] tablica[0][2] tablica[0][1] tablica[0][0] MEMORIJA fizička predstava

14 Polja MATRICE? Deklaracija matrice Primjer deklaracije sa inicijalizacijom: int mat[2][3] = 3,1,8, 2,5,6 ; Primjer deklaracije sa inicijalizacijom: int mat[2][3] = 3,1,8 ;

15 Polja MATRICE? Manipulacija matricom Primjer učitavanja matrice: for ( red=1; red<=n; red++ ) for ( kol=1; kol<=m; kol++ ) printf( mat[%d][%d]=,red-1,kol-1); scanf( %d, &mat[red-1][kol-1]); ili: for ( red=0; red<n; red++ ) for ( kol=0; kol<m; kol++ ) printf( mat[%d][%d]=,red,kol); scanf( %d, &mat[red][kol]);

16 MATRICE? Polja Manipulacija matricom Primjer ispisivanja matrice: for ( red=1; red<=n; red++ ) for ( kol=1; kol<=m; kol++ ) printf( %4d,mat[red-1][kol-1]); printf( \n ); ili: for ( red=0; red<n; red++ ) for ( kol=0; kol<m; kol++ ) printf( %4d,mat[red][kol]); printf( \n );

17 Polja MATRICE? Manipulacija matricom Primjer manipulacije glavnom dijagonalom: mat[0][0] mat[1][1] mat[i][i] mat[i][j], i=j mat[n-1][n-1] Ispis elemenata na glavnoj dijagonali: printf( Glavna dijagonala: ); for ( i=0; i<n; i++ ) printf( %d, mat[i][i]); Suma elemenata na glavnoj dijagonali: for ( s=i=0; i<n; i++ ) s+=mat[i][i]; printf( Suma elemenata na GD: %d,s);

18 Polja MATRICE? Manipulacija matricom Primjer transponovanja matrice polazna matrica Ispis transponovane matrice na osnovu originalne matrice: printf( Transponovana:\n ); for ( i=0; i<n; i++ ) for ( j=0; j<n; j++ ) printf( %4d, mat[j][i]); printf( \n ); transponovana matrica Transponovanje matrice: ) for ( i=0; i<n; i++ ) for ( j=i+1; j<n; j++ pom=mat[i][j]); mat[i][j]=mat[j][i]; mat[j][i]=pom;

19 MATRICE? Polja Manipulacija matricom Primjer množenja dvije matrice * ??? 30??? 66??? Matrica A (m*n) Matrica B (n*p) Matrica C (m*p) Množenje matrica: for ( i=0; i<m; i++ ) /* red matrice C */ for ( j=0; j<p; j++ ) /* kolona matrice C */ for ( k=0; k<n; k++ ) c[i][j]+=a[i][k]*b[k][j];

20 Polja VIŠE DIMENZIJE? Višedimenzionalna polja C omogućava i manipulaciju višedimenzionalnim poljima Trodimenzionalno polje tip ime[d1][d2][d3]; Primjer deklaracije: int kocka[3][6][6]; Primjer 4-dim. polja: char P4[d1][d2][d3][d4]; kocka[sloj][red][kolona]

21 prenos VEKTORA u funkciju? Polja - Funkcije VEKTOR (polje) kao argument funkcije Prenos vektora (polja) vrši se putem adrese 1. prilikom poziva funkcije šalje se adresa niza (vektora) kao stvarni argument navodi se ime niza (ime niza je početna adresa niza) 2. funkcija prihvata adresu niza formalni argument u definicji funkcije mora da sadrži [ ] broj elemenata niza ne mora da se navodi ne stvara se kopija niza nego se manipuliše stvarnim podacima U funkciji se manipuliše stvarnim podacima, a ne kopijom niza. Zato funkcija može da promijeni niz, pa po povratku iz funkcije nemamo originalni nego modifikovani niz!!!

22 Polja - Funkcije prenos VEKTORA u funkciju? Primjer: Program koji pronalazi najveći element u nizu. #include <stdio.h> int max ( int niz[], int n); main() int a[] = 2,15,5,0,8 ; int n = 5; printf( Najveci: %d\n, max( a,n ) ); int max ( int niz[], int n ) int i, m=niz[0]; for (i=1; i<n; i++) if (niz[i]>m) m=a[i]; return (m); Najveci: 15 Poziv funkcije šalje se adresa niza Formalni argument deklaracija niza bez dimenzije moglo je i int niz[5]

23 prenos VEKTORA u funkciju? Polja - Funkcije Primjer: Program koji sortira i ispisuje niz korišćenjem funkcija. #include <stdio.h> void sort ( int niz[], int n); void pisi ( int niz[], int n); main() int a[] = 2,15,5,0,8 ; printf( Prije: ); pisi( a,n ); sort( a,n ); printf( Poslije: ); pisi( a,n ); void pisi ( int niz[], int n ) int i; for (i=0; i<n; i++) printf( %d, niz[i]); printf( \n ); void sort ( int niz[], int n ) int i,j,rb,pom; for (i=0; i<n-1; i++) for (rb=i, j=i+1; j<n; j++) if (niz[j]<niz[rb]) rb=j; if (rb!=i) pom=niz[i]; niz[i]=niz[rb]; niz[rb]=pom; Prije: Poslije:

24 Polja - Funkcije prenos MATRICE u funkciju? VIŠEDIMENZIONALNO polje kao argument funkcije Prenos višedimenzionalnog polja vrši se putem adrese U deklaraciji formalnih parametara: prva dimenzija ne mora da se navede (može samo [ ] ) ostale dimenzije moraju da se navedu Primjer: int funkcija (int a[][10][10], int p, int q) ili int funkcija (int a[10][10][10], int p, int q) U funkciji se manipuliše stvarnim podacima, a ne kopijom polja. Zato po povratku iz funkcije nemamo originalno nego modifikovano polje!!!

25 Polja - Funkcije prenos MATRICE u funkciju? Primjer: Program koji transponuje kvadratnu matricu. #include <stdio.h> void tran ( int m[10][10], int n); void pisi ( int m[10][10], int n); main() int a[10][10] = 1,2,3,4 ; printf( Prije:\n ); pisi(a,n); tran( a,n ); printf( Poslije:\n ); pisi(a,n); void pisi (int m[10][10], int n) int i,j; for (i=0; i<n; i++) for (j=0; j<n; j++) printf( %4d, m[i][j]); printf( \n ); void tran (int m[10][10], int n) int i,j,pom; for (i=0; i<n; i++) for (j=i+1; j<n; j++) pom=m[i][j]; m[i][j]=m[j][i]; m[j][i]=pom; Prije: Poslije:

26 Pokazivači (pointeri) POINTERI? Pokazivači (Pointeri) Pokazivači obezbjeđuju indirektan pristup memoriji (putem adrese) Pokazivač je promjenljiva koja sadrži memorijsku adresu nekog objekta ako je u pitanju polje tada je to adresa početnog elementa polja ako je u pitanju funkcija tada je to adresa početka funkcije Ako promjenljiva p sadrži adresu objekta q, kažemo da p pokazuje na q Primjer: p 100 q 65 MEMORIJA adresa Deklaracija pokazivača: Primjer: tip *ime; int *pi; char *pc, *tekst;

27 Pokazivači (pointeri) POINTERI? Operatori za rad sa pokazivačima Adresni operator & daje adresu nekog objekta u memoriji Ako je q neka promjenljiva tada &q daje adresu te promjenljive Ako želimo da pokazivač p pokazuje na promjenljivu q imamo p=&q p p=&q 100 q 65 MEMORIJA adresa Operator indirekcije * omogućava indirektan pristup promjenljivoj koristeći pokazivač na tu promjenljivu Ako je s neka promjenljiva, a p pokazivač na isti tip, tada se može pisati s=*p. To znači da će q dobiti vrijednost koja se nalazi na lokaciji koju pokazuje p p=&q s p q 65 MEMORIJA adresa s=*p

28 Pokazivači (pointeri) POINTERI? Operatori za rad sa pokazivačima Adresni operator & i operator indirekcije * su INVERZNI OPERATORI Primjer: ili y = *& x ili int x,y,*z; z = &x; y = *z; #include <stdio.h> main() int x, prom=5, *pokaz; pokaz = &prom; x = *pokaz; y = x printf( prom=%d\nx=%d\n,prom,x); y = *z = *&x = x prom=5 x=5

29 Pokazivači (pointeri) POINTER NA POLJE? Pokazivač na vektor (jednodimenzionalno polje) Ime vektora (niza) predstavlja adresu početnog elementa vektora i već je samo po sebi pokazivač (statički pokazivač) int a[5]=0; int *p, *q; a[0] a[1] a[2] a[3] a[4] 0 p = a; ili p = &a[0]; q = a+3; ili q = &a[3]; Napomena: a je statička promjenljiva Nije dozvoljeno a=a+2; ili a++; Napomena: p je dinamička promjenljiva Dozvoljeno je p=p+2; ili p++;

30 Pokazivači (pointeri) POINTER NA POLJE? Pokazivač na vektor (jednodimenzionalno polje) Primjer: #include <stdio.h> static int x[5] = 1,2,3,4,5; main() int *p; p = x; printf( %d %d %d\n, x[0], x[1], x[2]); printf( %d %d %d\n, *p, *(p+1), *(p+2) );

31 Pokazivači (pointeri) POINTER NA POLJE? Prenos vektora u funkciju pomoću pokazivača Pretpostavimo da imamo funkciju int funkcija (niz, n) int niz[], n;... pristup elementima u nizu niz[indeks] ili int funkcija (p, n) int *p, n;... pristup pomoću pointera *(p+indeks) Primjer: int suma (int niz[], int n) int s=0, i; for (i=0; i<n; i++) s += niz[i]; return (s); Primjer: int suma (int *p, int n) int s=0, i; for (i=0; i<n; i++) s += *(p+i); return (s);

32 Pokazivači (pointeri) POINTER NA POLJE? Pokazivač na matricu (dvodimenzionalno polje) int *p; mat[0][0] 0 1 i j... m-1 p = mat; ili p = &mat[0][0]; n-1 mat[i][j] *( mat + m*i + j ) ili *( &mat[0][0] + m*i + j )

33 Pokazivači (pointeri) ADRESNA ARITMETIKA? Adresna aritmetika Neka je: a vektor sa elementima tipa T v izraz tipa T n cjelobrojni izraz p, q pokazivači na tip T (pokazuju na elemente niza a) Tada važe sljedeća pravila: a pokazivač na početak niza &a[0] pokazivač na početak niza *p element niza a na koji pokazuje p *p=v elementu na koji pokazuje p dodjeljuje vrijednost v ++p pokazuje na sljedeći element niza --p pokazuje na prethodni element niza *++p inkrementira p, pa pristupa tom (sljedećem) elementu *p++ - pristupa elementu na koji pokazuje p, a zatim pokazuje na sljedeći element p+n - pokazuje na n-ti naredni element niza *(p+n)=v dodjeljuje vrijednost v n-tom narednom elementu u nizu u odnosu na element na koji pokazuje p q-p - određuje broj elemenata niza smještenih između adresa na koje pokazuju q i p

34 Pokazivači (pointeri) ADRESNA ARITMETIKA? Primjer: *c=a *i=1 *pc1=a *pi1=1 *(pc1+1)=b *(pi1+2)=3 *++pc1=b *++pi1=2 *pc1++=b *pi1++=2 *pi1=3 *pi1=1 pi2-pi1=3 #include <stdio.h> *pc1=c main() *pc1=a pc2-pc1=3 static char c[] = a, b, c, d ; static int i[] = 1, 2, 3, 4; char *pc1=&c[0], *pc2=&c[3]; int *pi1=&i[0], *pi2=&i[3]; printf( *c=%c *i=%d\n, *c, *i); printf( *pc1=%c *pi1=%d\n, *pc1, *pi1); printf( *(pc1+1)=%c *(pi1+2)=%d\n, *(pc1+1), *(pi1+2)); printf( *++pc1=%c *++pi1=%d\n, *++pc1, *++pi1); printf( *pc1++=%c *pi1++=%d\n, *pc1++, *pi1++); printf( *pc1=%c *pi1=%d\n, *pc1, *pi1); pc1-=2; pi1-=2; printf( *pc1=%c *pi1=%d\n, *pc1, *pi1); printf( pc2-pc1=%d pi2-pi1=%d\n, pc2-pc1, pi2-pi1);

35 Pokazivači (pointeri) REFERISANJE? Prenos argumenata u funkciju referisanjem Argumenti se u funkciju standardno prenose putem vrijednosti Funkcija nema mogućnost da promijeni vrijednost stvarnog argumenta!!! Da bi se omogućilo da funkcija mijenja vrijednost stvarnog argumenta: 1. Prilikom poziva funkcije treba slati adresu! 2. Formalni argument treba definisati kao pokazivač na tip! 3. U tijelu funkcije treba koristiti operator indirekcije! REFERISANJE = PRENOS ADRESE (REFERENCE) stvarnog argumenta Referisanje omogućava da funkcija mijenja vrijednost stvarnog argumenta!

36 Pokazivači (pointeri) REFERISANJE? Korišćenje operatora indirekcije Primjer: #include <stdio.h> void suma ( niz, n, s ) int *niz, n, *s; int i; *s = 0; for (i=0; i<n; i++) *s += *niz++ ; Formalni argument je pokazivač main() static int i[]=1,2,3,4; int x; suma (i, 4, &x); printf( Suma: %d, x); šalje se adresa Suma: 10

37 Stringovi STRING? Stringovi String je jednodimenzionalni znakovni niz Deklaracija stringa: Primjer: To je niz znakova koji završava nul-znakom (znak čiji je kod 0) \0 char ime[duzina] = string ; ili char ime[duzina] = znak, znak,, znak ; char grad1[] = PODGORICA ; char grad2[] = B, E, R, A, N, E, \0 ; Označavanje znakovnih i string konstanti: D ovo je znak D D ovo je string D, \0

38 Stringovi STRING? Manipulacija stringom Ispisivanje stringa ispisivanje pomoću funkcije Primjer: printf( %s, string); #include <stdio.h> main() char grad[]= BANJA LUKA ; printf( %s\n, grad); BANJA LUKA ispisivanje pomoću funkcije Primjer: puts(string); #include <stdio.h> main() char grad[]= BANJA LUKA ; puts(grad); BANJA LUKA

39 Stringovi STRING? Manipulacija stringom Učitavanje stringa učitavanje pomoću funkcije Primjer: scanf( %s, string); #include <stdio.h> main() char tekst[50]; printf( Unesi recenicu:\n ); scanf( %s, tekst); printf( %s, tekst); Unesi recenicu: BANJA LUKA BANJA učitavanje pomoću funkcije Primjer: gets(string); #include <stdio.h> main() char tekst[50]; printf( Unesi recenicu:\n ); gets(tekst); printf( %s, tekst); Unesi recenicu: BANJA LUKA BANJA LUKA

40 STRING? Stringovi Primjer: Program koji učitava string, a zatim ispisuje njegovu dužinu. #include <stdio.h> int strlen ( char *s ) int i; for (i=0; *s!= \0 ; i++); return(i); main() char grad[]= PODGORICA ; printf( Broj slova: %d, strlen(grad) ); Broj slova: 9

41 STRING? Stringovi Primjer: Program koji učitava string i pravi kopiju tog stringa. #include <stdio.h> void strcopy ( char *s1, char *s2 ) while ( *s2++ = *s1++ ); main() char original[100]= PODGORICA ; char kopija[100]; strcopy(original, kopija); printf( %s\n, original); printf( %s\n, kopija); PODGORICA PODGORICA

42 Stringovi (biblioteka: string.h) strlen() za određivanje dužine stringa bez znaka null na kraju strcmp() za poređenje kompletnih sadržaja dva stringa strncmp() za poređenje delova sadržaja dva stringa strcpy() za kopiranje jednog stringa u drugi, od početka drugog strncpy() za kopiranje dela jednog stringa u drugi, od početka drugog strcat() za kopiranje jednog stringa u drugi, u produžetku sadržaja drugog strncat() za kopiranje dela jednog stringa u drugi, u produžetku sadržaja drugog

43 Stringovi (biblioteka: string.h) char rec1[ ] = "abc"; char rec2[ ] = "abc"; char rec3[ ] = "aeo"; printf("%s\n", strcmp(rec1, rec2)? "razliciti":"isti"); isti printf("%s\n", strcmp(rec1, rec3)? "razliciti":"isti"); razliciti printf("%s\n", strcmp(rec2, rec3)? "razliciti":"isti"); razliciti

44 Stringovi (biblioteka: string.h) // KOPIRANJE STRINGA #include <stdio.h> #include <string.h> int main(void) char bafer[6]; char rec[ ] = "abc"; strcpy(bafer, rec); puts(bafer); getchar(); return(0);

45 Stringovi (biblioteka: string.h) // KOPIRANJE STRINGA #include <stdio.h> #include <string.h> int main(void) char bafer[6]; char rec[ ] = "abc"; strcpy(bafer, rec); puts(bafer); getchar(); return(0);

46 biblioteka: stdlib.h) (biblioteka: string.h) Stringovi atoi() za konverziju stringa u ceo broj, ako je to moguće atof() za konverziju stringa u realan broj, ako je to moguće //PRIMJER atof() #include <stdio.h> #include <string.h> #include <stdlib.h> int main(void) char tekst1[ ] = " 2.5"; char tekst2[ ] = "0005"; char tekst3[ ] = "10.25 i neki tekst"; char tekst4[ ] = "5e+2"; char tekst5[ ] = "neki tekst "; printf("\nbroj: %f", atof(tekst1)); // printf("\nbroj: %f", atof(tekst2)); // printf("\nbroj: %f", atof(tekst3)); // printf("\nbroj: %f", atof(tekst4)); // printf("\nbroj: %f", atof(tekst5)); // getchar(); return(0);

47 Znakovi znakovi Znak potreban programu može biti: slovo, cifra, ostali... Tip promenljive za čuvanje znaka samo jedan: char Svaki znak je kodiran u ASCII tabeli pomoću broja Nema posebnih operatora za znakove!

48 Znakovi ASCII TABELA

49 Znakovi UPRAVLJAČKI (NEKI) 13, Povratak na početak reda, '\r' 12, Prelaz na novu stranu, '\f' 11, Vertikalni pomeraj, '\v' 10, Prelaz u nov red, '\n' 9, Horizontalni pomeraj, '\t' 8, Povratak za jedno mesto, '\b 7, Zvono

50 Znakovi Prepoznavanje slova ili cifre u znaku Prostor u mem.

51 Strukture STRUKTURA? Strukture Struktura je skup heterogenih podataka međusobno logički povezanih Pogodna za grupisanje atributa nekog entiteta (stvarnog ili nestvarnog) Atributi? prezime ime visina struct osoba char prezime[15]; char ime[15]; int visina;

52 Strukture STRUKTURA? Deklaracija strukture Opšti oblik deklaracije: ključna riječ struct ime ime strukture tip1 element1; tip2 element2;... tipn elementn; lista_promjenljivih; Deklaracija elementa (polja) Primjer: lista promjenljivih ovog tipa struct osoba char prezime[15]; char ime[15]; int visina; student1, student2, klub[100];

53 Strukture STRUKTURA? Pristup elementima (poljima) strukture Primjer: Pristup pomoću operatora. = ELEMENT STRUKTURE struct osoba char prezime[15]; char ime[15]; int visina; student, klub[100]; Pristup poljima: student.prezime = Markovic ; klub[1].prezime = Jankovic ; student.ime = Marko ; klub[1].ime = Janko ; student.visina = 190; klub[1].visina = 202;

54 STRUKTURA? Strukture Primjer: Ilustracija struktura #include <stdio.h> #include <string.h> struct evid char prezime[50]; char ime[50]; int maticni; trazena = "Stojanovic","Radovan",234, osoba; int main() int a,b,c; printf("upisi Prezime Ime osobe i maticni broj "); scanf("%s %s %d", osoba.prezime, osoba.ime, &osoba.maticni); //printf("%s %s %d",osoba.prezime, osoba.ime, osoba.maticni); a=strcmp(osoba.prezime, trazena.prezime); b=strcmp(osoba.ime, trazena.ime); if((!a &&!b)&&(osoba.maticni=trazena.maticni)) printf("wanted"); else printf("pass"); getchar(); getchar();

Strukture. Strukturirani (složeni) tip podataka koji definiše korisnik. Razlike u odnosu na niz

Strukture. Strukturirani (složeni) tip podataka koji definiše korisnik. Razlike u odnosu na niz Strukture Strukture Strukturirani (složeni) tip podataka koji definiše korisnik sastoji se od više komponenti komponente imaju identifikatore ne moraju biti istog tipa struktura se smatra jednim objektom

Detaljer

Del 1 En oversikt over C-programmering

Del 1 En oversikt over C-programmering Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av

Detaljer

Del 2 Tabeller, arrays, strenger

Del 2 Tabeller, arrays, strenger Del 2 Tabeller, arrays, strenger 1 RR 2016 Tabeller Variabel som kan holde mange verdier. Styrer bruken med indeks. Det er ingen indekskontroll i C. int tab[5] = {2, 4, 6, 8, 10}; tab[4] = 12; int tab[100]

Detaljer

Programiranje 1 grupno spremanje (zadaci) datoteke

Programiranje 1 grupno spremanje (zadaci) datoteke Programiranje 1 grupno spremanje (zadaci) datoteke Tipovi datoteka Datoteke se mogu podeliti na binarne i tekstualne. Iako su na prvi pogled ova dva tipa veoma slična oni se suštinski razlikuju. Binarne

Detaljer

Objektno orijentisano programiranje 2. Tipovi podataka u C#

Objektno orijentisano programiranje 2. Tipovi podataka u C# Objektno orijentisano programiranje 2 Klasifikacija tipova Osnovna podela na: vrednosne (value) tipove ukazane (reference) tipove Vrednosni tipovi: jednostavni tipovi (kao što su npr. byte, int, long,

Detaljer

Dagens tema INF1070. Vektorer (array er) Tekster (string er) Adresser og pekere. Dynamisk allokering

Dagens tema INF1070. Vektorer (array er) Tekster (string er) Adresser og pekere. Dynamisk allokering Dagens tema Vektorer (array er) Tekster (string er) Adresser og pekere Dynamisk allokering Dag Langmyhr,Ifi,UiO: Forelesning 23. januar 2006 Ark 1 av 23 Vektorer Alle programmeringsspråk har mulighet til

Detaljer

Vektorer. Dagens tema. Deklarasjon. Bruk

Vektorer. Dagens tema. Deklarasjon. Bruk Dagens tema Dagens tema Deklarasjon Vektorer Vektorer (array-er) Tekster (string-er) Adresser og pekere Dynamisk allokering Alle programmeringsspråk har mulighet til å definere en såkalte vektor (også

Detaljer

Kapittel 1 En oversikt over C-språket

Kapittel 1 En oversikt over C-språket Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske

Detaljer

1. 0BLINEARNE STRUKTURE PODATAKA

1. 0BLINEARNE STRUKTURE PODATAKA 1. 0BLINEARNE STRUKTURE PODATAKA 1.1. 1BPOLJE 1.1.1. 5BDEFINICIJE I STRUKTURA Polje (array) predstavlja linearnu homogenu statičku strukturu podataka i sastoji se od fiksnog broja komponenata istog tipa.

Detaljer

/* Adresu promenjive x zapamticemo u novoj promeljivoj. Nova promenljiva je tipa pokazivaca na int (int*) */ int* px;

/* Adresu promenjive x zapamticemo u novoj promeljivoj. Nova promenljiva je tipa pokazivaca na int (int*) */ int* px; 1. 0B 2. PODSEĆANJE 1. /* Pokazivaci - osnovni pojam */ #include main() { int x = 3; /* Adresu promenjive x zapamticemo u novoj promeljivoj. Nova promenljiva je tipa pokazivaca na int (int*)

Detaljer

Programmeringsspråket C Del 2. Michael Welzl

Programmeringsspråket C Del 2. Michael Welzl Programmeringsspråket C Del 2 Michael Welzl 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det nedover til 0 $> gcc countdown.c -o countdown $>./countdown ===== Countdown

Detaljer

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Dagens tema Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet

Detaljer

Kartlegging av leseferdighet Trinn 2 og 3 på bosnisk

Kartlegging av leseferdighet Trinn 2 og 3 på bosnisk Lærerveiledning Bosnisk, 2. og 3. trinn Lærerveiledning Kartlegging av leseferdighet Trinn 2 og 3 på bosnisk Priručnik za učitelje Ispitivanje sposobnosti čitanja 2. i 3. razred na bosanskom jeziku 2013

Detaljer

Dagens tema C, adresser og pekere

Dagens tema C, adresser og pekere Dagens tema C, adresser og pekere (Kapittel 17 i Patt&Patel-boken) Variable og adresser Pekervariable Parametre Dynamisk allokering Stakker og ringbuffere Ark 1 av 26 Adresser Som nevnt tidligere ligger

Detaljer

Del 4 Noen spesielle C-elementer

Del 4 Noen spesielle C-elementer Del 4 Noen spesielle C-elementer 1 RR 2016 Header-filer inneholder Prototypene til funksjonene i standard biblioteket Verdier og definisjoner som disse funksjonene bruker #include #include

Detaljer

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet ut? Variabler,

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema Mer om C Cs preprosessor Allokering av variable Separat kompilering Programmet make Pekere i C Operasjoner på pekere Pekere og vektorer Referanseparametre Pekere til «alt» og «ingenting» Dynamisk

Detaljer

Neprekidne funkcije nestandardni pristup

Neprekidne funkcije nestandardni pristup nestandardni pristup Predavanje u sklopu Teorije, metodike i povijesti infinitezimalnih računa fniksic@gmail.com PMF Matematički odsjek Sveučilište u Zagrebu 10. veljače 2011. Ciljevi predavanja Ciljevi

Detaljer

Dagens tema. Adresser som parametre Dynamisk allokering Signaturer Definisjon av nye typenavn Typekonvertering Pekere og vektorer

Dagens tema. Adresser som parametre Dynamisk allokering Signaturer Definisjon av nye typenavn Typekonvertering Pekere og vektorer Dagens tema Dagens tema Adresser som parametre Dynamisk allokering Signaturer Definisjon av nye typenavn Typekonvertering Pekere og vektorer Adresser som parametre Et eksempel La oss lage en funksjon som

Detaljer

Dagens tema. Kort repetisjon om rutiner. Programmering i C Variable og adresser. Vektorer. Tekster. Preprosessoren. Separat kompilering

Dagens tema. Kort repetisjon om rutiner. Programmering i C Variable og adresser. Vektorer. Tekster. Preprosessoren. Separat kompilering Dagens tema Kort repetisjon om rutiner Programmering i C Variable og adresser Vektorer Tekster Preprosessoren Separat kompilering Innlesning og utskrift mot skjerm og fil Ark 1 av 31 Hva er en rutine?

Detaljer

4. Grafič ke funkčije

4. Grafič ke funkčije 4. Grafič ke funkčije Svaki grafik možemo posmatrati kao prikaz numeričkih vrednosti. Poreklo ovih vrednosti, međutim, diktira način na koji se one koriste ili generišu. U vedini slučajeva, izvor podataka

Detaljer

Dagens tema: Datastrukturer

Dagens tema: Datastrukturer Dagens tema: Datastrukturer Matriser Dynamiske matriser Ringbuffere Mengder Lister Enkle listeoperasjoner Programmering av en listepakke Lister med hode og hale Toveislister Onsdag 24.3 Avslutning av IN147A

Detaljer

1 REALNE FUNKCIJE REALNE VARIJABLE

1 REALNE FUNKCIJE REALNE VARIJABLE REALNE FUNKCIJE REALNE VARIJABLE. Neka je f() = ln 4e 3 e. Odredite a) f b) D(f) i R(f) c) Odredite min f, inf f, ma f, sup f. 2. Odredite prirodnu domenu funkcije f() = ln (3e e 3 ) + 5 log 5 +3 + ( cos

Detaljer

Dagens tema. Rutiner i LC-2 Og her er tilsvarende kode for LC-2: Funksjoner i C Her er det samme programmet i C: Kort repetisjon om rutiner

Dagens tema. Rutiner i LC-2 Og her er tilsvarende kode for LC-2: Funksjoner i C Her er det samme programmet i C: Kort repetisjon om rutiner Dagens tema Kort repetisjon om rutiner Programmering i C Variable og adresser Vektorer Tekster Preprosessoren Separat kompilering Innlesning og utskrift mot skjerm og fil Hva er en rutine? En rutine (også

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema Basistyper i C Typekonvertering Formater i printf Pekere i C En kort repetisjon om pekere Hva er egentlig en peker? Pekere til alt og ingenting Pekere som parametre Pekere og vektorer Ark 1

Detaljer

Dagens tema INF1070. Info om C. Cs preprosessor. Feilsøking. Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 1 av 29

Dagens tema INF1070. Info om C. Cs preprosessor. Feilsøking. Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 1 av 29 Dagens tema Info om C Cs preprosessor Feilsøking Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 1 av 29 Informasjon om C Den viktigste kilden til informasjon om C (utenom en god oppslagsbok) er

Detaljer

Informasjon om C. Dagens tema INF1070 INF1070 INF1070 INF1070. Den viktigste kilden til informasjon om C (utenom en god. C-funksjonene.

Informasjon om C. Dagens tema INF1070 INF1070 INF1070 INF1070. Den viktigste kilden til informasjon om C (utenom en god. C-funksjonene. Dagens tema Info om C Cs preprosessor Feilsøking Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 1 av 29 Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 2 av 29 NAME sqrt - square root function

Detaljer

Riješeni zadaci: Funkcije

Riješeni zadaci: Funkcije Riješeni zadaci: Funkcije Domena funkcije, kompozicija funkcija, invertiranje funkcije, parnost funkcije Domene nekih funkcija: f(x) = x D f = [0, f(x) = x D f = R \ {0} f(x) = log a x, a > 0, a D f =

Detaljer

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 04. Zvonimir Bujanović Slaven Kožić Vinko Petričević

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 04. Zvonimir Bujanović Slaven Kožić Vinko Petričević Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 04 Zvonimir Bujanović Slaven Kožić Vinko Petričević Klijent / Server paradigma internet daje infrastrukturu koja omogućava komunikaciju

Detaljer

Oving 2. Oppgave 1. #include int main(int argc, char **argv) { char *navn = argv[1]; printf ("Navnet ditt er %s\n", navn); } Oppgave 2

Oving 2. Oppgave 1. #include <stdio.h> int main(int argc, char **argv) { char *navn = argv[1]; printf (Navnet ditt er %s\n, navn); } Oppgave 2 Oving 2 Oppgave 1 int main(int argc, char **argv) char *navn = argv[1]; printf ("Navnet ditt er %s\n", navn); Oppgave 2 char navn[25]; printf( "Hei hva heter du?\n" ); scanf("%s", navn); printf ("Hei:

Detaljer

Dagens tema INF2270. Cs preprosessor. Separat kompilering av C funksjoner. C og minnet. Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15

Dagens tema INF2270. Cs preprosessor. Separat kompilering av C funksjoner. C og minnet. Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15 Dagens tema Cs preprosessor Separat kompilering av C funksjoner C og minnet Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15 Cs preprosessor Før selve kompileringen går C kompilatoren gjennom

Detaljer

Programmeringsspråket C Del 2. Hans Petter Taugbøl Kragset

Programmeringsspråket C Del 2. Hans Petter Taugbøl Kragset Programmeringsspråket C Del 2 Hans Petter Taugbøl Kragset Repetisjon I C er ikke array en egen type, men variabler kan være arrayer! 28.08.17 Hans Petter Taugbøl Kragset 2 Arrays Java int[] arr1 = {1,

Detaljer

Programmeringsspråket C

Programmeringsspråket C Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger

Detaljer

Pekere og vektorer. Dagens tema. I C gjelder en litt uventet konvensjon:

Pekere og vektorer. Dagens tema. I C gjelder en litt uventet konvensjon: Pekere og vektorer I C gjelder en litt uventet konvensjon: Dagens tema Det siste om C Pekere og vektorer Pekere til pekere Vanlige pekerfeil struct-er og typedef Lister Feilsøking Bruk av et vektornavn

Detaljer

Dagens tema. Det siste om C Pekere og vektorer. Pekere til pekere. Vanlige pekerfeil. struct-er og typedef. Lister. Feilsøking

Dagens tema. Det siste om C Pekere og vektorer. Pekere til pekere. Vanlige pekerfeil. struct-er og typedef. Lister. Feilsøking Dagens tema Det siste om C Pekere og vektorer Pekere til pekere Vanlige pekerfeil struct-er og typedef Lister Feilsøking Ark 1 av 35 Pekere og vektorer I C gjelder en litt uventet konvensjon: Bruk av et

Detaljer

Ord og begreper. Norsk Morsmål: Tegning (hvis aktuelt)

Ord og begreper. Norsk Morsmål: Tegning (hvis aktuelt) Ord og begreper Norsk Morsmål: Tegning (hvis aktuelt) Få Dobiti Mange Mnogo Venstre Lijevo Høyre Desno Øverst Iznad Nederst Niže Lite Malo Mye Mnogo Flest Vecina Færrest Najmanje Oppe Gore Nede Dole Mellom

Detaljer

Dagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene

Dagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Dagens tema Dagens tema Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Inkludering av filer Cs preprosessor Før selve kompileringen går C-kompilatoren gjennom

Detaljer

ALUMINIJSKE VODILICE ZA ODJELJIVANJE PROSTORA

ALUMINIJSKE VODILICE ZA ODJELJIVANJE PROSTORA ALUMINIJSKE VODILICE ZA ODJELJIVANJE PROSTORA ALU. VODILICE ZA ODJELJIVANJE PROSTORA AV 04.01-04.10...jer o tome mnogo ovisi... S C H W O L L E R - L U Č I Ć AL 400 AV 04.01 minijska vodilica za odjeljivanje

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema Deklarasjon av nye typer Typekonvertering mellom pekere Regning med pekere Pekere til funksjoner Pekere til pekere til... Vanlige feil ved bruk av pekere Feilsøking Debuggere lint Kompilatormeldinger

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema Mer om C Et eksempel til (med diverse forklaringer) Representasjon av tegn og logiske verdier Vektorer Statusverdi Innhenting av definisjoner Inkrementering og dekrementering av variable for-setningen

Detaljer

Løsningsforslag til 2. del av Del - EKSAMEN

Løsningsforslag til 2. del av Del - EKSAMEN Løsningsforslag til 2. del av Del - EKSAMEN Emnekode: ITD13012 Emne: Datateknikk Dato: 21. Mai 2013 Eksamenstid: kl 9:00 til kl 12:00 Hjelpemidler: 4 sider (A4) (2 ark) med egne notater. Ikke-kummuniserende

Detaljer

Dagens tema. Mer om C Enkle datatyper Sammensatte datatyper: Vektorer og matriser Tekster Mengder Strukturer Unioner Ringbuffere

Dagens tema. Mer om C Enkle datatyper Sammensatte datatyper: Vektorer og matriser Tekster Mengder Strukturer Unioner Ringbuffere Dagens tema Mer om C Enkle datatyper Sammensatte datatyper: Vektorer og matriser Tekster Mengder Strukturer Unioner Ringbuffere Formål: Nyttige å bruke under programmeringen Trening i programmering i C

Detaljer

Dagens tema INF1070. Signaturer. Typekonvertering. Pekere og vektorer. struct-er. Definisjon av nye typenavn. Lister

Dagens tema INF1070. Signaturer. Typekonvertering. Pekere og vektorer. struct-er. Definisjon av nye typenavn. Lister Dagens tema Signaturer Typekonvertering Pekere og vektorer struct-er Definisjon av nye typenavn Lister Dag Langmyhr,Ifi,UiO: Forelesning 24. januar 2005 Ark 1 av 20 Signaturer I C gjelder alle deklarasjoner

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema: Kort repetisjon Mengder Lister Enkle listeoperasjoner Programmering av en listepakke Lister med hode og hale Toveislister Hvaeretoperativsystem? En meget kort oversikt over operativsystemenes

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet PRØVEEKSAMEN i INF1000 23. november 2004 kl. 14.00 17.00 Dine svar skal skrives på disse oppgavearkene, og ikke på separate ark. Dette gjelder

Detaljer

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen? OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens program Repetisjon Basistyper i C Typekonvertering Formater i printf Deklarasjon av nye typer Pekere i C En kort repetisjon om pekere Pekere som parametre Pekere og vektorer Regning med pekere Pekere

Detaljer

Programmeringsspråket C Del 2

Programmeringsspråket C Del 2 Programmeringsspråket C Del 2 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no 30.08.2005 inf1060 H05 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. 30.08.2005

Detaljer

Cs preprosessor. Dagens tema. Betinget kompilering

Cs preprosessor. Dagens tema. Betinget kompilering Dagens tema Dagens tema Inkludering av filer Cs preprosessor Cs preprosessor Separat kompilering av C funksjoner C og minnet Før selve kompileringen går C kompilatoren gjennom koden med en preprosessor

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO FASIT UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen :

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen : 09.00

Detaljer

Tru64: Uvod - alati i naredbe. Dinko Korunić, InfoMAR d.o.o. v1.2, travanj 2006.

Tru64: Uvod - alati i naredbe. Dinko Korunić, InfoMAR d.o.o. v1.2, travanj 2006. Tru64: Uvod - alati i naredbe Dinko Korunić, InfoMAR d.o.o. v1.2, travanj 2006. O predavaču višegodišnji vanjski suradnik časopisa Mrež@, vlastita kolumna "Digitalna radionica - Linux", itd. vanjski suradnik

Detaljer

Dagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene

Dagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Dagens tema Dagens tema Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Inkludering av filer Cs preprosessor Før selve kompileringen går C-kompilatoren gjennom

Detaljer

K O N T I N U A S J O N S E K S A M E N

K O N T I N U A S J O N S E K S A M E N Høgskolen i Gjøvik K O N T I N U A S J O N S E K S A M E N FAGNAVN: FAGNUMMER: Grunnleggende programmering og datastrukturer L 169 A EKSAMENSDATO: 8. januar 1998 KLASSE: 96HINDA / 96HINDE TID: 09.00-14.00

Detaljer

Høgskolen i Gjøvik Avdeling for informatikk og medieteknikk. Eksamen. Objekt-orientert programmering

Høgskolen i Gjøvik Avdeling for informatikk og medieteknikk. Eksamen. Objekt-orientert programmering Høgskolen i Gjøvik Avdeling for informatikk og medieteknikk Eksamen EMNENAVN: EMNENUMMER: Objekt-orientert programmering IMT1082 EKSAMENSDATO: 4. juni 2010 KLASSE(R): 09HBIND*, 09HBPUA, 09HBDRA, 09HBISA,

Detaljer

Primena računara u fizičkoj hemiji. Profesor: Miloš Mojović Asistent: Aleksandar Ignjatović

Primena računara u fizičkoj hemiji. Profesor: Miloš Mojović Asistent: Aleksandar Ignjatović Primena računara u fizičkoj hemiji Profesor: Miloš Mojović Asistent: Aleksandar Ignjatović Literatura i ispit: Literatura: 1. Predavanja 2. Internet 3. Knjige Ocenjivanje 1. aktivnost u toku predavanja

Detaljer

Dagens program. Operativsystemer Prosesser og systemkall i UNIX Hente prosessens nummer Starte prosesser Vente på prosesser Utføre programmer

Dagens program. Operativsystemer Prosesser og systemkall i UNIX Hente prosessens nummer Starte prosesser Vente på prosesser Utføre programmer Dagens program Operativsystemer Prosesser og systemkall i UNIX Hente prosessens nummer Starte prosesser Vente på prosesser Utføre programmer Nyttige forklaringer Sikker opprettelse av nye prosesser Hva

Detaljer

Oppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

Oppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004 Oppgave 1 Prøveeksamen i INF1000 Ole Christian og Arne 23. november 2004 Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI int i; int k = i; int i, j = 4; int k = j; double[] x = new

Detaljer

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 20.02.2017 Klokkeslett: 09:00 13:00 INF-1100 Innføring i programmering og datamaskiners virkemåte Sted: Teorifagbygget, Hus 3,

Detaljer

Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004 Prøveeksamen i INF1000 Ole Christian og Arne 23. november 2004 Oppgave 1 Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI int i; int k = i; int i, j = 4; int k = j; double[] x = new

Detaljer

Dagens tema. Dynamisk allokering Signaturer Definisjon av typer og nye typenavn Typekonvertering Pekere, vektorer og lister Dokumentasjon

Dagens tema. Dynamisk allokering Signaturer Definisjon av typer og nye typenavn Typekonvertering Pekere, vektorer og lister Dokumentasjon Dagens tema Dagens tema Dynamisk allokering Signaturer Definisjon av typer og nye typenavn Typekonvertering Pekere, vektorer og lister Dokumentasjon Verdt å huske på! Husk! Nøkkelen til å forstå C er å

Detaljer

Programmering i C++ Løsningsforslag Eksamen høsten 2005

Programmering i C++ Løsningsforslag Eksamen høsten 2005 Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det

Detaljer

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI Oppgave 1 INF1000 Uke 13 Gjennomgang av prøveeksamen fra høsten 2004 Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI int i; int k = i; int i, j = 4; int k = j; double[] x = new double[1];

Detaljer

Programmeringsspråket C

Programmeringsspråket C Programmeringsspråket C Programmeringsspråket C Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI-standard i 1988;

Detaljer

Programmeringsspråket C Del 3. Michael Welzl

Programmeringsspråket C Del 3. Michael Welzl Programmeringsspråket C Del 3 Michael Welzl 1 Vektorer og minneallokering Vektorer blir ikke initialisert å allokere en vektor er bare en statisk måte å allokere minne på. char a, b[4], c; a = 3; b[0]

Detaljer

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; } Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; Hva skrives ut på skjermen når følgende kode utføres? int [] tallene =

Detaljer

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: Varighet: Fagnummer: Fagnavn: Klasse(r): Studiepoeng: Faglærer(e): Hjelpemidler: Oppgavesettet består av:

Detaljer

INF1000: Forelesning 11. Oppgave 2. Oppgave 1. Husk å melde deg på prøveeksamen i INF1000! Ole Christian Lingjærde 7.november 2006

INF1000: Forelesning 11. Oppgave 2. Oppgave 1. Husk å melde deg på prøveeksamen i INF1000! Ole Christian Lingjærde 7.november 2006 Husk å melde deg på prøveeksamen i INF1000! INF1000: Forelesning 11 Ole Christian Lingjærde 7.november 2006 Frist påmelding: 16. november Arrangementet er torsdag 23. november kl 1420 og omfatter: Oppgaven

Detaljer

KONTINUASJONSEKSAMEN

KONTINUASJONSEKSAMEN Høgskolen i Gjøvik KONTINUASJONSEKSAMEN FAGNAVN: FAGNUMMER: Grunnleggende datakunnskap og programmering L 182 A EKSAMENSDATO: 17. august 1999 KLASSE: 98HINDA / 98HINDB / 98HINEA 98HDMUA / 98HDMUB / 98HINGA

Detaljer

IN 147 Program og maskinvare. Dagens tema

IN 147 Program og maskinvare. Dagens tema Dagens tema Kort repetisjon Unioner Cs preprosessor Allokering av variable Separat kompilering Programmet make Datastrukturer Matriser Dynamiske matriser Ringbuffere Oblig2 Obligatorisk oppgave nr. 2 slippes

Detaljer

Den siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen

Den siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen Den siste dagen Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen En oppsummering Oppsummering Pensum Læreboken til og med kapittel 7, kompendiet, forelesningene

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO OPPGAVEN BLIR GJENNOMGÅTT PÅ FORELESNINGEN 24/10. DU BØR FORBEREDE DEG TIL FORELESNINGEN VED Å SETTE AV MINST TRE-FIRE TIMER TIL Å PRØVE Å LØSE OPPGAVEN PÅ EGENHÅND. UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige

Detaljer

Administrivia INF 3110/ INF /02/2005 1

Administrivia INF 3110/ INF /02/2005 1 Administrivia Arild Fines Studentassistent for INF5110 Tok INF5110 våren 2004 Ingen tradisjonelle gruppetimer Veiledning over epost og/eller ved treffetid arild.fines@broadpark.no 03/02/2005 1 Lex/Flex

Detaljer

Signaturer. Dagens tema. En vanlig feil int-funksjon. Dette kan noen ganger gi rare feilmeldinger: INF1070 INF1070 INF1070 INF1070

Signaturer. Dagens tema. En vanlig feil int-funksjon. Dette kan noen ganger gi rare feilmeldinger: INF1070 INF1070 INF1070 INF1070 Dagens tema Signaturer Tyekonvertering Pekere og vektorer struct-er Definisjon av nye tyenavn Lister Dag Langmyhr,Ifi,UiO: Forelesning 24. januar 25 Ark 1 av 2 Dag Langmyhr,Ifi,UiO: Forelesning 24. januar

Detaljer

E K S A M E N. Grunnleggende datakunnskap og programmering 98HINDA / 98HINDB / 98HINEA 98HDMUA / 98HDMUB / 98HINGA

E K S A M E N. Grunnleggende datakunnskap og programmering 98HINDA / 98HINDB / 98HINEA 98HDMUA / 98HDMUB / 98HINGA Høgskolen i Gjøvik E K S A M E N FAGNAVN: FAGNUMMER: Grunnleggende datakunnskap og programmering L 182 A EKSAMENSDATO: 15. desember 1998 KLASSE: 98HINDA / 98HINDB / 98HINEA 98HDMUA / 98HDMUB / 98HINGA

Detaljer

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering Oppsummering Pensum Grovt sett er alt fra forelesningene og øvingsoppgavene pensum. Detaljert oversikt finnes på kurssidene. Hovedtanker fra kurset Litt om eksamen Hvorfor har dere lært dette? Ikke mange

Detaljer

KONTINUASJONSEKSAMEN

KONTINUASJONSEKSAMEN Høgskolen i Gjøvik Avdeling for teknologi KONTINUASJONSEKSAMEN FAGNAVN: FAGKODE: Grunnleggende datakunnskap og programmering L 182 A EKSAMENSDATO: 9. august 2002 KLASSE(R): 01HIND*, 01HINE*, 01HDMU*, 01HING*

Detaljer

Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7

Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7 Gjennomgang prøveeksamen 2014 oppgave 1, 2, 4, 5, 7 1a: Hva er verdien til tall etter at følgende kode er utført: 17 int tall = 5; tall = (tall*3) + 2; 5 15 17 1b: Anta at følgende programsetninger utføres.

Detaljer

Programmeringsspråket C

Programmeringsspråket C Programmeringsspråket C Programmeringsspråket C Laget til implementasjon av Unix ved AT&Ts Bell labs i Palo Alto 1969 73. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI-standard

Detaljer

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python. Algoritmer og datastrukturer Kondisjonstest Python-oppgaver Onsdag 6. oktober 2004 Her er noen repetisjonsoppgaver i Python. Som alltid er den beste måten å lære å programmere på å sette seg ned og programmere

Detaljer

Kontinuasjonseksamen

Kontinuasjonseksamen Høgskolen i Gjøvik Avdeling for teknologi Kontinuasjonseksamen FAGNAVN: FAGNUMMER: Objekt-orientert programmering L 183 A EKSAMENSDATO: 5. januar 2004 KLASSE(R): 02HIND* 02HDMU* 02HINE* 02HING* 01HINGA

Detaljer

Dagens tema. Oppsummering om assemblerspråk. Programmering i C. Bakgrunn. Et minimalt eksempel med forklaring. Datatyper i C.

Dagens tema. Oppsummering om assemblerspråk. Programmering i C. Bakgrunn. Et minimalt eksempel med forklaring. Datatyper i C. Dagens tema Oppsummering om assemblerspråk Programmering i C (kapittel 11 og 12 i Patt&Patel-boken) Bakgrunn Et minimalt eksempel med forklaring Datatyper i C Operatorer i C Et eksempel til med forklaring

Detaljer

1 ØVING I WINDOWS FRA CHRISTIAN ANDOLO

1 ØVING I WINDOWS FRA CHRISTIAN ANDOLO 1 ØVING I WINDOWS FRA CHRISTIAN ANDOLO Program fra sekunder Lag et program som leser inn en tid i sekunder (et stort tall). Deretter skal programmet skrive ut hvor mange timer, minutter og sekunder dette

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema Deklarasjon av nye typer Typekonvertering Regning med pekere Pekere til funksjoner Pekere til pekere til... Vanlige feil ved bruk av pekere Feilsøking Debuggere lint Kompilatormeldinger Egne

Detaljer

E K S A M E N. Grunnleggende datakunnskap og programmering 02HIND*, 02HINE*, 02HDMU*, 02HING*, 02HGEOMAA, 02HSIV5

E K S A M E N. Grunnleggende datakunnskap og programmering 02HIND*, 02HINE*, 02HDMU*, 02HING*, 02HGEOMAA, 02HSIV5 Høgskolen i Gjøvik Avdeling for teknologi E K S A M E N FAGNAVN: FAGKODE: Grunnleggende datakunnskap og programmering L 182 A EKSAMENSDATO: 19. desember 2002 KLASSE(R): 02HIND*, 02HINE*, 02HDMU*, 02HING*,

Detaljer

Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013

Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013 Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013 Oppgave 1) Her var det en manglende høyreparentes i 1 b) slik at de som svarer virker ikke eller lignende istedenfor det riktige svaret, skal

Detaljer

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson

Detaljer

Dagens tema. Nyttige programmer Programmet make. Flyt-tall Representasjon av flyt-tall. Standarden IEEE 754. Systemkall i Unix

Dagens tema. Nyttige programmer Programmet make. Flyt-tall Representasjon av flyt-tall. Standarden IEEE 754. Systemkall i Unix Dagens tema Nyttige programmer Programmet make Flyt-tall Representasjon av flyt-tall Standarden IEEE 754 Systemkall i Unix Ark 1 av 24 Programmet make Det er mange praktiske problemer forbundet med programmering

Detaljer

1 - Prvi deo upitnika

1 - Prvi deo upitnika Copyright! All rights reserved www.anestesi.no 2010- Serbo-Kroatisk side 1 av 6 Serbia Kroatia osnia Språk: Serbo-Kroatisk Oversatt av: Ivan uljovcic to: Juni 2010 1 - Prvi deo upitnika Del 1 Spørreskjema:

Detaljer

Overflows. Building Secure Software. Inf 329, Høst Chapter 7. Lars Skjærven

Overflows. Building Secure Software. Inf 329, Høst Chapter 7. Lars Skjærven Buffer Overflows Chapter 7 Building Secure Software Inf 329, Høst 2005 Lars Skjærven slars@ii.uib.no Historie Den største sikkerhetstrusselen i programvare gjennom tidene Den mest berømte, Internet Worm

Detaljer

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 25. mai 2005 Varighet: 4 timer (9:00 13:00) Fagnummer: LO182D Fagnavn: Programmering i C++ Klasse(r): FU

Detaljer

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen Forkurs INF1010 Dag 1 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Tuva Kristine Thoresen (tuvakt@ifi.uio.no) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output

Detaljer

Matematičke metode u kemiji Numeričke metode u kemiji

Matematičke metode u kemiji Numeričke metode u kemiji Matematičke metode u kemiji Numeričke metode u kemiji Mnogi na matematiku svedivi kemijski problemi nisu egzaktno rješivi. Stoga se u kemiji puno koriste numeričke metode. 1 Metoda najmanjih kvadrata Jedna

Detaljer

IN 147 Program og maskinvare. Vanlige feil ved bruk av pekere Feilsøking Debuggere

IN 147 Program og maskinvare. Vanlige feil ved bruk av pekere Feilsøking Debuggere Dagens tema Vanlige feil ved bruk av pekere Feilsøking Debuggere lint Kompilatormeldinger Egne testutskrifter Flyt-tall (P&H: 4.8) Representasjon av flyt-tall Standarden IEEE 754 MIPS-operasjoner på flyt-tall

Detaljer

Løsningsforslag til eksamen i INF1000 våren 2006

Løsningsforslag til eksamen i INF1000 våren 2006 Løsningsforslag til eksamen i INF1000 våren 2006 Oppgave 1 a) -1 false 7 b) 30 c) Verdien til j er: 4Verdien til k er: 3Verdien til n er: 7 d) Andre if-test er true Tredje if-test er true e) k = 4 k =

Detaljer

Repetisjon fra sist - 1: Plan for dagen. Repetisjon fra sist 2: Hva jeg glemte sist: Nyttige Kommandoer

Repetisjon fra sist - 1: Plan for dagen. Repetisjon fra sist 2: Hva jeg glemte sist: Nyttige Kommandoer -lxxx -c -S -E -o -g -O -I -L gcc Make man l cpp ar ranlib nm valgrind Plan for dagen Repetisjon fra sist - 1: Nyttige Kommandoer Repetisjon Språkmekanismer for programflyt Datatyper &

Detaljer

Eksamen. Grunnleggende programmering. EKSAMENSDATO: 6.desember 2016 TID: 16:00 20:00. (kalkulator er ikke tillatt)

Eksamen. Grunnleggende programmering. EKSAMENSDATO: 6.desember 2016 TID: 16:00 20:00. (kalkulator er ikke tillatt) Eksamen EMNENAVN: EMNENUMMER: Grunnleggende programmering IMT1031 (F) EKSAMENSDATO: 6.desember 2016 TID: 16:00 20:00 EMNEANSVARLIG: Frode Haug ANTALL SIDER UTLEVERT: TILLATTE HJELPEMIDLER: 7 (inkludert

Detaljer

Del 3. Pekere RR 2016

Del 3. Pekere RR 2016 Del 3 Pekere 1 RR 2016 Peker/pointer En peker er en variabel som kan holde adressen (peke til) til en annen variabel. Pekere vil gi oss muligheten for å gå direkte til en adresse i minne, og lese/skrive

Detaljer

Nybegynnerkurs i C. Øyvind Grønnesby. 14. oktober Introduksjon Typer Operatorer Kontrollstrukturer Pekere Makroer Lenker

Nybegynnerkurs i C. Øyvind Grønnesby. 14. oktober Introduksjon Typer Operatorer Kontrollstrukturer Pekere Makroer Lenker Nybegynnerkurs i C Øyvind Grønnesby 14. oktober 2004 Introduksjon pass-by-value svakt typet portabel assembler siste ISO-standard er C99 Hello world #i n c l u d e < s t d l i b. h> #i n c l u d e

Detaljer

Høgskolen i Gjøvik Avdeling for informatikk og medieteknikk. Eksamen. Objekt-orientert programmering

Høgskolen i Gjøvik Avdeling for informatikk og medieteknikk. Eksamen. Objekt-orientert programmering Høgskolen i Gjøvik Avdeling for informatikk og medieteknikk Eksamen EMNENAVN: EMNENUMMER: Objekt-orientert programmering IMT1082 EKSAMENSDATO: 21. mai 2014 KLASSE(R): 13HBIDAT*, 13HBPUA, 13HBDRA, 13HBISA,

Detaljer