IN 147 Program og maskinvare

Save this PDF as:
Størrelse: px
Begynne med side:

Download "IN 147 Program og maskinvare"

Transkript

1 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 til funksjoner Pekere til pekere til... Typekonvertering mellom pekere Ark 1 av 25 Forelesning

2 En kort repetisjon Structer Cs struct-er er rene datastrukturer: struct brok { int teller; int nevner; }; Struct-variable deklareres som andre variable: struct brok bstr; Forelesning Ark 2 av 25

3 Innlesing i C Med scanf/fscanf: int scanf(const char *format,... ) int fscanf(file *fil, const char *format,... ) scanf/fscanf brukes for formatert input, hvor argumenter tilordnes verdier som leses. Argumentene må være pekere. Med fgetc: int fgetc(file *fil) fgetc leser inn et og et tegn fra fil eller stdin (også blanke). Med fgets: char *fgets(char str[], int n, FILE*fil) fgets leser inn og legger max. n tegn (inkl. en 0-byte) i strengen str, enten fra fil eller stdin. Avbryter alltid ved linjeskift. Forelesning Ark 3 av 25

4 Basistyper I C finnes følgende basistyper: Navn Alternativt navn Antall byte signed char char? 1 unsigned char char? 1 short int short 2 unsigned short int unsigned short 2 int 2 unsigned int unsigned 2 long int long 4 unsigned long int unsigned long 4 float double Forelesning Ark 4 av 25

5 Dette programmet vil fortelle hvilke størrelser som gjelder på systemet det kjøres på: #include <stdio.h> int main(void) { printf("sizeof(char): %d\n", sizeof(char)); printf("sizeof(short): %d\n", sizeof(short)); printf("sizeof(int): %d\n", sizeof(int)); printf("sizeof(long): %d\n", sizeof(long)); printf("sizeof(float): %d\n", sizeof(float)); printf("sizeof(double): %d\n", sizeof(double)); return 0; } På Ifis SGI-maskiner finner vi følgende: sizeof(char): 1 sizeof(short): 2 sizeof(int): 4 sizeof(long): 4 sizeof(float): 4 sizeof(double): 8 Forelesning Ark 5 av 25

6 Typekonvertering C har (som de fleste andre språk) automatisk konvertering ved tilordning: int i; unsigned int u; float f; i=u; f=i; C benytter følgende konverteringsalgoritme: float int benytter en egen omregningsfunksjon. unsigned char unsigned short og unsigned short unsigned long setter inn 0-bit. signed char signed short og signed short signed long setter inn kopier av fortegns-bit. (un)signed short (un)signed char og (un)signed long (un)signed short fjerner overflødige bit. signed xxx unsigned xxx endrer ingenting. Forelesning Ark 6 av 25

7 Eksplisitt konvertering Vi kan også angi konvertering når vi trenger det: #include <stdio.h> int main(void) { int a = 8, b = 3; float res; } res = a/b; printf("heltallsdivisjon: 8/3 = %f\n", res); res = ((float)a)/((float)b); printf("flyttallsdivisjon: 8/3 = %f\n", res); res = a/(float)b; printf("flyttallsdivisjon: 8/3 = %f\n", res); return 0; Kjøring av dette programmet gir: Heltallsdivisjon: 8/3 = Flyttallsdivisjon: 8/3 = Flyttallsdivisjon: 8/3 = Forelesning Ark 7 av 25

8 Konvertering og overflyt Når vi konverterer til noe som har færre bit, må vi passe på at vi ikke får overflyt (dvs. at vi ikke har nok bit til å lagre svaret). #include <stdio.h> int main(void) { int x; signed char sc; unsigned char uc; x = 257; uc = x; printf("konvertering av %d (=0x%08x) til byte gir %d.\n", x, x, uc); uc=254; sc=uc; printf("konvertering av %d (=0x%02x) til signed gir %d.\n", uc, uc, sc); return 0; } gir følgende svar: Konvertering av 257 (=0x ) til byte gir 1. Konvertering av 254 (=0xfe) til signed gir -2. Forelesning Ark 8 av 25

