Plan. funksjoner som funksjonsverdi funksjoner som datastruktur. funksjoner som parametre. Høyere-ordens funksjoner. ufullstendige kall.

Størrelse: px
Begynne med side:

Download "Plan. funksjoner som funksjonsverdi funksjoner som datastruktur. funksjoner som parametre. Høyere-ordens funksjoner. ufullstendige kall."

Transkript

1 Høyere-ordens funksjoner funksjoner som parametre funksjoner som funksjonsverdi funksjoner som datastruktur ufullstendige kall Curry-ing Plan 1

2 Generelle liste-funksjoner fun oppdat(f,l) = case l of nil => nil x::l => f(x):: oppdat(f,l ); val oppdat = fn : ( a -> b) * a list -> b list fun plukk(t,l) = case l of nil => nil x::l => if t(x) then x:: plukk(t,l ) else plukk(t,l ); val plukk = fn : ( a -> bool) * a list -> a list fun gjenta(b,d,l) = case l of nil => d x::l => b(x,gjenta(b,d,l )); val gjenta = fn : ( a * b -> b) * b * a list -> b 2

3 Eksempler type stud = string * int; val L1=[("ole",60),("eva",62),("jens",64)]; fun ercm(s:stud):bool = (65 <= #2 s); fun tattin211((n,v):stud):stud = (n,v+3); fun or(x,y) = x orelse y; val L2 = oppdat(tattin211, L1); val L2 = [("ole",63),("eva",65),("jens",67)] : stud list val L3 = plukk(ercm, L2); val L3 = [("eva",65),("jens",67)] : stud list oppdat(#1, L3); gir ["eva","jens"] : string list oppdat(#2, L1); gir [60,62,64] : int list gjenta(or, false, oppdat(ercm, L1)); gir false gjenta(or, false, oppdat(ercm, L2)); gir true 3

4 Alternativ gjenta-funksjon fun gjenta (b,d,l) = case l of nil => d x::l => gjenta (b,b(d,x),l ); val gjenta = fn : ( a * b -> a) * a * b list -> a fun gjenta (b,d,l) = case l of nil => d x::l => gjenta (b,b(x,d),l ); val gjenta = fn : ( a * a -> a) * a * a list -> a gjenta(op+, 0, [1, 2, 3, 4]) svarer til (1 + (2 + (3 + (4 + 0)))). gjenta (op+, 0, [1, 2, 3, 4]) svarer til ((((0 + 1) + 2) + 3) + 4). Begge gir 10. gjenta(op, 0, [1, 2, 3, 4]) svarer til (1 (2 (3 (4 0)))) som gir minus 2. gjenta (op, 0, [1, 2, 3, 4]) svarer til ((((0 1) 2) 3) 4) som gir 10. gjenta (op, 0, [1, 2, 3, 4]) gir 8. Merk: op +(1,2) er det samme som 1+2(og tilsv. op-). 4

5 Eksempler, forts. fun noen(l:bool list):bool = gjenta(or, false, l); noen(oppdat(ercm, L1)); gir false noen(oppdat(ercm, L2)); gir true fun og(x,y) = x andalso y; gjenta(og, true, oppdat(ercm, L1)); gir false gjenta(og, true, oppdat(ercm, L2)); gir false fun alle(l:bool list):bool = gjenta(og, true, l); alle(oppdat(ercm, L1)); gir false alle(oppdat(ercm, L2)); gir false 5

6 Funksjons-rom i ML f: A -> B funksjon fra A til B g: A * B-> C funksjon fra A*B til C h: A -> B-> C funksjon fra A til funksjonsrommet A til B Disse kan kalles slik (gitt a:a og b:b): f(a) en verdi i B f a - // - g(a,b) en verdi i C h(a) en funksjon fra B til C h a - // - (h a) b en verdi i C h a b - // - Kallene h(a) og hakalles ufullstendige/partielle, fordi de gir funksjoner som funksjonsverdi. Funksjonene kan defineres slik: fun f(x:a):b =...; fun g(x:a, y:b):c =...; fun h(x:a)(y:b):c =...; eller fun h(x:a):b->c = fn (y:b)=>...; 6

7 Merk I ML er funksjonsrommene A * B-> C A -> B-> C ansett som ulike. Dermed vil også funksjonene fun pluss(a,b)= a+b; val pluss = fn : int * int -> int fun pluss a b = a+b; val pluss = fn : int -> int -> int være ulike, og må kalles ulikt: pluss(1,2); pluss 1 2 ; Funksjoner på siste form kalles currierte. Merk: kan kalle slike funksjoner ufullstendig : pluss 5; val it = fn : int -> int som gir funksjonen fn(b)=>5+b; 7

8 Ufullstendige kall fun lik x y = (x=y); -- eller fun lik x = fn (y) => (x=y); val lik= a -> a -> bool lik 0 2; val it = false : bool lik 0; val it = fn : int -> bool samme som fn(y)=>(0 = y) Merk at to fnutt er på a indikerer at denne typen skal ha en likhets-funksjon(=). fun add (x:int)(s:stud) = (#1s,#2s+x); fun add (x:int)((n,vt):stud)=(n,vt+x); add 3; samme som Kan lage L2 ved val it = fn :stud -> stud fn(s : stud) =>(#1s, #2s +3) oppdat(add 3,L1); siden add(3) : stud stud. Test på om x er med i en liste: fun has(l,x )= noen(oppdat(lik x,l)); 8

9 Curriert utgave av: oppdater, plukk og gjenta fun opd f l = case l of nil => nil x::l =>f x::opd f l; val opd = fn : ( a -> b) -> a list -> b list fun plukk t l = case l of nil => nil x::l => if t x then x:: plukk t l else plukk t l ; val plukk = fn : ( a -> bool) -> a list -> a list fun gta b d l = case l of nil => d x::l => b x (gta b d l ); val gta = fn : ( a -> b -> b) -> b -> a list -> b Kan nå skrive funksjonene noen og alle slik: fun or x y = x orelse y; fun og x y = x andalso y; val noen = gta or false; val noen = fn : bool list -> bool 9 val alle = gta og true; val alle = fn : bool list -> bool

10 andre eksempler val sum = gta pluss 0 ; val sum = fn : int list -> int fun sum l = gta pluss 0 l; fun max x y = if x<y then y else x; val maxel = gta max ~1000; val maxel = fn : int list -> int fun gange x y = x*y; val prod = gta gange 1 ; 10

11 FUNKSJON BRUKT SOM TABELL type ( a, b) Tab = a -> b; (* a er Indeks-typen, b er Verdi-typen. *) exception novalue; fun tom i = raise novalue; val tom = fn : a -> b fun upd t i x j = if i=j then x else t j; val upd = fn:( a-> b)-> a-> b-> a-> b Oppslag i tabell ved å bruke tabellen som funksjon! Eksempel: Telefon-katolog string int T ab - val t3 = upd(upd(upd tom "ole" 50) "eva" 60) "jon" 70; val t3 = fn : string -> int - t3 "eva"; val it = 60 : int - t3 "ada"; uncaught exception novalue - (t3 "ada") handle novalue => 0; val it = 0 : int 11

12 FUNKSJON BRUKT SOM TABELL: Alternative definisjoner val tom = fn i => raise novalue; val tom = fn : a -> b fun upd t i x = fn j => if i=j then x else t j; val upd = fn:( a-> b)-> a-> b-> a-> b Oppslag i tabell t på indeks i blir som før: ti 12

13 Bag: grensesnitt signature Bag_def = sig type elem Bag val empty: elem Bag val add : elem Bag * elem -> elem Bag val del : elem Bag * elem -> elem Bag val has : elem Bag * elem -> int val union: elem Bag * elem Bag -> elem Bag end; Merk at to fnutt er på elem gir oss tilgang til likhet over denne typen. 13

14 Bag implementasjon I: ved liste structure Bag_impl: Bag_def = struct type elem Bag = ( elem * int) list; val empty = nil; fun add(b,x) = case b of nil => (x,1)::nil (y,i)::b => if x=y then (y,i+1)::b else (y,i)::add(b,x); fun del(b,x) = case b of nil => nil (y,i)::b => if x=y then if i=1 then b else (y,i-1)::b else (y,i)::del(b,x); fun has(b,x) = case b of nil => 0 (y,i)::b => if x=y then i else has(b,x); fun union(a,b)= case b of nil => a (y,i)::b => if i=1 then union(add(a,y), b ) else union(add(a,y),(y,i-1)::b ); end; 14

15 Bag implementasjon II: ved funksjonsrom structure Bag_impl: Bag_def = struct type elem Bag = elem -> int; fun empty y = 0; fun add(b,x) y = if x=y then (b x)+1 else (b y); fun del(b,x) y = if x=y then (b x)-1 else (b y); fun has(b,x) = b x; fun union(a,b) (x)= (a x) + (b x) ; end; Merk at funksjonsrom ikke har noen likhetsfunksjon i ML; dermed kan vi ikke teste om to bagger er like med denne implementasjonen. 15

16 Bag implementasjon III: ved funksjonsrom structure Bag_impl: Bag_def = struct type elem Bag = elem -> int; val empty = fn(y)=> 0; fun add(b,x) = fn(y)=> if x=y then (b x)+1 else (b y); fun del(b,x) = fn(y)=> if x=y then (b x)-1 else (b y); fun has(b,x) = b x; fun union(a,b) = fn(y)=> (a y) + (b y) ; end; Her har vi gjort det samme som over, men med en litt annen syntaks. 16

17 CURRY og UNCURRY fun curry f x y = f(x,y); val curry = fn : ( a * b -> c) -> a -> b -> c fun uncurry f(x,y)=f x y ; val uncurry = fn : ( a -> b -> c) -> a * b -> c Funksjonen curry lager curriert versjon av en ikke-curriert funksjon, og uncurry det motsatte. 17

18 EKSEMPLER varianter med add: fun add(x,y:int)= x+y; val add = fn : int * int -> int fun add (x:int)(y)=x+y; val add = fn : int -> int -> int Nå vil (curry add) svare til add og (uncurry add ) vil svare til add: - (curry add) 1 2 ; val it = 3 : int - (uncurry add ) (1,2); val it = 3 : int Boolske operatorer i curriert versjon: fun Or x y = x orelse y; val Or = fn : bool -> bool -> bool fun And x y = x andalso y; val And = fn : bool -> bool -> bool 18

Plan. funksjoner som funksjonsverdi funksjoner som datastruktur. funksjoner som parametre. Høyere-ordens funksjoner. ufullstendige kall.

Plan. funksjoner som funksjonsverdi funksjoner som datastruktur. funksjoner som parametre. Høyere-ordens funksjoner. ufullstendige kall. Høyere-ordens ksjoner ksjoner som parametre ksjoner som ksjonsverdi ksjoner som datastruktur ufullstendige kall Curry-ing Plan 1 Generelle liste-ksjoner 2 oppdat(f,l) = case l of nil => nil x::l' => f(x)::

Detaljer

1/28. Forelesning Forelesning / fun f (_,0) = true. 2 f(0,_)=true. 3 f_ =false; 4 val f = fn : int * int -> bool

1/28. Forelesning Forelesning / fun f (_,0) = true. 2 f(0,_)=true. 3 f_ =false; 4 val f = fn : int * int -> bool Dagens tema Innføring i ML - del IV Mønstergjenkjenning Litt om funksjoner & likhetstyper Anonyme funksjoner Begrenset skop - let Litt av hvert - greit å ta med seg Avsluttende kommentarer - spørsmål?

Detaljer

Dagens tema Innføring i ML - del IV

Dagens tema Innføring i ML - del IV Dagens tema Innføring i ML - del IV Mønstergjenkjenning Litt om funksjoner & likhetstyper Anonyme funksjoner Begrenset skop - let Funksjonsrom og currierte funksjoner Litt av hvert - greit å ta med seg

Detaljer

Plan. Fortsetter med ML: lister og rekursive typer/funksjoner unntak let-uttrykk moduler og abstrakte datatyper høyere-ordens funksjoner

Plan. Fortsetter med ML: lister og rekursive typer/funksjoner unntak let-uttrykk moduler og abstrakte datatyper høyere-ordens funksjoner Plan Fortsetter med ML: lister og rekursive typer/funksjoner unntak let-uttrykk moduler og abstrakte datatyper høyere-ordens funksjoner Ark 1 av 19 Forelesning 25.10.1999 Uendelig datatype i ML - datatype

Detaljer

Plan. Fortsetter med ML: lister og rekursive typer/funksjoner unntak let-uttrykk moduler og abstrakte datatyper høyere-ordens funksjoner

Plan. Fortsetter med ML: lister og rekursive typer/funksjoner unntak let-uttrykk moduler og abstrakte datatyper høyere-ordens funksjoner Plan Fortsetter med ML: lister og rekursive typer/funksjoner unntak let-uttrykk moduler og abstrakte datatyper høyere-ordens funksjoner Ark 1 av 20 Funksjoner over lister Typisk mønster for funksjoner

Detaljer

Dagens tema. Funksjonelle språk Fortsetter med ML: Typer Unntak Introduksjon til høyere-ordens funksjoner. ML avsluttes etter planen neste uke.

Dagens tema. Funksjonelle språk Fortsetter med ML: Typer Unntak Introduksjon til høyere-ordens funksjoner. ML avsluttes etter planen neste uke. Dagens tema Funksjonelle språk Fortsetter med ML: Typer Unntak Introduksjon til høyere-ordens funksjoner ML avsluttes etter planen neste uke. Ark 1 av 18 Forelesning 21.10.2002 Funksjonelle (applikative)

Detaljer

Dagens tema. Innføring i ML - del III (Kapittel & ML-kompendiet.) Unntak Abstrakte datatyper i ML Høyere-ordens funksjoner

Dagens tema. Innføring i ML - del III (Kapittel & ML-kompendiet.) Unntak Abstrakte datatyper i ML Høyere-ordens funksjoner Dagens tema Innføring i ML - del III (Kapittel 7.4.3 & ML-kompendiet.) Unntak Abstrakte datatyper i ML Høyere-ordens funksjoner 1/14 Forelesning 4 17.9.2003 Unntak exception deklarerer et unntak exception

Detaljer

Fortsetter med ML: Repetisjon av lister Typer Unntak Moduler og abstrakte datatyper Introduksjon til høyere-ordens funksjoner

Fortsetter med ML: Repetisjon av lister Typer Unntak Moduler og abstrakte datatyper Introduksjon til høyere-ordens funksjoner Dagens tema Fortsetter med ML: Repetisjon av lister Typer Unntak Moduler og abstrakte datatyper Introduksjon til høyere-ordens funksjoner ML avsluttes etter planen neste uke. Ark 1 av 21 Forelesning 03.09.2001

Detaljer

Fiktiv eksamensbesvarelse IN 211 høsten 2001

Fiktiv eksamensbesvarelse IN 211 høsten 2001 Fiktiv eksamensbesvarelse IN 211 høsten 2001 Kandidat 1 6. desember 2001 Oppgave 1: Kjøresystemer 1a: Statisk og dynamisk link egne aktiveringsstakken før kallet på P 1b: Parameteroverføring 1. Verdioverføring:

Detaljer

INF3110 Programmeringsspråk. Dagens tema

INF3110 Programmeringsspråk. Dagens tema Dagens tema Innføring i ML - del II (Kapittel 7.4.3 & ML-kompendiet.) Oppvarming og uttøyning Smart typeanalyse Evalueringsmekanismen i ML Typedeklarasjoner (produkt-, union-, rekursive typer... ) 1/18

Detaljer

1-0::[1,2]; 2 - [3,4]; 3 - [1,2] :: [3,4]; 4-1 :: 2 :: 3 :: nil; 5 - "INF" ^ "3110" ^ " er moro"; 6 - rev [1,2,3];

1-0::[1,2]; 2 - [3,4]; 3 - [1,2] :: [3,4]; 4-1 :: 2 :: 3 :: nil; 5 - INF ^ 3110 ^  er moro; 6 - rev [1,2,3]; Dagens tema Innføring i ML - del II (Kapittel 7.4. & ML-kompendiet.) Oppvarming og uttøyning Smart typeanalyse Evalueringsmekanismen i ML Typedeklarasjoner (produkt-, union-, rekursive typer... ) Oppvarming

Detaljer

Typer. 1 Type: boolean. 2 Verdimengde: {true, false} 3 Operatorer: NOT, AND, OR... 1/19. Forelesning Forelesning

Typer. 1 Type: boolean. 2 Verdimengde: {true, false} 3 Operatorer: NOT, AND, OR... 1/19. Forelesning Forelesning Dagens tema Typer (Kapittel 3 frem til 331) Innføring i ML (Kapittel 743 & ML-kompendiet) Typer En (data-)type består av: en mengde verdier en mengde operasjoner man kan anvende på disse verdiene Eksempel:

Detaljer

INF3110 Programmeringsspråk. Dagens tema. Typer (Kapittel 3 frem til ) Innføring i ML (Kapittel & ML-kompendiet.) 1/19

INF3110 Programmeringsspråk. Dagens tema. Typer (Kapittel 3 frem til ) Innføring i ML (Kapittel & ML-kompendiet.) 1/19 Dagens tema Typer (Kapittel 3 frem til 3.3.1.) Innføring i ML (Kapittel 7.4.3 & ML-kompendiet.) 1/19 Forelesning 2 27.8.2003 Typer En (data-)type består av: en mengde verdier en mengde operasjoner man

Detaljer

Variable Man kan bruke variable i ML. ML (kap 5 og 6) Nye datatyper INF3110/4110 INF3110/4110 INF3110/4110 INF3110/4110. Variable i ML.

Variable Man kan bruke variable i ML. ML (kap 5 og 6) Nye datatyper INF3110/4110 INF3110/4110 INF3110/4110 INF3110/4110. Variable i ML. ML (kap 5 og 6) Variable i ML Nye datatyper Currying Avanserte listeoperatorer Typeanalyse Variable Man kan bruke variable i ML - val = ref 1; val = ref 1 : int ref - := 3*(!)+5; val it = () : unit -!;

Detaljer

ML (kap 5 og 6) INF3110/4110. Variable i ML. Nye datatyper. Currying. Avanserte listeoperatorer. Typeanalyse

ML (kap 5 og 6) INF3110/4110. Variable i ML. Nye datatyper. Currying. Avanserte listeoperatorer. Typeanalyse ML (kap 5 og 6) Variable i ML Nye datatyper Currying Avanserte listeoperatorer Typeanalyse Dag Langmyhr,Ifi,UiO: Forelesning 25. oktober 2004 Ark 1 av 22 Variable Man kan bruke variable i ML - val x =

Detaljer

Løsningsforslag til eksamen i IN 211 høsten 2002

Løsningsforslag til eksamen i IN 211 høsten 2002 Løsningsforslag til eksamen i IN 211 høsten 2002 Ragnhild Kobro Runde og Gerhard Skagestein 4. desember 2002 Oppgave 1: Kjøresystemer 1a: Statisk skop Print-setningen vil skrive ut 2, da det i C er main

Detaljer

Plan: Funksjonelle språk (Ghezzi&Jazayeri kap.7 frem til 7.4) IN 211 Programmeringsspråk

Plan: Funksjonelle språk (Ghezzi&Jazayeri kap.7 frem til 7.4) IN 211 Programmeringsspråk Plan: Funksjonelle språk (Ghezzi&Jazayeri kap.7 frem til 7.4) Innføring i ML: konstanter, enkle funksjoner og typer (Ghezzi&Jazayeri kap. 7.4.3 + ML-komp.) (Fortsetter med ML neste uke) predefinerte typer

Detaljer

Plan: Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) Funksjonelle språk. Innføring i ML. typer enkle funksjoner (Fortsetter med ML i to uker til)

Plan: Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) Funksjonelle språk. Innføring i ML. typer enkle funksjoner (Fortsetter med ML i to uker til) Plan: Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) Funksjonelle språk (Ghezzi&Jazayeri kap.7 frem til 7.4) Innføring i ML (Ghezzi&Jazayeri kap. 7.4.3 + ML-komp.) typer enkle funksjoner (Fortsetter med

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 211 Programmeringsspråk Eksamensdag: 4. desember 2002 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 10 sider. Vedlegg: Tillatte

Detaljer

Løsningsforslag til eksamen i IN 211 høsten 2001

Løsningsforslag til eksamen i IN 211 høsten 2001 Løsningsforslag til eksamen i IN 211 høsten 21 Ragnhild Kobro Runde 6. desember 21 Oppgave 1: Kjøresystemer 1a: Statisk og dynamisk link SL a = 2 a = 5 b = 3 DL main Q R S 1b: Parameteroverføring 1. Verdioverføring:

Detaljer

Funksjoner: Kun faste funksjoner. Ikke rekursive kall. Funksjonelle språk (kap 4.4) Bakgrunnen for ML

Funksjoner: Kun faste funksjoner. Ikke rekursive kall. Funksjonelle språk (kap 4.4) Bakgrunnen for ML 1. generasjons språk Data var statisk: alle variable eksisterte under hele kjøringen. ML (kap 5) Bakgrunn Litt historikk Eksempler: Fortran, Cobol, Basic. Funksjoner: Kun faste funksjoner. Ikke rekursive

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF3110/4110 Programmeringsspråk Eksamensdag: 2. desember 2003 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 7 sider. Vedlegg:

Detaljer

ML (kap 5) INF3110/4110. Bakgrunn Litt historikk. Funksjonelle språk (kap 4.4) Bakgrunnen for ML. Programmeringsspråket ML Hvordan kjøre ML-programmer

ML (kap 5) INF3110/4110. Bakgrunn Litt historikk. Funksjonelle språk (kap 4.4) Bakgrunnen for ML. Programmeringsspråket ML Hvordan kjøre ML-programmer ML (kap 5) Bakgrunn Litt historikk Funksjonelle språk (kap 4.4) Bakgrunnen for ML Programmeringsspråket ML Hvordan kjøre ML-programmer Enkle uttrykk Deklarasjoner Funksjoner Datatyper Mønstre Dag Langmyhr,Ifi,UiO:

Detaljer

INF1010 våren januar. Objektorientering i Java

INF1010 våren januar. Objektorientering i Java INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort

Detaljer

IN1010 våren januar. Objektorientering i Java

IN1010 våren januar. Objektorientering i Java IN1010 våren 2018 23. januar Objektorientering i Java Om enhetstesting Om arrayer og noen klasser som kan ta vare på objekter Stein Gjessing Hva er objektorientert programmering? F.eks: En sort boks som

Detaljer

Kap.4 Funksjoner. Tre viktig ting ifm. funksjoner: parameter (input) oppskrift (body) for å beregne resultat (output)

Kap.4 Funksjoner. Tre viktig ting ifm. funksjoner: parameter (input) oppskrift (body) for å beregne resultat (output) 1 Kap.4 Funksjoner Tre viktig ting ifm. funksjoner: navn parameter (input) oppskrift (body) for å beregne resultat (output) Syntaks: = Deklarerte funksjoner kan brukes i uttrykk

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i INF3110/INF4110, 1. desember 2005 Side 1 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF3110/4110 - Programmeringsspråk Eksamensdag: 1. desember 2005 Tid for eksamen:

Detaljer

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

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

Detaljer

Funksjonell Programmering i Standard ML. Bjørn Kristoffersen. Kompendium 61. Høstsemesteret 1995

Funksjonell Programmering i Standard ML. Bjørn Kristoffersen. Kompendium 61. Høstsemesteret 1995 Institutt for informatikk Funksjonell Programmering i Standard ML Bjørn Kristoffersen Kompendium 61 Høstsemesteret 1995 i Forord Dette kompendiet er en introduksjon til funksjonell programmering i Standard

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 Terje Rydland - IDI/NTNU 2 if (be): else (not_to_be): 3 Læringsmål og pensum

Detaljer

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3 Terje Rydland - IDI/NTNU 2 if (be): else (not_to_be): 3 Læringsmål og pensum

Detaljer

TDT4110 IT Grunnkurs Høst 2015

TDT4110 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

Detaljer

TDT Øvingsforelesning 1. Tuesday, August 28, 12

TDT Øvingsforelesning 1. Tuesday, August 28, 12 TDT 4165 Øvingsforelesning 1 Øvingsforelesningene Eksempelbaserte Sikter på å være på et snillere nivå enn øvingene og forelesningene Interaktive - spørsmål og dialog oppfordres Matnyttige- vil ta for

Detaljer

INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF1010, 21. februar 2013 Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Ikke noe nytt her From the Java language specification (version 6): 14.14.2

Detaljer

Obligatorisk oppgave 1 INF1020 h2005

Obligatorisk oppgave 1 INF1020 h2005 Obligatorisk oppgave 1 INF1020 h2005 Frist: fredag 7. oktober Oppgaven skal løses individuelt, og må være godkjent for å kunne gå opp til eksamen. Før innlevering må retningslinjene Krav til innleverte

Detaljer

INF1010 notat: Binærsøking og quicksort

INF1010 notat: Binærsøking og quicksort INF1010 notat: Binærsøking og quicksort Ragnhild Kobro Runde Februar 2004 I dette notatet skal vi ta for oss ytterligere to eksempler der rekursjon har en naturlig anvendelse, nemlig binærsøking og quicksort.

Detaljer

Haskell. Kjetil Ørbekk. Programvareverkstedet, 19. mars 2009

Haskell. Kjetil Ørbekk. Programvareverkstedet, 19. mars 2009 Haskell Kjetil Ørbekk Programvareverkstedet, 19. mars 2009 Imperativ programmering Tilstand Operasjoner function uppercase(list) { x = 1 } while (x < length(list)) { uppercase(list[x]) x = x + 1 } Funksjonell

Detaljer

ADT og OO programmering

ADT og OO programmering ADT og OO programmering I. ADT I JAVA - INTERFACE I.1 grensesnitt skal dokumenteres Javadoc I.2 bruk av interface I.3 implementasjoner av interface II. OO II.1 Arv av type og implementasjon II.2 Abstrakte

Detaljer

Oppsummering fra sist

Oppsummering fra sist 1 av 34 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Terje Rydland - IDI/NTNU 2 av 34 Oppsummering fra sist Betingelser i Python: ,

Detaljer

AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1

AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1 AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1 Ole Kristian Pedersen, Høst 2016 Agenda Introduksjon til Python for begynnere Intro til øving 1 Litt om lenkede lister Øvingssystemet

Detaljer

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04 INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a

Detaljer

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04 INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a

Detaljer

Anatomien til en kompilator - I

Anatomien til en kompilator - I Anatomien til en kompilator - I 5/22/2006 1 Framgangsmåte for automatisk å lage en scanner Beskriv de forskjellige token-klassene som regulære uttrykk Eller litt mer fleksibelt, som regulære definisjoner

Detaljer

MAT1030 Plenumsregning 1

MAT1030 Plenumsregning 1 MAT1030 Plenumsregning 1 Kapittel 1 Mathias Barra - 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 Velkommen til plenumsregning for MAT1030 Fredager 12:15 14:00 Vi vil gjennomgå utvalgte

Detaljer

Det finnes ingenting. som kan gjøres med interface. men som ikke kan gjøres uten

Det finnes ingenting. som kan gjøres med interface. men som ikke kan gjøres uten Interface, Abstract Class... i-120 : H-98 2a. Abstraksjon i JAVA: 1 Det finnes ingenting som kan gjøres med interface i-120 : H-98 2a. Abstraksjon i JAVA: 2 som kan gjøres med bruk av unntak i-120 : H-98

Detaljer

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF, 22. mai 23 Prøveeksamen 23 (Eksamen 2. juni 22) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Oppgave a Tegn klassehierarkiet for de 9 produkttypene som er beskrevet over. Inkluder også

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

Datatyper 2 generatorbasis for T er en endelig mengde T -produsenter som En utspenner hele verdimengden V tilsammen T. utgangspunktet kunne en type ha

Datatyper 2 generatorbasis for T er en endelig mengde T -produsenter som En utspenner hele verdimengden V tilsammen T. utgangspunktet kunne en type ha datatype T representerer en mengde verdier, V En T (av type T )., er praktisk også å assosiere med T en mengde funksjoner, Det uten T i domenet kalles en (relativ) T -konstant. T - produsent med kodomene

Detaljer

Kapittel 9: Sortering og søking Kort versjon

Kapittel 9: Sortering og søking Kort versjon Kapittel 9: Sortering og søking Kort versjon 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

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 MAT1030 Diskret Matematikk

Detaljer

Del 3: Evaluere uttrykk

Del 3: Evaluere uttrykk Del 3: Evaluere uttrykk Hva skal vi gjøre? Hvordan lagre Asp-verdier Hvilke operasjoner må jeg implementere? Er operasjonen lovlig? Utføre operasjonen Strukturen til interpreten vår f.asp 3&4 Interpret

Detaljer

Gjennomgang av eksamen H99

Gjennomgang 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

Detaljer

TDT4165 PROGRAMMING LANGUAGES. Exercise 01 Introduksjon til Oz

TDT4165 PROGRAMMING LANGUAGES. Exercise 01 Introduksjon til Oz TDT4165 PROGRAMMING LANGUAGES Fall 2012 Exercise 01 Introduksjon til Oz Denne øvingen vil gjøre deg kjent med Emacs og Mozart. Du må kunne bruke disse verktøyene for å gjøre resten av øvingene. Mozart

Detaljer

I denne oppgaven skal vi repetere litt Python-syntaks, det er en god blanding av alle tingene du har lært i Python til nå.

I denne oppgaven skal vi repetere litt Python-syntaks, det er en god blanding av alle tingene du har lært i Python til nå. Repetisjon Skrevet av: Ole Kristian Pedersen, Kodeklubben Trondheim Kurs: Python Tema: Tekstbasert Fag: Programmering Klassetrinn: 8.-10. klasse Introduksjon I denne oppgaven skal vi repetere litt Python-syntaks,

Detaljer

Løsningsforslag til eksamen i IN147(A)

Løsningsforslag til eksamen i IN147(A) Løsningsforslag til eksamen i IN147(A) Dag Langmyhr Øystein Gran Larsen 12 mai 1997 Oppgave 1: JK-flip-flop Boolsk ligning D-signalet bestemmer neste utgang, dvs Q(t + 1), og D-signalet tar derfor de samme

Detaljer

INF Noen oppgaver til kap. 8

INF Noen oppgaver til kap. 8 INF5110 2014 Noen oppgaver til kap. 8 Utvidet utgave lagt ut 24. april Gjennomgås 25. april, 2014 Stein Krogdahl 1 Oppgave 8.1.c (fra boka) Lag for hånd TA-kode for følgende uttrykk: a * b + a * b * c

Detaljer

Eivind Gard Lund. 24. Mars 2009 Foilene bygger på 2009 utgaven av Andreas Svendsen

Eivind Gard Lund. 24. Mars 2009 Foilene bygger på 2009 utgaven av Andreas Svendsen Eivind Gard Lund 24. Mars 2009 Foilene bygger på 2009 utgaven av Andreas Svendsen Informasjon Semantikksjekk Kodegenerering Oblig 2 tilgjengelig på kurssiden Bygger på deres oblig 1 kode. Det er lagt ut

Detaljer

Repetisjon, del 2. TDT 4110 IT Grunnkurs Professor Guttorm Sindre

Repetisjon, del 2. TDT 4110 IT Grunnkurs Professor Guttorm Sindre Repetisjon, del 2 TDT 4110 IT Grunnkurs Professor Guttorm Sindre Premieutdeling Kahoot Vinnere av enkeltrunder: Datamaskinens historie: mr.oyster (7311) Variable, aritmetiske op., etc.: Sha-ra (6155) if-setn.,

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

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

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

Detaljer

Typisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord

Typisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord Scanning-I Kap. 2 Hovedmål Gå ut fra en beskrivelse av de enkelte leksemer (tokens), og hvordan de skal deles opp i klasser Lage et program (funksjon, prosedyre, metode) som leverer ett og ett token, med

Detaljer

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

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

Detaljer

Typisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord

Typisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord Scanning - I Kap. 2 Hovedmål Gå ut fra en beskrivelse av de enkelte tokens, og hvordan de skal deles opp i klasser Lage et program (funksjon, prosedyre, metode) som leverer ett og ett token, med all nødvendig

Detaljer

Hvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010

Hvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010 Hvorfor sortering og søking? Man bør ha orden i dataene umulig å leve uten i informasjonssamfunnet vi blir fort lei av å lete poleksempel internett alt er søking og sortering alternativer til sortering

Detaljer

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL. 09.00 13.00

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL. 09.00 13.00 Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap EKSAMEN I FAG

Detaljer

1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF1010, 26. februar 2014 1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Vi tar utgangspunkt i dette programmet for

Detaljer

Datatyper og typesjekking

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

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 15.desember 2004 Varighet: Fagnummer: Fagnavn: Klasse(r): 3 timer LO116D Programmering i Visual Basic FU

Detaljer

TOD063 Datastrukturer og algoritmer

TOD063 Datastrukturer og algoritmer TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage

Detaljer

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Valg og betingelser TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Kunne forstå og bruke if-setninger sammenlikning av strenger nøstede beslutningsstrukturer betingelser

Detaljer

INF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak

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

Detaljer

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

Pensumoversikt - kodegenerering. Kap. 8 del 1 kodegenerering INF5110 v2006. Hvordan er instruksjonene i en virkelig CPU? Arne Maus, Ifi UiO

Pensumoversikt - kodegenerering. Kap. 8 del 1 kodegenerering INF5110 v2006. Hvordan er instruksjonene i en virkelig CPU? Arne Maus, Ifi UiO Pensumoversikt - kodegenerering Kap. 8 del 1 kodegenerering INF5110 v2006 Arne Maus, Ifi UiO 8.1 Bruk av mellomkode 8.2 Basale teknikker for kodegenerering 8.3 Kode for referanser til datastrukturer (ikke

Detaljer

IN211 Oppgavekompendium med løsningsforslag og tilleggssto Olaf Owe Ragnhild Kobro Runde Revidert August 1999 Forord Dette kompendiet er en samling av oppgaver og løsningsforslag, samt litt tilleggssto,

Detaljer

INF1010 våren Grensesnitt (interface)

INF1010 våren Grensesnitt (interface) INF1010 våren 2015 Torsdag 5. februar Grensesnitt (interface) Stein Gjessing Institutt for informatikk Dagens tema n n Norsk: Grensesnitt Engelsk: Interface n Les notatet Grensesnitt i Java av Stein Gjessing

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 15.desember 2006 Varighet: Fagnummer: Fagnavn: 09.00 13.00 (4 timer) LO116D og LN116D Programmering i Visual

Detaljer

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl. 09.00 13.

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl. 09.00 13. BOKMÅL Side 1 av 5 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTERINGSEKSAMEN

Detaljer

Repetisjon Novice Videregående Python PDF

Repetisjon Novice Videregående Python PDF Repetisjon Novice Videregående Python PDF Introduksjon I denne oppgaven skal vi repetere litt Python-syntaks. Hele dette kurset er for de som har programmert Python før. Dersom ikke har mye erfaring med

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 15. desember 2010 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

Kap 2: Løkker og lister

Kap 2: Løkker og lister Kap 2: Løkker og lister Ole Christian Lingjærde, Inst for Informatikk, UiO 26-30 August, 2019 (Del 2 av 2) Forrige forelesning på en foil Formatert utskrift: %-operator og f-strings To typer løkker: while-løkker

Detaljer

INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser

INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser Emneoversikt subklasser INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser Stein Gjessing Institutt for informatikk Mange flere eksempler på fellesøvelsene og neste forelesning 1 Generalisering - spesialisering

Detaljer

Programmering Høst 2017

Programmering Høst 2017 Programmering Høst 2017 Tommy Abelsen Ingeniørfag - Data Innledning Dette er et dokument med litt informasjon og eksempler om kontrollstrukturer, samt oppgaver til forskjellige kontrollstrukturer. Spør

Detaljer

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

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

Detaljer

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller. Dagens forelesning Java 13 Design av større programmer : fordeling av roller INF 101-13. mars 2003 Flere eksempler på bruk av objekter MVC-prinsippet MVC-prinsippet Flere eksempler på programmer med objekter

Detaljer

OPPGAVE 5b og 8b Java Kode

OPPGAVE 5b og 8b Java Kode OPPGAVE 5b og 8b Java Kode public class Kant boolean behandlereturavbil() BehandleReturAvBil behandler = new BehandleReturAvBil(this); String regnr; int kmstand, tanknivaa; boolean erskadet; // 1: Få verdiene

Detaljer

Løsningsforslag EKSAMEN

Løsningsforslag EKSAMEN 1 Løsningsforslag EKSAMEN Emnekode: ITF20006 000 Dato: 18. mai 2012 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Faglærer: Gunnar Misund

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

Norsk informatikkolympiade runde

Norsk informatikkolympiade runde Norsk informatikkolympiade 2016 2017 1. runde Sponset av Uke 46, 2016 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.

Detaljer

Scanning - I Kap. 2. Hva scanneren gjør

Scanning - I Kap. 2. Hva scanneren gjør Scanning - I Kap. 2!! Hovedmål! Gå ut fra en beskrivelse av de enkelte tokens, og hvordan de skal deles opp i klasser! Lage et program (funksjon, prosedyre, metode) som leverer ett og ett token, med all

Detaljer

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

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

Detaljer

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

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

Detaljer

INF1000 - Løsning på seminaropppgaver til uke 8

INF1000 - Løsning på seminaropppgaver til uke 8 INF1000 - Løsning på seminaropppgaver til uke 8 Oppgave 1 a) for(string nokkel : studenter.keyset){ System.out.println(nokkel); Studenten sitt navn blir skrevet ut. b) for(student dennestudenten : studenter.values()){

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

Datatyper og typesjekking

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

Detaljer

Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket

Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket Programmeringsspråk for nybegynnere Krav til språket Hva om vi laget vårt eget språk til INF1000? Programmeringsspråket må være så enkelt som mulig. (Programmering er vanskelig nok som det er.) Hvilke

Detaljer

Kontinuasjonseksamen

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

Detaljer

Datatyper og typesjekking

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

Detaljer

EKSAMEN. Emne: Algoritmer og datastrukturer

EKSAMEN. Emne: Algoritmer og datastrukturer 1 EKSAMEN Emnekode: ITF20006 000 Dato: 18. mai 2012 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Faglærer: Gunnar Misund Oppgavesettet

Detaljer