Deklarationer/definitioner/specifikationer

Storlek: px
Starta visningen från sidan:

Download "Deklarationer/definitioner/specifikationer"

Transkript

1 Deklarationer/definitioner/specifikationer Konstantdefinitioner innebär att ett namn binds och sätts att referera till ett värde som beräknas vid kompileringen/interpreteringen och som under programmets gång inte får ändras. Pascal: CONST n = 10; pi = 3.14; space = ; Simula: INTEGER n = 10; Ada: n: constant integer := 34; a: constant array (boolean) of integer :=(true => 0, false => 1); Java: public final int = 34; Funktions- och procedurdefinitioner binder namn till aktuell omgivning och associerar till en programabstraktion. Dessa abstraktioner utgör i sig själva lokala omgivningar. DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

2 Typdeklarationer Vi har redan konstaterat att Pascals typspecifikationer innebär att två exakt likadant specificerade typer är distinkta. I ML används strukturekvivalens, vilket har fördelar i det att typer som definierats i flera steg eller genererats av funktionsanrop, kommer att vara ekvivalenta om de har samma struktur. Men nackdelar finns också: type vara = int * string; (* varunummer H varutyp *) type avd = int * string; (* avd.nummer H avd.namn *) går inte att skilja från varandra och avsikten borde rimligtvis vara att skilja de två olika tupeltyperna åt. DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

3 Med strukturekvivalens är de per definition samma typ. I ML finns också möjligheter att genom etiketter skilja typerna åt (= göra dem till olika typer): datatype VARA = vara of int * string; datatype AVD = avd of int * string; DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

4 Variabeldeklarationer En variabel är ett lagringsutrymme. Man måste skilja på statiska och dynamiska variabler. DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

5 Statiska variabler Deklaration av en statisk variabel innebär att ett namn definieras, binds till aktuell omgivning och sätts att referera till ett minnesutrymme som reserveras för variabeln. I Python är deklarationerna implicita, variablerna oftast statiska och namnen som refererar till dem försvinner då deras omgivning avvecklas. x = 3.5 ok = x < 2.0 x ok 3.5 False DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

6 Dynamiska variabler Skapas och utplånas genom speciella kommandon, försvinner inte då motsvarande omgivning försvinner och måste därför antingen förstöras innan omgivningen avvecklas eller måste en yttre referens sättas att referera till variabeln. class xref: x = None def init (self, xval): self.x = xval >>> x = xref(3.5) >>> x.x 3.5 >>> DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

7 I t ex Java, C och C++ har man möjlighet till både statisk och dynamisk referens till både variabler, konstanter, objekt och procedurer. Resultatet är att man kan hantera värden både på meta -nivå och på objektnivå. I Python kan man inte utplåna objekt. x = None tar bara bort referensen till objektet som städas bort automatiskt om det inte finns flera referenser. del(x) gör precis samma sak, men utplånar också variabeln x DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

8 Samtidiga deklarationer I Scheme kan skapandet av variablerna ske i vilken ordning som helst, och alltså får deklarationerna inte vara beroende av varandra : (define (f x y) (let ((a (+ 1 (* x y))) (b (* x y))) (+ (* x a a) (* y b) (* a b)))) I Python kan man få samma effekt med a, b = 1 + x * y, x * y men där är ordningen bestämd. DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

9 Sekvensiella deklarationer kan vara beroende av varandra. Det är vanligast med sekvensiella deklarationer. (define (f x y) (define a (+ 1 (* x y))) (define b (- a 1)) (+ (* x a a) (* y b) (* a b))) (define (f x y) (let* ((a (+ 1 (* x y))) (b (- a 1))) (+ (* x a a) (* y b) (* a b)))) DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

10 Rekursiva deklarationer är deklarationer som görs i termer av sig själva. I Python och Scheme kan funktions-(procedur-)deklarationer vara rekursiva. I ML kan även typdefinitioner vara det. DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