9 Formater i printf Når vi skriver printf("x = %d.\n", x); skjer følgende: 1. Tegnene «x»,, «=» og skrives ut. 2. Tegnene «%d» skrives ikke ut; i stedet skrives verdien av x (tolket som heltall). 3. Tegnene «.» og«\n» (linjeskift) skrives ut. Format-«språket» til printf kan generelt inneholde Koder % - tall gir venstrejustering. type tall angir minimum antall tegn som brukes. Hvis tallet starter med 0, vil utskriften bli fyllt opp med nuller. Forelesning Ark 9 av 25

10 type angir hva slags type data som skal skrives ut: c tegn d heltall (dvs signed char og int) u heltall uten fortegn (dvs unsigned char og insigned int) ld stort heltall (dvs long) lu stort heltall uten fortegn (dvs unsigned long) x heltall på hex-form lx stort heltall på hex-form s tekst (avsluttet med 0-byte) f flyttall (dvs float) lf store flyttall (dvs double) (Det finnes enda flere; se i C-boken.) Forelesning Ark 10 av 25

11 Deklarasjon av nye typer I C kan vi definere nye typer: typedef unsigned char uc; uc c1, ctab[10]; Typedefinisjoner brukes til å unngå lange navn: uc kontra unsigned char punkt kontra struct punkt definisjoner som kan variere fra ett system til et annet; for eksempel i stdlib.h på en SGI: typedef unsigned int size_t; Typen size t brukes som type for en størrelse, for eksempel det sizeof gir. å bedre forståelen (dokumentasjonen) av et program ved å gi en type et dekkende navn Forelesning Ark 11 av 25

12 Kort repetisjon om pekere Forrige uke lærte vi at Pekervariable deklareres med en * før navnet: Java A pa; C struct a *pa; Objekter opprettes med kall på malloc: Java pa = new A(); C pa = malloc(sizeof(struct a)); sizeof gir antall byte som trengs. Man får tak i elementer i objektene ved å bruke ->: Java C pa.a = 3; pa->a = 3; Når objekter ikke trengs mer, må de frigis: Java C free(pa); Forelesning Ark 12 av 25

