Modelleren en Programmeren

Vergelijkbare documenten
Modelleren en Programmeren

Modelleren en Programmeren

Modelleren en Programmeren

Modelleren en Programmeren

Modelleren en Programmeren

Modelleren en Programmeren

Programmeren in Java les 3

IMP Uitwerking week 13

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

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Ingebouwde klassen & methodes

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

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

Modelleren en Programmeren

Modelleren en Programmeren

Practicumopgave 3: SAT-solver

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

Elementary Data Structures 3

Tentamen Imperatief Programmeren

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

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

Zelftest Programmeren in Java

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

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

Overerving & Polymorfisme

Programmeren (1) Examen NAAM:

Objectgericht programmeren 1.

Datastructuren: stapels, rijen en binaire bomen

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

Lessen Java: Reeks pag. 1

Inleiding Programmeren 2

Recursie. public static int faculteit( int n ){ // Deze functie berekent n! // pre: n = N en n >= 0 // post: faculteit = N!

INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCAPPEN


NAAM: Programmeren 1 Examen 29/08/2012

Tentamen Programmeren in C (EE1400)

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

Inleiding Programmeren 2

Programmeren in Java 3

Een gelinkte lijst in C#

Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, uur

Abstracte klassen & Interfaces

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

Vakgroep CW KAHO Sint-Lieven

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

Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, uur

TENTAMEN Programmeren 1 VOORBEELDUITWERKING

Modelleren en Programmeren: Prolog

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

Tentamen Programmeren in C (EE1400)

Programmeren 1 23 januari 2013 Prof. T. Schrijvers

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

Programmeren in C# Interfaces. Hoofdstuk 23

Scala. Korte introductie. Sylvia Stuurman

Java Programma structuur

Stacks and queues. Hoofdstuk 6

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

Datastructuren en algoritmen

Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur

SPOJ oplossingen Gilles Callebaut 7 augustus 2015

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

INFITT01 - Internettechnologie WEEK 8

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

Programmeren in Java 3

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

eerste voorbeelden in Java

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

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

Kleine cursus PHP5. Auteur: Raymond Moesker

Hoofdstuk 0. Van Python tot Java.

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

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 10 november 2017, uur

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

Programmeren in C++ Efficiënte zoekfunctie in een boek

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

Game of Life in Java

In BlueJ. Doe onderstaande met muis/menu s:

Datastructuren: stapels, rijen en binaire bomen

Programmeermethoden NA. Week 5: Functies (vervolg)

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

Tentamen Programmeren in C (EE1400)

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, uur

Javascript oefenblad 1

Objectgeoriënteerd programmeren in Java 1

NAAM: Programmeren 1 Examen 21/01/2011

Transcriptie:

Modelleren en Programmeren Jeroen Bransen 9 december 2015 Foreach String arrays Boomstructuren Interfaces Ingebouwde datastructuren Quiz

Foreach

Foreach Speciale versie van for om iets voor alle elementen van een rijtje te doen

Foreach Speciale versie van for om iets voor alle elementen van een rijtje te doen Werkt voor arrays, Set, List, etc.

Foreach Speciale versie van for om iets voor alle elementen van een rijtje te doen Werkt voor arrays, Set, List, etc. Definitie:

Foreach Speciale versie van for om iets voor alle elementen van een rijtje te doen Werkt voor arrays, Set, List, etc. Definitie: Keyword for

Foreach Speciale versie van for om iets voor alle elementen van een rijtje te doen Werkt voor arrays, Set, List, etc. Definitie: Keyword for Haakje openen

Foreach Speciale versie van for om iets voor alle elementen van een rijtje te doen Werkt voor arrays, Set, List, etc. Definitie: Keyword for Haakje openen Type van elementen

Foreach Speciale versie van for om iets voor alle elementen van een rijtje te doen Werkt voor arrays, Set, List, etc. Definitie: Keyword for Haakje openen Type van elementen Naam van variabele

Foreach Speciale versie van for om iets voor alle elementen van een rijtje te doen Werkt voor arrays, Set, List, etc. Definitie: Keyword for Haakje openen Type van elementen Naam van variabele Dubbele punt

Foreach Speciale versie van for om iets voor alle elementen van een rijtje te doen Werkt voor arrays, Set, List, etc. Definitie: Keyword for Haakje openen Type van elementen Naam van variabele Dubbele punt Expressie die rijtje teruggeeft

Foreach Speciale versie van for om iets voor alle elementen van een rijtje te doen Werkt voor arrays, Set, List, etc. Definitie: Keyword for Haakje openen Type van elementen Naam van variabele Dubbele punt Expressie die rijtje teruggeeft Haakje sluiten

Foreach Speciale versie van for om iets voor alle elementen van een rijtje te doen Werkt voor arrays, Set, List, etc. Definitie: Keyword for Haakje openen Type van elementen Naam van variabele Dubbele punt Expressie die rijtje teruggeeft Haakje sluiten Opdracht die voor elk element moet worden uitgevoerd

Foreach voorbeeld class Search { public static void main(string[] args) { int[] nums = { 6, 8, 3, 7, 5, 6, 1, 4 }; int val = 5; boolean found = false; // Use for-each style for to search nums for val. for(int x : nums) { if(x == val) { found = true; break; } } } } if(found) System.out.println("Value found!");

Foreach voorbeeld met 2d-array class ForEach2 { public static void main(string[] args) { int[][] nums = new int[3][5]; for(int i = 0; i < 3; i++) for(int j=0; j < 5; j++) nums[i][j] = (i+1)*(j+1); } } // Use for-each for loop to display and sum the values int sum = 0; for(int[] x : nums) { for(int y : x) { System.out.println("Value is: " + y); sum += y; } } System.out.println("Summation: " + sum);

String arrays

String arrays class StringArrays { public static void main(string[] args) { String[] strs = { "This", "is", "a", "test." }; } } System.out.println("Original array: "); for(string s : strs) System.out.print(s + " "); System.out.println(); // change a string strs[1] = "was"; strs[3] = "test, too!"; System.out.println("Modified array: "); for(string s : strs) System.out.print(s + " ");

String arrays Van elk type kunnen we array maken Dus ook String

String arrays Van elk type kunnen we array maken Dus ook String Maar daar krijgen we er ook een van als argument: args Demo commandline-arguments

Boomstructuren

Boomstructuren 5 2 1 3 6 7 8 5 1 2 8 3

Boomstructuren 5 2 1 3 6 7 8 5 1 2 8 3 Zulke bomen kunnen we als volgt representeren:

Boomstructuren 5 2 1 3 6 7 8 5 1 2 8 3 Zulke bomen kunnen we als volgt representeren: Boom bestaat uit top-knoop

Boomstructuren 5 2 1 3 6 7 8 5 1 2 8 3 Zulke bomen kunnen we als volgt representeren: Boom bestaat uit top-knoop Knoop bevat een getal

Boomstructuren 5 2 1 3 6 7 8 5 1 2 8 3 Zulke bomen kunnen we als volgt representeren: Boom bestaat uit top-knoop Knoop bevat een getal Knoop heeft maximaal 2 kinderen, die elk ook bomen zijn

Boomstructuren public class Knoop { // Knoop bevat waarde int waarde; } // Knoop bevat maximaal 2 kinderen, // die zelf ook weer knopen zijn Knoop links; Knoop rechts;

Boomstructuren public class Knoop { // Knoop bevat waarde int waarde; } // Knoop bevat maximaal 2 kinderen, // die zelf ook weer knopen zijn Knoop links; Knoop rechts; // Standaard constructor public Knoop(int waarde, Knoop links, Knoop rechts) { this.waarde = waarde; this.links = links; this.rechts = rechts; }

Boomstructuren public class Knoop { // Knoop bevat waarde int waarde; } // Knoop bevat maximaal 2 kinderen, // die zelf ook weer knopen zijn Knoop links; Knoop rechts; // Standaard constructor... snip... // Knoop met 1 kind public Knoop(int waarde, Knoop kind) { this.waarde = waarde; this.links = kind; this.rechts = null; }

Boomstructuren public class Knoop { // Knoop bevat waarde int waarde; } // Knoop bevat maximaal 2 kinderen, // die zelf ook weer knopen zijn Knoop links; Knoop rechts; // Standaard constructor... snip... // Knoop met 1 kind... snip.. // Knoop zonder kind public Knoop(int waarde) { this.waarde = waarde; this.links = null; this.rechts = null; }

Oefenopgave Schrijf een methode die de som van alle waarden in een boom berekent.

Oefenopgave Schrijf een methode die de som van alle waarden in een boom berekent. public class Knoop { // Knoop bevat waarde int waarde; // Knoop bevat maximaal 2 kinderen, // die zelf ook weer knopen zijn Knoop links; Knoop rechts; // Constructors... snip... }

Oefenopgave Schrijf een methode die de som van alle waarden in een boom berekent. public class Knoop { int waarde; Knoop links; Knoop rechts; } // Constructors... snip... public int som() { int result = waarde; if(links!= null) result += links.som(); if(rechts!= null) result += rechts.som(); return result; }

Representatie boomstructuren Een object is een groepje variabelen

Representatie boomstructuren Een object is een groepje variabelen Die variabelen kunnen ook naar een object verwijzen

Representatie boomstructuren Een object is een groepje variabelen Die variabelen kunnen ook naar een object verwijzen En die objecten van hetzelfde type zijn als het object dat ernaar verwijst

Representatie boomstructuren Een object is een groepje variabelen Die variabelen kunnen ook naar een object verwijzen En die objecten van hetzelfde type zijn als het object dat ernaar verwijst Recursie op het niveau van objecten

Representatie boomstructuren Een object is een groepje variabelen Die variabelen kunnen ook naar een object verwijzen En die objecten van hetzelfde type zijn als het object dat ernaar verwijst Recursie op het niveau van objecten Deze objecten kunnen ook methoden hebben die elkaar aanroepen

Interfaces

Interface Een interface specificeert wat een klasse moet doen, maar niet hoe

Interface Een interface specificeert wat een klasse moet doen, maar niet hoe Interface heeft een naam en een aantal methode-declaraties

Interface Een interface specificeert wat een klasse moet doen, maar niet hoe Interface heeft een naam en een aantal methode-declaraties Een klasse kan een interface implementeren met: class KlasseNaam implements InterfaceNaam

Interface Een interface specificeert wat een klasse moet doen, maar niet hoe Interface heeft een naam en een aantal methode-declaraties Een klasse kan een interface implementeren met: class KlasseNaam implements InterfaceNaam Klasse moet dan ook alle methoden van die interface implementeren

Interface Een interface specificeert wat een klasse moet doen, maar niet hoe Interface heeft een naam en een aantal methode-declaraties Een klasse kan een interface implementeren met: class KlasseNaam implements InterfaceNaam Klasse moet dan ook alle methoden van die interface implementeren Hiermee maken we verschillende objecten met dezelfde functies

Interface Een interface specificeert wat een klasse moet doen, maar niet hoe Interface heeft een naam en een aantal methode-declaraties Een klasse kan een interface implementeren met: class KlasseNaam implements InterfaceNaam Klasse moet dan ook alle methoden van die interface implementeren Hiermee maken we verschillende objecten met dezelfde functies Interface geeft ook een type

Interface Een interface specificeert wat een klasse moet doen, maar niet hoe Interface heeft een naam en een aantal methode-declaraties Een klasse kan een interface implementeren met: class KlasseNaam implements InterfaceNaam Klasse moet dan ook alle methoden van die interface implementeren Hiermee maken we verschillende objecten met dezelfde functies Interface geeft ook een type Elk object van een klasse die de interface implementeert kan dat type hebben

Voorbeeld: reeksen Getallenreeksen, bijvoorbeeld 1,2,3,..., tafel van 3, Fibonacci reeks, etc.

Voorbeeld: reeksen Getallenreeksen, bijvoorbeeld 1,2,3,..., tafel van 3, Fibonacci reeks, etc. Operaties:

Voorbeeld: reeksen Getallenreeksen, bijvoorbeeld 1,2,3,..., tafel van 3, Fibonacci reeks, etc. Operaties: Geef volgende element

Voorbeeld: reeksen Getallenreeksen, bijvoorbeeld 1,2,3,..., tafel van 3, Fibonacci reeks, etc. Operaties: Geef volgende element Reset

Voorbeeld: reeksen Getallenreeksen, bijvoorbeeld 1,2,3,..., tafel van 3, Fibonacci reeks, etc. Operaties: Geef volgende element Reset Gebruik van een reeks: print de eerste 10 getallen

Reeks interface public interface Reeks { // Reset naar het begin public void reset(); } // Geef volgende getal in de reeks // en doe een stap public int volgende();

Tafel van 3 public class Tafel3 implements Reeks { int huidige = 0; } public void reset() { huidige = 0; } public int volgende() { int resultaat = huidige; huidige += 3; return resultaat; }

Kwadraten public class Kwadraten implements Reeks { int grondgetal = 1; } public void reset() { grondgetal = 1; } public int volgende() { int resultaat = grondgetal * grondgetal; grondgetal++; return resultaat; } public int geefgrondgetal() { return grondgetal; }

Reeks gebruik public class ReeksMain { public static void main(string[] args) { // print 0 3 6 9 12 15 18 21 24 27 Tafel3 tafelvandrie = new Tafel3(); printtien(tafelvandrie); // print 1 4 9 16 25 36 49 64 81 100 Kwadraten kwadraten = new Kwadraten(); printtien(kwadraten); // Wat print dit? System.out.println(kwadraten.geefGrondgetal()); } public static void printtien(reeks reeks) { for(int i = 0; i < 10; i++) System.out.print(reeks.volgende() + " "); System.out.println(); } }

Ingebouwde datastructuren

Ingebouwde datastructuren Java heeft een hoop ingebouwde datastructuren

Ingebouwde datastructuren Java heeft een hoop ingebouwde datastructuren Een datastructuur is een object dat gebruikt kan worden om data op een slimme manier op te slaan

Ingebouwde datastructuren Java heeft een hoop ingebouwde datastructuren Een datastructuur is een object dat gebruikt kan worden om data op een slimme manier op te slaan In het vak Datastructuren meer over die slimme manier van opslaan

Ingebouwde datastructuren Java heeft een hoop ingebouwde datastructuren Een datastructuur is een object dat gebruikt kan worden om data op een slimme manier op te slaan In het vak Datastructuren meer over die slimme manier van opslaan In ons vak gebruiken we ingebouwde datastructuren, die vaak een algemene interface implementeren

Set Een set of verzameling kennen we uit de wiskunde

Set Een set of verzameling kennen we uit de wiskunde Rijtje dingen zonder dubbelen en volgorde maakt niet uit

Set Een set of verzameling kennen we uit de wiskunde Rijtje dingen zonder dubbelen en volgorde maakt niet uit Dit kan in Java op verschillende manieren worden geïmplementeerd

Set Een set of verzameling kennen we uit de wiskunde Rijtje dingen zonder dubbelen en volgorde maakt niet uit Dit kan in Java op verschillende manieren worden geïmplementeerd Maar het gebruik van een set is altijd hetzelfde: interface Set { void add(string s); void remove(string s); boolean contains(string s); //... } NB: Deze set kan alleen String waarden opslaan, in het echt iets ingewikkelder

Set gebruik public class SetExample { public static void main(string[] args) { // Dit print twee keer false Set<String> set1 = new HashSet<String>(); Test(set1); Set<String> set2 = new TreeSet<String>(); Test(set2); } } public static void Test(Set<String> set) { set.add("test"); set.add("test"); set.remove("test"); System.out.println(set.contains("Test")); }

Ingebouwde datastructuren Door alleen de interface te kennen, kunnen we deze gebruiken!

Ingebouwde datastructuren Door alleen de interface te kennen, kunnen we deze gebruiken! Andere nuttige datastructuren:

Ingebouwde datastructuren Door alleen de interface te kennen, kunnen we deze gebruiken! Andere nuttige datastructuren: List: rijtje van dingen, met add kun je makkelijk een element toevoegen

Ingebouwde datastructuren Door alleen de interface te kennen, kunnen we deze gebruiken! Andere nuttige datastructuren: List: rijtje van dingen, met add kun je makkelijk een element toevoegen Map: Mapping tussen twee waarden, bijvoorbeeld om aan een variabele (String) een waarheidswaarde toe te kennen (boolean)

Ingebouwde datastructuren Door alleen de interface te kennen, kunnen we deze gebruiken! Andere nuttige datastructuren: List: rijtje van dingen, met add kun je makkelijk een element toevoegen Map: Mapping tussen twee waarden, bijvoorbeeld om aan een variabele (String) een waarheidswaarde toe te kennen (boolean) Stack: stapel van dingen, het ding wat je het laatst toevoegt haal je als eerste er weer af

Quiz