Debugging. Tore Berg Hansen, TISIP

Save this PDF as:
 WORD  PNG  TXT  JPG

Størrelse: px
Begynne med side:

Download "Debugging. Tore Berg Hansen, TISIP"

Transkript

1 Debugging Tore Berg Hansen, TISIP

2 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... 3 Avbryt... 3 Step over... 3 Step ut av... 3 Step inn i... 4 Vis neste setning... 4 QuickWatch... 4 Debugg vinduer... 4 Watch... 4 Variabler... 5 Registers... 5 Memory... 6 Call stack... 6 Dissassembly... 6 Andre menyvalg som berører debugger... 7 Et lite eksempel... 9 i

3 Innledning Debugging er prosessen med å lokalisere hvor i koden årsaken til at et program eventuelt feiler ligger. Deretter kan feil rettes. Debugging gjøres på programmer som ikke feiler under kompilering og lenking. Det vil si at programmer kjører, men leverer ikke forventede resultater. En debugger er et verktøy som kan hjelpe til med å lokalisere feilkildene. Med en debugger kan man kjøre et program linje for linje sette stopp-punkter (breakpoints) for så å kjøre programmet frem til disse overvåke innholdet i variabler sette nye verdier i varibler evaluere uttrykk endre kode For at man skal kunne gjøre dette i et program blir kode for debugging lagt til programmet. Dette gjør at programmer med debugger ikke vil være optimalisert verken for plass eller hastighet. Når programmer virker uten å feile vil man kompilere og bygge en frislippversjon som er optimalisert etter ønskede kriterier som kan være f.eks hastighet. Vi skal i dette notat se nærmere på debuggeren i Visual Studio. Den har de fleste muligheter vi kan ønska av en debugger. Å kompilere og bygge et program for debugging Visual Studio gir mulighet for å kompilere å bygge et program i to versjoner, enten for frislipp eller for debugging. Det bestemmer man ved å gå inn på menyvalget Build og deretter klikke på Set Active Configuration Da kommer denne dialogen opp som er selvforklarende. 1

4 Etter at konfigurasjon er valgt bruker man de samme kommandoer til å kompilere, bygge og kjøre. Skal man derimot debugge går man inn i Build menyen og klikker deretter på Start Debug. Da får man flere alternativer: Go programmet vil kjøre til slutt hvis det ikke er noen stopp-punkter. Step Into går til første linje i programmet og stopper. Run to Cursor kjører til der cursor står i kildekoden. Attach to Process - kobler debugger til en prosess som kjører. Prosessen kan så avbrytes og debugges. Det finnes også to andre muligheter. Man kan bruke spesielle funksjonstaster eller klikke på symboler på verktøylinjen. Funksjonstastene er F5 for Go, F11 for Step Into og CTRL-F10 for Run to Cursor. Symbolene i verktøylinjen er som vist på denne figuren: Bygg Stopp bygg Go Kompiler Kjør program Sett/fjern stopp-punkt Når debugger er i gang Når debugger er i gang vil menyvalget Debug overta for Build. Det kommer også opp en flytende verktøylinje for debugger som er et alternativ til menyvalget Debug. Verktøylinjen er vist i neste figur. 2

5 Bruk kode endring Avbryt Stopp debugging Vis neste setning Step inn i Step over Step ut av Start på nytt Run to Cursor QuickWatch Watch Registre Stakk Dissassembly Variabler Minne Åpning/lukking av vinduer Den flytende verktøylinjen kan dokkes. Vi skal se nærmere på hva som skjuler seg bak symbolene og dermed hva vi kan gjøre i debuggeren. Symbolene i verktøylinjen Her skal vi se på symbolene som ikke er behandlet tidligere. Start på nytt Begynner igjen på første linje i programmet hvor det stopper. Programmer lastes på nytt sli at alle verdier blir satt på nytt. Stopp-punkter beholdes. Stopp debugging Avslutter debugging. Programmet er klart til å starte på nytt. Avbryt Stopper programmet der det er i øyeblikket. Kan være nyttig hvis programmer kjører lenge. Step over Kjører en og en instruksjon i programmet. Når det treffes på en funksjon, blir den utført. Men man går ikke trinn for trinn i funksjonen. Step ut av Kjører ut av en funksjon. Stopper på instruksjonen rett etter kallet til funksjonen. Denne kan brukes for å hoppe kjapt ut av en funksjon etter å ha påvist at en feil ikke er inne i funksjonen. 3

