Dagens tema: Datastrukturer

Størrelse: px
Begynne med side:

Download "Dagens tema: Datastrukturer"

Transkript

1 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 med oppsummering av stoffet. Ark 1 av 23 Forelesning

2 Matriser Vektorer (én-dimensjonale matriser) C JAVA Pascal int a[12]; int a[]; a = new int[12]; var A: array [10..21] of Integer; Simula integer array A(10:21); Lagring short int arr[6] = {1, 1, 2, 3, 5, 8;. A10A 8 5 A A A A A IC: arr + I S Generelt: arr + (I L) S Forelesning Ark 2 av 23

3 Indeksering # Kode: Henter et element i vektoren Vektor. # Registre: $8: Indeksen (i området 1 til 10). # $9: Elementet. # Spesielt: Vektor er deklarert med noe à la # Vektor: array [1:10] of Short; (Pascal). addi $8,$8,-1 # Kompensér for nedre grense. add $8,$8,$8 # Doble, pga 2 byte/element. la $9,Vektor # Hent adressen til Vektor. add $8,$8,$9 # Legg til 2 indeks. lh $9,0($8) # Hent elementet. Aksess med peker # Kode: Henter et element pekt på av p. # Registre: $8: Pekeren p. # $9: Elementet. lh $9,0($8) # Hent elementet. Forelesning Ark 3 av 23

4 To-dimensjonale matriser ISimula: integer array Arr2(1:3,1:2); hvor hver integer opptar 4 byte. Disse lagres radvis i de fleste programmeringsspråk. Generelt:. A114 (3,2) A110 (3,1) A10C (2,2) A108 (2,1) A104 (1,2) A100 (1,1). Arr2 + ((I 1 L 1 ) D 2 + (I 2 L 2 )) S der D i er U i L i + 1. IC:long int arr2[3][2]; arr2 + (I 1 D 2 + I 2 ) S Forelesning Ark 4 av 23

5 Generelt IC: T a[n 1 ][N 2 ] [N n ]; Elementet a[x 1 ][x 2 ]...[x n ] befinner seg i lokasjonen n n a + sizeof(t ) xi N k som kan forenkles til i=1 k=i+1 a + sizeof(t ) (( (x 1 N 2 + x 2 )N 3 + )N n + x n ) Forelesning Ark 5 av 23

6 Dynamiske vektorer Mange språk har muligheter for dynamiske matriser som kan bety to ting: Vektorens lengde er ikke kjent under kompileringen, men er kjent når vektoren skal deklareres. Vektorens lengde kan endres under kjøringen. C har begge deler takket være {m c realloc og definisjonen a[i] *(a+i) #include <stdlib.h> : int *arr = calloc(n, sizeof(int)); : arr[0] = arr[1]+4; : arr = realloc(arr, (n+10)*sizeof(int)); arr[n+9] = -1; : free(arr); Forelesning Ark 6 av 23

7 Ringbuffere Ringbuffere brukes til å implementere køer («FIFO-lister»). Ingen høynivåspråk har noen tilsvarende struktur. Ut Inn Pekerne forteller hvor neste element skal inn, og hvor man kan finne neste element som skal ut. Implementasjon En ringbuffer implementeres å «klippe den opp» og lagre den i en vektor: Ut xx xx xx xx xx xx Inn Forelesning Ark 7 av 23

8 Deklarasjon i C #define BUFFSIZ 12 int ringb[buffsiz], innp = 0, utp = 0, ant_e = 0; Innsetting i ringbuffer int put(int x) { if (ant_e == BUFFSIZ) return 0; ant_e++; ringb[innp] = x; innp++; if (innp >= BUFFSIZ) innp = 0; return 1; Henting fra ringbuffer int get(void) { int x; if (ant_e == 0) return -1; ant_e--; x = ringb[utp]; utp++; if (utp >= BUFSIZE) utp = 0; return x; Forelesning Ark 8 av 23

9 Mengder På en tippekupong kan man velge mellom tre tips: H, U og B. Man kan imdlertid gardere: HU, HB, UB eller HUB. I alt finnes det 8 verdier i mengden over mulige tips i hver kamp: {, {H, {U, {B, {H,U, {H,B, {U,B og {H,U,B. En slik verdi kan lagres som et bit-mønster med 3bit: H U B {H,B x x x x x Forelesning Ark 9 av 23

10 Operasjoner på mengder Det fine med denne representasjonen, er at maske-operasjonene fungerer: Snitt ({H,B {H,U={H) kan implementeres som and. Union ({H,B {H,U={H,U,B) kan implementeres som or. Differanse ({H,B\{H,U={B) kan implementeres som and og not. Til å teste om et element er med i en mengde, må man bruke and og kanskje sll. Forelesning Ark 10 av 23

11 Lister Enkle lister Operasjoner på lister Et par eksempler Hode og hale Toveis lister Fordelene med lister: Dynamiske; plassforbruket tilpasses under kjøringen. Fleksible; innenbyrdes rekkefølge kan lett endres. Generelle; kan simulere andre strukturer. Ulemper med lister: Det kan lett bli en del leting, så lange lister kan være langsomme i bruk. Forelesning Ark 11 av 23

12 En enkel liste struct elem { struct elem *neste; diverse data ; struct elem *liste; liste 0 Listepekeren liste peker på første element. Denne listen kan simulere Stakker Køer Prioritetskøer Forelesning Ark 12 av 23

13 Operasjoner på lister Innsetting først i listen p->neste = liste; liste = p; s s s liste s p s liste$ s s s s p - - s Forelesning Ark 13 av 23

14 Innsetting sist i listen siste liste 0 p 0 if (liste == NULL) liste = p; else siste = liste; /* Finn siste element. */ while (siste->neste) siste = siste->neste; siste->neste = p; p->neste = NULL; siste liste p 0 Dette kan gjøres raskere hvis vi har en peker til siste element. Forelesning Ark 14 av 23

15 Innsetting midt i listen p->neste = px->neste; px->neste = p; Innsetting i sortert liste Se eksempel på ark 20. Forelesning Ark 15 av 23

16 Fjerning av element Vi antar at p skal fjernes fra listen, og at px peker på ps forgjenger. p px liste 0 px->neste = p->neste; p->neste = NULL; p px liste 0 0 Forelesning Ark 16 av 23

17 Et eksempel liste.h: Dette er en definisjonsfil for en programpakke for listehåndtering. Vi antar at det kun er én liste, og at liste peker på den. struct data { struct data *neste; unsigned char navn[200]; ; extern struct data *liste; extern void inn_forst(struct data *p), inn_sist (struct data *p), inn_sort (struct data *p); Forelesning Ark 17 av 23

18 navn.c: Dette er et eksempel på et program som bruker listepakken. #include <stdio.h> #include <string.h> #include <stdlib.h> #include "liste.h" struct data *liste; int main(void) { struct data *elem; unsigned char nytt_navn[200]; liste = NULL; while (fgets(nytt_navn,200,stdin)!= NULL) { elem = (struct data *)malloc(sizeof(struct data)); strcpy(elem->navn, nytt_navn); inn_sort(elem); elem = liste; while (elem!= NULL) { printf("%s", elem->navn); elem = elem->neste; Forelesning Ark 18 av 23

19 Eksempel på kjøring Hvis datafilen data.in ser slik ut: Roeim, Vetle Presterud, Ola Rafienko, Igor Persson, Per Johan Tetlie, Ole Jørgen Sørlie, Steinar Køhler, Torbjørn Jess, Kristian vil følgende to kommandoer kompilere og kjøre programmet navn.c: maskin navn> cc navn.c liste.c -o navn maskin navn> navn <data.in Jess, Kristian Køhler, Torbjørn Persson, Per Johan Presterud, Ola Rafienko, Igor Roeim, Vetle Sørlie, Steinar Tetlie, Ole Jørgen Forelesning Ark 19 av 23

20 liste.c: #include <string.h> #include "liste.h" void inn_forst(struct data *p) { p->neste = liste; liste = p; void inn_sist(struct data *p) { struct data *px = liste; if (liste == NULL) liste = p; else { while (px->neste!= NULL) px = px->neste; px->neste = p; p->neste = NULL; void inn_sort(struct data *p) { struct data *px; if (liste == NULL) { /* Listen er tom. */ liste = p; p->neste = NULL; return; px = liste; if (strcmp(p->navn,px->navn) < 0) {/* p skal først i listen. */ inn_forst(p); return; /* Finn ut hvor i listen p skal settes inn. */ while (px->neste!=null && strcmp(p->navn,px->neste->navn)>0) px = px->neste; p->neste = px->neste; px->neste=p; /* Sett inn p bak px. */ Forelesning Ark 20 av 23

21 Hode og hale Rutinene for peker-strukturer blir enklere hvis vi utstyrer listene med hode og hale. 0 hode hale liste2.c: Funksjonen inn sort blir mye kortere: void inn_sort(struct data *p) { struct data *px = liste; /* Finn ut hvor i listen p skal settes inn. */ while (strcmp(p->navn,px->neste->navn)>0) px = px->neste; p->neste = px->neste; /* Sett inn p bak px. */ px->neste=p; Forelesning Ark 21 av 23

22 navn.c: Hovedprogrammet må utvides litt for å initiere listens hode og hale. #include <stdio.h> #include <string.h> #include <stdlib.h> #include "liste.h" struct data hode, hale, *liste; int main(void) { struct data *elem; unsigned char nytt_navn[200]; /* Initiér listens hode og hale. */ hode.neste = &hale; strcpy(hode.navn,""); hale.neste = NULL; strcpy(hale.navn,"~~~"); liste = &hode; while (fgets(nytt_navn,200,stdin)!= NULL) { elem = (struct data *)malloc(sizeof(struct data)); strcpy(elem->navn, nytt_navn); inn_sort(elem); elem = hode.neste; while (elem!= &hale) { printf("%s", elem->navn); elem = elem->neste; Forelesning Ark 22 av 23

23 Toveislister Toveislister gjør også noen operasjoner enklere, for eksempel det å fjerne elementer fra listen. liste v? v v v v v v v v Forelesning Ark 23 av 23

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

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

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

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no 9/1/2005 inf1060 V05 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen malloc

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Michael Welzl E-mail: michawe@ifi.uio.no 8/25/10 inf1060 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Michael Welzl E-mail: michawe@ifi.uio.no 29.08.13 inf1060 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen

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

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

Ark 3 av 26. printf("i adresse %08x ligger b med verdien %d.\n", &b, b); printf("i adresse %08x ligger a med verdien %d.

Ark 3 av 26. printf(i adresse %08x ligger b med verdien %d.\n, &b, b); printf(i adresse %08x ligger a med verdien %d. Dagens tema C, adresser og pekere (Kapittel 17 i Patt&Patel-boken) Variable og adresser Pekervariable Parametre Dynamisk allokering Stakker og ringbuffere Adresser Som nevnt tidligere ligger data og programkode

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

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

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

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

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

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

Semantisk Analyse del III

Semantisk Analyse del III Semantisk Analyse del III Typesjekking Kapittel 6.4 08.03.2013 1 Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem

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

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

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

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

Datatyper og typesjekking

Datatyper og typesjekking Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører

Detaljer

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

Programmeringsspråket C Del 3. Hans Petter Taugbøl Kragset Programmeringsspråket C Del 3 Hans Petter Taugbøl Kragset Repetisjon I C er ikke array en egen type, men variabler kan være arrayer! Pekere C-strenger Veldig likt Java på mange måter Programmering er fortsatt

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

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

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

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

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

Programmeringsspråket C Del 2

Programmeringsspråket C Del 2 Programmeringsspråket C Del 2 Michael Welzl E-mail: michawe@ifi.uio.no 8/25/10 inf1060 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. 8/25/10 inf1060

Detaljer

Programmeringsspråket C Del 2

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

Detaljer

Datatyper og typesjekking

Datatyper og typesjekking Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører

Detaljer

Datatyper og typesjekking

Datatyper og typesjekking Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører

Detaljer

Dagens tema INF2270. Signaturer. Typekonvertering. Pekere og vektorer. struct er. Definisjon av nye typenavn. Lister. Info om C

Dagens tema INF2270. Signaturer. Typekonvertering. Pekere og vektorer. struct er. Definisjon av nye typenavn. Lister. Info om C Dagens tema Signaturer Typekonvertering Pekere og vektorer struct er Definisjon av nye typenavn Lister Info om C Dag Langmyhr,Ifi,UiO: Forelesning 29. januar 2007 Ark 1 av 23 Signaturer I C gjelder alle

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

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

Dagens tema INF1010 INF1010 INF1010 INF1010

Dagens tema INF1010 INF1010 INF1010 INF1010 I eksemplene om lister og binære trær har vi hittil hatt pekerne inne i objektene i strukturen. ( Innbakt struktur ).Eksempel: Dagens tema Implementasjon av strukturer (lister, binære trær) class { ; ;

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

Datatyper og typesjekking

Datatyper og typesjekking Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem i kompilatoren? Gjennomgang av noen typer Grunntyper Type-konstruktører

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 17. januar 2005 Ark 1 av 23 Vektorer Alle programmeringsspråk har mulighet til

Detaljer

Dagens tema: Kjøresystemer II

Dagens tema: Kjøresystemer II Dagens tema Kjøresystemer II En kort repetisjon (Ghezzi&Jazayeri 2.7.3) Språk med blokker (Ghezzi&Jazayeri 2.7.4) Dynamisk allokering (Ghezzi&Jazayeri 2.7.5) Parametre (Ghezzi&Jazayeri 2.7.7) Ark 1 av

Detaljer

Ark 1 av 18. programmeringsspråkenes. Velkommen til IN 211. verden. IN 211 Programmeringsspråk

Ark 1 av 18. programmeringsspråkenes. Velkommen til IN 211. verden. IN 211 Programmeringsspråk Ark 1 av 18 IN 211 Programmeringsspråk Velkommen til programmeringsspråkenes verden IN 211 Forelesning 20.8.2001 Foreleser Ragnhild Kobro Runde E-post: ragnhilk@ifi.uio.no Kontor: 3345 Treffetid: torsdager

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

Repetisjon: Statiske språk uten rekursive metoder (C1 og C2) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)

Repetisjon: Statiske språk uten rekursive metoder (C1 og C2) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Dagens tema Kjøresystemer (Ghezzi&Jazayeri.6,.7) Repetisjon Språk med rekursjon (C3) og blokker (C4) Statisk link Dynamisk allokering (C5) Parameteroverføring 1/5 Repetisjon: Statiske språk uten rekursive

Detaljer

Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)

Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Repetisjon Språk med rekursjon (C3) og blokker (C4) Statisk link Dynamisk allokering (C5) Parameteroverføring 1/25 Forelesning 11 5.11.2003 Repetisjon:

Detaljer

Løsningsforslag til eksamen i IN 147 og IN 147A

Løsningsforslag til eksamen i IN 147 og IN 147A Løsningsforslag til eksamen i IN 17 og IN 17A Dag Langmyhr Øystein Gran Larsen Våren 1996 1 Oversettelse I vårt forslag har vi lagt større vekt på at oversettelsen skal vært «rett frem» og lett forståelig

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

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

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

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

Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) IN 211 Programmeringsspråk

Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) IN 211 Programmeringsspråk Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) Funksjonelle språk (Ghezzi&Jazayeri kap.7 frem til 7.4) Neste uke: ML Ark 1 av 16 Forelesning 16.10.2000 Parameteroverføring

Detaljer

Oppgave 1 JK-flip-flop (Total vekt 20%)

Oppgave 1 JK-flip-flop (Total vekt 20%) UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 147 Program- og maskinvare Eksamensdag: 12. mai 1997 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 6 sider. Vedlegg: Tillatte

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

INF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak

INF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak LISTER Vanligste datastruktur Mange implementasjonsmåter (objektkjeder, array...) Operasjoner på listen definerer forskjellige typer lister (LIFO, FIFO,...) På norsk bruker vi vanligvis ordet «liste» for

Detaljer

Signaturer. Dagens tema

Signaturer. Dagens tema Signaturer I C gjelder alle deklarasjoner fra deklarasjonsunktet og ut filen. Følgende rogram: int main (void) x = 4; return ; int x; gir denne feilmeldingen: > gcc gal dekl.c o gal dekl gal dekl.c: In

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

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

INF1010 siste begreper før oblig 2

INF1010 siste begreper før oblig 2 INF1010 siste begreper før oblig 2 Sammenligning. Mer lenkede lister. Forskjellige listeimplementasjoner. Binære trær. Bittelitt om grensesnitt (interface). Dagens forelesning Flere temaer på grunn av

Detaljer

Dagens tema: Enda mer MIPS maskinkode

Dagens tema: Enda mer MIPS maskinkode Dagens tema: Enda mer MIPS maskinkode (P&H: 3.6 3.8 + 6.1 + A.6 + A.10) Pseudoinstruksjoner Flere instruksjoner Mer om funksjonskall Stakken Avhengigheter Direktiver Alt er bit! Kommunikasjon med C Ark

Detaljer

En oppsummering (og litt som står igjen)

En oppsummering (og litt som står igjen) En oppsummering (og litt som står igjen) Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen En oppsummering Oppsummering Pensum læreboken til og med kapittel 7 forelesningene de

Detaljer

Kap 6.4: Typesjekking Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 19. og 23. mars Dagens tema: Typer og typesjekking

Kap 6.4: Typesjekking Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 19. og 23. mars Dagens tema: Typer og typesjekking Kap 6.4: Typesjekking Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 19. og 23. mars 2015 Dagens tema: Typer og typesjekking Hva er nå egentlig en «type» i et programmeringsspråk? Hvordan

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

Liste som abstrakt konsept/datatype

Liste som abstrakt konsept/datatype Lister Liste som abstrakt konsept/datatype Listen er en lineær struktur (men kan allikevel implementeres ikke-lineært bak kulissene ) Hvert element har en forgjenger, unntatt første element i listen Hvert

Detaljer

Velkommen til INF2100 Jeg er Dag Langmyhr

Velkommen til INF2100 Jeg er Dag Langmyhr Velkommen til Jeg er Dag Langmyhr (dag@ifi.uio.no). Bakgrunn for I INF1000 20 har dere lært å rammere, men bare små rammer (< 1000 linjer). Hensikten med er å gi mer rammeringstrening Dagens tema: Hva

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

Bakgrunnen for INF2100. Velkommen til INF2100. Prosjektet. Hva gjør en kompilator?

Bakgrunnen for INF2100. Velkommen til INF2100. Prosjektet. Hva gjør en kompilator? Kursopplegg Velkommen til INF2100 Bakgrunnen Bakgrunnen for INF2100 Jeg er Dag Langmyhr (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? Bakgrunn for kurset Hvordan gjennomføres kurset? Hvordan får

Detaljer

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)

Detaljer

Velkommen til INF2100

Velkommen til INF2100 Kursopplegg Velkommen til INF2100 Jeg er Dag Langmyhr (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? Bakgrunn for kurset Hvordan gjennomføres kurset? Hvordan får man det godkjent? Pause (med registrering

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

Heap* En heap er et komplett binært tre: En heap er også et monotont binært tre:

Heap* En heap er et komplett binært tre: En heap er også et monotont binært tre: Heap Heap* En heap er et komplett binært tre: Alle nivåene i treet, unntatt (muligens) det nederste, er alltid helt fylt opp med noder Alle noder på nederste nivå ligger til venstre En heap er også et

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

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)

Detaljer

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4 Forelesning inf - Java 4 Repetisjon: arrayer Tema: Løkker Arrayer Metoder Ole Christian Lingjærde,. september Deklarere og opprette array - eksempler: int[] a = new int[]; String[] a = new String[]; I

Detaljer

Forelesning inf Java 4

Forelesning inf Java 4 Forelesning inf1000 - Java 4 Tema: Løkker Arrayer Metoder Ole Christian Lingjærde, 12. september 2012 Ole Chr. Lingjærde Institutt for informatikk, 29. august 2012 1 Repetisjon: arrayer Deklarere og opprette

Detaljer

KONTINUASJONSEKSAMEN

KONTINUASJONSEKSAMEN Høgskolen i Gjøvik Avdeling for elektro- og allmennfag KONTINUASJONSEKSAMEN FAGNAVN: Algoritmiske metoder ( vekttall) Algoritmiske metoder I (3 vekttall) FAGNUMMER: LO 164 A ( vektall) L 171 A (3 vekttall)

Detaljer

Generiske mekanismer i statisk typede programmeringsspråk

Generiske mekanismer i statisk typede programmeringsspråk Generiske mekanismer i statisk typede programmeringsspråk Dette stoffet er Pensum, og det er bare beskrevet her Mye her er nok kjent stoff for mange INF5110 7. mai 2013 Stein Krogdahl 1 Hvordan kunne skrive

Detaljer

Minneområder Det er vanlig å dele opp minnet til en prosess i disse ulike områdene: Fast minne Store og små indianere «align» ing struct er

Minneområder Det er vanlig å dele opp minnet til en prosess i disse ulike områdene: Fast minne Store og små indianere «align» ing struct er Dagens tema: Minnet Minneområder Det er vanlig å dele opp minnet til en prosess i disse ulike områdene: Fast minne Store og små indianere «align» ing struct er 0xfffffffc Variable Stakk Lister Noen nyttige

Detaljer

PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister

PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister Lars Sydnes, NITH 5. februar 2014 I. Implementasjoner Tabell-implementasjon av Stakk Tabellen er den lettest tilgjengelige datastrukturen

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

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

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

Datastrukturer. Algoritmer og datastrukturer. Øvingsforelesning 2

Datastrukturer. Algoritmer og datastrukturer. Øvingsforelesning 2 Datastrukturer Algoritmer og datastrukturer Øvingsforelesning 2 Datastrukturer Algoritmer og datastrukturer Øvingsforelesning 2 av Henrik Grønbech Datastrukturer Algoritmer og datastrukturer Øvingsforelesning

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

Løsningsforslag for Obligatorisk Oppgave 2. Algoritmer og Datastrukturer ITF20006

Løsningsforslag for Obligatorisk Oppgave 2. Algoritmer og Datastrukturer ITF20006 Løsningsforslag for Obligatorisk Oppgave 2 Algoritmer og Datastrukturer ITF20006 Lars Vidar Magnusson Frist 28.02.14 Den andre obligatoriske oppgaven tar for seg forelesning 5, 6, og 7 som dreier seg om

Detaljer

Oppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin.

Oppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin. Oppgaver uke 35: Oppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin. Oppgave 1. Skriv et C-program som leser mål i tommer og skriver det ut i fot og tommer. (Det er 12 tommer

Detaljer

INF januar 2015 Stein Michael Storleer (michael) Lenkelister

INF januar 2015 Stein Michael Storleer (michael) Lenkelister INF1010 29. januar 2015 Stein Michael Storleer (michael) Lenkelister Lenke + lister = lenkelister Vi starter med lenkeobjektene Lager en kjede av objekter ved hjelp av pekere class { ; Legger Jl data innholdet

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider. Vedlegg:

Detaljer

INF1000 : Forelesning 4

INF1000 : Forelesning 4 INF1000 : Forelesning 4 Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet

Detaljer

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4 Repetisjon: nesting av løkker Kort repetisjon av doble (nestede) løkker Mer om D-arrayer Introduksjon til D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

Vanlige datastrukturer. I dette lysarksettet

Vanlige datastrukturer. I dette lysarksettet Vanlige datastrukturer I dette lysarksettet datastrukturer Datastrukturer i Med datastruktur mener vi måten objektene i et program er strukturert på. Særlig blir det aktuelt å snakke om struktur hvis vi

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

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java

Detaljer