Objectgericht programmeren 1.

Maat: px
Weergave met pagina beginnen:

Download "Objectgericht programmeren 1."

Transcriptie

1 Objectgericht programmeren 1 joost.vennekens@kuleuven.be

2 Objectgericht ontwerpen 35% Objectgericht ontwerpen 65% OP1 Informatiesystemen 50% Databanken 50% OP1

3 Evaluatie 40% permanente evaluatie practica 60% Examen 30% oefening Gesloten boek, schriftelijk Op PC, zoals in practica 30% theorie Gesloten boek, mondeling

4 Inhoud OOP Manier van denken over structuur van programma s In meer of mindere mate ondersteund door programmeertaal (C++, Python, ) In dit vak: Java

5 Java Strikte regels Sterk getypeerd Statisch getypeerd Onderscheid tussen ingebouwde en gebruikersgedefinieerde types Geen expliciet geheugenbeheer

6 Strikte regels Beperkingen Minder mogelijkheden Verbose en weinig elegant Hulpmiddelen Samenwerken Minder bugs,

7 Waarom Java? Grote projecten

8 Vergelijking Python: Flexibel, snel te programmeren -> prototypes en kleine projecten C/C++: Volledige controle aan programmeur, alles kan en mag -> snelle programma s Java: OO toeters & bellen, strenge compiler -> bugs vermijden

9 bottles-of-beer.net

