Dagens tema. Nyttige programmer Programmet make. Hvis én fil endres, hvilke filer må da kompileres på nytt?
|
|
- Vidar Haraldsen
- 6 år siden
- Visninger:
Transkript
1 Dagens tema Nyttige programmer Programmet make Flyt-tall Representasjon av flyt-tall Standarden IEEE 754 Systemkall i Unix Programmet make Det er mange praktiske problemer forbundet med programmering av et større program: Hvordan holde orden på et stort program når det er mange separatkompilerte filer? Hvis én fil endres, hvilke filer må da kompileres på nytt? Hvordan sikre at alle de riktige opsjonene er med ved hver kompilering? Hvordan unngå at brukeren skriver seg i hjel på lange kommandolinjer? Løsningen er make! Ark av 24 Ark 2 av 24 Programmet make gjør altså følgende: ❶ Først leses filen makefile eller Makefile. Brukeren lager en fil med navn makefile eller Makefile. Den ser slik ut: F 0 : F F 2... F n Tab Kommandolinje Tab Kommandolinje. Dette betyr: ❶ Filen F 0 er «avhengig» av filene F, F 2,..., F n. Det betyr at hvis F 0 er eldre enn noen av disse, må F 0 rekompileres. ❷ Kommandolinjene må da utføres for å rekompilere F 0. Disse linjene må starte med en Tab. ❷ Så bygger make opp en oversikt (nærmere bestemt en graf) over hvilke filer som avhenger av hvilke. Utgangspunktet (roten) for denne grafen oppgis som parameter til make; ellers tas første fil. Denne grafen angir hvilken rekkefølge filene skal sjekkes (og eventuelt rekompileres) i. For C-programmer spiller ikke dette noen rolle, men av og til er dette vesentlig. ❸ Nå kan hver fil sjekkes i riktig rekkefølge. Hvis filen ikke finnes, eller 2 noen av filene den er avhengig av ikke finnes, eller 3 filen er eldre enn noen av de den er avhengig av, blir den rekompilert. Brukeren får beskjed om hvilke kommandoer som utføres. Ark 3 av 24 Ark 4 av 24
2 Et eksempel: incl.h: #define N 00 func.c: #include "incl.h" int N2 (void) return 2*N; prog.c: #include "incl.h" extern int N2(void); int main (void) if (N2() == 2*N) printf("n2 er OK.\n"); else printf("n2 er feil!\n"); Dette fordrer følgende makefile: prog: prog.o func.o Nå kan dette prøves: cc -c func.c $prog N2 er OK. $ touch prog.c $ touch incl.h cc -c func.c $prog N2 er OK. make: prog is up to date $ prog.o: prog.c incl.h func.o: func.c incl.h cc -c func.c Ark 5 av 24 Ark 6 av 24 Det er mulig å definere forkortelser (makroer uten parametre): CC = cc CFLAGS = -O -DATARI_ST -DIFI BIN = func.o prog.o prog: $(BIN) $(CC) $(CFLAGS) $(BIN) -o prog prog.o: prog.c incl.h $(CC) $(CFLAGS) -c prog.c func.o: func.c incl.h $(CC) $(CFLAGS) -c func.c Heltall I 8, 6 eller 32 bit kan vi lagre til dels store tall (med fortegns-bit): Bit Fra......til Dette er imidlertid ikke alltid nok: Ett sekund er perioder av strålingen...cesium 33. Dessuten kan vi trenge tall som ikke er heltall: Tallet π er 3, Ark 7 av 24 Ark 8 av 24
3 Flyt-tall Tall kan imidlertid også skrives på andre måter: , ( 8, De to siste M G E) er såkalte flyt-tall og består av Mantisse («significand») (M). Grunntall («radix») (G). Eksponent (E). Fortegn. Representasjon av mantissen En desimal brøk: 3, har desimaler. En binær brøk:,00000 har binærer. Brøken tolkes slik: , Resultatet er = ,406 Ark 9 av 24 Ark 0 av 24 En normalisert mantisse er en binær brøk med følgende egenskap: M<G For binær representasjon innebærer dette at M<2 Binæren foran binær-kommaet vil altså alltid være (med mindre hele tallet er 0). Eksponenten Eksponenten lagres normalt med et fast tillegg slik at vi alltid får et positivt tall. Grunntallet Grunntallet er nesten alltid 2. Blir ikke lagret. Standarden IEEE 754 for 32-bits flyt-tall S Eksponent Mantisse S er fortegnet; 0 for positivt, for negativt. Grunntallet er 2. Eksponenten er på 8 bit og lagres med fast tillegg 27. Mantissen er normalisert og på 24 bit, men kun de 23 etter binærkommaet lagres. Ark av 24 Ark 2 av 24
4 Hvorledes lagres,0?,0 0 =,0 2 som er normalisert. Eksponent er 0+27=27= 2. Fortegnet er Hvordan lagres 0? Som spesialkonvensjon er 0 representert av kun 0-bit: Hvorledes lagres 2,825? 2,825 0 = 00,0 2 =, Eksponent er 3+27=30= Fortegnet er. Største tall omtrent , (Eksponenten 0 er reservert for tallet 0, eksponenten 255 for NAN, «not a number».) Minste positive tall omtrent 2 27, Nøyaktighet Mantissen er på 24 bit, og 2 24, Dette gir 7 desimale sifre Ark 3 av 24 Ark 4 av 24 Standarden IEEE 754 for 64-bits flyt-tall S Eksponent Mantisse Endringer: Eksponenten er økt fra 8 til bit. Lagres med fast tillegg 023. Mantissen er økt fra 24 til 53 bit. Øverste bit lagres stadig ikke. Største tall Det største tallet som kan lagres, finner vi utfra formelen 2 (2 2) = , Hvordan regne med flyt-tall? Det er to muligheter: De fleste prosessorer i dag har egne operasjoner for flyt-tall. LC-2 har ikke det. Man kan skrive rutiner. Minste positive tall = , Nøyaktighet Mantissen er på 53 bit, og , Dette gir nesten 6 desimale sifre. Ark 5 av 24 Ark 6 av 24
5 Kommunikasjon med operativsystemet Et enkelt systemkall Alle prosesser (som er programmer som kjøres) har en PID («Process Identification Number»). Kildekoden til programmet pid ligger på filen pid.c: int main(void) printf("prosessen har PID=%d\n", (int)getpid()); return 0; I Unix er ikke kommandotolkeren («shellet») en del av operativsystemet men et frittstående program. Det kommuniserer med OSet via et fastsatt grensesnitt av systemkall som er C-funksjoner i OS.kjernen. Unix-grensesnittet kalles POSIX. $pid Prosessen har PID=20796 $pid Prosessen har PID=20797 $ Ark 7 av 24 Ark 8 av 24 Hvordan opprette en ny prosess? Den absolutt eneste måten å opprette nye prosesser på i Unix er å benytte systemkallet fork. Fork gjør følgende: ❶ En ny prosess opprettes. ❷ Den nye prosessen er en nøyaktig og fullstendig kopi av den opprinnelige prosessen. Det eneste som er forskjellig, er at de har forskjellig PID. ❸ Begge prosessene fortsetter eksekveringen etter fork-kallet. Eksempel Filen fork.c inneholder koden til programmet fork: int main(void) printf("prosessen har PID=%d\n", (int)getpid()); fork(); printf("nå er PID=%d\n", (int)getpid()); return 0; $fork Prosessen har PID=20803 Nå er PID=20804 Nå er PID=20803 Ark 9 av 24 Ark 20 av 24
6 Foreldre og barn Den prosessen som opprinnelig utførte fork-kallet, kalles foreldreprosessen, og de som opprettes, kalles barneprosesser. For å kunne skille de to prosessene, benyttes følgende løsning for returverdien fra fork: Barneprosessen får 0. Foreldreprosessen får barnets PID. Eksempel Filen fork2.c demonstrerer returverdien fra fork: int main(void) pid_t pid; pid = fork(); if (pid == 0) printf("dette er barnet\n"); else printf("barnet har PID=%d\n", (int)pid); return 0; $fork2 Dette er barnet Barnet har PID=208 Ark 2 av 24 Ark 22 av 24 Det finnes en sikker variant som heter safefork.c og ligger på kursets hjemmeside. #include <stdlib.h> #include <sys/errno.h> extern int errno; #define MAX_PROCESSES 6 fork og safefork Systemkallet fork er et farlig systemkall. Koden while () fork(); vil lamme ethvert Unix-system. static int n_processes(void) return system("exit /local/bin/ps /local/bin/wc -l ")/256; pid_t safefork(void) static int n_initial = -; if (n_initial == -) /* Første gang funksjonen kalles: */ n_initial = n_processes(); else if (n_processes() >= n_initial+max_processes) sleep(2); errno = EAGAIN; return (pid_t)-; return fork(); (Funksjonen finnes i flere utgaver tilpasset ulike operativsystem.) Ark 23 av 24 Ark 24 av 24
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
DetaljerIN 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
DetaljerDagens 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
DetaljerIN 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
DetaljerIN 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
DetaljerIN 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
DetaljerDagens tema: Koding. Programmering i høynivåspråk. Navn. Mitt forslag:
Dagens tema Dagens tema: Koding Hvorfor er stil viktig? Programmering i høynivåspråk Høynivåprogrammering, kommentarer og stil Kompilering av store programsystemer Prosjekter, samarbeide og versjoner Når
DetaljerDagens tema: Koding. Høynivåprogrammering, kommentarer og stil Kompilering av store programsystemer Prosjekter, samarbeide og versjoner
Dagens tema Dagens tema: Koding Høynivåprogrammering, kommentarer og stil Kompilering av store programsystemer Prosjekter, samarbeide og versjoner Hvorfor er stil viktig? Programmering i høynivåspråk Når
DetaljerIN 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
DetaljerDagens tema (kapittel 15 i Englander-boken)
Dagens tema (kapittel 15 i Englander-boken) Prosesser Hvordan starte prosesser Å vente på prosesser Å utføre programmer Hva gjør en kommandotolker? Signaler Obligatoriske oppgave 2 Ark 1 av 25 Prosesser
DetaljerDagens 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
DetaljerProgrammeringssprå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
DetaljerDagens 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
DetaljerInformasjon 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
DetaljerDagens tema. Representasjon av mantissen En desimalbrøk: 1 1, INF1070 INF1070 INF1070 INF1070
Dagens tema Flyt tall Oppbygning IEEE 754 Programmering med flyt tall Selvmodifiserende kode Core War Flyt tall Tall med desimalkomma kan skrives på mange måter: 8 388 708,0 8,388708 0 6 8,39 0 6 De to
DetaljerProsesser. Dagens tema. Hva er en prosess? En prosess er et program under utførelse.
Dagens tema (kapittel 15 i Englander-boken) Prosesser Hvordan starte prosesser Å vente på prosesser Å utføre programmer Hva gjør en kommandotolker? Signaler Obligatoriske oppgave 2 Prosesser Hva er en
DetaljerProsesstabeller (PCB - Prosess Control Block) Se på PD: kommandoene ps og top Bakgrunnsprosesser Opprettelse av prosesser:
Prosesser i Prosesstabeller (PCB - Prosess Control Block) Se på PD: kommandoene ps og top Bakgrunns Opprettelse av : fork og exec pid og ppid Foreldre, barn og barnebarn Utførelse av kommando i Eksempler
DetaljerProgrammeringssprå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
DetaljerDagens tema INF2270. Flyt-tall (B&O H-boken 2.4, 3.14) Hvordan lagres de? Hvordan regner man med dem? Bit-fikling (B&O H-boken 2.1.
Dagens tema Flyt-tall (B&O H-boken 2.4, 3.14) Hvordan lagres de? Hvordan regner man med dem? Bit-fikling (B&O H-boken 2.1.7) Pakking Instruksjoner for enkelt-bit Dag Langmyhr,Ifi,UiO: Forelesning 23. mars
DetaljerProgrammeringssprå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;
DetaljerDagens 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?
DetaljerCs 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
DetaljerProgrammeringssprå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
DetaljerDel 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
DetaljerReelle tall på datamaskin
Reelle tall på datamaskin Knut Mørken 5. september 2007 1 Innledning Tirsdag 4/9 var tema for forelesningen hvordan reelle tall representeres på datamaskin og noen konsekvenser av dette, særlig med tanke
DetaljerDagens tema. Representasjon av mantissen En desimalbrøk: 1 1, INF2270 INF2270 INF2270 INF2270
Dagens tema Flyt-tall (B&O H-boken 2.4, 3.4) Hvordan lagres de? Hvordan regner man med dem? Bit-fikling (B&O H-boken 2..7) Skifting (B&O H-boken 3.5.3 4) Pakking Instruksjoner for enkelt-bit Flyt-tall
DetaljerRepresentasjon av tall på datamaskin Kort innføring for MAT-INF1100L
Representasjon av tall på datamaskin Kort innføring for MAT-INF00L Knut Mørken 3. desember 204 Det er noen få prinsipper fra den første delen av MAT-INF00 om tall som studentene i MAT-INF00L bør kjenne
DetaljerProgrammeringssprå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
DetaljerProgrammeringssprå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:
DetaljerDagens tema. Funksjonskall. Flyt-tall. Rekursive kall Lokale variable. Hvordan lagres de? Hvordan regner man med dem?
Dagens tema Funksjonskall Flyt-tall Rekursive kall Lokale variable Hvordan lagres de? Hvordan regner man med dem? En kort oppsummering Funksjonskall Kall og retur Instruksjonene call og ret er egentlig
DetaljerDagens 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
DetaljerArk 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
DetaljerDel 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
DetaljerHvordan 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
DetaljerTALL. Titallsystemet et posisjonssystem. Konvertering: Titallsystemet binære tall. Det binære tallsystemet. Alternativ 1.
TALL Dagens plan: Tallsystemer (kapittel 6) Titallsystemet Det binære tallsystemet Det heksadesimale tallsystemet Representasjon av tall (kapittel 7) Heltall Negative tall Reelle tall Gray-kode (les selv!)
DetaljerINF1040 Digital representasjon TALL
TALL Dagens plan: Tallsystemer (kapittel 6) Titallsystemet Det binære tallsystemet Det heksadesimale tallsystemet Representasjon av tall (kapittel 7) Heltall Negative tall Reelle tall Gray-kode (les selv!)
DetaljerTDT4102 Prosedyreog objektorientert programmering Vår 2016
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyreog objektorientert programmering Vår 2016 Øving 2 Frist: 2016-01-29 Mål for denne øvingen:
DetaljerDagens 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
DetaljerTall. Binære regnestykker. Binære tall positive, negative heltall, flytende tall
Tall To måter å representere tall Som binær tekst Eksempel: '' i ISO 889-x og Unicode UTF-8 er U+ U+, altså Brukes eksempelvis ved innlesing og utskrift, i XML-dokumenter og i programmeringsspråket COBOL
DetaljerDagens 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å
DetaljerTDT4110 IT Grunnkurs Høst 2015
TDT4110 IT Grunnkurs Høst 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforlag Auditorieøving 1 1 Teori Løsning er skrevet med uthevet tekst
DetaljerOversikt over IN147(A):
Oversikt over IN147(A): Programmerings- og operativsystem-delen Oppsummering for IN147(A) Bit-mønstre Tallsystemer MIPS assemblerspråk C Datatyper Tillegg for de som tar hele IN147 Operativsystemer Parallellisering
DetaljerDagens 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
DetaljerHØGSKOLEN I SØR-TRØNDELAG
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Eksamensdato: 22. mai 2002 Varighet: Fagnummer: Fagnavn: 4 timer LO245D Datateknikk Klasse(r): 1D FU Vekttall: 3 Faglærer(e): Geir Maribu
DetaljerIN 147 Program og maskinvare. Velkommen til IN 147. Program- og maskinvare
Velkommen til IN 147 Program- og maskinvare Dagens tema: Presentasjon av kurset Litt om programmeringsspråket C Registrering av oppmøte Ark 1 av 22 Forelesning 22.1.2001 Foreleserne Sigbjørn Næss Digitaltekniker
DetaljerDagens tema: Parallellstyring
Nyttige forklaringer Sikker opprettelse av nye prosesser Hva er en kommandotolker? Dagens tema: Parallellstyring Generelt Synkronisering med filer Synkronisering med rør Synkronisering med felles lager
DetaljerIN 147 Program og maskinvare
Dagens tema Parallellitet Eksempelprogrammet Litt om X En enkelt pakke for tegning på skjerm Et program for å tegne fraktaler Kommunikasjon mellom prosesser Rør Felles lager Ark 1 av 24 Forelesning 28.4.1998
DetaljerTema for siste forelesning:
Dagens tema Tema for siste forelesning: Kodegenerering Funksjoner Testing Ulike testprogrammer Kompilering av programsystemer make ant Hva må gjøres for funksjoner? Funksjoner For funksjoner må vi kunne
DetaljerOPPGAVE 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.
DetaljerKapittel 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
DetaljerHusk å registrer deg på emnets hjemmeside!
IT Informatikk basisfag 28/8 Husk å registrer deg på emnets hjemmeside! http://it.idi.ntnu.no Gikk du glipp av øving? Gjør øving og få den godkjent på datasal av din lærass! Forrige gang: HTML Merkelapper
DetaljerTema for siste forelesning:
Tema for siste forelesning: Kompilering av programsystemer make ant Kodegenerering Funksjoner Testing Ulike testprogrammer Hvordan kompilere riktig? Programmet make Det er mange praktiske problemer forbundet
DetaljerTDT4110 IT Grunnkurs Høst 2016
TDT4110 IT Grunnkurs Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til Auditorieøving 1 1 Teori 1. Hvilket tall kan IKKE lagres
DetaljerDagens 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
DetaljerDagens tema INF2270. Flyt tall (B&O H boken 2.2.3) Hvordan lagres de? Hvordan regner man med dem? Overflyt (B&O H boken )
Dagens tema Flyt tall (B&O H boken 2.2.3) Hvordan lagres de? Hvordan regner man med dem? Overflyt (B&O H boken 4.2.6.3) Bit fikling Selvmodifiserende kode Dag Langmyhr,Ifi,UiO: Forelesning 23. april 2006
DetaljerDagens 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
DetaljerTDT4110 IT Grunnkurs Høst 2016
TDT4110 IT Grunnkurs Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Auditorieøving 1 Vennligst fyll ut følgende informasjon i blokkbokstaver
DetaljerDagens 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
DetaljerTDT4105/TDT4110 Informasjonsteknologi grunnkurs:
1 TDT4105/TDT4110 Informasjonsteknologi grunnkurs: Uke 39 Digital representasjon, del 1 - Digital representasjon - Tekst og tall - positive, negative, komma? Alf Inge Wang alfw@idi.ntnu.no Bidragsytere
DetaljerDet viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Data.data Stakk %EAX %ECX %EDX %EBP %ESP Prosessor Kode Minne.text Hovedkortet Grovt sett inneholder et hovedkort En prosessor
DetaljerOppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Grovt sett inneholder det En prosessor Minne (for både program og data) Klokke Kontrollere for periferutstyr.
DetaljerNorsk informatikkolympiade runde
Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerDagens 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
DetaljerDebugging. Tore Berg Hansen, TISIP
Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...
DetaljerDet viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Grovt sett inneholder et hovedkort En prosessor Minne (for både program og data) Klokke Kontrollere for periferutstyr.
Detaljeroppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO
oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO oppgave 1 Hvorfor har vi operativsystemer? Portable programmer Enklere å programmere
DetaljerINF1040 Oppgavesett 7: Tall og geometrier
INF1040 Oppgavesett 7: Tall og geometrier (Kapittel 7.1, 7.4-7.8, 8 + Appendiks B) Husk: De viktigste oppgavetypene i oppgavesettet er Tenk selv -oppgavene. Fasitoppgaver Denne seksjonen inneholder innledende
DetaljerDen 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
DetaljerOversikt. 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
DetaljerMAT1030 Plenumsregning 3
MAT1030 Plenumsregning 3 Ukeoppgaver Mathias Barra - 30. januar 2009 (Sist oppdatert: 2009-02-02 14:26) Plenumsregning 3 Oppgave 2.7 - Horners metode (a) 7216 8 : 7 8+2 58 8+1 465 8+6 3726. Svar: 3726
DetaljerNybegynnerkurs 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
DetaljerAnbefalt litteratur: Pensum-bøker: Forelesere: Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon
Forelesere: Velkommen til INF-1060 Introduksjon til operativsystemer og datakommunikasjon Pål Halvorsen (paalh@ifi.uio.no) Nettverk og Distribuerte systemer (ND) (ved Simula) Kjell Åge Bringsrud (kjellb@ifi.uio.no)
DetaljerUNIVERSITETET I OSLO
Kandidatnummer: Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF1000 Grunnkurs i objektorientert programmering Prøveeksamensdag : Onsdag 12. november 2014 Tid
DetaljerDet viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Data.data Stakk %EAX %ECX %EDX %EBP %ESP Prosessor Kode Minne.text Hovedkortet Grovt sett inneholder et hovedkort En prosessor
DetaljerDefinisjon av prosess
Prosesser og tråder Definisjon av prosess Enkel definisjon: En prosess er et program som kjører på datamaskinen Mer presis definisjon: En prosess er en samling av ressurser som er nødvendige for å utføre
DetaljerAlle hele tall g > 1 kan være grunntall i et tallsystem.
Tallsystemer Heltall oppgis vanligvis i det desimale tallsystemet, også kalt 10-tallssystemet. Eksempel. Gitt tallet 3794. Dette kan skrives slik: 3 1000 + 7 100 + 9 10 + 4 = 3 10 3 + 7 10 2 + 9 10 1 +
DetaljerNyttige Linux-kommandoer. Hvordan du kan jobbe mer effektivt Dag Langmyhr
Nyttige Linux-kommandoer Hvordan du kan jobbe mer effektivt Dag Langmyhr Trenger vi kommandovinduer i dag? Svaret er nei for de fleste brukerne, men ikke for ekspertene. Ofte går det fortere å bruke kommandoer
DetaljerVektorer. 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å
DetaljerArk 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
DetaljerProgrammeringssprå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]
DetaljerTall. Posisjons-tallsystemer. Representasjon av heltall. Tall positive, negative heltall, flytende tall. Tekst ASCII, UNICODE XML, CSS
Tall jfr. Cyganski & Orr 3..3, 3..5 se også http://courses.cs.vt.edu/~csonline/numbersystems/lessons/index.html Tekst ASCII, UNICODE XML, CSS Konverteringsrutiner Tall positive, negative heltall, flytende
DetaljerINF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012
INF1000 - Uke 10 Ukesoppgaver 10 24. oktober 2012 Vanlige ukesoppgaver De første 4 oppgavene (Oppgave 1-4) handler om HashMap og bør absolutt gjøres før du starter på Oblig 4. Deretter er det en del repetisjonsoppgaver
DetaljerPensum 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
DetaljerVelkommen til INF Introduksjon til operativsystemer og datakommunikasjon
Velkommen til INF-1060 Introduksjon til operativsystemer og datakommunikasjon 21.08.2007 INF1060 1 Forelesere: Pål Halvorsen (paalh@ifi.uio.no) Nettverk og Distribuerte systemer (ND) (ved Simula) Kjell
DetaljerTDT4105/TDT4110 Informasjonsteknologi grunnkurs:
1 TDT4105/TDT4110 Informasjonsteknologi grunnkurs: Uke 37 Digital representasjon, del 1 - Digital representasjon - Tekst og tall - positive, negative, komma? Rune Sætre satre@idi.ntnu.no Slidepakke forberedt
DetaljerProgrammeringssprå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
DetaljerOppsummering av IN147 siste del Operativsystemer Parallellisering Veien videre
Oppsummering av IN147 siste del Operativsystemer Parallellisering Veien videre Ark 1 av 12 Forelesning 12.5.1999 Operativsystemer I kurset har vi fokusert på UNIX, men prinsippene gjelder i større eller
DetaljerEKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.
EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 12. desember 2007 Eksamenstid: kl. 9.00 til kl. 13.00 Hjelpemidler: 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre
DetaljerForkurs i informatikk Python. Andreas Færøvig Olsen
Andreas Færøvig Olsen andrefol@ifi.uio.no Mål Hvorfor Python? Gi en mykere start på INF1100 Komme i gang med programmering 2 3 Hva er Python? Hva er programmering? 4 Hva er Python? Hva er programmering?
DetaljerDagens 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
DetaljerKjøresystemer. Hva er et kjøresystem? Den abstrakte maskinen SIMPLESEM (2.6) Klassifisering av språk: Parametre (2.7.7) Statiske språk (
Kjøresystemer Hva er et kjøresystem? Den abstrakte maskinen SIMPLESEM (2.6) Klassifisering av språk: Statiske språk (2.7.1-2.7.2) FORTRAN, COBOL Stakk-baserte språk (2.7.3-2.7.4) ALGOL 60 Dynamiske språk
DetaljerFra Python til Java, del 2
Fra Python til Java, del 2 Hvordan kjøre Java? På Ifis maskiner På egen maskin Et eksempel Array-er For-setninger Lesing og skriving Metoder Biblioteket Hva trenger vi egentlig? Å kjøre Java For å kunne
DetaljerEn 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
DetaljerGjennomgang av eksamen H99
Gjennomgang av eksamen H99 Administrasjon av kurser, studenter og påmeldinger Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for Informatikk Universitetet i Oslo Oppgave 1 (15 %) (Besvares
DetaljerVelkommen til INF Introduksjon til operativsystemer og datakommunikasjon
Velkommen til INF-1060 Introduksjon til operativsystemer og datakommunikasjon 22.08.12 INF1060 1 Forelesere: Pål Halvorsen (paalh@ifi.uio.no) Nettverk og Distribuerte systemer (ND) (ved Simula) Tor Skeie
DetaljerProgrammeringssprå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
DetaljerTallsystemer. Tallene x, y, z og u er gitt ved x = 2, y = 2, z = 4 og u = 2. Dermed blir =
Tallsystemer Heltall oppgis vanligvis i det desimale tallsystemet, også kalt 10-tallssystemet. Eksempel. Gitt tallet 3794. Dette kan skrives slik: 3 1000 + 7 100 + 9 10 + 4 = 3 10 3 + 7 10 2 + 9 10 1 +
Detaljer