11 Ömsesidig rekursion utgör ett problem i många språk men inte i Python eller Scheme eftersom det inte finns krav på att namn skall existera förrän vid exekvering. (define (f n) (define (g n) (if (= n 0) (if (= n 0) 0 1 (g (- n 1)))) (f (- n 1)))) def f(n): def g(n): if n == 0: if n == 0: return 0 return 1 else: else: return g(n-1) return f(n-1) DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

12 Ett namn deklareras i början av ett block och syns sedan inom det aktuella blocket så länge detta existerar. Då blocket avvecklas försvinner namnet. Detta gäller alla namn. Om namnet refererar till en statisk variabel försvinner även variabeln. Om namnet refererar till en dynamisk variabel fortsätter variabeln att existera och ta upp minne tills den explicit städas bort eller om, som i ML och Python, det finns en skräpsamlare som kastar bort allt som inte längre refereras till, namn, variabler & omgivningar. DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

13 I Scheme är ett block en procedurkropp. I Python är klasser och funktioner block. I ML kan varje sats vara ett block eftersom varje sats kan innehålla deklarationer. let val x = 3 in x + 2 end; I Java kan deklarationer förekomma var som helst, även mitt i ett block. Där kan variabler deklareras och tilldelas värde i en enda operation. Vill man att det värdet inte ska kunna ändras deklareras det som final. Man har dessutom metoder för att hindra insyn. private final Window w = new Window(...) ger ett fönster som inte kan ändras och som man inte kommer åt utanför blocket. DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

14 Abstraktion Inom programmeringstekniken används två former av abstraktion dataabstraktion och programabstraktion. Dataabstraktion handlar om aggregat för att gruppera samhörande data. Programabstraktion sönderfaller i två delar procedur- resp funktions-abstraktion. funktionsabstraktion procedurabstraktion DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

15 Abstraktion... En procedurabstraktion har som uppgift att uppdatera för proceduren globala storheter/strukturer. En funktionsabstraktion utför en beräkning och återsänder ett (eventuellt komplext) värde. Alla funktionsabstraktioner återsänder ett värde till anropspunkten. Detta kan ske genom att, som i funktionella språk, det sist beräknade värdet återsänds eller, som i vissa imperativa språk, man dels talar om att beräkningen inte kan fortsätta, dels anger ett värde att återsända eller, som i andra imperativa språk, funktionen har en pseudovariabel (funktionens namn) vilken tilldelas ett värde. DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

16 Abstraktion... Ex: en funktion som ger minsta värdet av tre: Python: def min(a, b, c) tmpmin = a if b < tmpmin: tmpmin = b if c < tmpmin: tmpmin = c return tmpmin DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

17 Abstraktion... Scheme: (define (min a b c) (if (and (< a b) (< a c)) a (if (< b c) b c))) DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

18 Abstraktion... C: min (a, b, c) int a, b, c; { if (a < b && a < c) return a; if (b < c) return b; return c; } DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

19 Abstraktion... Funktioner i Scheme kan återsända sammansatta värden: (define (minmax x) (define (inner x min max) (cond ((null? x) (list min max)) ((< (car x) min) (inner (cdr x) (car x) max)) ((> (car x) max) (inner (cdr x) min (car x))) (else (inner (cdr x) min max)))) (inner (cdr x) (car x) (car x))) DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

20 Abstraktion... Och i Python också def minmax(v); min = max = v[0] for i in range(1, len(v)): if v[i] < min: min = v[i] elif v[i] > max: max = v[i] DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

21 Abstraktion... Procedurabstraktioner är abstraktioner som endast arbetar via bieffekter, t.ex. skiver till fil, uppdaterar globala variabler... I funktionella språk åstadkoms procedurabstraktioner genom att vissa funktioner får returnera ett resultat som man inte tar hand om eftersom resultatet är irrelevant för funktionen och ingen är intresserad av det. Ex: Scheme: (define (errormsg msg) (display msg) (newline)) DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