10 class Bottles { public static String tekst(int b) { if (b == 0) return "no more"; else return "" + b; public static void main(string[] args) { boolean firsttime = true; for (int beers = 99; beers >= 0; beers--) { if (!firsttime) System.out.println(tekst(beers) + " bottle(s) of beer on the wall"); System.out.print("\n" + tekst(beers) + " bottle(s) of beer on the wall, "); System.out.println(tekst(beers) + " bottle(s) of beer"); if (beers > 0) System.out.print("take one down and pass it around, "); firsttime = false; System.out.println("go to the store, buy some more");

11 $ ls Bottles* Bottles.java $ javac Bottles.java $ ls Bottles* Bottles.class Bottles.java $ java Bottles Compileren Uit voeren 99 bottle(s) of beer on the wall, 99 bottle(s) of beer take one down and pass it around, 98 bottle(s) of beer on the wall 98 bottle(s) of beer on the wall, 98 bottle(s) of beer take one down and pass it around, 97 bottle(s) of beer on the wall... 2 bottle(s) of beer on the wall, 2 bottle(s) of beer take one down and pass it around, 1 bottle(s) of beer on the wall 1 bottle(s) of beer on the wall, 1 bottle(s) of beer take one down and pass it around, no more bottle(s) of beer on the wall no more bottle(s) of beer on the wall, no more bottle(s) of beer go to the store, buy some more $

12 Datatypes // Geheel int geheelgetal; long longergetal; // Komma float drijvendekomma; double dubbeleprecisie; // Tekst char letter; String stukjetekst; // Rijen int[] rij; int[][] matrix; // Booleaanse waardes boolean waaroffout;

13 While lus while (test) {... public void printaf(int[] rij) { int i = 0; while (i < rij.length) { System.out.println(rij[i++]);

14 For lus for (initializatie; test; stap) {... public void printaf(int[] rij) { for (int i = 0; i < rij.length; i++) { System.out.println(rij[i]);

15 If-then-else if (test) {... else {... public boolean isleeg(int[] rij) { if (rij.length > 0) { return true; else { return false;

16 Kwis (1) public static void main(string[] args) { int i = 9; int j = i; while (--i > 7) { for (int k = 2; k < i; k *= 2) { j += k; if (i < j) j++; else j--; System.out.println(j); 16

17 Objectgeorienteerd

18 Object is een verzameling van gegevens die samen een geheel vormen Werknemer Naam Joost Vennekens Geboortedatum 27/09/

19 Klasse Werknemer Naam Joost Vennekens Geboortedatum 27/09/1980 Zelfde structuur Werknemer Naam Herman Crauwels Geboortedatum ***

20 Klasse is een soort van object... is een verzameling van objecten met allemaal dezelfde structuur kan gebruikt worden als datatype

21 class Werknemer { // Aantal dagen sinds 01/01/1900 int geboortedatum; String naam; Attribuut public static void main(string[] arg) { // Een klasse kan gebruikt worden als datatype Werknemer joost = new Werknemer(); joost.naam = "Joost Vennekens"; joost.geboortedatum = 365*80+5*31+2* ;

22 class Datum { int dag; int maand; int jaar; class Werknemer { Datum geboortedatum; String naam; // String is ook gewoon een klasse, trouwens public static void main(string[] arg) { Werknemer joost = new Werknemer(); Datum d = new Datum(); d.dag = 27; d.maand = 9; d.jaar = 1980; joost.naam = "Joost Vennekens"; joost.geboortedatum = d;

23 Werknemer Naam Geboortedatum Naam Geboortedatum String Joost Vennekens Herman Crauwels Datum Dag 27 Maand 9 Jaar 1980 Dag ** Maand ** Jaar ****

24 Object = Gegevens + Gedrag

25 Vb:twee soorten datums class SindsDatum { int sindseenjanuari1980; public static SindsDatum eendagvroeger(sindsdatum vandaag) { SindsDatum gisteren = new SindsDatum(); gisteren.sindseenjanuari1980 = vandaag.sindseenjanuari1980-1; return gisteren; SindsDatum x = new SindsDatum(); x.sindseenjanuari1980 = 5*31+2* ; SindsDatum y = eendagvroeger(x);

26 Andere voorstelling class DMJDatum { int dag; int maand; int jaar;

27 public static DMJDatum eendagvroeger(dmjdatum vandaag) { DMJDatum gisteren = new DMJDatum(); if (vandaag.dag > 1) { // Niet de 1e van de maand gisteren.dag = vandaag.dag - 1; gisteren.maand = vandaag.maand; gisteren.jaar = vandaag.jaar; else { if (vandaag.maand > 1) { // 1e dag van maand gisteren.maand = vandaag.maand - 1; gisteren.jaar = vandaag.jaar; gisteren.dag = laatstedag(gisteren.maand, gisteren.jaar); else { // Nieuwjaar gisteren.maand = 12; gisteren.jaar = vandaag.jaar - 1; gisteren.dag = 31; return gisteren;

28 Conclusie Hoe gedrag geimplementeerd moet worden Hangt onafscheidelijk samen met hoe gegevens worden voorgesteld Dus: gedrag en gegevens horen samen

29 Object = Gegevens + Gedrag

30 Daarnet: class SindsDatum { int sindseenjanuari1980; public static SindsDatum eendagvroeger(sindsdatum vandaag) { SindsDatum gisteren = new SindsDatum(); gisteren.sindseenjanuari1980 = vandaag.sindseenjanuari1980-1; return gisteren; SindsDatum x = new SindsDatum(); x.sindseenjanuari1980 = 5*31+2* ; SindsDatum y = eendagvroeger(x);

31 class SindsDatum { Object wordt impliciet meegegeven this.sindseenjanuari1980 int sindseenjanuari1980; public SindsDatum eendagvroeger() { SindsDatum gisteren = new SindsDatum(); gisteren.sindseenjanuari1980 = sindseenjanuari1980-1; return gisteren; SindsDatum x = new SindsDatum(); x.sindseenjanuari1980 = 5*31+2* ; SindsDatum y = x.eendagvroeger();

32 class DMJDatum { int dag; int maand; int jaar; public DMJDatum eendagvroeger() {... DMJDatum x = new DMJDatum(); x.sindseenjanuari1980 = 365*80+5*31+2* ; DMJDatum y = x.eendagvroeger(); Juiste methode

33 Voordeel: Encapsulatie

34 class Datum {??? Datum x = new Datum(); x.vulin(27, 9, 1980); Datum y = x.eendagvroeger(); public void vulin(int dag, int maand, int jaar) {... public Datum eendagvroeger() {...

35 Ondersteuning voor encapsulatie Toegansniveaus private: voor niemand niets: voor klassen uit zelfde pakket protected: voor subklassen of uit hetzelfde pakket public: voor iedereen

36 class Datum { private int sindseenjanuari1980; public void vulin(int dag, int maand, int jaar) {... public Datum eendagvroeger() {... Datum x = new Datum(); x.vulin(27, 9, 1980); Datum y = x.eendagvroeger();

37 Constructors Object ook initializeren bij het aanmaken Niet meer Datum d = new Datum(); d.vulin(27,09,1980); maar: Datum d = new Datum(27,09,1980);

38 class Datum { public Datum () { dag = 1; maand = 1; jaar = 1980; public Datum(int d, int m, int j) { dag = d; maand = m; jaar = j; private int dag; private int maand; private int jaar; Datum d1 = new Datum(27,09,1980); Datum d2 = new Datum();

39 Constructor Als er geen constructors zijn, verzint de compiler er een zonder argumenten Andere constructor aanroepen: public class Werknemer { private int ancieniteit; private String naam; private Datum geboortedatum; public Werknemer() { ancieniteit = 1; public Werknemer(String n) { this (); naam = n; public Werknemer(String n, Datum g) { this (n); geboortedatum = g; public int getancieniteit() { return ancienieit; public void setancieniteit(int a) { ancienieit = a;

40 Vb: complexe getallen Complex getal: reeel en imaginair deel c = a + bi Optellen: (a+bi) + (a +b i) = a+a + (b+b )i Polaire voorstelling: magnitude r en argument φ a = r cos φ en b = r sin φ

41 public class ComplexGetal { /** Complex getal: reeel + imaginair * i **/ private double reeel; private double imaginair; public ComplexGetal(double r, double i) { reeel = r; imaginair = i; public double getreeel() { return reeel; public double getimaginair() { return imaginair; public ComplexGetal plus(complexgetal ander) { return new ComplexGetal(ander.getReeel() + getreeel(), ander.getimaginair() + getimaginair());

42 public class ComplexGetal { private double magnitude; private double argument; public ComplexGetal(double r, double i) { magnitude = Math.sqrt(Math.pow(r,2) + Math.pow(i, 2)); argument = Math.atan(i / r); public double getreeel() { return magnitude * Math.cos(argument); public double getimaginair() { return magnitude * Math.sin(argument); public ComplexGetal plus(complexgetal ander) { return new ComplexGetal(ander.getReeel() + getreeel(), ander.getimaginair() + getimaginair());

43 Statische methodes Methodes die bij een klasse horen ipv. bij een object public class Docent { public static Docent rector() { return new Docent( Luc Sels ); private String naam; public Docent(String n) { naam = n; Docent.rector();

44 Statische attributen Attributen die bij een klasse horen ipv. bij een object public class Docent { public static Docent rector = new Docent( Luc Sels ); Docent.rector; (new Docent()).rector;

45 Voorbeelden van static public static void main(string[] args) {... System.out.println(...); public class System { public static PrintWriter out;... Math.sqrt(49);

46 Overerving & Polymorfisme

47 Overerving Sommige klassen zijn speciaal geval van andere klasse Docent is een speciaal geval van werknemer, dwz. elke docent is ook werknemer Functionaliteit van docent = functionaliteit van werknemer + extra s Hergebruik van code

48 public class Werknemer { private Datum geboortedatum; private String naam; public Werknemer() { public String getnaam() { return naam; public void setnaam(string n) { naam = n; public class Docent { private Datum geboortedatum; private String naam; public Docent() { public String getnaam() { return naam; public void setnaam(string n) { naam = n; private Vak[] vakken; public boolean doceert(vak v) { for (int i = 0; i < vakken.length; i++) if (vakken[i].equals(v)) return true; return false;

49 public class Werknemer { private Datum geboortedatum; private String naam; public Werknemer() { public String getnaam() { return naam; public void setnaam(string n) { naam = n; Docent d = new Docent(); d.setnaam("joost Vennekens"); System.out.println(d.getNaam()); public class Docent extends Werknemer { public Docent() { private Vak[] vakken; public boolean doceert(vak v) { for (int i = 0; i < vakken.length; i++) if (vakken[i].equals(v)) return true; return false;

50 public class ComplexGetal { private double reeel; private double imaginair; public ComplexGetal(double r, double i) { reeel = r; imaginair = i; public ComplexGetal plus(complexgetal ander) { return new ComplexGetal(ander.getReeel() + getreeel(), ander.getimaginair() + getimaginair()); public class ReeelGetal extends ComplexGetal { public ReeelGetal(double getal) { super (getal, 0); ReeelGetal r = new ReeelGetal(5.0); ReeelGetal s = new ReeelGetal(5.0); ComplexGetal som = r.plus(s);

51 Superklasse Bankrekening Subklasse Spaarrekening Zichtrekening public class Bankrekening {... public class Zichtrekening extends Bankrekening {... public class Spaarrekening extends Bankrekening {...

52 public class Rechthoek { private double breedte; private double hoogte; public Rechthoek(double h, double b) { breedte = b; hoogte = h; public double oppervlakte() { return breedte * hoogte; public void draai() { double tmp = breedte; breedte = hoogte; hoogte = tmp; public class Vierkant extends Rechthoek { Vierkant v = new Vierkant(7.5); v.draai(); public Vierkant(double grootte) { super (grootte, grootte);

53 public class Rechthoek { private double breedte; private double hoogte; Overriding public Rechthoek(double h, double b) { breedte = b; hoogte = h; public double oppervlakte() { return breedte * hoogte; public void draai() { double tmp = breedte; breedte = hoogte; hoogte = tmp; public class Vierkant extends Rechthoek { public Vierkant(double grootte) { super (grootte, grootte); public void draai() { Vierkant v = new Vierkant(7.5); v.draai();

54 Polymorfisme Verschillende methodes mogen dezelfde naam hebben als hun argumenten verschillen Geldt ook voor impliciete argument this De meest specifieke methode die van toepassing is wordt uitgevoerd

55 Dynamische typering Een variabele heeft een type Statisch gedeclareerd <- foutendetectie Bankrekening mijnrekening; Een object heeft een type Dynamisch bepaald <- selectie methode mijnrekening = new Zichtrekening();

56 Overeenkomst Type van een object moet een subklasse zijn van type van de variable Bankrekening mijnrekening = new Bankrekening(); Bankrekening mijnrekening = new Zichtrekening(); Zichtrekening mijnrekening = new Bankrekening(); Vierkant x = new Rechthoek(); Rechthoek x = new Vierkant(); Vierkant x = new Vierkant() Gelijkaardig voor primitieve types int a = 9.2; double a = 9;

57 public class Rechthoek { protected double breedte; protected double hoogte;... public boolean pastin(rechthoek ander) { return (this.breedte <= ander.breedte) && (this.hoogte <= ander.hoogte) (this.breedte <= ander.hoogte) && (this.hoogte <= ander.breedte) ; public boolean pastin(vierkant ander) { return (this.breedte <= ander.breedte) && (this.hoogte <= ander.breedte) ; public class Vierkant extends Rechthoek {... public boolean pastin(vierkant ander) { return (this.breedte <= ander.breedte); z.pastin(x); x.pastin(y); public boolean pastin(rechthoek ander) { return (this.breedte <= ander.breedte) && (this.breedte <= ander.hoogte) ; Dynamische type Vierkant x = new Vierkant(7); Rechthoek y = new Vierkant(2); Rechthoek z = new Rechthoek(3,4); x.pastin(x); y.pastin(x); Statische type

58 public class ComplexGetal {... public ComplexGetal plus(complexgetal ander) { return new ComplexGetal(ander.getReeel() + getreeel(), ander.getimaginair() + getimaginair()); public class ReeelGetal extends ComplexGetal {... public ReeelGetal plus(reeelgetal ander) { return new ReeelGetal(ander.getReeel() + getreeel()); ReeelGetal r = new ReeelGetal(5.0); ReeelGetal s = new ReeelGetal(5.0); ReeelGetal som = r.plus(s);

59 public class ComplexGetal {... public ComplexGetal plus(complexgetal ander) { double som_r = ander.getreeel() + getreeel(); double som_i = ander.getimaginair() + getimaginair(); if (som_i == 0) return new ReeelGetal(som_r); else return new ComplexGetal(som_r, som_i); public class ReeelGetal extends ComplexGetal {... public ReeelGetal plus(reeelgetal ander) { return new ReeelGetal(ander.getReeel() + getreeel()); Mag dit wel?

60 public class ComplexGetal {... public ComplexGetal plus(complexgetal ander) { double som_r = ander.getreeel() + getreeel(); double som_i = ander.getimaginair() + getimaginair(); if (som_i == 0) return new ReeelGetal(som_r); else return new ComplexGetal(som_r, som_i); public class ReeelGetal extends ComplexGetal {... public ReeelGetal plus(reeelgetal ander) { return new ReeelGetal(ander.getReeel() + getreeel()); Mag dit wel? ComplexGetal r = new ComplexGetal(1,-1); ComplexGetal s = new ComplexGetal(1,1); ReeelGetal som = r.plus(s);

61 Typecasting Soms weten wij dat een variabele een strenger type heeft dan de compiler kan afleiden ComplexGetal r = new ComplexGetal(1,-1); ComplexGetal s = new ComplexGetal(1,1); ReeelGetal som = (ReeelGetal) r.plus(s);

62 Kwis (3) class X { public void a() { System.out.println("x"); class Y extends X { public void a() { System.out.println("y"); class Z extends Y { public void a() { System.out.println("z"); public static void main(string[] args) { X x = new X(); x.a(); x = new Z(); x.a(); Y y = new Z(); y.a(); y = new Y(); y.a();

63 Basis OP

64 Het paradigma OO is manier om over software systeem te denken nl., als verzameling van objecten die elk verantwoordelijke zijn voor bepaald stuk afgeschermde functionaliteit die al dan niet kunnen overkomen met objecten uit de echte wereld

65 Belangrijke termen Object Klasse Encapsulatie Overerving Polymorfisme

66 Ingebouwde klassen & methodes

67 Elke klasse erft over van Object public class Bla {... public class Bla extends Object {... Elke klasse heeft exact één superklasse

68 public class Lijst { private Element eerste; public void voegtoe(object o) { if (eerste!= null) eerste.voegtoe(o); else eerste = new Element(o); public String tostring() { Element huidige = eerste; String resultaat = ""; while (huidige!= null) { resultaat += huidige.tostring(); resultaat += " "; huidige = huidige.getvolgende(); return resultaat; class Element { private Object waarde; private Element volgende; private void setvolgende(element v) { volgende = v; Element getvolgende() { return volgende; Element(Object i) { waarde = i; void voegtoe(object i) { if (volgende == null) setvolgende(new Element(i)); else getvolgende().voegtoe(i); public String tostring() { return "" + waarde;

69 public class Lijst {... public void voegtoe(object o) {... public String tostring() {... public class Boek { private String titel; Boek(String t) { titel = t; public String tostring() { return "\"" + titel + "\""; public class Bibliotheek { private Lijst boeken; public Bibliotheek() { boeken = new Lijst(); boeken.voegtoe(new Boek("Catcher in the Rye")); public static void main(string[] a) { System.out.println((new Bibliotheek()).boeken);

70 public class Lijst {... public void voegtoe(object o) {... public String tostring() {... public class Vermenigvuldigingstafel { private Lijst tafel; public Vermenigvuldigingstafel(int g) { tafel = new Lijst(); for (int i = 1; i <= 10; i++) { tafel.voegtoe(new Integer(g*i)); public Lijst gettafel() { return tafel; public static void main(string[] a) { int getal = Integer.parseInt(a[0]); Vermenigvuldigingstafel t; t = new Vermenigvuldigingstafel(getal); System.out.println(t.getTafel());

71 Of met array public static void main(string[] a) { Boek[] lijst = new Boek[](10); for (int i = 0; i < lijst.length; i++) lijst[i] = new Boek();

72 Elke klasse erft over van Object public class Object { public boolean equals(object other) {... public String tostring() {......

73 Vergelijkingen Java heeft vergelijkingsoperatoren ==,!=, >, <, <=, >= Zoals verwacht bij primitieve types Let op: bij objecten testen == en!= of het om hetzelfde object gaat ReeelGetal r = new ReeelGetal(12); ReeelGetal s = new ReeelGetal(12); if (r == s) System.out.println("gelijk"); if ("foo" == "foo") System.out.println("gelijk");

74 Vergelijkingen Om de inhoud van objecten te vergelijken public boolean equals(object); Bijvoorbeeld: if ("foo".equals("foo")) System.out.println("gelijk"); Integer i = new Integer(12); Integer j = new Integer(12); if (i.equals(j)) System.out.println("gelijk"); Voor eigen klassen, zelf implementeren

75 Verschilpunten tussen objecten en primitieve types new operator methode oproepen == en!= Call-by-value vs call-by-reference Strings zijn objecten Arrays zijn ongeveer objecten

76 public class Test { private int waarde; public static void veranderprimitief(int x) { x = 99; public static void veranderobject(test x) { x.waarde = 99; public Test(int i) { waarde = i; public static void main(string[] args) { int i = 1; veranderprimitief(i); System.out.println(i); Test object = new Test(1); veranderobject(object); System.out.println(object.waarde); //geeft 99

77 public class ComplexGetal { private double reeel; Afprinten private double imaginair; public ComplexGetal(double r, double i) { reeel = r; imaginair = i; public static void main(string [] args) { ComplexGetal x = new ComplexGetal(7,8); System.out.println(x); bash-3.2$ java ComplexGetal ComplexGetal@66848c bash-3.2$

78 public class ComplexGetal { private double reeel; Afprinten private double imaginair; public ComplexGetal(double r, double i) { reeel = r; imaginair = i; public static void main(string [] args) { ComplexGetal x = new ComplexGetal(7,8); System.out.println(x); public String tostring() { return reeel + " + " + imaginair + "i"; public boolean equals(object o) { if (o instanceof ComplexGetal) { ComplexGetal g = (ComplexGetal) o; return g.reeel == reeel && g.imaginair == imaginair; else return false; bash-3.2$ java ComplexGetal i bash-3.2$

79 import java.io.*; class PersonalHello { Inlezen public static void main (String args[]) { byte[] name = new byte[100]; int nr_read = 0; System.out.println("What is your name?"); try { nr_read = System.in.read(name); System.out.print("Hello "); System.out.write(name,0,nr_read); catch (IOException e) { System.out.print("I'm Sorry. I didn't catch your name.");

80 Inlezen (2) import java.io.*; class Addition { public static void main (String[] args) throws IOException { BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in) ); int num1, num2; System.out.print ("Enter an integer number: "); num1 = Integer.parseInt(stdin.readLine()); System.out.print ("Enter another integer number: "); num2 = Integer.parseInt(stdin.readLine()); System.out.println ("The sum is " + (num1+num2));

Ingebouwde klassen & methodes

Ingebouwde klassen & methodes Ingebouwde klassen & methodes Statische methodes Methodes die bij een klasse horen ipv. bij een object public class Docent { public static Docent departementshoofd() { return new Docent("Jan Ivens"); private

Nadere informatie

Overerving & Polymorfisme

Overerving & Polymorfisme Overerving & Polymorfisme Overerving Sommige klassen zijn speciaal geval van andere klasse Docent is een speciaal geval van werknemer, dwz. elke docent is ook werknemer Functionaliteit van docent = functionaliteit

Nadere informatie

Abstracte klassen & Interfaces

Abstracte klassen & Interfaces Abstracte klassen & Interfaces Overerving public class Vierhoek {... Vierhoek public class Rechthoek extends Vierhoek {... public class Ruit extends Vierhoek {... Rechthoek Ruit Elke rechthoek is een vierhoek.

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in

Nadere informatie

Zelftest Programmeren in Java

Zelftest Programmeren in Java Zelftest Programmeren in Java Document: n0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST PROGRAMMEREN IN JAVA Deze test

Nadere informatie

Objectgericht programmeren 1

Objectgericht programmeren 1 KU Leuven Campus De Nayer Industrieel ingenieur 3Ba Elektronica-ICT Objectgericht programmeren 1 Academiejaar 2014-15 Lesgever: J. Vennekens Cursustekst ism. H. Crauwels II Inhoudsopgave 1 Inleiding 1

Nadere informatie

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double. Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort

Nadere informatie

Programmeren in Java les 3

Programmeren in Java les 3 4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een

Nadere informatie

Objectgericht ontwerpen

Objectgericht ontwerpen Associatie KULeuven Hogeschool voor Wetenschap & Kunst De Nayer instituut Industrieel ingenieur Opleiding Elektronica-ICT 3e academisch bachelorjaar Objectgericht ontwerpen Deel I Academiejaar 2009-10

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 november 2015 Expressies Functies Ingebouwde functies Variabelenbereik Inleveropgave 1 Terugblik Programma is een lijst van opdrachten Terugblik Programma is

Nadere informatie

Programmeren 1 23 januari 2013 Prof. T. Schrijvers

Programmeren 1 23 januari 2013 Prof. T. Schrijvers Programmeren 1 23 januari 2013 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet

Nadere informatie

Tentamen Imperatief Programmeren

Tentamen Imperatief Programmeren Tentamen Imperatief Programmeren Maandag 22 oktober 2001 Toelichting Dit is een open boek tentamen, d.w.z. het cursusboek mag gebruikt worden. N.B.: Het tentamen is individueel: voor het maken van de opgaven

Nadere informatie

Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Digitale

Nadere informatie

Lessen Java: Reeks pag. 1

Lessen Java: Reeks pag. 1 Lessen Java: Reeks 2 1-3-2016 pag. 1 Primitieve types type grootte waardes byte 8 bits 128, 127 short 16 bits 32768, 32767 int 32 bits 2 31, 2 31 1 long 64 bits 2 63, 2 63 1 type grootte waardes float

Nadere informatie

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten

Nadere informatie

Ontwerp van Informatiesystemen

Ontwerp van Informatiesystemen 1ste bach HIB Ontwerp van Informatiesystemen Prof. Verelst Q www.quickprinter.be uickprinter Koningstraat 13 2000 Antwerpen 112 2,50 Online samenvattingen kopen via www.quickprintershop.be Table of Contents

Nadere informatie

Game of Life in Java

Game of Life in Java Game of Life in Java Auteur: drs. M.S.L.F. Manssen http://www.manssen.eu Game of Life is een spel van een rooster van cellen, waarbij telkens een ronde gebeurt waarbij de nieuwe waardes van cellen gebeurt.

Nadere informatie

IMP Uitwerking week 13

IMP Uitwerking week 13 IMP Uitwerking week 13 Opgave 1 Nee. Anders moet bijvoorbeeld een venster applicatie een subklasse zijn van zowel Frame en WindowListener. Als de applicatie ook een button of een menu heeft, dan moet het

Nadere informatie

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. Herhaling Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. De basisbouwsteen is het object; een geïntegreerde eenheid van data en operaties werkend op deze

Nadere informatie

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag u gebruik maken van: Barnes, Object-Oriented Programming with Java en de Notitie Algoritmiek

Nadere informatie

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Vrijdag 22 januari 2010 Toelichting Dit is een open boek tentamen. Communicatie en het gebruik van hulpmiddelen zijn niet toegestaan.

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 18 december 2015 Overerving (inheritance) Constructors Overriding Inheritance demo Exceptions Zelf exceptions veroorzaken Overerving (inheritance) 2-dimensionaal

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 27 november 2015 Recursie Objecten Constructors Aanpassen variabelen this keyword Recursie Recursie Recursieve functie roept zichzelf (direct of indirect) aan

Nadere informatie

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft I ' Tentamen Objectgeorienteerd Programmeren TI 1200 1 februari 2012 9.00-12.00 Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit

Nadere informatie

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2015. Parallel Systems: Introduction

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2015. Parallel Systems: Introduction Informatica Deel II: les 1 Java versus Python Jan Lemeire Informatica deel II februari mei 2015 Parallel Systems: Introduction Arabidopsis (zandraket) Arabidopsis (zandraket) MMIQQA Multimodal Microscopic

Nadere informatie

VI. Klassen en objecten

VI. Klassen en objecten VI. Klassen en objecten Klassen en objecten vormen het fundament van OOP. We zullen dus uitgebreid aandacht besteden aan klassen en objecten. U kunt Java niet begrijpen zonder goed met klassen en objecten

Nadere informatie

Design principes.

Design principes. Design principes joost.vennekens@kuleuven.be Motivatie Software projecten mislukken vaker Vaker dan bouwkunde Vaker dan EM Vaker dan Oorzaak? Omgaan met verandering Vereisten Technologie Externe systemen

Nadere informatie

Programmeren 1 20 januari 2012 Prof. T. Schrijvers

Programmeren 1 20 januari 2012 Prof. T. Schrijvers Programmeren 1 20 januari 2012 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet

Nadere informatie

Kleine cursus PHP5. Auteur: Raymond Moesker

Kleine cursus PHP5. Auteur: Raymond Moesker Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven

Nadere informatie

Project network. Gebaseerd op paragrafen , uit het boek. We simuleren een sociaal netwerk

Project network. Gebaseerd op paragrafen , uit het boek. We simuleren een sociaal netwerk Project network Gebaseerd op paragrafen 10.1-10.7, 11.1-11.6 uit het boek. We simuleren een sociaal netwerk Er zijn twee soorten berichten: tekstberichten en fotoberichten,... voorgesteld door de klassen

Nadere informatie

NAAM: Programmeren 1 Examen 21/01/2011

NAAM: Programmeren 1 Examen 21/01/2011 Programmeren 1 21 januari 2011 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet

Nadere informatie

Java. Basissyllabus. Egon Pas

Java. Basissyllabus. Egon Pas Java Basissyllabus Egon Pas 2011 BeanPole bvba Gasmeterlaan 92-9000 Gent BTW BE 472.902.516 Tel: + 32 9 224 42 17 Fax: + 32 9 223 62 88 www.beanpole.be info@beanpole.be 1 Programmeren 1.1 Hoe werkt een

Nadere informatie

SPOJ oplossingen Gilles Callebaut 7 augustus 2015

SPOJ oplossingen Gilles Callebaut 7 augustus 2015 SPOJ oplossingen 2012-2013 Gilles Callebaut 7 augustus 2015 DISCLAIMER Oefeningen zijn niet altijd correct of optimaal. Gelieve de oefeningen enkel te gebruiken ter ondersteuning. Van kopiëren leer je

Nadere informatie

http://www.liacs.nl/home/kosters/java/

http://www.liacs.nl/home/kosters/java/ sheets Programmeren 1 Java college 2, Walter Kosters De sheets zijn gebaseerd op de hoofdstukken 2 tot en met 6 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/

Nadere informatie

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele Informatica Objectgeörienteerd leren programmeren Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode Objectgeörienteerd

Nadere informatie

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2014. Parallel Systems: Introduction

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2014. Parallel Systems: Introduction Informatica Deel II: les 1 Java versus Python Jan Lemeire Informatica deel II februari mei 2014 Parallel Systems: Introduction Arabidopsis (zandraket) Arabidopsis (zandraket) MMIQQA Multimodal Microscopic

Nadere informatie

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak); Vaknaam: Programmeren I (Java) - Tentamen Module: 2 Datum/Tijd: 17 mrt 2015 / 18.30 20:30 Richting: ICT Code: IC011 Docent: E. Lieuw Boeken en aantekeningen NIET toegestaan. Kladpapier is wel toegestaan.

Nadere informatie

Design principes.

Design principes. Design principes joost.vennekens@kuleuven.be Doelstelling Code die werkt doet wat klant wil betrouwbaar is gemakkelijk te veranderen is En dit ook blijft doen Software rot Rottende software geeft geurtjes

Nadere informatie

Java spiekbrief. Commentaar. Definitie van een methode. Types. Variabelendeclaratie. Definitie van een klasse. Namen. Definitie van een veld

Java spiekbrief. Commentaar. Definitie van een methode. Types. Variabelendeclaratie. Definitie van een klasse. Namen. Definitie van een veld Java spiekbrief Commentaar Dient enkel voor de menselijke lezer. // tot het einde van de lijn /* Dit type commentaar kan gerust meerdere lijnen beslaan. */ /** En deze speciale vorm wordt gebruikt voor

Nadere informatie

Programmeren (1) Examen NAAM:

Programmeren (1) Examen NAAM: Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft

Nadere informatie

Scala. Korte introductie. Sylvia Stuurman

Scala. Korte introductie. Sylvia Stuurman Korte introductie Sylvia Stuurman Wat is er zo bijzonder aan? Schaalbaar Objectgeoriënteerd (handiger dan Java!) Functioneel Scripts schrijven Gecompileerd: Java bytecode Pagina 2 voor scripts Pagina 3

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 25 november 2015 Herhaling Meer herhaling Recursie Mutuele recursie Objecten Herhaling Fibonacci class Fibonacci { public static void fibonaccitot(int bovengrens)

Nadere informatie

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, 13.00-15.00 uur 1. De situatie die ontstaat door class A : B C D; kan beschreven worden door (a) B is een A (b)

Nadere informatie

Om de libraries te kunnen gebruiken, moet de programmeur (een deel van) zijn programma in C/C++ schrijven.

Om de libraries te kunnen gebruiken, moet de programmeur (een deel van) zijn programma in C/C++ schrijven. 1 Inleiding tot.net Software werd en wordt meestal geschreven in C of C++. De broncode van een C/C++ programma wordt dan gecompileerd naar machine code, die eventueel nog gelinkt wordt met machine code

Nadere informatie

Java spiekbrief. Commentaar. Definitie van een methode. Types. Variabelendeclaratie. Definitie van een klasse. Namen. Definitie van een veld

Java spiekbrief. Commentaar. Definitie van een methode. Types. Variabelendeclaratie. Definitie van een klasse. Namen. Definitie van een veld Java spiekbrief Commentaar Dient enkel voor de menselijke lezer. // tot het einde van de lijn /* Dit type commentaar kan gerust meerdere lijnen beslaan. */ /** En deze speciale vorm wordt gebruikt voor

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));

Nadere informatie

NAAM: Programmeren 1 Examen 31/08/2011

NAAM: Programmeren 1 Examen 31/08/2011 Programmeren augustus 0 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet je zelf

Nadere informatie

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces. Hoofdstuk 1: Inleiding Objectoriëntatie: 1. Objecten & klassen: samenwerking van componenten om bepaald doel te bereiken; herbruikbaarheid. 2. Encapsulation: afschermen gedragingen en kenmerken van de

Nadere informatie

Versie 2: B C D D A C D A C C. Versie 3: C D A A B D A B D D. Versie 4: A D C C B D C B D D. Versie 5: B A D D C A D C A A

Versie 2: B C D D A C D A C C. Versie 3: C D A A B D A B D D. Versie 4: A D C C B D C B D D. Versie 5: B A D D C A D C A A Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 1 februari 2019, 11.00 13.00 uur Voor de meerkeuzevragen hebben we verschillende versies. Dit zijn de juiste antwoorden per versie.

Nadere informatie

1 Ontwerppatronen. 1.1 Het Command patroon

1 Ontwerppatronen. 1.1 Het Command patroon 1 Ontwerppatronen Software-ontwikkelaars worden geconfronteerd met ontwerpproblemen: de manier waarop ze hun programma gestructureerd hebben geeft aanleiding tot slechte eigenschappen zoals rigiteit, fragiliteit,....

Nadere informatie

HOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10

HOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10 CPP 1 van 10 ADSdt 1-2009 TENTAMENVOORBLAD Voor aanvang van het tentamen s.v.p. de tentamengegevens goed doorlezen om eventuele misverstanden te voorkomen!! Naam student : Studentnummer : Groep : Studieonderdeel

Nadere informatie

N&O: Objectgericht Programmeren. (in Python)

N&O: Objectgericht Programmeren. (in Python) N&O: Objectgericht Programmeren (in Python) N&O Twee aparte onderwerpen Internet en websites (50%) Programmeren in Python (50%) Komen samen in dynamische websites Webpagina als user interface voor Python

Nadere informatie

Objectgeoriënteerd programmeren in Java 1

Objectgeoriënteerd programmeren in Java 1 Objectgeoriënteerd programmeren in Java 1 CPP Javaprogrammeur Bijeenkomst 3 Leereenheden 7, 8, 9 De Java API Java bevat een grote bibliotheek standaardklassen: de Java API Voorbeelden java.lang basisklassen

Nadere informatie

NAAM: Programmeren 1 Examen 29/08/2012

NAAM: Programmeren 1 Examen 29/08/2012 Programmeren 29 augustus 202 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet je

Nadere informatie

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing Introductie In dit document geven we een mogelijke oplossing voor het eerste practicum. Deze oplossing gebruikt verschillende klassen en overerving,

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 2 september 2007 voor deeltijdstudenten Kop van Zuid Rotterdam, 3 juni 2007 Even voorstellen Naam: Wessel Oele(31) Docent bij opleiding technische informatica Kamer: I210 (tweede verdieping, links de gang

Nadere informatie

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica Samenvatting door een scholier 1809 woorden 28 oktober 2005 6,1 16 keer beoordeeld Vak Methode Informatica Turing informatica samenvatting. hst3: algoritme:een beschrijving van stappen die gedaan moeten

Nadere informatie

Inhoud leereenheid 2. Overerving (1) Introductie 59. Leerkern 60. Samenvatting 88. Zelftoets 90. Terugkoppeling 94

Inhoud leereenheid 2. Overerving (1) Introductie 59. Leerkern 60. Samenvatting 88. Zelftoets 90. Terugkoppeling 94 Inhoud leereenheid 2 Overerving (1) Introductie 59 Leerkern 60 1 Specialisatie en generalisatie 60 2 Functionaliteit aan een klasse toevoegen 62 2.1 Toegangsspecificaties 63 2.2 Definitie van subklassen

Nadere informatie

Een stoomcursus door Edgar de Graaf, november 2006

Een stoomcursus door Edgar de Graaf, november 2006 Programmeren in Java Een stoomcursus door Edgar de Graaf, november 2006 Deze tekst geeft een zeer korte inleiding in de programmeertaal Java, uitgaande van kennis van de taal C++. Daarnaast bestudere men

Nadere informatie

Info-books. Toegepaste Informatica. Deel 37: Programmeren in Java HO37. K. Behiels - J. Gils

Info-books. Toegepaste Informatica. Deel 37: Programmeren in Java HO37. K. Behiels - J. Gils Info-books HO37 Toegepaste Informatica Deel 37: Programmeren in Java K. Behiels - J. Gils Hoofdstuk 3 Klassen 3.1 Klassen, variabelen en methoden 3.1.1 Wat is een klasse? Een struct van ANSI C is een goede

Nadere informatie

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is PROEF-Tentamen Inleiding programmeren (IN1608WI), X januari 2010, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Open boek tentamen: bij het tentamen mag alleen gebruik worden gemaakt

Nadere informatie

Syntax- (compile), runtime- en logische fouten Binaire operatoren

Syntax- (compile), runtime- en logische fouten Binaire operatoren Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle

Nadere informatie

Datastructuren: stapels, rijen en binaire bomen

Datastructuren: stapels, rijen en binaire bomen Programmeermethoden Datastructuren: stapels, rijen en binaire bomen week 12: 23 27 november 2015 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleiding In de informatica worden Abstracte DataTypen (ADT s)

Nadere informatie

Hoofdstuk 0. Van Python tot Java.

Hoofdstuk 0. Van Python tot Java. Hoofdstuk 0. Van Python tot Java. In dit eerste hoofdstuk maken we de overstap van Python naar Java. We bespreken de verschillen en geven wat achtergrondinformatie. In het volgende hoofdstuk gaan we dieper

Nadere informatie

Samenvatting programmeren I

Samenvatting programmeren I Samenvatting programmeren I Inhoud Inhoud Basis Types Wiskundige Expressies Begin van een Java-klasse Mutatormethoden (void) en accessormethoden (get) Interessante tekens Parameters Velden Tekst dat Java

Nadere informatie

Deeltentamen Grammatica s en ontleden 22 december 2005

Deeltentamen Grammatica s en ontleden 22 december 2005 Tentamen Grammatica s en ontleden 22 december 2005 1 Deeltentamen Grammatica s en ontleden 22 december 2005 Let op: opgave 1 t/m 4 tellen voor (slechts) 5 punten mee, opgave 5 voor maar liefst 50 punten,

Nadere informatie

DIAGNOSTISCHE TOETS Softwaresystemen UITWERKING

DIAGNOSTISCHE TOETS Softwaresystemen UITWERKING DIAGNOSTISCHE TOETS Softwaresystemen datum: Donderdag van Week 7 UITWERKING Deze diagnostische toets bevat vragen over excepties en concurrency. Beantwoord de vragen zo goed mogelijk in 30 minuten Bespreek

Nadere informatie

Noties Informatica. In java fungeren objecten als een model voor de elementen waarin een probleem kan worden opgesplitst

Noties Informatica. In java fungeren objecten als een model voor de elementen waarin een probleem kan worden opgesplitst s Informatica Hoofdstuk 1 Object Klasse Methode Parameters Type Velden Toestand Compiler Resultaten (returnwaarde) In java fungeren objecten als een model voor de elementen waarin een probleem kan worden

Nadere informatie

Vereiste kennis. 1 Java-editor. 2 Het compileren van een programma

Vereiste kennis. 1 Java-editor. 2 Het compileren van een programma 3 Vereiste kennis Dit boek richt zich op het leren programmeren door het oefenen met programmeercodes. Veel theorie komt in het begin niet aan de orde. Dat is een grote uitdaging want het is niet makkelijk

Nadere informatie

eerste voorbeelden in Java

eerste voorbeelden in Java Beginselen van programmeren 2 eerste voorbeelden in Java vereisten: een editor: om programma in te tikken en te bewaren een Java compiler: zet ingetikte (bron-) programma om naar byte-code een Java Virtuele

Nadere informatie

Modulewijzer Tirdat01

Modulewijzer Tirdat01 Modulewijzer Tirdat01 W. Oele 25 augustus 2008 1 Inhoudsopgave 1 Inleiding en leerdoelen 3 2 Voorkennis 3 2.1 tirprg01 en tirprg02........................ 3 2.2 tirprg03.............................. 4

Nadere informatie

Programmeren I. 26 augustus Algemene Richtlijnen. Richtlijnen Programmeren 1

Programmeren I. 26 augustus Algemene Richtlijnen. Richtlijnen Programmeren 1 Algemene Richtlijnen Programmeren I 26 augustus 2015 Schrijf je naam bovenaan elk antwoordblad en kladblad. Schrijf niet met potlood of in het rood op je antwoordbladen. Gebruik voor elke vraag een afzonderlijk

Nadere informatie

colleges recursieve datastructuren college 9 prioriteit van operatoren prioriteit in recursive descent parser

colleges recursieve datastructuren college 9 prioriteit van operatoren prioriteit in recursive descent parser colleges recursieve datastructuren college 9 interpreteren: waarde van bomen bepalen transformeren: vorm van bomen veranderen parseren herkennen van expressie in de tekst herkennen van functies onderwerp

Nadere informatie

Programmeren in C# Samenvatting van C#

Programmeren in C# Samenvatting van C# Programmeren in C# Samenvatting van C# Proceduraal Programmeren Functies (O: void + return, I: referentie of value) Arrays, Lijsten Lussen (for, while, do while) Condities, if-else, switch Variabelen,

Nadere informatie

SYNTRA-WEST. Cursus OOP. Deel

SYNTRA-WEST. Cursus OOP. Deel SYNTRA-WEST Cursus OOP Deel Syntra-West voorheen VORMINGSINSTITUUT VOOR KMO Syntra-West Doorniksesteenweg 220 8500 Kortrijk Tel. 056/26.02.00 Fax 056/22.81.07 i Inhoudsopgave SYNTRA-WEST... 0 CURSUS OOP...

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 november 2013 Organisatie Docenten Jeroen Bransen Michael Moortgat Docenten Jeroen Bransen Imperatief programmeren (Java) Tot de kerst (ongeveer) Michael Moortgat

Nadere informatie

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur 1. (2 punten per deelvraag) Deze opgave bestaat uit een aantal tekstvragen. Houd het antwoord kort: een

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 OEFENINGEN PYTHON REEKS 1 Vraag 1: Python als een eenvoudige rekenmachine Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3) en

Nadere informatie

Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Gesloten boek examen: er mag geen gebruik worden gemaakt van het studieboek.

Nadere informatie

Objectgericht Programmeren. (in Python)

Objectgericht Programmeren. (in Python) Objectgericht Programmeren (in Python) Motivatie Programmeren is moeilijk Waarom? Complexiteit 100 200 300 400 500 kloc (1000 lijnen code) g1 = raw_input("eerste getal?") g2 = raw_input("tweede getal?")

Nadere informatie

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin: Java Les 2 Theorie Beslissingen Algemeen Net als in het dagelijks leven worden in software programma s beslissingen genomen, naast het toekennen van waarden aan variabelen zijn beslissingen één van de

Nadere informatie

Programmeren in C# Overerving

Programmeren in C# Overerving Programmeren in C# Overerving Programmeren in C# 2 public class Balloon private int x = 50; private int y = 50; private int diameter = 20; public int Diameter getreturn diameter; setif (value

Nadere informatie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

Nadere informatie

Een korte samenvatting van enkele FORTRAN opdrachten

Een korte samenvatting van enkele FORTRAN opdrachten Een korte samenvatting van enkele FORTRAN opdrachten Inhoud 1 Introductie 3 2 De structuur van een FORTRAN programma 3 3 Datatypen, variabelen en declaraties 3 4 Expressies-volgorde van uitwerking 4 5

Nadere informatie

Datastructuren: stapels, rijen en binaire bomen

Datastructuren: stapels, rijen en binaire bomen Programmeermethoden : stapels, rijen en binaire bomen Walter Kosters week 12: 26 30 november 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 en Vierde programmeeropgave Othello programmeren we als volgt:

Nadere informatie

Oefeningen Java Oplossingen

Oefeningen Java Oplossingen Oefeningen Java en Opgave 1 Is de uitvoer van het volgende code-fragment (a), (b) of (c)? System.out.print("A"); System.out.println("B"); System.out.print("C\n"); System.out.print("D" + "E"); System.out.print("F");

Nadere informatie

Datastructuren en algoritmen

Datastructuren en algoritmen Datastructuren en algoritmen Doelstelling Datastructures + algorithms = programs Boek van Niklaus Wirth: bedenker Pascal en Modula Datastructuur: structuur om informatie op te slaan Algoritme: voorschrift

Nadere informatie

Programmeren in C# Interfaces. Hoofdstuk 23

Programmeren in C# Interfaces. Hoofdstuk 23 Programmeren in C# Interfaces Hoofdstuk 23 Programmeren in C# 2 Gradaties overerving Klassieke overerving Iets functioneels uitbreiden Code duplicatie Niet teveel aanpassingen aan bestaande code Objecten

Nadere informatie

INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCAPPEN

INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCAPPEN INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCAPPEN voorbeeldexamen NAAM :... OPMERKINGEN VOORAF Je krijgt 3 uur de tijd om de opdrachten voor dit examen uit te voeren. Verder werken aan je oplossing

Nadere informatie

DOMjudge teamhandleiding

DOMjudge teamhandleiding judge DOMjudge teamhandleiding Samenvatting /\ DOM DOM judge Hieronder staat de belangrijkste informatie kort samengevat. Dit is bedoeld om snel aan de slag te kunnen. We raden echter ten zeerste aan dat

Nadere informatie

import java.io.*; één klasse public class Hallo { public static void main (String[] a) ...met één functie System.out.println("Hallo!

import java.io.*; één klasse public class Hallo { public static void main (String[] a) ...met één functie System.out.println(Hallo! Voorbeeld Java-programma import java.io.*; één klasse...met één functie...met één opdracht public class Hallo { public static void main (String[] a) { System.out.println("Hallo!"); accolades begrenzen

Nadere informatie

OBJECT SPAGHETTI : PATTERNS BIEDEN UITKOMST? Wat is het probleem nou eigenlijk? public class CoffeeDrinker { private CoffeeProducer mycoffeeproducer;

OBJECT SPAGHETTI : PATTERNS BIEDEN UITKOMST? Wat is het probleem nou eigenlijk? public class CoffeeDrinker { private CoffeeProducer mycoffeeproducer; OBJECT SPAGHETTI : PATTERNS BIEDEN UITKOMST? Object georiënteerde (OO) systemen kennen vele voordelen ten opzichte van traditionele procedurele systemen. Zo zouden OO systemen flexibeler en beter onderhoudbaar

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren

Nadere informatie

Teamhandleiding DOMjudge (versie 2.2.0muKP) 31 mei 2008

Teamhandleiding DOMjudge (versie 2.2.0muKP) 31 mei 2008 judge Teamhandleiding DOMjudge (versie..0mukp) 31 mei 008 /\ DOM DOM judge Inhoudsopgave 1 Inleiding Samenvatting.1 Inlezen en wegschrijven............................... Insturen van oplossingen...............................3

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren

Nadere informatie

De sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall,

De sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall, sheets Programmeren 1 Java college 4, Walter Kosters De sheets zijn gebaseerd op met name hoofdstuk 8 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/

Nadere informatie