6 Step inn i Går trinn for trinn gjennom programmet. Går også inn i en funksjon når den påtreffes og fortsetter trinn for trinn inne i funksjonen. Vis neste setning Viser neste setning i programkoden. Hvis kildekode ikke er tilgjengelig vises setningen i et dissassembly vindu. QuickWatch Viser QuickWatch vinduet hvor man kan legge inn utrykk. Dette er QuickWatch vinduet. Her har vi lagt inn uttrykket a*b og klikket på Recalculate. Hvis vi nå klikker på Add Watch vi utrykket bli lagt inn i Watch vinduet, hvor det kan overvåkes. Debugg vinduer Debuggeren har disse vinduene som man kan åpne eller lukke ved å klikke på symbolene i verktøylinjen: Watch Viser navn og verdier for variabler og utrykk. Man kan legge dette inn i fire forskjellige vinduer. På den måten kan man gruppere de data man ønsker å overvåke. Slik er det mulig å få bedre oversikt, f.eks hvis man skal overvåke mange data som kan være lokalisert til forskjellige moduler i programmet. Neste figur viser Watch vinduet. 4

7 Når en verdi skifter farge til rødt indikerer det en nylig endring i verdi. Vinduet har form av et regneark. Man kan sette inn på navn og verdier. Variabler Vinduet viser informasjon om variabler. Det er tre tagger. I Auto vises variabler brukt i nåværende og foregående setninger. Likeledes vises returverdier fra funksjoner. Locals har variabler som er lokale i den aktuelle funksjon man er inne i. This viser objektet pekt på av this. Her er et vindu fra en kjøring. Legg merke til hvordan tabeller vises. man kan ekspandere eller komprimere ved å klikke på + eller symbolene. En verdi angitt med rødt har nylig skiftet verdi. Registers Dette vinduet viser innholdet i CPU ens generelle registre og statusregistre. Derfor er innholdet avhengig av hvilken prosessor det kjøres på. Dette vinduer er interessant for de som driver med maskinnær programmering. Se figuren. 5

8 Memory Innholdet i datamaskinens lager (minne) vises i dette vinduet. Også dette vinduet er mest interessant ved maskinnær programmering. Call stack På norsk stakk. Det viser stakken med alle funksjonskall som er aktive. Sist kalte funksjon øverst. Legg også merke til at figuren viser at sist kalte funksjon inneholder et stopp-punkt og at programmet har stoppet der. Dissassembly. Her vises assembly kode for det kompilerte programmet. Kan være nyttig hvis kildekode ikke finnes. Det er også nyttig hvis det er flere kommandoer på samme linje i kildekode. I kildekoden kan man bare kjøre linje for linje, mens man i assemblerkoden kan kjøre kommando for kommando. 6

9 Figuren ovenfor viser et utsnitt av assembler koden for en funksjon hvor programmet er stoppet. Legg merke til at først kommer en linje fra kildekoden. Deretter følger assembly koden for denne linjen og så nest linje i kildekoden. I dette vinduet kan man gå kommando for kommando ved å klikke på Step inn i (Step Into). Andre menyvalg som berører debugger Edit og Breakpoints får frem denne dialogen: Den gir mulighet for å sette avanserte stopp-punkter i form av bl.a logiske uttrykk, som vist her 1. Man kan få programmet til å stoppe når 1 Under demonstrasjonen i klasserommet fikk vi ikke dette til å fungere. det skyldes at vi satte betingelsen før programmet var startet og ikke kvalifiserte uttrykket med aktuell fil. 7

10 en variabel endrer verdi når et uttrykk endrer verdi når et uttrykk er sant når første element i en tabell skifter verdi når første element i en tabell har en bestemt verdi når et bestemt element i en tabell skifter verdi når et hvilket som helst element i en tabell skifter verdi når et hvilket som av de n første elementene i en tabell skifter verdi når verdien i en peker sifter verdi når verdien i det det pekes på skifter verdi når en verdi i en bestemt lageradresse skifter verdi når e register endres når et registeruttrykk er sant Det er stort samme fremgangsmåte. Man klikker på Edit og deretter Breakpoints. Når dialogen spretter opp Data taggen. Uttrykk skrives inn i tekstboksen under Enter the expression to be evaluated. Klikk OK til slutt for å sette stopp-punktet. View og Debug Windows gir rask tilgang til de forskjellige vinduer. Tools, Options og Debug gir mulighet for å spesifisere forskjellige egenskaper for debuggeren. 8

11 Et lite eksempel Her er et veldig enkelt program. Det skal konvertere fra kilometer til engelske mile og nautiske mil. #include <iostream.h> int tilmile (double& kilometer); int tilnautiskmile (double& kilometer); void main( void ) { double antallkm; cout << "Sett inn antall km som skal konverteres --> "; cin>> antallkm; cout << antallkm << " km " << " er " << tilmile( antallkm ) << " engelske mile" << endl; cout << antallkm << " km " << " er " << tilnautiskmile( antallkm ) << " nautiske mil" << endl; } int tilmile( double& kilometer) { if (kilometer >= 0.0) { kilometer = kilometer / 1.609; return 1; } } return 0; int tilnautiskmile( double& kilometer) { if (kilometer >= 0.0) { kilometer = kilometer / 1.852; return 1; } } return 0; Konverteringen skjer i to forskjellige funksjoner. Vi kan tenke oss at disse funksjonene er skrevet av andre programmere og tilhører et bibliotek som vi har hentet de fra. Det vi tror er at resultatet av konverteringen returneres i funksjonen. Vi kjører programmet og får dette resultatet. 9

12 Dette er åpenbart feil. En inspeksjon av koden vil fort fortelle oss hvorfor, men la oss se hvordan vi kunne bruke debuggeren til å lokalisere feilkilden (buggen). Vi vil kjøre en test: Inndata 1km Forventet resultat mile og nautiske mil Setter stopp-punkter etter at data er lest inn og etter beregningene. I Watch vinduet vil vi overvåke verdien av konverteringene ed å se på uttrykkene antallkm / og antallkm / samt verdien av antallkm. Figuren viser situasjonen etter at programmer er stoppet ved første stopp-punkt. 10

13 Klikk her for å sette stopp-punkt Disse uttrykkene er skrevet direkte inn Så kjører vi frem til neste stopp-punkt og får denne situasjonen vist i et utsnitt. Det vi ser er at returverdien til funksjonen tilmile() er 1 og at antallkm har endret verdi. Det samme har uttrykkene. Så det er åpenbart at det er noe galt med funksjonene som gjør konverteringene. 11

14 Vi vil kikke nærmere på det som skjer i linjene som gjør utskriften og klikker på dissassemblervinduet. Neste utsnitt vier situasjonen etter at vi har gått trinn for trinn og stoppet etter kall til funksjonen tilnautiskmil(). Vi ser at uttrykkene igjen har skiftet verdi. Så det er i funksjonene det skjer. Dette får oss til å se nærmere på spesifikasjonene for funksjonene. De viser at den konverterte verdi returneres i argumentet ved referanseoverføring. Returverdien i funksjonen skal 12

15 indikere om det var en lovlig verdi eller ikke som ble overført. Det er den standard som er brukt. Vi kan altså ikke bruke funksjonene på den måten. Enten må vi lage nye funksjoner som foretar verdioverføring eller så må vi skrive om programmet slik at det bruker funksjonene riktig. I det første tilfelle må vi avvike en standard som gjelder og det bør vi antagelig ikke gjøre. Så i tillegg til å se på hvordan debuggeren kan brukes, ser vi også hvor viktig det er å sikre at man har forstått grensesnittet til funksjoner som skal gjenbrukes i nye sammenhenger. 13

1. Å lage programmer i C++

1. Å lage programmer i C++ Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Å lage programmer i C++ Tore Berg Hansen og Else Lervik Rividert siste gang 24. august 2006 1. Å lage programmer i C++ Resymé: Dette notatet

Detaljer

1. Å lage programmer i C++

1. Å lage programmer i C++ Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Å lage programmer i C++ Tore Berg Hansen og Else Lervik Rividert siste gang 29. august 2005 1. Å lage programmer i C++ Resymé: Dette notatet

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

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

Tilstandsmaskiner kalles på engelsk for Finite State Machines.

Tilstandsmaskiner kalles på engelsk for Finite State Machines. Tilstandsmaskiner Tilstandsmaskiner kalles på engelsk for Finite State Machines. Tilstandsmaskiner er en metode til å beskrive systemer med logisk og dynamisk/tidsmessig oppførsel. Metoden tilstandsmaskiner

Detaljer

Argumenter fra kommandolinjen

Argumenter fra kommandolinjen Argumenter fra kommandolinjen Denne veiledningen er laget for å vise hvordan man kan overføre argumenter fra kommandolinjen til et program. Hvordan transportere data fra en kommandolinje slik at dataene

Detaljer

Finne ut om en løsning er helt riktig og korrigere ved behov

Finne ut om en løsning er helt riktig og korrigere ved behov Finne ut om en løsning er helt riktig og korrigere ved behov Finurlige feil og debugging av kode IN1000, uke5 Geir Kjetil Sandve Oppgave (Lett modifisert fra eksamen 2014) Skriv en funksjon Dersom parameteren

Detaljer

TDT4102 Prosedyreog objektorientert programmering Vår 2016

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

Detaljer

1. NetBeans IDE: Lage en enkel mobilapplikasjon

1. NetBeans IDE: Lage en enkel mobilapplikasjon Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag NetBeans IDE: Lage en enkel mobilapplikasjon Mildrid Ljosland/Lene Hoff 09.09.2008 Lærestoffet er utviklet for faget SO350D J2ME for programmering

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 1 Frist: 2014-01-24 Mål for denne øvinga:

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

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

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

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

Kom i gang med programmering i Java

Kom i gang med programmering i Java Kom i gang med programmering i Java Dette dokumentet forteller hvordan du skal komme i gang med programmering inkludert nedlasting av den programvare du trenger samt oppsett av disse samt en del innstillinger

Detaljer

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

Detaljer

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap Læringsmål og pensum Mål Vite hva et

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 1 Frist: DD.MM.YYYY Mål for denne øvinga:

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

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

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

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

Obligatorisk Innlevering 2

Obligatorisk Innlevering 2 Obligatorisk Innlevering 2 INF5110 - Kompilatorteknikk Våren 2017 Frist 07.05.2017 23:59 Dette er den andre av to oppgaver våren 2017. Den bygger videre på det som er gjort i den første innleveringen.

Detaljer

Dagens tema: 12 gode råd for en kompilatorskriver

Dagens tema: 12 gode råd for en kompilatorskriver Dagens tema: 12 gode råd for en kompilatorskriver Hvordan sjekke navn? Testutskrifter 12 gode råd Hva skal gjøres med navn? Sjekking av navn En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme

Detaljer

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc

Læringsmål og pensum. https://www.youtube.com/watch? v=nkiu9yen5nc 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 2 https://www.youtube.com/watch? v=nkiu9yen5nc 3 Læringsmål og pensum Mål Lære om

Detaljer

Oppbygningen 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»): 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.

Detaljer

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Det 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

Detaljer

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Det 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

Detaljer

Introduksjon til DARK assembly

Introduksjon til DARK assembly Introduksjon til DARK assembly Magnus Jahre Institutt for datateknikk og informasjonsvitenskap 2 Plan Assembly vs. Java Dark stakkmaskin Oversikt over stakkmaskinen Dark stakkmaskin eksempel Dark Load-Store

Detaljer

Øving 0 - Xcode TDT4102

Øving 0 - Xcode TDT4102 Øving 0 - Xcode TDT4102 Frivillig Øving Mål for denne øvingen: Bli kjent med programmeringsverktøy Lage et første program kun med teksteditor og kompilator Lage et første program med Xcode Denne øvingen

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

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

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Øving 1 LF LØSNINGSFORSLAG Mål for denne øvinga:

Detaljer

EGENDEFINERTE FUNKSJONER I SAS OG LITT OM OPEN SOURCE INTEGRASJON SAS FANS I STAVANGER 21.10.2015, MARIT FISKAAEN (SAS INSTITUTE)

EGENDEFINERTE FUNKSJONER I SAS OG LITT OM OPEN SOURCE INTEGRASJON SAS FANS I STAVANGER 21.10.2015, MARIT FISKAAEN (SAS INSTITUTE) EGENDEFINERTE FUNKSJONER I SAS OG LITT OM OPEN SOURCE INTEGRASJON SAS FANS I STAVANGER 21.10.2015, MARIT FISKAAEN (SAS INSTITUTE) EGENDEFINERTE FUNKSJONER INNLEDNING 2 På FANS 4. mars 2015 ble det vist

Detaljer

public static navn_til_prosedyre() { // 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

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse Dessverre litt få figurer INF 5110, 10/5-2011, Stein Krogdahl Oversikt over Javas class-filer og byte-kode Disse formatene ble planlagt fra start

Detaljer

Operativsystemer og grensesnitt

Operativsystemer og grensesnitt Operativsystemer og grensesnitt Ulike måter å bruke OS'et på Application Program Interface (API) Applikasjoner (ofte C-programmer) som f.eks. emacs, som bruker tjenestene i OS ved å kalle på funksjoner

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

INF5110. Oblig 2 presentasjon

INF5110. Oblig 2 presentasjon INF5110 Oblig 2 presentasjon Informasjon Oppgaven Semantikksjekk Kodegenerering Bytecode-biblioteket Ant-targets Oppsummering Oversikt Informasjon Oblig 2 tilgjengelig på kurssiden Patch med testfiler

Detaljer

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse Dessverre litt få figurer INF 5110, 8/5-2012, Stein Krogdahl Byte-koden for Java og.nett (C#) http://en.wikipedia.org/wiki/java_bytecode_instruction_listings

Detaljer

INF Obligatorisk innlevering 5

INF Obligatorisk innlevering 5 INF1000 - Obligatorisk innlevering 5 Frist: 2. Oktober kl 22:00 Temaer denne uka: Klasser og objekter. I denne obligen skal du som nytt tema jobbe med klasser og objekter, i tillegg til å bruke det du

Detaljer

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012

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

Detaljer

INF uke 2. Inputt, beslutninger, kontrollflyt og prosedyrer

INF uke 2. Inputt, beslutninger, kontrollflyt og prosedyrer INF1001 - uke 2 Inputt, beslutninger, kontrollflyt og prosedyrer Repetisjon fra forrige uke Lese inn fra tastaturet Beslutninger Kontrollflyt Prosedyrer Outline: Repetisjon fra forrige uke Lese inn fra

Detaljer

1. Grunnleggende C++ 1.1. Introduksjon til kurset og til C++ Innhold

1. Grunnleggende C++ 1.1. Introduksjon til kurset og til C++ Innhold Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag 1. Grunnleggende C++ Else Lervik 12.08.2013 Lærestoffet er utviklet for faget IFUD1048 C++ for programmerere med grunnlag i lærestoff fra

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Uke 41: «Matlab programs» (kapittel 6)

TDT4110 Informasjonsteknologi grunnkurs: Uke 41: «Matlab programs» (kapittel 6) 1 TDT4110 Informasjonsteknologi grunnkurs: Uke 41: «Matlab programs» (kapittel 6) Anders Christensen anders@idi.ntnu.no Rune Sætre satre@idi.ntnu.no 2 Læringsmål og pensum Læringsmål: Synlighet av variabler

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

7034 Trondheim - NTH 1.1 KILDEPROGRAM S KOMPILERING OG ASSEBMLERING S LENKING AV OBJEKTFILER S UTFØRELSE AV PROGRAMMET S.

7034 Trondheim - NTH 1.1 KILDEPROGRAM S KOMPILERING OG ASSEBMLERING S LENKING AV OBJEKTFILER S UTFØRELSE AV PROGRAMMET S. INFOAMASJON FRA RUN IT "IQNISINTIilIT "ed UNIVEfllSiTlTlT I TJIIIONCMelM ~ostadr.: Elgeseter at. ~O Telex: 55 620 sintf n Teleqram: COMPf.i'TING NTB 7034 Trondheim - NTH Tlf. ; (8i) 593 l:c (07)593028

Detaljer

INF Oblig 2 semantikksjekk og kodegenerering

INF Oblig 2 semantikksjekk og kodegenerering INF5110 - Oblig 2 semantikksjekk og kodegenerering Magnus Haugom Christensen Instituttet for Informatikk Universitetet i Oslo 27. Mars - 2012 Oversikt Informasjon Oppgaven Semantikksjekk Kodegenerering

Detaljer

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14. Forkurs INF1010 Dag 2 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Gard Inge Rosvold (gardir@ifi.uio.no) Institutt for Informatikk, 14. januar 2016 Forkurs INF1010 - dag 2 Feilmeldinger 2 Forkurs INF1010

Detaljer

Dagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn?

Dagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn? Dagens tema: 12 gode råd for en kompilatorskriver Hva skal gjøres med navn? Sjekking av navn Hvordan sjekke navn? Testutskrifter 12 gode råd En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme

Detaljer

Jentetreff INF1000 Debugging i Java

Jentetreff INF1000 Debugging i Java Jentetreff INF1000 Debugging i Java Ingrid Grønlie Guren ingridgg@student.matnat.uio.no 11. november 2013 Kort om feilmeldinger i Java Java har to ulike type feilmeldinger som man kan få når man skriver

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang 2 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 3 https://www.youtube.com/watch? v=nkiu9yen5nc 4 Læringsmål og pensum Mål Lære om

Detaljer

Program delegate. Lage et nytt prosjekt i Visual Studio

Program delegate. Lage et nytt prosjekt i Visual Studio Program delegate Kommunikasjon mellom objekter er en utfordring i objektorientert programmering. Dette GUI eksempelet viser hvordan bruke en delegate til å gjøre metodekall i et annet objekt. Vi skal legge

Detaljer

MERK: DU MÅ IKKE PRØVE Å INSTALLERE PROGRAM- VAREN FØR DU HAR LEST DETTE DOKUMENTET.

MERK: DU MÅ IKKE PRØVE Å INSTALLERE PROGRAM- VAREN FØR DU HAR LEST DETTE DOKUMENTET. INSITE INSTALLASJONSBLAD Side 2: Installere INSITE Side 8: Fjerne INSITE MERK: DU MÅ IKKE PRØVE Å INSTALLERE PROGRAM- VAREN FØR DU HAR LEST DETTE DOKUMENTET. FEIL INSTALLASJON ELLER BRUK KAN FØRE TIL FEILAKTIGE

Detaljer

Viktig. Rettet i koden. Obligatorisk oppgave 2 Litt flere detaljer om semantikksjekk og kodegenerering. Semantikksjekk

Viktig. Rettet i koden. Obligatorisk oppgave 2 Litt flere detaljer om semantikksjekk og kodegenerering. Semantikksjekk Obligatorisk oppgave 2 Litt flere detaljer om semantikksjekk og kodegenerering Viktig Ny patch (patch_oblig2.zip) er lagt ut (15/4) Oblig 1 vil bli rettet denne uken Sjekk om det er registrert at den er

Detaljer

Løse reelle problemer

Løse reelle problemer Løse reelle problemer Løse problemer med data fra fil, samt litt mer om funksjoner IN1000, uke6 Geir Kjetil Sandve Mål for uken Få enda mer trening i hvordan bruke løkker, samlinger og beslutninger for

Detaljer

public static navn_til_prosedyre() { // 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

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

Øving i Tornado og VxWorks

Øving i Tornado og VxWorks Øving 5 Øving i Tornado og VxWorks Innledning Denne øvingen går ut på å programmere for et målsystem som benytter sanntidsoperativsystemet VxWorks. Til dette benyttes utviklingssystemet Tornado fra WindRiver.

Detaljer

Sprettende ball Introduksjon Processing PDF

Sprettende ball Introduksjon Processing PDF Sprettende ball Introduksjon Processing PDF Introduksjon: I denne modulen skal vi lære et programmeringsspråk som heter Processing. Det ble laget for å gjøre programmering lett for designere og andre som

Detaljer

Konvertering av klientdata fra Sticos A rsoppgjør 2011 til Total A rsoppgjør 2012

Konvertering av klientdata fra Sticos A rsoppgjør 2011 til Total A rsoppgjør 2012 Konvertering av klientdata fra Sticos A rsoppgjør 2011 til Total A rsoppgjør 2012 Dette dokumentet beskriver fremgangsmåten på hvordan grunnlagsdata for den enkelte klient kan eksporteres fra Sticos Årsoppgjør

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

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

DATAUTFORSKNING I EG, EG 7.1 OG EGENDEFINERTE FUNKSJONER SAS FANS I STAVANGER 4. MARS 2014, MARIT FISKAAEN

DATAUTFORSKNING I EG, EG 7.1 OG EGENDEFINERTE FUNKSJONER SAS FANS I STAVANGER 4. MARS 2014, MARIT FISKAAEN DATAUTFORSKNING I EG, EG 7.1 OG EGENDEFINERTE FUNKSJONER SAS FANS I STAVANGER 4. MARS 2014, MARIT FISKAAEN 2 INNLEDNING TEMA I SAS Enterprise Guide versjon 5.1 (februar 2012) kom det et nytt datautforskingsverktøy,

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

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. Datamaskinenes historie. De første moderne datamaskiner. Løsning. Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

Dagens tema. Datamaskinenes historie. De første moderne datamaskiner. Løsning. Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema Dagens tema Charles Babbage Datamaskinenes historie maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner kode kode Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

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

Oversikt Kodegenerering Variable Setninger Uttrykk While-setningen Oppsummering

Oversikt Kodegenerering Variable Setninger Uttrykk While-setningen Oppsummering Dagens tema Dagens tema: Kodegenerering Introduksjon Enkle variable Uttrykk Tilordning Litt mer kompliserte setninger med betingelser (Alt om kodegenerering unntatt funksjoner og array-er.) Prosjektoversikt

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

Litt om Javas class-filer og byte-kode

Litt om Javas class-filer og byte-kode Litt om Javas class-filer og byte-kode INF 5110, 11/5-2010, Stein Krogdahl (Dessverre litt få figurer) Disse formatene ble planlagt fra start som en del av hele Java-ideen Bt Byte-koden gir portabilitet

Detaljer

Introduksjon...5. Systemkrav...7. For Windows...9

Introduksjon...5. Systemkrav...7. For Windows...9 Innholdfortegnelse Introduksjon...................................5 Systemkrav...................................7 For Windows...................................9 Installere programvare for bildeutskrift

Detaljer

HØYSKOLEN I OSLO, AVDELING FOR INGENIØRUTDANNING

HØYSKOLEN I OSLO, AVDELING FOR INGENIØRUTDANNING HØYSKOLEN I OSLO, AVDELING FOR INGENIØRUTDANNING Eksamensoppgave i kurset: Programmering i C++. Fagnr: LV 121 A Eksamensdato: 10 februar, 2003. Faglærer: Cecilie Rolstad Antall oppgaver: 5 Antall sider,

Detaljer

Kanter, kanter, mange mangekanter

Kanter, kanter, mange mangekanter Kanter, kanter, mange mangekanter Nybegynner Processing PDF Introduksjon: Her skal vi se på litt mer avansert opptegning og bevegelse. Vi skal ta utgangspunkt i oppgaven om den sprettende ballen, men bytte

Detaljer

Kom i gang 1: Lage en enkel tavle for å skrive

Kom i gang 1: Lage en enkel tavle for å skrive Kom i gang 1: Lage en enkel tavle for å skrive Enkle tavler kan brukes for å skrive korte setninger om et spesielt emne. I dette eksemplet vil vi lage et miljø med en enkel tavle for å skrive setninger

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

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Gaustadbekkdalen, januar 27 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår inne i primærlageret

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Øving 3 Frist: 2014-02-07 Mål for denne øvinga:

Detaljer

Java PRP brukermanual

Java PRP brukermanual Java PRP brukermanual 1.1 Introduksjon 1.1.1 Hva er Java PRP Java PRP (Parallel Recursive Procedure) gir oss muligheten til automatisk parallellisering av programmer, som baserer seg på noen rekursive

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

TDT4258 Eksamen vår 2013

TDT4258 Eksamen vår 2013 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 8 TDT4258 Eksamen vår 2013 Løsningsforslag Oppgave 1 Flervalgsoppgave (16 poeng) Du får 2 poeng

Detaljer

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse

Detaljer

Flytte Lønn 5.0 fra SQL 2000 til SQL 2005 / 2008

Flytte Lønn 5.0 fra SQL 2000 til SQL 2005 / 2008 Flytte Lønn 5.0 fra SQL 2000 til SQL 2005 / 2008 Før du flytter databasene til Lønn 5.0 fra SQL Server 2000 til SQL Server 2005 / 2008 må du ta backup av databasene. Hvis SQL Server 2005 /2008 ikke allerede

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Løsningsforslag øving 2 Frist: DD.MM.YYYY Mål

Detaljer

Forelesning inf Java 1

Forelesning inf Java 1 Forelesning inf1000 - Java 1 Tema: Javas historie Bestanddelene i et Java-program Programvariabler Ole Christian Lingjærde, 22. august 2012 Litt Java-historikk The Green Team I 1991 opprettet Sun Microsystems

Detaljer

Bytte til OneNote 2010

Bytte til OneNote 2010 I denne veiledningen Microsoft OneNote 2010 ser helt annerledes ut enn OneNote 2007, så vi har laget denne veiledningen for å gjøre det så enkelt som mulig for deg å lære forskjellene. Les videre for å

Detaljer

Installere JBuilder Foundation i Windows XP

Installere JBuilder Foundation i Windows XP Installere JBuilder Foundation i Windows XP Installasjon av JBuilder Foundation på Windows (dekker her spesifikt fremgangen ved bruk av Microsoft Windows XP Professional, men det vil mest trolig ikke være

Detaljer

1 ØVING I WINDOWS FRA CHRISTIAN ANDOLO

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

Detaljer

Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering

Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering Kapittel 1 Datamaskiner og programmeringsspråk Dette kapitlet er en kort introduksjon til programmering. Vi vil se på hvordan man skriver, bygger og kjører programmer, samt illustrere noen sentrale programmeringsbegrep

Detaljer

Forelesning 5. Diverse komponenter/større system

Forelesning 5. Diverse komponenter/større system Forelesning 5 Diverse komponenter/større system Hovedpunkter Komparator Dekoder/enkoder MUX/DEMUX Kombinert adder/subtraktor ALU En minimal RISC - CPU 2 Komparator Komparator sammenligner to 4 bits tall

Detaljer

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 Leveringsfrist Oppgaven må leveres senest fredag 30. september kl 16.00. Viktig: les slutten av oppgaven for detaljerte leveringskrav. Formål Formålet

Detaljer

Installere JBuilder Foundation i Mandrake Linux 10.0

Installere JBuilder Foundation i Mandrake Linux 10.0 Installere JBuilder Foundation i Mandrake Linux 10.0 Installasjon av JBuilder Foundation på Linux (dekker her spesifikt fremgangen ved bruk av Mandrake Linux 10.0, men distribusjon vil gjøre liten eller

Detaljer

INF1400 Kap4rest Kombinatorisk Logikk

INF1400 Kap4rest Kombinatorisk Logikk INF4 Kap4rest Kombinatorisk Logikk Hovedpunkter Komparator Dekoder/enkoder MUX/DEMUX Kombinert adder/subtraktor ALU FIFO Stack En minimal RISC - CPU Komparator Komparator sammenligner to tall A og B 3

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

Kan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt!

Kan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt! Microbit PXT: Terning Skrevet av: Geir Arne Hjelle Kurs: Microbit Språk: Norsk bokmål Introduksjon Kan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt! Steg 1: Vi rister løs Vi

Detaljer

Forklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java

Forklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 Forklaring til programmet AbstraktKontoTest.java med tilhørende

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

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

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

Detaljer