12. Relationer och funktioner
|
|
- Ann-Sofie Lindqvist
- för 6 år sedan
- Visningar:
Transkript
1 Objektorienterad modellering och diskreta strukturer 12. Relationer och funktioner Sven Gestegård Robertz Institutionen för datavetenskap, LTH 2013
2 Laboration 4 Syntaxanalys Grammatik för (vår delmängd av) satslogiska uttryck e x p r : : = p r i m a r y ( ' > ' p r i m a r y )? p r i m a r y : : = term ( ' ' term ) term : : = f a c t o r ( '& ' f a c t o r ) f a c t o r : : = ID '! ' f a c t o r ' ( ' e x p r ' ) ' Laboration 4 Syntaxanalys 12. Relationer och funktioner 2/39
3 Laboration 4 Klasser Givet Scanner.java färdig Parser.java skelett ParserException.java färdig ParserTest.java färdig SimpleParserTest.java färdig Förberedelse: Kapitel 7 i Diskreta strukturer Börja implementera! Laboration 4 Syntaxanalys 12. Relationer och funktioner 3/39
4 Scanner.java p u b l i c c l a s s S c a n n e r { p u b l i c s t a t i c f i n a l i n t EOF = 1, VARIABLE = 2, IMPLIES = 3; p u b l i c S c a n n e r ( S t r i n g s t r i n g ) p u b l i c i n t nexttoken ( ) p u b l i c S t r i n g t o k e n ( ) nexttoken() returnerar ASCII-koden (>= 0) för symboler (tokens) som består av ett tecken. För övriga returneras en av konstanterna EOF, VARIABLE, IMPLIES. token() returnerar ett String-objekt som innehåller strängen som representerar en symbol med typ enligt nexttoken() Laboration 4 Syntaxanalys 12. Relationer och funktioner 4/39
5 Parser.java p u b l i c c l a s s P a r s e r { p r i v a t e S c a n n e r s c a n n e r ; p r i v a t e i n t t o k e n ; p r i v a t e Expr e x p r ( ) { // e x p r : : = p r i m a r y ( ' > ' p r i m a r y )?... p r i v a t e Expr p r i m a r y ( ) {// p r i m a r y : : = term ( ' ' term ) Struktur: klassen har en metod för varje produktion i grammatiken token är ett attribut i Parser För varje produktion gäller konventionen att när metoden returnerar ska token innehålla nästa symbol Laboration 4 Syntaxanalys 12. Relationer och funktioner 5/39
6 Parser.java p u b l i c Expr b u i l d ( S t r i n g i n p u t ) { r e t u r n b u i l d ( new S t r i n g R e a d e r ( i n p u t ) ) ; p r i v a t e Expr e x p r ( ) { Expr r e s u l t ; r e s u l t = p r i m a r y ( ) ; r e t u r n r e s u l t ; p r i v a t e Expr p r i m a r y ( ) { Expr r e s u l t ; r e s u l t = term ( ) ; r e t u r n r e s u l t ; Laboration 4 Syntaxanalys 12. Relationer och funktioner 6/39
7 Parser.java p r i v a t e Expr term ( ) { Expr r e s u l t ; r e s u l t = f a c t o r ( ) ; r e t u r n r e s u l t ; p r i v a t e Expr f a c t o r ( ) { s w i t c h ( t o k e n ) { d e f a u l t : throw new P a r s e r E x c e p t i o n ( " Unexpected " + s c a n n e r. t o k e n ( ) ) ; Laboration 4 Syntaxanalys 12. Relationer och funktioner 7/39
8 Rekaputilation Vi har talat om satslogik och härledning predikatlogik och substitution mängder och språk reguljära uttryck och grammatiker Vi kommer att tala om relationer funktioner Relationer 12. Relationer och funktioner 8/39
9 Exempel på relationer 1 3 P (x, y) Per Erik friend(per, erik) 3 {1, 3, 5 expr '+' expr INT '+' expr {p, p q q Relationer 12. Relationer och funktioner 9/39
10 Relation En binär relation har två operander. Om den första operanden tillhör mängden A och den andra mängden B så är det en relation från A till B eller mellan A och B (ordningen är signikant). Mängden av relationer mellan A och B betecknas (i kursen) A B. Om A = B så säger vi att det är en relation på A. Relationer 12. Relationer och funktioner 10/39
11 Aktivitet När vi diskuterar naturliga tal och skriver 3 {1, 3, 5 och 5 {1, 5 så är en relation mellan två mängder; Vilka? N P(N) Relationer 12. Relationer och funktioner 11/39
12 Relationen friend Exempel Om vi har en mängd av fyra personer {per, erik, anna, eva så kan det gälla att friend = {(erik, anna), (anna, erik), (per, anna), (per, erik). Relationer 12. Relationer och funktioner 12/39
13 Denition En binär relation från mängden A till mängden B är en delmängd av A B. Relationer 12. Relationer och funktioner 13/39
14 Java-modell p u b l i c c l a s s R e l a t i o n <A, B> { p r i v a t e Set<P a i r <A, B>> r e l a t i o n = new HashSet<P a i r <A, B> >(); p u b l i c v o i d add (A a, B b ) { s e t. add ( new P a i r <A, B>(a, b ) ) ; p u b l i c boolean r e l a t e d (A a, B b ) { r e t u r n r e l a t i o n. c o n t a i n s (new P a i r <A, B>(a, b ) ) ; En icke-generisk version av Pair nns i F10. Relationer 12. Relationer och funktioner 14/39
15 Det normala skrivsättet för en relation Denition x ρ y = (x, y) ρ Ibland skriver jag (ρ) när jag vill markera att det är mängden och inte operatorn som avses. Relationer 12. Relationer och funktioner 15/39
16 Likhetsrelationen (=) = {(x, x) x A = A = {(x, x) x A Relationer 12. Relationer och funktioner 16/39
17 Aktivitet Vad är det för fel på < = {(x, y) N N x < y Vi kan inte använda < för att deniera < Denition < = {(x, y) N N z N. x + z + 1 = y Relationer 12. Relationer och funktioner 17/39
18 Mängdoperationer på relationer Eftersom relationer är mängder så kan vi använda relationer tillsammans med mängdoperationerna. ( ) = (<) (=) (<) = ( ) (=) Relationer 12. Relationer och funktioner 18/39
19 Domän och kodomän Denition Låt ρ vara en relation mellan A och B. dom (ρ) = {x A y. (x, y) ρ ran (ρ) = {y B x. (x, y) ρ Relationer 12. Relationer och funktioner 19/39
20 Exempel Med friend = {(erik, anna), (anna, erik), (per, anna) så är dom (friend) = {per, erik, anna ran (friend) = {erik, anna Relationer 12. Relationer och funktioner 20/39
21 Bild och argumentmängd Ibland denierar man bilden av x under relationen ρ, x ρ, samt argumentmängden till y under ρ, ρ y Denition Låt ρ vara en relation mellan A och B med x A och y B. x ρ = {y B x ρ y ρ y = {x A x ρ y Relationer 12. Relationer och funktioner 21/39
22 Aktivitet Finns det något enkelt sätt att beskriva mängden av alla relationer mellan A och B med hjälp av våra mängdoperationer? A B = P(A B) Relationer 12. Relationer och funktioner 22/39
23 Om equals i Object The equals method implements an equivalence relation on non-null object references: It is reexive: for any non-null reference value x, x.equals(x) should return true. It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true. It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true. It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modied. For any non-null reference value x, x.equals(null) should return false. Relationer 12. Relationer och funktioner 23/39
24 Variable.java från lab 2 p u b l i c c l a s s V a r i a b l e extends Expr { p r i v a t e S t r i n g name ; p u b l i c boolean e q u a l s ( O b j e c t o b j e c t ) { i f (! ( o b j e c t i n s t a n c e o f V a r i a b l e ) ) r e t u r n f a l s e ; V a r i a b l e o t h e r = ( V a r i a b l e ) o b j e c t ; r e t u r n name. e q u a l s ( o t h e r. name ) ; p u b l i c i n t hashcode ( ) { r e t u r n name. hashcode ( ) ; equals() är inte symmetrisk. Relationer 12. Relationer och funktioner 24/39
25 FinalVariable.java p u b l i c c l a s s F i n a l V a r i a b l e extends V a r i a b l e { p u b l i c boolean e q u a l s ( O b j e c t o b j e c t ) { i f (! ( o b j e c t i n s t a n c e o f F i n a l V a r i a b l e ) ) r e t u r n f a l s e ; r e t u r n s u p e r. e q u a l s ( o b j e c t ) ; V a r i a b l e a1 = new V a r i a b l e ( " a " ) ; V a r i a b l e a2 = new F i n a l V a r i a b l e ( " a " ) ; a1. e q u a l s ( a2 ) > t r u e a2. e q u a l s ( a1 ) > f a l s e Relationer 12. Relationer och funktioner 25/39
26 Variable.java med Eclipse: Generate equals and hashcode p u b l i c boolean e q u a l s ( O b j e c t o b j ) { i f ( t h i s == o b j ) r e t u r n t r u e ; i f ( o b j == n u l l ) r e t u r n f a l s e ; i f ( g e t C l a s s ( )!= o b j. g e t C l a s s ( ) ) r e t u r n f a l s e ; V a r i a b l e o t h e r = ( V a r i a b l e ) o b j ; i f ( name == n u l l ) { i f ( o t h e r. name!= n u l l ) r e t u r n f a l s e ; e l s e i f (! name. e q u a l s ( o t h e r. name ) ) r e t u r n f a l s e ; r e t u r n t r u e ; Relationer 12. Relationer och funktioner 26/39
27 Egenskaper Denition Låt ρ vara en binär relation på A. ρ är reexiv om x ρ x för alla x A ρ är symmetrisk om x ρ y y ρ x för alla x, y A ρ är transitiv om x ρ y y ρ z x ρ z för alla x, y, z A ρ är antisymmetrisk om x ρ y y ρ x x = y för alla x, y A Om ρ är reexiv, symmetrisk och transitiv så är det en ekvivalens-relation. Exempel: är antisymmetrisk = är både symmetrisk och antisymmetrisk Relationer 12. Relationer och funktioner 27/39
28 == i Java är inte transitiv Finns det x, y och z så att x==y -> true y==z -> true x==z -> false int x = Integer.MAX_VALUE; float y = Integer.MAX_VALUE; int z = Integer.MAX_VALUE - 1; Relationer 12. Relationer och funktioner 28/39
29 Sammansättning Denition Låt ρ 1 vara en relation mellan A och B och ρ 2 en relation mellan B och C. Sammansättningen av ρ 1 och ρ 2 är ρ 1 ; ρ 2 = {(x, z) A C y B. x ρ1 y y ρ 2 z Relationer 12. Relationer och funktioner 29/39
30 Sammansättning c a b d e f g h i {(b, d), (b, e), (c, d) ; {(d, h), (e, h), (f, h), (f, g) = {(b, h), (c, h) Relationer 12. Relationer och funktioner 30/39
31 Aktivitet Denition Låt ρ 1 vara en relation mellan A och B och ρ 2 en relation mellan B och C. Sammansättningen av ρ 1 och ρ 2 är ρ 1 ; ρ 2 = {(x, z) A C y B. x ρ1 y y ρ 2 z Vad betyder < ; < på mängden {0, 1, 2? Mindre än med minst 2 Låt cousin(x, Y ) betyda att X är kusin till Y. Betyder cousin; cousin samma sak som nästkusin (tremänning)? nej Relationer 12. Relationer och funktioner 31/39
32 Invers och motsats Denition Låt ρ vara en relation mellan A och B. Inversen till ρ är ρ 1 = {(y, x) B A x ρ y Denition Låt ρ vara en relation mellan A och B. Motsatsen till ρ är ρ = A B ρ Motsatsen kan även kallas Komplement. Jfr mängdoperationerna. Relationer 12. Relationer och funktioner 32/39
33 Funktioner Exempel f(x) = x + 1 sqr(y) = y 2 { abs(x) = x, om x 0 x, om x < 0 Funktioner 12. Relationer och funktioner 33/39
34 not(b) = { F, om b = T T, om b = F not = {(F, T), (T, F) Funktioner 12. Relationer och funktioner 34/39
35 Denition f är en funktion från A till B om f A B och (a 1, b 1 ), (a 1, b 2 ) f (b 1 = b 2 ) f : A B = {f A B (a 1, b 1 ), (a 1, b 2 ) f (b 1 = b 2 ) Funktioner 12. Relationer och funktioner 35/39
36 Domän, kodomän och sammansättning dom och ran denieras som för relationer Sammansättning denieras (f g)(x) = f(g(x)). Sammansättningen av två funktioner är en funktion. Unionen av två funktioner är oftast inte en funktion. Varför? Eftersom första elementet i ett par måste vara unikt, enligt (a 1, b 1 ), (a 1, b 2 ) f (b 1 = b 2 ) Funktioner 12. Relationer och funktioner 36/39
37 Funktioner i Scala Programmet v a l add1 = ( x : I n t ) => x + 1 v a l add100 = ( x : I n t ) => x v a l sq = ( x : I n t ) => x x v a l add1sq = sq compose add1 // e l l e r : add1 andthen s q v a l l i s t = 1 t o 5 p r i n t l n ( add1 ( 1 ) ) p r i n t l n ( l i s t. map( add1sq andthen add100 ) Ger utskriften 2 V e c t o r ( 1 0 4, 109, 116, 125, 136)... och det nns en funktion för att sätta samman en lista av funktioner: v a l f l i s t = L i s t ( add1, sq, ( x : I n t ) => x + 100) v a l f c = F u n c t i o n. c h a i n ( f l i s t ) // f c = en f u n k t i o n I n t > I n t Funktioner 12. Relationer och funktioner 37/39
38 java.util.function i Java8 Lambda-notation, är (i Java8 ) kortform för att skapa en anonym klass som implementerar ett interface. ( SomeClass o ) > o. getx ( ) > 0 ; o > o. getx ( ) > 0 ; En mängd interface: Function (ettställig funktion från T till R): T R Consumer (ettställig funktion från T till void) T Predicate (ettställig funktion från T till boolean) T B Supplier (nollställig funktion till R). R BiFunction (tvåställig funktion från T och U till R). T U R Notera att ovanstående Function m specicerar metoder men inte nödvändigtvis funktioner enligt vår denition, då de kan ha sidoeekter, och två anrop av en metod med samma parameter kan ge olika resultat. Funktioner 12. Relationer och funktioner 38/39
39 import j a v a. u t i l. f u n c t i o n. P r e d i c a t e ;... i n t e r f a c e P e r s o n { p u b l i c enum Sex { MALE, FEMALE p u b l i c i n t getage ( ) ; p u b l i c Sex g e t G e n d e r ( ) ; p u b l i c v o i d p r i n t P e r s o n ( ) ; p u b l i c c l a s s LambdaExample { p u b l i c v o i d p r i n t P e r s o n s ( L i s t <Person> p e r s o n s, P r e d i c a t e <Person> i n c l u d e ) { f o r ( P e r s o n p : p e r s o n s ) { i f ( i n c l u d e. t e s t ( p ) ) { p. p r i n t P e r s o n ( ) ; p u b l i c v o i d example ( L i s t <Person> p l i s t ) { p r i n t P e r s o n s ( p l i s t, p >t r u e ) ; // a l l p e r s o n s p r i n t P e r s o n s ( p l i s t, ( P e r s o n p ) > ( p. g e t G e n d e r ( ) == P e r s o n. Sex.MALE && p. getage ( ) >= 18) // a d u l t m a l e s ) ; Funktioner 12. Relationer och funktioner 39/39
12. Relationer och funktioner
Objektorienterad modellering och diskreta strukturer 12. Relationer och funktioner Sven Gestegård Robertz Datavetenskap, LTH 2014 Laboration 4 Syntaxanalys Grammatik för (vår delmängd av) satslogiska uttryck
Grammatik. BNF-grammatik
Grammatik Objektorienterad modellering och diskreta strukturer / design Grammatik Reguljära uttryck klarar inte av att beskriva mängden av aritmetiska uttryck. Lennart Andersson Reviderad 2010 10 07 2010
10. Mängder och språk
Objektorienterad modellering och diskreta strukturer 10. Mängder och språk Sven Gestegård Robertz Institutionen för datavetenskap, LTH 2013 Rekaputilation Vi har talat om satslogik, predikatlogik och härledning
Objektorienterad modellering och diskreta strukturer. 13. Problem. Sven Gestegård Robertz. Datavetenskap, LTH
Objektorienterad modellering och diskreta strukturer 13. Problem Sven Gestegård Robertz Datavetenskap, LTH 2014 Rekaputilation Vi har talat om satslogik och härledning predikatlogik och substitution mängder
9. Predikatlogik och mängdlära
Objektorienterad modellering och diskreta strukturer 9. Predikatlogik och mängdlära Sven Gestegård Robertz Datavetenskap, LTH 2014 Rekaputilation Vi har talat om satslogik naturlig härledning predikatlogik
Datastrukturer och algoritmer
Innehåll Föreläsning 3 Fält och Tabell Att läsa: Kapitel 5-6 Fält Fält Modell Schackbräde Organisation n-dimensionellt fält organiserat som rätblock Elementen o alla elementen värden har samma datatyp
11. Reguljära uttryck och grammatiker
Objektorienterad modellering och diskreta strukturer 11. Reguljära uttryck och grammatiker Sven Gestegård Robertz Datavetenskap, LTH 2014 Rekaputilation Vi har talat om satslogik och härledning predikatlogik
Alfabeten, strängar och språk. String
Alfabeten, strängar och språk Objektorienterad modellering och diskreta strukturer / design Språk och reguljära uttryck Ett alfabet är en ändlig icketom mängd vars element kallas symboler. Lennart Andersson
11. Reguljära uttryck och grammatiker
Objektorienterad modellering och diskreta strukturer 11. Reguljära uttryck och grammatiker Sven Gestegård Robertz Datavetenskap, LTH 2015 Rekaputilation Vi har talat om satslogik och härledning predikatlogik
Övning 4. I denna övning ska vi titta på icke-muterbarhet kontra muterbarhet, samt metoderna equals, hashcode och clone.
TDA550 - Objektorienterad programvaruutveckling, fk Övning 4. I denna övning ska vi titta på icke-muterbarhet kontra muterbarhet, samt metoderna equals, hashcode och clone. Uppgift 1 Icke-muterbarhet kontra
TDDD78 Viktiga begrepp, del 2
jonas.kvarnstrom@liu.se 2015 TDDD78 Viktiga begrepp, del 2 Identitet och likhet Är likhet och identitet samma sak? Oj, vi har samma kläder på oss idag! Nej, men likadana! Besserwisser 3 Detta är två rutor
Två designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011)
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Innehåll Föreläsning 8 Två designmönster, MVC och Observer/Observable. Designrekommendation
7, Diskreta strukturer
Objektorienterad modellering och diskreta strukturer 7, Diskreta strukturer Sven Gestegård Robertz Datavetenskap, LTH 2015 Modeller Matematiska modeller Kontinuerliga modeller Kontinuerliga funktioner
DAT043 Objektorienterad Programmering
DAT043 Objektorienterad Programmering Detta är en exempeltenta som innehåller gamla tentauppgifter av ungefär liknande slag som ni kan förvänta er se på ordinarie tenta i Del 1 respektive Del 2. Dock är
Tentamen i Objektorienterad modellering och diskreta strukturer
Lunds Tekniska Högskola Datavetenskap Ulf Asklund, Sven Gestegård obertz Tentamen EDAF10 2014 10 31, 14.00 19.00 Tentamen i Objektorienterad modellering och diskreta strukturer Vid bedömningen kommer hänsyn
Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.
Institutionen för Datavetenskap Göteborgs universitet HT2008 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Innehåll Föreläsning 4 Exempel på listor (klassen ArrayList). Ett exempel med fält.
7, Diskreta strukturer
Objektorienterad modellering och diskreta strukturer 7, Diskreta strukturer Sven Gestegård Robertz Datavetenskap, LTH 2013 1 Inledning 2 Satslogik Inledning Satslogiska uttryck Resonemang och härledningar
TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P
UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr
Tentamen i Objektorienterad modellering och diskreta strukturer
Lunds Tekniska Högskola Datavetenskap Tentamen EDAF10 2016 10-26, 08:00 13:00 Tentamen i Objektorienterad modellering och diskreta strukturer Vid bedömningen kommer hänsyn att tas till lösningens kvalitet.
Tentamen i Objektorienterad modellering och diskreta strukturer
Lunds Tekniska Högskola Datavetenskap Ulf Asklund, Sven Gestegård obertz Tentamen EDAF10 2013 10 24, 8.00 13.00 Tentamen i Objektorienterad modellering och diskreta strukturer Vid bedömningen kommer hänsyn
Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/
Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Hashtabeller
TENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13:15
TENTAMEN I PROGRAMSPRÅK -- DVG C01 140605 kl. 08:15-13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Bilaga A: BNF-definition Betygsgräns: Kurs: Max 60p, Med beröm godkänd 50p, Icke utan beröm godkänd
8. Naturlig härledning och predikatlogik
Objektorienterad modellering och diskreta strukturer 8. Naturlig härledning och predikatlogik Sven Gestegård Robertz Datavetenskap, LTH 2013 Outline 1 Inledning 2 Inferensregler 3 Predikatlogik 8. Naturlig
Objektorienterad Programmering DAT043. Föreläsning 9 12/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)
Objektorienterad Programmering DAT043 Föreläsning 9 12/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Metoden clone() Skapa kopior av existerande objekt. Interface Cloneable Deep vs.
Objektorienterad programmering D2
Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste
Generiska konstruktioner. Kursbokens kapitel 13
Generiska konstruktioner Kursbokens kapitel 13 1 Vad är en generisk konstruktion? Generisk står för; allmän eller generell En generisk konstruktion kan användas för olika typer av data Med hjälp av templates
Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004
Lösningsförslag Programmeringsmetodik, KV: Java och OOP 17 januari 2004 Examinator: Johan Karlsson Skrivtid: 9-15 Hjälpmedel: En av följande böcker: Barnes & Kölling: Objects First With Java a practical
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
DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU
DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU lösningsförslag till tentamen 2017-06-09 Tid: 8:30-12:30. Plats: SB. Ansvarig lärare: Fredrik Lindblad,
Tentamen Programmeringsteknik 2 och MN Skrivtid: Inga hjälpmedel.
Tentamen Programmeringsteknik 2 och MN2 2006-03-10 Skrivtid: 0900-1400 Inga hjälpmedel. Tänk på följande OBS: För betygen 4, 5 och VG kommer något högre gränser än normalt användas. Skriv läsligt! Använd
Definition. Mängden av reguljära uttryck på alfabetet Σ definieras av. om α och β är reguljära uttryck så är (α β) ett reguljärt uttryck
Lunds tekniska högskola Datavetenskap Lennart Andersson Föreläsningsanteckningar EDAF10 6 Reguljära uttryck I unix-skal finns ange enkla mönster för filnamn med * och?. En del program, t ex emacs, egrep
Föreläsning 3. Stack
Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista ADT Stack Grundprinciper: En stack
TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).
1 (7) TENTAMEN: Objektorienterad programmering Läs detta! Uppgifterna är inte ordnade efter svårighetsgrad. Börja varje hel uppgift på ett nytt blad. Skriv inte i tesen. Ordna bladen i uppgiftsordning.
Föreläsning 2 Innehåll. Generiska klasser. Generik i Java. Varför generiska klasser Bakgrund
Föreläsning 2 Innehåll Generiska klasser Javas samlingsklasser är generiska. Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element metoden equals En generisk
public boolean containskey(string key) { return search(key, head)!= null; }
Tentamen Programmeringsteknik II 2009-05-26 med lösningar Skrivtid: 0900-1200 Uppgifter 1. Programbilagan ListMap.java innehåller en klass som implementerar en avbildning mellan mängden strängar och mängden
Lösningsförslag till exempeltenta 2
Lösningsförslag till exempeltenta 2 1 1. Beskriv hur man kan söka igenom en tvådimensionell array. Beskriv pseudokoden och förklara så klart som möjligt hur den fungerar. Lösning: Se laboration 3. - Beskriv
Inlämningsuppgift MiniPlotter
LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap EDAA01 Programmeringsteknik fördjupningskurs Inlämningsuppgift MiniPlotter I den här uppgiften ska ett program som ritar grafer av matematiska funktioner
Java Collections Framework. Föreläsning 2 Innehåll. Java Collections Framework interface hierarki. Java Collections Framework interface hierarki
Föreläsning 2 Innehåll Java Collections Framework (interface och klasser för samlingar av element) Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element skugga
TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2
TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2 Pelle Evensen, Daniel Wetterbro 5 november 2009 Sammanfattning Denna vecka ska vi titta på abstrakta klasser kontra interface,
Föreläsning 2 Innehåll
Föreläsning 2 Innehåll Java Collections Framework (interface och klasser för samlingar av element) Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element skugga
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
TDDD78 Objektorientering i Java, del 4. Hur vet man om två objekt är lika? Hur undviker man objekt och när?
TDDD78 Objektorientering i Java, del 4 Hur vet man om två objekt är lika? Hur undviker man objekt och när? jonas.kvarnstrom@liu.se 2016 Identitet och likhet Är identitet och likhet samma sak? Oj, vi har
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
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å
TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1
Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering
Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-6, TDA540 Dag: 207-0-24, Tid: 4.00-.00 Uppgift a) En abstrakt klass kan inte instansieras,
Övning vecka 4. Denna vecka ska vi titta på icke-muterbarhet kontra muterbarhet, samt metoderna equals, hashcode och clone.
TDA550 - Objektorienterad programvaruutveckling IT, fk Övning vecka 4. Denna vecka ska vi titta på icke-muterbarhet kontra muterbarhet, samt metoderna equals, hashcode och clone. Uppgift 1 Icke-muterbarhet
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
Föreläsning 2 Innehåll
Föreläsning 2 Innehåll Java Collections Framework (interface och klasser för samlingar av element) Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element skugga
F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander
F8 - Arv ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Arv och subklasser Klasser innehåller attribut och beteenden En subklass ärver dessa från föräldern Detta ger: Återanvänd kod
DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin
DD1361 Programmeringsparadigm Formella Språk & Syntaxanalys Föreläsning 4 Per Austrin 2015-11-20 Idag Rekursiv medåkning, fortsättning Olika klasser av språk och grammatiker Parsergeneratorer Sammanfattning
Föreläsning 8: Exempel och problemlösning
TDA 545: Objektorienterad programmering Föreläsning 8: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 De tre senaste föreläsningarna Läsanvisning: kap 2 & 13 meddelanden och
Tentamen i Objektorienterad modellering och design Helsingborg
Lunds Tekniska Högskola Datavetenskap Roger Henriksson, Mathias Haage, Emelie Engström Tentamen EDAF25 2015-10-28 Tentamen i Objektorienterad modellering och design Helsingborg 1. a. Klassdiagram Lösningar
Föreläsning 14 Innehåll
Föreläsning 14 Innehåll Abstrakta datatyper, datastrukturer Att jämföra objekt övriga moment i kursen Om tentamen Skriftlig tentamen både programmeringsuppgifter och teoriuppgifter Hitta fel i fingerade
Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:
Tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-17, TDA540 Dag: 2018-01-13, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar: Alex
Föreläsning 3 Innehåll. Generiska klasser. Icke-generisk lista ArrayList, skiss av implementering. Icke-generisk lista Risk för fel
Föreläsning 3 Innehåll Generiska klasser Implementera generiska klasser Exceptions Dokumentationekommentarer javadoc Enhetstestning - junit Man kan deklarera en eller flera typparametrar när man definierar
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Två fall: q Tom sekvens: () q Sekvens av element: (a b c) ; (sum-rec '(2 4 6)) = 12. q Första elementet uppfyller vissa villkor: (2 a b c)
Programmönster: # Listan som sekvens, Rekursiv process Enkel genomgång av sekvens (element på toppnivån i en lista)) TDDC60 Programmering: abstraktion och modellering Föreläsning 5 Rekursiva och iterativa
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander
F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean
Att skriva till och läsa från terminalfönstret
Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen
Föreläsning 7. Muterbara och icke-muterbara klasser Delegering Gränssnittet för en klass Metoden equals()
Föreläsning 7 Muterbara och icke-muterbara klasser Delegering Gränssnittet för en klass Metoden equals() Muterbara kontra icke-muterbara klasser Objekt som tillhör en icke-muterbar klass kan inte ändra
SI-pass 4. Johan Brook och Jesper Persson. 25 september 2012. Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.
SI-pass 4 Johan Brook och Jesper Persson 25 september 2012 1. Sant eller falskt? Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner. Interfaces i Java kan innehålla privata
Lösningsförslag till exempeltenta 1
Lösningsförslag till exempeltenta 1 1 1. Beskriv hur binärsökning fungerar. Beskriv dess pseudokod och förklara så klart som möjligt hur den fungerar. 2 Uppgift 1 - Lösning Huvudidé: - Titta på datan i
Föreläsning 9 Innehåll
Föreläsning 9 Innehåll Binära sökträd algoritmer för sökning, insättning och borttagning, implementering effektivitet balanserade binära sökträd, AVL-träd Abstrakta datatyperna mängd (eng. Set) och lexikon
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
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
Objektsamlingar i Java
1 (6) Objektsamlingar i Java Objektorienterad programmering 3 Syfte Att ge träning i att använda objektsamlingar i Java. Mål Efter övningen skall du kunna använda objektsamlingsklasserna ArrayList och
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,
Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
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[]
Tentamen, EDA501/EDAA20 Programmering M MD W BK L
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDA501/EDAA20 Programmering M MD W BK L 2017 05 31, 8.00 13.00 Anvisningar: Preliminärt ger uppgifterna 9 + 12 + 10 + 9 = 40 poäng.
TDDC77 Objektorienterad Programmering
TDDC77 Objektorienterad Programmering Föreläsning 3 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Operatorer Java Standard Library Inmatning Operatorer operatorer En operator är en
Tentamen Programmering fortsättningskurs DIT950
Tentamen Programmering fortsättningskurs Datum: 2015-03-17 Tid: 08.30-12.30 Hjälpmedel: Engelskt-Valfritt språk lexikon Betygsgränser: U: -23 G: 24-43 VG: 44-60 (max 60) Lärare:. Någon besöker ca 10.00
Java Collections Framework. Föreläsning 2 Innehåll. Java Collections Framework interface hierarki. Java Collections Framework interface hierarki
Föreläsning 2 Innehåll Java Collections Framework (interface och klasser för samlingar av element) Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element skugga
Klassen BST som definierar binära sökträd med tal som nycklar och enda data. Varje nyckel är unik dvs förekommer endast en
Tentamen Programmeringsteknik II 2017-10-23 Skrivtid: 14:00 19:00 Inledning Skrivningen innehåller ett antal bilagor: Bilagan listsandtrees innehåller fyra klasser: Klassen List med några grundläggande
Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.
Tentamen Programmeringsteknik II 2017-10-23 Skrivtid: 14:00 19:00 Tänk på följande Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper. Fyll i försättssidan
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
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
Obligatorisk uppgift 5
(5 oktober 2018 Symbolisk kalkylator 1 ) Obligatorisk uppgift 5 En kalkylator som hanterar uttryck symboliskt dvs värden är uttryck inte bara tal. Uppgiften exemplifierar: objektorientering återanvändning
Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10. Skriv bara på framsidan av varje papper.
Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10 Skrivtid: 0800-1300 Inga hjälpmedel. Tänk på följande Maximal poäng är 40. För betygen 3 krävs 18 poäng. För betygen 4, 5 kommer något
CHALMERS TENTAMEN. 2018/2019, lp 1 DAT050. Uno Holmer
TENTAMEN KURSNAMN Objektorienterad programmering, 7.5p PROGRAM: DAI 2 (TIDAL-2) 2018/2019, lp 1 KURSBETECKNING EXAMINATOR DAT050 Uno Holmer TID FÖR TENTAMEN Onsdagen den 28/8 2019, 08.30 12.30 HJÄLPMEDEL
Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.
Outline Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Undantag Design Hösttermin 2017 En frukt har ett namn Man kan lägga en frukt i
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Hashing Undantag Design Outline Hashing Undantag Design En frukt
Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad
1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen
TENTAMEN OOP
TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Seminarium 3 Introduktion till Java Collections Framework Innehåll. Generik Bakgrund. Exempel på en generisk klass java.util.arraylist.
Seminarium 3 Introduktion till Java Collections Framework Innehåll Generik Bakgrund Java Collections Framework interface och klasser för samlingar av element interfacen Iterator och Iterable och foreach-sats
Malmö högskola 2008/2009 CTS
Laboration 8 Avsikten med laborationen är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom
Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016
Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:
Malmö högskola 2007/2008 Teknik och samhälle
Laboration 8 Avsikten med denna laboration är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2018-03-16 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Malmö högskola 2007/2008 Teknik och samhälle
Laboration 9 Avsikten med denna laboration är att du ska jobba vidare med klasser. Uppgifterna går ut på att skriva metoder och att skriva konstruktorer. Laborationen bygger vidare på laboration 8. Skapa
Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/ Exempel: Implementation av Schackpjäser.
DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/3 2017 Innehåll Abstrakta klasser Klasshierarki och typhierarki Polymorfism och dynamisk bindning Polymorfi-exempel: Schack Klassen Object
Programmering II (ID1019) :00-12:00
ID1019 Johan Montelius Programmering II (ID1019) 2014-01-16 09:00-12:00 Förnamn: Efternamn: Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.
Tentamen i Objektorienterad modellering och design Helsingborg
Lunds Tekniska Högskola Datavetenskap Emelie Engström Tentamen EDAF25 2016 10-26, 08:00 13:00 Tentamen i Objektorienterad modellering och design Helsingborg Tentamen består av en teoridel om totalt 5 poäng
Föreläsning 13 Innehåll
Föreläsning 13 Innehåll Arv Repetition Om tentamen Datavetenskap (LTH) Föreläsning 13 HT 2017 1 / 32 Diskutera Här är början på klassen MemoryWindow som använts på en lab. Vad kan menas med extends SimpleWindow?
Del A (obligatorisk för alla)
Del A (obligatorisk för alla) A1. Ringa in rätt svarsalternativ eller skriv svar i ruta om sådan a) Satsen double x = (int)(1 + 3/2.0) + 3.; resulterar i b) Satsen int x = (int)(1 + 3/2.0) + 3.; resulterar
DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin
DD1361 Programmeringsparadigm Formella Språk & Syntaxanalys Föreläsning 3 Per Austrin 2015-11-13 Huvudkoncept hittils: Snabb repetition Formellt språk en mängd strängar Reguljära språk den klass av formella
Lösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 140828 a) public class MyMax { public static void main(string[] args) { //5 ändra String till String[] System.out.println("Maximum is: " + maximum(5, 7)); //2 ändra