13 Vi har tre operasjoner på pekere i C: &v Gi adressen til en variabel v (dvs lag en peker til v) *p Følg en peker p (dvs gi det som pekeren p peker på) p->c Det samme som (*p).c (dvs hent element c fra struct pekt på av p Den siste varianten er egentlig ikke nødvendig, men den er innført fordi vi så ofte har pekere til struct-er. Forelesning Ark 13 av 25

14 Pekere som parametre Noen programmeringsspråk har ulike typer parametre (verdi-, referanse- og navneparametre). I C (som i Java) finnes kun verdiparametre. Dette innebærer Ved kallet oversendes en kopi av parameteren. Lokale endringer av parameteren vil ikke synes utenfor funksjonen. Forelesning Ark 14 av 25

15 Eksempel #include <stdio.h> void gi_igjen(int belop, int kr20, int kr10, int kr5, int kr1, int ore50) { kr20 = belop / 2000; kr10 = belop%2000 / 1000; kr5 = belop%1000 / 500; kr1 = belop%500 / 100; ore50 = belop%100 / 50; } int main(void) { int k20, k10, k5, k1, o50; gi_igjen(14750, k20, k10, k5, k1, o50); printf("kr 147,50 blir %d 20kr, %d 10kr,\n", k20, k10); printf(" %d 5kr, %d 1kr og %d 50ører.\n", k5, k1, o50); return 0; } Kjøring gir følgende gale svar: Kr 147,50 blir kr, 0 10kr, kr, kr og 0 50ører. Forelesning Ark 15 av 25

16 Løsningen er å overføre pekere til de aktuelle variablene: #include <stdio.h> void gi_igjen(int belop, int *kr20, int *kr10, int *kr5, int *kr1, int *ore50) { *kr20 = belop / 2000; *kr10 = belop%2000 / 1000; *kr5 = belop%1000 / 500; *kr1 = belop%500 / 100; *ore50 = belop%100 / 50; } int main(void) { int k20, k10, k5, k1, o50; gi_igjen(14750, &k20, &k10, &k5, &k1, &o50); printf("kr 147,50 blir %d 20kr, %d 10kr,\n", k20, k10); printf(" %d 5kr, %d 1kr og %d 50ører.\n", k5, k1, o50); return 0; } Nå blir svaret riktig: Kr 147,50 blir 7 20kr, 0 10kr, 1 5kr, 2 1kr og 1 50ører. De mystiske &-ene i scanf Dette er grunnen til at parametrene til scanf må ha en & foran seg. Siden variablene skal oppdateres, må vi sende pekere til dem. Forelesning Ark 16 av 25

17 0x x C 0x x x x C 0x x x C 0x x ore50 kr1 kr5 kr10 kr20 belop 0x x x C 0x x o50 k1 k5 k10 k20 Forelesning Ark 17 av 25

18 Pekere og vektorer I C gjelder to litt uventede konvensjoner: Bruk av et vektornavn gir en peker til element nr. 0: a &a[0] Når en vektor overføres som parameter, er det altså en peker til starten som overføres. Følgelig trenger vi ikke noen & når vi skal lese inn et ord med scanf: char str[2000]; scanf("%s", str); Aksess av vektorelementer kan også uttrykkes med pekere: a[i] *(a+i) Det er altså det samme om vi skriver a[3] eller *(a+3). Forelesning Ark 18 av 25

19 Pekere og vektorer Anta unsigned char a[6]; a[0] a[1] a[2] a[3] a[4] a[5] a +3 0x x x x x x x x x x Forelesning Ark 19 av 25

20 Regning med pekere I C gjelder alltid at a[i] *(a+i) Dette er greit om a er en char-vektor, men hva om den er en long? Egne regneregler for pekere I C gjelder egne regneregler for pekere: p+i betyr «Øk p med i multiplisert med størrelsen av det p peker på.» Hva er lov? Tilordning til peker av samme type. Addere/subtrahere en peker og et heltall. Subtrahere eller sammenligne to pekere til medlemmer av samme array. Tilordne eller sammenligne med NULL (0). Forelesning Ark 20 av 25

21 Pekere til funksjoner Det er nyttig å kunne behandle funksjoner som om de var variable, og noen høynivåspråk tilbyr dette. C tilbyr noe som er nesten like godt: pekere til funksjoner. #include <stdio.h> int sum(int (*f)(int x), int n) { /* Beregn summen av f(x) for x=1,...,n. */ int res = 0, ix; for(ix=1; ix<=n; ++ix) res += f(ix); return res; } Her er parameteren f en peker til en funksjon: Denne funksjonen returnerer en int. Denne funksjonen har én parameter: x som er en int. Forelesning Ark 21 av 25

22 Bruk av funksjonspekere Bruk av et funksjonsnavn uten parenteser bak, gir en peker til funksjonen. (Dette implementeres som adressen til første instruksjon i funksjonen.) int odd(int x) /* Er x et oddetall? */ { return x%2; } int sqr(int v) /* Finn kvadratet av v. */ { return v*v; } int main(void) { printf("sum av odd(n): %5d\n", sum(odd,10)); printf("sum av sqr(n): %5d\n", sum(sqr,10)); return 0; } Kjøring av dette lille programmet gir følgende resultat: Sum av odd(n): 5 Sum av sqr(n): 385 Forelesning Ark 22 av 25

23 Pekere til pekere til... Noen ganger trenger man en peker til en pekervariabel (for eksempel fordi den skal overføres som parameter og endres). Siden vanlige pekere deklareres som xxx *p; må en «peker til en peker» angis som xxx **pp = &p; Dette kan utvides med så mange stjerner man ønsker, men det er uvanlig å gjøre det særlig mer komplisert. Eksempel Omgivelsesvariable i UNIX inneholder opplysninger om en bruker og hans eller hennes preferanser: LOGNAME=kritisk EDITOR=emacs HOSTTYPE=sol PRINTER=prent HOME=/ifi/ganglot/a09/kritisk SHELL=/local/gnu/bin/bash Forelesning Ark 23 av 25

24 Omgivelsen overføres nesten alltid fra program til program ved en tredje parameter til main: int main(int argc, char *argv[], char **envir) Parameteren envir peker på en vektor av pekere som hver peker på en omgivelsesvariabel og den definisjon. LOGNAME=kritisk envir 0 EDITOR=emacs HOSTTYPE=sol PRINTER=prent HOME=/ifi/ganglot/a09/kritisk SHELL=/local/gnu/bin/bash Forelesning Ark 24 av 25

25 Typekonvertering mellom pekere Siden pekere i prinsippet kan være av ulikt antall bit, skal man egentlig angi konvertering mellom dem. (Dette hjelper også kompilatoren å finne feil.) Pekertypen void* er garantert stor nok til alle pekere, og kan derfor betraktes som en «peker til alt mulig». Funksjonen malloc er derfor definert som void *malloc (size_t size) Korrekt bruk av malloc er derfor xxx *p; : p=(xxx*)malloc(sizeof(xxx)); Forelesning Ark 25 av 25

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon Kort om meg INF1000 Uke 2 Variable, enkle datatyper og tilordning Fredrik Sørensen Kontor: Rom 4311-NR, Informatikkbygget Brukernavn/e-post: fredrso@ifi.uio.no Utdanning: Dataingeniør, 2000 Cand.Scient,

Detaljer

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon Oversikt INF1000 Uke 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning Uttrykk

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

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

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:

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

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

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

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004 Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004 13. september 2004 En viktig del av den første obligatoriske oppgaven er å få erfaring med hvordan Java håndterer tall. Til å begynne med kan dette

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

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

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

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

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

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program Oversikt INF1000 Uke 1 time 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning

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

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

Hvordan en prosessor arbeider, del 1

Hvordan en prosessor arbeider, del 1 Hvordan en prosessor arbeider, del 1 Læringsmål Kompilator, interpret og maskinkode CPU, registre Enkle instruksjoner: de fire regnearter Mer informasjon om temaet Internett Lokalnett (LAN) Mitt program

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema Operativsystemer Hva er et operativsystem? En meget kort oversikt over operativsystemenes historie Systemkall i UNIX Hente prosessens nummer Starte prosesser Vente på prosesser Utføre programmer

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

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

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

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

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

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

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

INF225 høsten 2003 Prosjekt del 4: kodegenerering

INF225 høsten 2003 Prosjekt del 4: kodegenerering INF225 høsten 2003 Prosjekt del 4: kodegenerering Thomas Ågotnes 19. november 2003 1 Introduksjon I denne delen av prosjektet skal C- -parseren fra del 3 utvides til å generere maskinkode. Maskinkoden

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

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

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

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og

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

Grunnleggende programmering i C

Grunnleggende programmering i C Grunnleggende programmering i C Hvorfor lære enda et nytt programmeringsspråk? C brukes mye, til å programmere alt: Hele operativsystemer, f.eks. Linux Regneark og tekstbehandlere Tungregneprogrammer for

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

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

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

2 Om statiske variable/konstanter og statiske metoder.

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

Detaljer

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

INF1000 (Uke 5) Mer om løkker, arrayer og metoder INF1000 (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Praktisk informasjon Når disse

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

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

MER OM ARRAYER. INF1000: Forelesning 4. Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene:

MER OM ARRAYER. INF1000: Forelesning 4. Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene: INF1000: Forelesning 4 Mer om arrayer Metoder MER OM ARRAYER 2 Array som en samling verdier Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene: String[] studenter = new String[500];

Detaljer

INF1000: Forelesning 4. Mer om arrayer Metoder

INF1000: Forelesning 4. Mer om arrayer Metoder INF1000: Forelesning 4 Mer om arrayer Metoder MER OM ARRAYER 2 Array som en samling verdier Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene: String[] studenter = new String[500];

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

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

Forelesning inf Java 5

Forelesning inf Java 5 Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen

Detaljer

Forelesning inf Java 5

Forelesning inf Java 5 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen til et Java-program

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

INF 1000 høsten 2011 Uke september

INF 1000 høsten 2011 Uke september INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus 1 INF1000 undervisningen Forelesningene: Første

Detaljer

INF1000 undervisningen INF 1000 høsten 2011 Uke september

INF1000 undervisningen INF 1000 høsten 2011 Uke september INF1000 undervisningen INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Forelesningene: Første

Detaljer

Inn og ut i C/C++ 1. Inn og ut i C/C++

Inn og ut i C/C++ 1. Inn og ut i C/C++ Tore Berg Hansen 3.9.2004 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LV194D C++ for javaprogrammerere 1. Resymé: Vi skal her se litt nærmere på hvordan vi får data inn

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

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