22 Abstraktion... En abstraktion skall vara väldefinierad Abstraktionen skall utföra endast en (ev komplex) arbetsuppgift, och utföra denna enda uppgift väl (= korrekt och effektivt). modulärt begriplig Abstraktionen skall ha en betydelse även ryckt ur sitt sammanhan, dvs inte arbeta med globala storheter (skicka allt med parametrarna). robust Abstraktionen upptäcker när indata ligger utanför definitionsområdet och hanterar felsituationer på ett relevant sätt. väldokumenterad Abstraktionen skall vara försedd med pre- och postvillkor och om delar av algoritmen är svårbegriplig skall denna del vara kommenterad DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

23 Abstraktion... I vissa språk kan vi göra högre ordningens abstraktioner: Funktioner och procedurer som tar funktioner och procedurer som parametrar och genererar funktioner def gen_do_to_each(to_do): def do_to_each(a_list): tmp = list() for i in a_list: tmp.append(to_do(i)) return tmp refturn do_to_each (define (gen-do-to-each f) (lambda (a-list) (if (null? a-list) () (cons (f (car alist)) ((gen-do-to-each (cdr alist) f)))) DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

24 Abstraktion... Funktioner som ger funktioner som resultat (define (power n) (lambda (x) (expt x n))) ML med: fun upcasechar (s: string) = if ord s >= ord "a" andalso ord s <= ord "z" then chr (ord s + ord "A" - ord "a") else s; kan upcase skrivas som: val upcase = implode o map (upcasechar) o explode; DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

25 Parametrar För att en abstraktion skall vara modulärt begriplig måste alla strukturer och storheter som används av abstraktionen sändas som parametrar. Det är då viktigt att parametrarna sänds med rätt mekanism. Olika språk ger då olika möjligheter, beroende på vad som kan sändas och vilka mekanismer man kan använda. Traditionellt skiljer man på tre olika mekanismer DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

26 Värdeöverföring Grundläggande mekanism i de flesta programspråken. Den aktuella parametern beraäknas och det erhållna värdet substitueras in för varje förekomst av den formella parametern i algoritmen. FUNCTION f(x, y: Integer): Integer; BEGIN x := x + y; f := 2 * x END; DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

27 Referensöverföring I Pascal sker referensöverföring om parametern föregås av VAR eller om parametern är en funktion eller procedur. Det innebär att den formella parameter är en referens till den aktuella parametern. En referens kan ses som en adress till den aktuella variabeln, proceduren eller funktionen. PROCEDURE minmax(v: vector; VAR min, max: Integer); VAR i: index; BEGIN min := v[1]; max := v[1]; FOR i := 2 TO maxindex DO IF v[i] < min THEN min := v[i] ELSE IF v[i] > max THEN max := v[i]; END; DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

28 Namnöverföring Den aktuella parametern evalueras inte förrän den förekommer i algoritmen, d v s att den aktuella parametern, utan evaluering, substitueras för varje förekomst av den formella parametern. Ex (Simula): REAL PROCEDURE sum(x, i, m, n); NAME x, i; REAL x; INTEGER i, m, n; BEGIN REAL summa; summa := 0; FOR i := m STEP 1 UNTIL n DO summa := summa + x; sum := summa END; anropet OutFix(sum(a(i) * b(i), i, 1, 100), 10, 5); ger a(1) * b(1) + a(2) * b(2) a(100) * b(100) Detta brukar även kallas lat evaluering, d v s inga parametrar evalueras förrän de behövs för beräkningen. Exemplet är också en bra illustration av att bieffekter ger obegripliga resultat ibland. DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

29 Parametrar... Intimt förknippat med de olika parameteröverföringsmekanismerna är beräkningsordning vid utförande av abstraktioners algoritmer. Med applikativ ordning beräknas alltid parametrars värden innan anropet till abstraktionen utförs. Med lat evaluering eller normal ordning erhålls en annan beräkningsordning, men där alla parametrar behandlas lika. Det går inte att evaluera procedur-/funktions-parametrar förrän då de förekommer i algoritmen vilka argument skulle man använda? Alltså låter man alla parametrar hanteras lika med sen eller lat evalueringsordning. Två språk av de jag känner till har lat evaluering Miranda (liknar ML) och Haskell, Två ger valmöjlighet Simula och Algol60 De flesta har applikativ ordning, men gör undantag för abstraktioner. DA2001 (Föreläsning 24) Datalogi 1 Hösten / 29

Omgivningar. Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem.

Omgivningar. Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem. Omgivningar Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem. (define (sqrroot c) (define (fixpoint guess c eps) (define

Läs mer

Abstraktion. procedurabstraktion. DA2001 (Föreläsning 26) Datalogi 1 Hösten / 27

Abstraktion. procedurabstraktion. DA2001 (Föreläsning 26) Datalogi 1 Hösten / 27 Abstraktion Inom programmeringstekniken används två former av abstraktion dataabstraktion och programabstraktion. Dataabstraktion handlar om aggregat för att gruppera samhörande data. Programabstraktion

Läs mer

Abstraktion. Abstraktion... Abstraktion... Abstraktion...

Abstraktion. Abstraktion... Abstraktion... Abstraktion... Abstraktion Inom programmeringstekniken används två former av abstraktion dataabstraktion och programabstraktion. Dataabstraktion handlar om aggregat för att gruppera samhörande data. Programabstraktion

Läs mer

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19 Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och

Läs mer

Typsystem. Typsystem... Typsystem... Typsystem... 2 *

Typsystem. Typsystem... Typsystem... Typsystem... 2 * Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och

Läs mer

Lagring... DA2001 (Föreläsning 23) Datalogi 1 Hösten / 68

Lagring... DA2001 (Föreläsning 23) Datalogi 1 Hösten / 68 Lagring... Variabler är dataobjekt som används för lagring av värden. Dessa värden kan uppdateras och avläsas. I imperativ programmering används variabler för att lagra tillståndet hos den värld man avbildar

Läs mer

Datalogi, grundkurs 1. Lösningsförslag till tentamen

Datalogi, grundkurs 1. Lösningsförslag till tentamen Datalogi, grundkurs 1 Lösningsförslag till tentamen 10 december 2008 1. a. Man testar med typiska värden, gränsvärden och värden utanför specificerad indatavärdemängd. Helst med alla permutationer av

Läs mer

Sista delen av kursen

Sista delen av kursen Sista delen av kursen handlar om hur program, delprogram och datatyper deklareras och vad det man åstadkommit egentligen betyder. Innehåll Syntaktisk (hur ser det ut) och semantisk (vad betyder det) beskrivning

Läs mer

Programspråkslingvistik. Sista delen av kursen. Ett programspråk

Programspråkslingvistik. Sista delen av kursen. Ett programspråk Sista delen av kursen Programspråkslingvistik handlar om hur program, delprogram och datatyper deklareras och vad det man åstadkommit egentligen betyder. Innehåll Syntaktisk (hur ser det ut) och semantisk

Läs mer

Datalogi, grundkurs 1. Lösningsförslag till tentamen

Datalogi, grundkurs 1. Lösningsförslag till tentamen Datalogi, grundkurs 1 Lösningsförslag till tentamen 6 maj 2000 1. För att proceduren sortera ska fungera som tänkt kan den se ut på följande sätt: const min = 1; max = 3; type tal = integer; index = min..max;

Läs mer

Sista delen av kursen

Sista delen av kursen Sista delen av kursen handlar om hur program, delprogram och datatyper deklareras och vad det man åstadkommit egentligen betyder. Innehåll Syntaktisk (hur ser det ut) och semantisk (vad betyder det) beskrivning

Läs mer

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken

Läs mer

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar

Läs mer

Pascal... Pascal. Pascal... Pascal...

Pascal... Pascal. Pascal... Pascal... ... Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken

Läs mer

Repetition i Pascal. Exemplen fac. Exemplen fac i Pascal. Exemplen fac motivering. Orginalet

Repetition i Pascal. Exemplen fac. Exemplen fac i Pascal. Exemplen fac motivering. Orginalet Repetition Introduktion Repetition i Exemplen fac Orginalet I Scheme använde vi rekursion för all slags repetition. Efterom Scheme är ett funktionellt språk återsänder alla språkkonstruktioner ett värde

Läs mer

I dag: Blockstruktur, omgivningar, problemlösning

I dag: Blockstruktur, omgivningar, problemlösning Förra gången Förra gången: Rekursiva procedurer I dag I dag: Blockstruktur, omgivningar, problemlösning (define add-1 (define add-2 (lambda (a b) (lambda (a b) (if (= a 0) (if (= a 0) b b (+ 1 (add-1 (add-2

Läs mer

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning 1 Dagens föreläsning Programmering i Lisp - Block, räckvidd - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning - Felhantering (kap 17) icke-normala återhopp catch

Läs mer

Föreläsning 9 Exempel

Föreläsning 9 Exempel Föreläsning 9 Exempel Intervallhalveringsmetoden DA2001 (Föreläsning 9) Datalogi 1 Hösten 2013 1 / 24 Föreläsning 9 Exempel Intervallhalveringsmetoden Newton-Raphsons metod DA2001 (Föreläsning 9) Datalogi

Läs mer

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 2015, kl 8 12

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 2015, kl 8 12 TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 215, kl 8 12 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.

Läs mer

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer

Läs mer

Föreläsning 3-4 Innehåll

Föreläsning 3-4 Innehåll Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå

Läs mer

Imperativ programmering. Föreläsning 2

Imperativ programmering. Föreläsning 2 Imperativ programmering 1DL126 3p Föreläsning 2 Imperativ programmering Kännetecken för imperativa språk: Programmet består av en serie instruktioner. Olika språk har olika uppsättningar av instruktioner.

Läs mer

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 1 2 - Block, räckvidd Dagens föreläsning Programmering i Lisp - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning - Felhantering (kap 17) icke-normala återhopp catch

Läs mer

Föreläsning 9 Exempel. Intervallhalveringsmetoden. Intervallhalveringsmetoden... Intervallhalveringsmetoden...

Föreläsning 9 Exempel. Intervallhalveringsmetoden. Intervallhalveringsmetoden... Intervallhalveringsmetoden... Föreläsning 9 Intervallhalveringsmetoden Intervallhalveringsmetoden Newton-Raphsons metod Mer om rekursion Tidskomplexitet Procedurabstraktion Representation Bra om ni läst följande avsnitt i AS: Procedures

Läs mer

TDDC74 Lab 04 Muterbara strukturer, omgivningar

TDDC74 Lab 04 Muterbara strukturer, omgivningar TDDC74 Lab 04 Muterbara strukturer, omgivningar 1 Översikt I den här laborationen kommer ni att lära er mer om: Tillstånd, och skillnader mellan ren funktionell programmering och imperativ. Skillnaden

Läs mer

Föreläsning 5: Introduktion av pekare

Föreläsning 5: Introduktion av pekare Föreläsning 5: Introduktion av pekare Det bör påpekas att det som tas upp i introduktionen inte är reella exempel på kod. Man anväder inte pekare till att peka på enstaka heltal som i exemplen nedan, men

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

BEGREPP HITTILLS FÖRELÄSNING 2 SAMMANSATTA UTTRYCK - SCHEME DATORSPRÅK

BEGREPP HITTILLS FÖRELÄSNING 2 SAMMANSATTA UTTRYCK - SCHEME DATORSPRÅK FÖRELÄSNING 2 Viss repetition av Fö1 Rekursivt fallanalys Rekursiva beskrivningar BEGREPP HITTILLS Konstant, Namn, Procedur/Funktion, LAMBDA, Parameter, Argument, Kropp, Villkor/Rekursion, Funktionsanrop,

Läs mer

Föreläsning 6: Introduktion av listor

Föreläsning 6: Introduktion av listor Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.

Läs mer

Tentamen Grundläggande programmering

Tentamen Grundläggande programmering Akademin för Innovation Design och Teknik Tentamen Grundläggande programmering Kurskod: DVA103 Datum 2012-06-11 Tid 14.10 16.30 Examinator: Lars Asplund Maxpoäng: 48 Betygsgränser: Betyg 3: 20 Betyg 4:

Läs mer

Språket Scheme. DAT 060: Introduktion till (funktions)programmering. DrScheme. uttryck. Jacek Malec m. fl. evaluering av uttryck.

Språket Scheme. DAT 060: Introduktion till (funktions)programmering. DrScheme. uttryck. Jacek Malec m. fl. evaluering av uttryck. DAT 060: Introduktion till (funktions)programmering. Jacek Malec m. fl. www.cs.lth.se/home/jacek Malec/dat060 Idag: 1. Kursens innehåll 2. Kursens organisation 3. Programmeringsspråket Scheme 4. Introduktion

Läs mer

Signalflödesmodellen. Två (gamla) exempel: Kvadratera alla jämna löv.

Signalflödesmodellen. Två (gamla) exempel: Kvadratera alla jämna löv. Strömmar (streams) De sista dagarna objekt med tillstånd modellerades som beräkningsobjekt med tillstånd. Isådana modeller är tiden modelerad (implicit) som en sekvens av tillstånd. För att kunna modellera

Läs mer

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära

Läs mer

Funktionell programmering DD1361

Funktionell programmering DD1361 Funktionell programmering DD1361 Tupler Två eller fler (men ändligt) antal element. Elementen kan vara av olika typer. Ex: (1,2) :: (Integer, Integer) (( 2, hejsan ), True) ::? Tupel med två element ->

Läs mer

Imperativ programmering. Imperativ programmering konstruktioner i Lisp. Datastrukturer (kap ) arraystruktur poststruktur

Imperativ programmering. Imperativ programmering konstruktioner i Lisp. Datastrukturer (kap ) arraystruktur poststruktur Imperativ programmering konstruktioner i Lisp Imperativ programmering I den imperativa programmeringen skriver vi program satsvist. Datastrukturer (kap.-.) aystruktur poststruktur Iterativa uttryck (avs.)

Läs mer

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1) Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet

Läs mer

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,

Läs mer

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan. Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen

Läs mer

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python Repetition i Python 3 Exemplen fac Orginalet I Scheme använde vi rekursion för all slags repetition. Efterom Scheme är ett funktionellt språk återsänder alla språkkonstruktioner ett värde men i Python

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

Föreläsning 5-6 Innehåll

Föreläsning 5-6 Innehåll Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]

Läs mer

FÖRELÄSNING 2, TDDC74, VT2018 BEGREPP PROBLEMLÖSNING MED HJÄLP AV FALLANALYS PROBLEMLÖSNING MED HJÄLP AV REKURSION

FÖRELÄSNING 2, TDDC74, VT2018 BEGREPP PROBLEMLÖSNING MED HJÄLP AV FALLANALYS PROBLEMLÖSNING MED HJÄLP AV REKURSION FÖRELÄSNING 2, TDDC74, VT2018 Begrepp och definitioner (delvis från föreläsning 1) Fallanalys som problemlösningsmetod Rekursivt fallanalys Rekursiva beskrivningar och processer de kan skapa Rekursiva

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering, abstraktion och modellering. Tentamen AID-nummer: Datum: 2011-06-10 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Fredag 10 juni

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Java Språket Utmatning av Sträng litteraler Variabler

Läs mer

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python. är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar

Läs mer

Java, klasser, objekt (Skansholm: Kapitel 2)

Java, klasser, objekt (Skansholm: Kapitel 2) Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma

Läs mer

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera först talet 37 med 2. Använd heltalsdivision. Det ger kvoten

Läs mer

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python. är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar

Läs mer

Typkonvertering. Java versus C

Typkonvertering. Java versus C Typer Objektorienterad programmering E Typkonvertering Typkonvertering Satser: while, for, if Objekt Föreläsning 2 Implicit konvertering Antag att vi i ett program deklarerat int n=3; double x = 5.2; Då

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java

Läs mer

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java

Läs mer

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

Datalogi, grundkurs 1

Datalogi, grundkurs 1 Datalogi, grundkurs 1 Fiktiv Tentamen Lösningsförslag och kommentarer 1. Lösningsförslaget nedan förutsätter ingenting om filens innehåll och är alltså mer generell än nödvändigt: alfa= ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ

Läs mer

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser Introduktion till programmering Föreläsning 2: Variabler, uttryck och satser 1 1 Värden De grundläggande saker som en dator manipulerar resultaten av beräkningar kallas värden Värden vi stött på: 2 och

Läs mer

Classes och Interfaces, Objects och References, Initialization

Classes och Interfaces, Objects och References, Initialization Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class

Läs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

DD1361 Programmeringsparadigm. Carina Edlund

DD1361 Programmeringsparadigm. Carina Edlund DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp

Läs mer

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

Läs mer

Föreläsning REPETITION & EXTENTA

Föreläsning REPETITION & EXTENTA Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet

Läs mer

Grundläggande datalogi - Övning 1

Grundläggande datalogi - Övning 1 Grundläggande datalogi - Övning 1 Björn Terelius October 30, 2008 Python är ett tolkat språk som kan köras interaktivt. tcs-ray:~/grudat08>python >>> 11+3*4 23 >>> a = 15 >>> b=a >>> print "a =", a, "b

Läs mer

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t. Föreläsning 11 Arrayer Arrayer Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt int[] tal = new int[3]; Kan ha en array av t.ex: Heltal (int) Tecken (char) Personer (objekt av klassen

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen ID1004 Objektorienterad programmering October 29, 2013 Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

Läs mer

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305 Klass Object, instans av klass public/private Klassvariabler och klassmetoder 1 Array och ArrayList Arrayer och ArrayList är till för att innehålla

Läs mer

Datalogi, grundkurs 1

Datalogi, grundkurs 1 Datalogi, grundkurs 1 Tentamen 10 december 2008 konverterad till Python Hjälpmedel: Kommer att finnas i skrivsalarna, bl.a. Revised 6 Report on the Algorithmic Language Scheme och två olika s.k. Cheat

Läs mer

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering, abstraktion och modellering. Tentamen AID-nummer: Datum: 2011-08-17 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Onsdag 17 augusti

Läs mer

Tentamen i. TDDA 69 Data och programstrukturer

Tentamen i. TDDA 69 Data och programstrukturer 1 Linköpings tekniska högskola Institutionen för datavetenskap Anders Haraldsson Tentamen i TDDA 69 Data och programstrukturer Torsdag den 14 januari 2009, kl 14-18 Hjälpmedel: Inga. Poänggränser: Maximalt

Läs mer

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering, abstraktion och modellering. Tentamen AID-nummer: Datum: 2011-01-11 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Tisdag 11 januari

Läs mer

Våra enkla funktioner eller procedurer

Våra enkla funktioner eller procedurer Föreläsning 3 Våra enkla funktioner eller procedurer Programmönster 1. Repetition 2. Högre-ordningens procedurer/programmönster - Procedurer som argument - Procedurer som returnerade värden 3. Scope och

Läs mer

Funktioner. Linda Mannila

Funktioner. Linda Mannila Funktioner Linda Mannila 13.11.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Samlingsdatatyp Listan Utskrift Indata Felhantering Intro till funktioner och moduler Villkorssatsen

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga

Läs mer

Parameteröverföring. Exempel. Exempel. Metodkropp

Parameteröverföring. Exempel. Exempel. Metodkropp Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I

Läs mer

Föreläsning 2, vecka 8: Repetition

Föreläsning 2, vecka 8: Repetition TDA 548: Grundläggande Programvaruutveckling Föreläsning 2, vecka 8: Repetition Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Idag Metoder och terminologi Referensvärden och arrays Interface och ritning

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (

Läs mer

Pascal. Vi har ofta behov av att behandla klumpar av data som i sig är inhomogena men sett över ett helt register har klumparna lika struktur.

Pascal. Vi har ofta behov av att behandla klumpar av data som i sig är inhomogena men sett över ett helt register har klumparna lika struktur. Poster Vi har ofta behov av att behandla klumpar av data som i sig är inhomogena men sett över ett helt register har klumparna lika struktur. TYPE car = RECORD model : 1900..2000; ndoors : 2..5; weight

Läs mer

Poster... Poster. Poster... Poster...

Poster... Poster. Poster... Poster... Poster Vi har ofta behov av att behandla klumpar av data som i sig är inhomogena men sett över ett helt register har klumparna lika struktur. TYPE car = RECORD model : 1900..2000; ndoors : 2..5; weight

Läs mer

2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]

2 b) Följande finns definierat: public class Spel String titel = Spel; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice(Röd); tärningar[1] Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B2 och V1. Tentamen (1p) 12 januari 2002, kl 14.00 17.00 Hjälpmedel: En javabok(det blå javahäftet som ingår i kursbunten räknas som en javabok.

Läs mer

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering, abstraktion och modellering. Tentamen AID-nummer: Datum: 2012-01-10 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Tisdag 10 januari

Läs mer

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12 TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.

Läs mer

Sökning och sortering

Sökning och sortering Sökning och sortering Att söka efter data man lagrat undan för senare användning är vanligt Egentligen har man ingen annan anledning för att lagra undan data Har man mycket data och många sökningar måste

Läs mer

Poster. Vi har ofta behov av att behandla klumpar av data som i sig är inhomogena men sett över ett helt register har klumparna lika struktur.

Poster. Vi har ofta behov av att behandla klumpar av data som i sig är inhomogena men sett över ett helt register har klumparna lika struktur. Poster Vi har ofta behov av att behandla klumpar av data som i sig är inhomogena men sett över ett helt register har klumparna lika struktur. TYPE car = RECORD model : 1900..2000; ndoors : 2..5; weight

Läs mer

Skillnader mellan Python och Java

Skillnader mellan Python och Java Java Utvecklat på SUN Microsystems mitten 1990-talet Ursprungligen för Webprogram Nu mycket spritt Massor med läroböcker Vi använder Lewis&Loftus http://javasuncom/javase/6/docs/api/ Skillnader mellan

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis

Läs mer

Sätt att skriva ut binärträd

Sätt att skriva ut binärträd Tilpro Övning 3 På programmet idag: Genomgång av Hemtalet samt rättning Begreppet Stabil sortering Hur man kodar olika sorteringsvilkor Inkapsling av data Länkade listor Användning av stackar och köer

Läs mer

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34 Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger

Läs mer

F4. programmeringsteknik och Matlab

F4. programmeringsteknik och Matlab Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner

Läs mer

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java (Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart

Läs mer

TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017

TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017 FÖRELÄSNING 1 TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017 Introduktion till kursen Schemespråkets grunder Enkla exempel Jalal Maleki Institutionen för datavetenskap Linköpings universitet

Läs mer

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det? Föreläsning 10 Datalogi 1 DA2001 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer på skärmen print( Hej ) print( Hur är det?

Läs mer

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

2 b) Följande finns definierat: public class Käk String titel = Chili con carne; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda(Svartpe Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för I1, K2, L1, M1, Media1 och T1. Tentamen (1p) 6 april 2002, kl 14.00 17.00 Hjälpmedel: En javabok(det blå javahäftet som ingår i kursbunten räknas

Läs mer

n Detta för att kunna koncentrera oss på n Tal: number? n Symboler: symbol? n Strängar: string? n Tecken: char? n Boolskt: boolean?

n Detta för att kunna koncentrera oss på n Tal: number? n Symboler: symbol? n Strängar: string? n Tecken: char? n Boolskt: boolean? Tidigare TDDC74 Programming: Abstraktion och modellering Föreläsning 4 Symboler, Par, Listor Representation av par, Grafisk notation för par Representation av listor mha par Typiska listhanteringsprocedurer

Läs mer

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det

Läs mer

Objektorientering: Lagring, räckvidd och livstid

Objektorientering: Lagring, räckvidd och livstid TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Objektorientering: Lagring, räckvidd och livstid Tre sorters variabler, två sorters metoder Räckvidd och livstid 2 Variabler (lokala och medlemsvariabler)

Läs mer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.axelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer