Informatica. Leren programmeren met JAVA en NetBeans. Over JAVA en Rapid Application Development met NetBeans. Bert Van den Abbeele
|
|
|
- Sonja ten Wolde
- 10 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Informatica Leren programmeren met JAVA en NetBeans Over JAVA en Rapid Application Development met NetBeans Bert Van den Abbeele
2
3 Leren programmeren met JAVA en NetBeans Over JAVA en Rapid Application Development met NetBeans... door Bert Van den Abbeele
4 Inhoudsopgave Inleiding...5 Probleemoplossend denken...5 Compiler...6 De programmeertaal JAVA...7 Een consoleapplicatie maken...7 Een applet maken...8 Mijn eerste java applicatie met NetBeans...9 Besturingselementen toevoegen aan de applicatie...11 Een actie toevoegen...12 Variabelen declareren...13 Invoer...14 Instructies...14 Uitvoer...14 Herhaling...15 Test je kennis...15 Oefeningen...16 De sequentie...17 Oefening: Fahrenheit...17 Oefening: Het telraam...18 Herhaling...20 Test je kennis...20 Oefeningen...20 De selectie...21 Wat is dit?...21 Oefening: Even of Oneven?...21 Oefening: Kop of munt...23 Oefening: Welke dag?...25 Herhaling...27 Test je kennis...27 Oefeningen...27 De iteratie...28 Oefening: Quotiënten...29 Oefening: Piemgetallen...31 Oefening: Letter per letter...34 Oefening: Zoek de GGD...36 Herhaling...38 Test je kennis...38 Oefeningen...38 Leren programmeren met JAVA 4 Bert Van den Abbeele
5 Inleiding In deze cursus leert u Java applicaties op te bouwen. We maken gebruik van de IDE (Integrated Development Environment) NetBeans. We wensen zo snel mogelijk een werkende applicatie te hebben. Hiervoor gebruiken we de formulier/label-ontwikkelaar van NetBeans, deze maakt RAD (Rapid Application Development) ook binnen Java mogelijk. Tijdens het opbouwen van de applicaties en de oefeningen komen alle belangrijjke aspecten van programmeren en van de programmeertaal Java aan bod. Veel succes! Bert Van den Abbeele Probleemoplossend denken Als we een programma maken moeten we denken aan het gegevensverwerkend proces. INVOER VERWERKING UITVOER De oplossing van een probleem kunnen we niet uit het hoofd bedenken. We moeten probleemgericht werken. Laten we eerst het probleem definiëren, dan een analyse maken en vervolgens een schema. Zo delen we ons probleem in stukken en maken we een aantal stroomdiagrammen, controlestructuren (bvb: Nassi Schneidermann diagrammen) of pseudocodes. De stappen bij elke oefening zijn de volgende: Wat is gegeven? Probleemstelling Probleemanalyse Wat moet nog ingevoerd worden? Welke verwerking moet gebeuren? Wat met de uitvoer? Algoritme Programma Testen Documenteren Leren programmeren met JAVA 5 Bert Van den Abbeele
6 Compiler De computer begrijpt enkel machinetaal. Elke processor wordt op een bepaalde manier aangestuurd om berekeningen te maken en met het geheugen te werken. Rechtstreeks in machinetaal schijven is bijna onmogelijk. Gelukkig bestaan er programma's die een voor de mens meer verstaanbare taal kan omzetten naar machinetaal. Zo'n programma heet een compiler. Broncode Compiler voor Windows en x86-64 processor programma.exe Uitvoer De tegenhanger van compileren is interpreteren. Hierbij wordt de code, lijn per lijn, ingelezen en vertaald voor de processor. Broncode Uitvoer Lijn per lijn... Wanneer een executable (.exe bestand) gemaakt wordt door de compiler, gebeurt er vaak nog veel meer dan enkel het omzetten. De compiler zal eerst de debugger activeren die de broncode doorleest op mogelijke fouten. De naam bugs stamt uit de tijd toen de computer nog geen gebruik maakte van chips, maar van elektronische schakelaars. Er waren toen ooit "bugs", namelijk kevers, die een programma door kortsluiting in de war bracht. De debugger toont waar de fout optreedt en geeft hierbij goede raad. Ook wanneer de bugs verdwenen zijn zal je uiteindelijk aanpassingen moeten doorvoeren. Je kan je de vraag stellen of software ooit echt afgewerkt is. Het is zeer belangrijk dat je tussen de broncode commentaar plaatst, zodat je achteraf de code kan analyseren. We vertelden reeds dat elke processor en elk besturingsysteem zijn eigen instructieset heeft. De compiler zorgt ervoor dat een programma slechts op een beperkt aantal computers zal werken. Een oplossing voor dit nadeel is het werken met een "runtime library". Hierbij wordt er niet naar een machinetaal maar naar een runtime-taal gecompileerd (=intermediate language). Wanneer je een runtime installeert, controleert deze je besturingsysteem en hardware. Het gecompileerde programma wordt via de runtime geoptimaliseerd voor het besturingsysteem en de software. Op deze manier moet de programmeur maar één versie van zijn programma maken. Broncode > Compileer onafhankelijke intermediate language > Uitvoer via runtime library Enkele voorbeelden: Java heeft zijn Virtual Machine "Write once, run anywhere." Common Runtime Library (CLR) van het (Microsoft).NET Framework De compiler die wij in deze cursus gebruiken is de Java Development Kit (JDK). Deze is vrij te downloaden op De compiler zelf heet javac en is terug te vinden in de installatiedirectory. Leren programmeren met JAVA 6 Bert Van den Abbeele
7 De programmeertaal JAVA Java is een objectgeörienteerde programmeertaal ontwikkeld door Sun Microsystems. Het belangrijkste kenmerk is zijn platformonafhankelijkheid via de Java virtual machine (JVM). Objectgeörienteerd betekent dat we werken met objecten. Objecten worden gedefinieerd in klassen. Een klein programma kan slechts uit één klasse bestaan. public class MijnNaam { Hierboven definieerden we de publiek toegankelijke klasse MijnNaam. De functionaliteit van ons progamma bevindt zich binnen de klasse in methoden. We kunnen methoden maken die berekeningen maken of die gegevens op het scherm weergeven. Elk programma bestaat minstens uit één methode: de main methode. De main methode is het startpunt van het programma en daarom onmisbaar. public static void main (String[] args) { Hierboven definieerden we de publiek toegankelijke statische methode Main. De methode main geeft geen waarden terug, vandaar het woord void. Elke programmeertaal beschikt over een klassenbibliotheek. Deze zijn hierachisch opgebouwd en verzorgen de functionaliteit binnen de programmeertaal. Het is ook mogelijk bibliotheken (libraries) toe te voegen. Een consoleapplicatie maken Stap 1: Schrijf onderstaande code in NotePad public class MijnNaam { public static void main (String[] args) { System.out.println("Mijn naam!"); Stap 2: Sla deze tekst op als mijnnaam.java! Sla dit op in de map waar de Java compiler aanwezig is, standaardlocatie: C:\jdk1.3.1_16\bin. Stap 3: Ga naar de opdrachtprompt en compileer deze code met de JDK: typ: javac MijnNaam.java (Deze maakt MijnNaam.class aan!) Stap 4: Start jouw programma met de JDK: typ: java mijnnaam Leren programmeren met JAVA 7 Bert Van den Abbeele
8 Een applet maken Stap 1: Schrijf onderstaande code in NotePad import java.applet.applet; import java.awt.graphics; public class applet extends Applet { public void paint( Graphics g ) { g.drawstring( "Een voorbeeld!", 25, 25 ); Stap 2: Sla deze tekst op als applet.java! Sla dit op in de map waar de Java compiler aanwezig is, standaardlocatie: C:\jdk1.3.1_16\bin. Stap 3: Ga naar de opdrachtprompt en compileer deze code met de JDK: typ: javac applet.java (Deze maakt applet.class aan!) Stap 4: Maak een HTML pagina aan: <HTML> <HEAD> <TITLE>Uw eerste applet</title> </HEAD> <BODY> <APPLET CODE = "applet.class" width=130 height=40> </APPLET> </BODY> </HTML> Stap 5: Plaats applet.class bij het HTML document! Stap 6: Kijk of uw eerste applet op de pagina wordt geladen! Tip: Alternatief voor Notepad In plaats van Notepad zijn er vele teksteditoren die code inkleuren. Sommigen kunnen zelfs fouten detecteren (bvb.: niet afgeloten acolades). Een interessant alternatief voor Notepad is NotePad++. Deze simpele teksteditor maakt syntax kleuring, lijnnummering en inspringen mogelijk. Je kan deze downloaden Leren programmeren met JAVA 8 Bert Van den Abbeele
9 Mijn eerste java applicatie met NetBeans We starten een nieuw project: File > New project... Kies voor Java Desktop Application en vervolgens op Next >. Geef je project een naam, locatie en kies basic application. Klik op Finish en je applicatie wordt opgebouwd Leren programmeren met JAVA 9 Bert Van den Abbeele
10 We bestuderen de onderdelen van de IDE NetBeans. IDE staat voor Integrated Development Environment. Zoals elk computerprogramma is er een titelbalk, menubalk en werkbalk aanwezig. De werkbalk bevat een zeer belangrijke knop. De run main project -knop: Hiermee starten we onze applicatie. Er zijn ook knoppen aanwezig voor het opbouwen en debuggen van het project, deze komen later aan bod. Het midden van het werkveld is opgedeeld in drie onderdelen. Links zijn onze bestanden terug te vinden. In het midden vinden we het actieve bestand terug. Rechts is het palet met besturingselementen en eigenschappen terug te vinden. Onderaan het werkveld vinden we de balk output. Deze geeft ons informatie tijdens een run, build of debug. Dit is de plaats waar foutmeldingen tijdens het uitvoeren van het programma tevoorschijn komen. Onze applicatie is een desktop applicatie. Daarom zijn er twee weergaven van ons bestand. We hebben de broncode- en de designweergave. De designweergave maakt het mogelijk besturingselementen op het formulier (paneel) te plaatsen en de eigenschappen ervan aan te passen. De source is de onderliggende code van ons programma. We kunnen tussen beide weergaven schakelen door de knoppen Source en Design. Leren programmeren met JAVA 10 Bert Van den Abbeele
11 Besturingselementen toevoegen aan de applicatie Sleep drie tekstvelden (Text Field), drie labels (Label) en één knop (Button) op het paneel. Versleep de elementen en gebruik de randen van objecten om deze te herschalen. Op de achtergrond wordt steeds code gegenereerd voor het paneel. Het kan zijn dat hierdoor de elementen van plaats veranderen, even herschikken is de oplossing. We moeten vervolgens de properties van de elementen aanpassen. Bij elk element gaan we twee eigenschappen aanpassen: de naam en de tekst. Geef de elementen een logische naam, laat de namen starten met een afkorting van hun type. De namen worden: lblprijs, lblaantal en lbltotaal. Als tekst krijgen ze respectievelijk Prijs, Aantal en Totaal. De knop krijgt de naam btnbereken en als tekst Bereken. De tekstvelden krijgen geen tekst mee en als naam txtprijs, txtaantal en txttotaal. Vervolgens gaan we van de properties naar de Code. Hier veranderen we voor elk element de naam van de variabele () door de naam van het element. Druk op de run main project -knop: We wisselen naar de source-weergave: We zien een pakket met de naam van onze eerste toepassing. Onze applicaties importeert een aantal libraries waardoor het mogelijk wordt een formulier op te bouwen. Leren programmeren met JAVA 11 Bert Van den Abbeele
12 Hier start onze eerste klasse met dezelfde naam als ons pakket en project. Het erft alle functionaliteiten uit de geimporteerde bibliotheken. Hieronder komt de code die we gegenereerd hebben in de designweergave. Klik op het +-teken om de code te bekijken. Vervolgens lees je de eigenschappen die we aangepast hebben. Deze namen zullen we straks nodig hebben om waarden uit te lezen en weer te geven in de elementen. Een actie toevoegen We gaan een gebeurtenis toevoegen aan ons paneel. Wanneer iemand op een knop klikt is er een event op het paneel, aan dit event koppelen we een bepaalde actie. We keren terug naar de designweergave. Dubbelklik op de knop berekenen. Kies voor Action: Create New Action... Geef de actie een logische naam. Klik vervolgens op OK. Het scherm verandert automatisch naar de sourceweergave. Er wordt een nieuwe methode aangemaakt binnen onze klasse. Hier kunnen we code binden aan onze knop. Leren programmeren met JAVA 12 Bert Van den Abbeele
13 @Action public void startberekening() { Deze methode geeft geen waarde terug, vandaar void. Variabelen declareren Wanneer iemand op de knop drukt wordt de prijs en het aantal met elkaar vermenigvuldigd. Het resultaat wordt weergegeven in het tekstvak totaal. Eerst gaan we variabelen aanmaken voor prijs, aantal en totaal. Een variabele kan verschillende gegevenstypes hebben. Twee belangrijke zijn numeriek en alfanumeriek. Binnen de categorie numerieke variabelen zijn er twee groepen: de integere (gehele) en floats (decimale) getallen. integers type min max aantal bits byte short int long floats type precisie aantal bits float 1, e-45 tot 3, e double 4, e-324 tot 1, e Binnen de alfanumerieke categorie zijn er ook twee mogelijkheden: char (karakter) of string (tekst). Er bestaat ook een variabele van het type boolean, deze variabele kent slechts twee toestanden true (waar) of false (vals). We hebben nood aan een float voor de prijs, een short voor het aantal en een float voor totaal. public void startberekening() { float prijs ; short aantal; float totaal; Leren programmeren met JAVA 13 Bert Van den Abbeele
14 Invoer De volgende stap is het inlezen van de waarden uit het formulier. We kunnen alle objecten binnen onze applicatie bekijken door this. in te tikken. Vervolgens gaan we op zoek naar het tekstvak. We weten dat tekstvakken beginnen met txt. Het object tekstvak heeft een methode voor het uitlezen van zijn, gettext(). Op deze manier bekomen we prijs=this.txtprijs.gettext(). Deze instructie zal echter niet tot het gewenste resultaat leiden. We gaan tekst opslaan als een getal en dat kan je niet zomaar doen. Hiervoor moeten we een typeconversie doen. We roepen de klasse Float op en zoeken de methode parsefloat. Op deze manier bekomen we prijs=float.parsefloat(this.txtprijs.gettext()). Merk op dat de klasse Float waaruit we de methode gettext() halen met een hoofdletter geschreven is, dit in tegenstelling tot het gegevenstype float. prijs=float.parsefloat(this.txtprijs.gettext()); aantal=short.parseshort(this.txtaantal.gettext()); Instructies Vervolgens berekenen we het totaal. totaal=prijs*aantal; Uitvoer Tot slot gaan we het totaal weergeven op het formulier. Hiervoor roepen we de methode settext aan van ons tekstvak txttotaal. Dit geeft ons this.txttotaal.settext(totaal). Deze instructie zal echter niet tot het gewenste resultaat leiden. De methode settext verwacht een string en we hebben de float totaal als parameter ingegeven. We moeten ook hier een typeconversie doen. public void startberekening() { float prijs ; short aantal; float totaal; prijs=float.parsefloat(this.txtprijs.gettext()); aantal=short.parseshort(this.txtaantal.gettext()); totaal=prijs*aantal; this.txttotaal.settext(string.valueof(totaal)); Druk op de run main project -knop: Leren programmeren met JAVA 14 Bert Van den Abbeele
15 Herhaling Wat moet ik kennen? Rapid Application Development (RAD). Het gegevensverwerkend proces en probleemoplossend denken. De begrippen:compileren, debuggen en interpreteren. De begrippen: Klassen, methoden en parameters. De gegevenstypen. De begrippen: Java Development Kit (JDK) en Java Runtime Environment (JRE). Wat moet ik kunnen? Een consoleapplicatie maken. Een applet maken. Een Netbeans Java Desktop applicatie maken met verschillende besturingselementen. Een actie toevoegen aan het besturingselement knop. In- en uitvoer verwerken met typeconversie (parsing). Test je kennis Vraag 1: Wat is het verschil tussen de Java Development Kit (JDK) en Java Runtime Environment (JRE) Vraag 2: Wat is een methode? Vraag 3: Waarom is typeconversie (parsing) noodzakelijk? Vraag 4: Wat is het verschil tussen een applet, desktop- en consoleapplicatie? Leren programmeren met JAVA 15 Bert Van den Abbeele
16 Oefeningen Oefening 1: Maak onderstaande consoleapplicatie en beantwoord de vragen. public class Main { public static void main(string[] args) { String gegeven; Persoon.setNaam("Bert"); gegeven=persoon.getnaam(); System.out.println(gegeven); class Persoon { static String strnaam; public static void setnaam(string ingave) { strnaam = ingave; public static String getnaam() { return strnaam; Noteer de lijn waarop je het gevraagde terug kan vinden: De declaratie van de variabele:... De methode die geen waarde terug geeft:... De methode die een parameter nodig heeft:... De methode waar ons programma mee start:... De methode die tekst terug geeft:... Oefening 2: Maak een programma die de waarde van twee tekstvakken kan optellen, aftrekken, vermenigvuldigen,... Leren programmeren met JAVA 16 Bert Van den Abbeele
17 De sequentie De sequentie is een opeenvolging van opdrachten. Deze worden stap per stap doorlopen. We willen de computer een aantal acties na elkaar laten uitvoeren zonder keuzes te maken of sprongen te nemen. We zullen ons probleem stapsgewijs analyseren. Uiteindelijk zullen we een algoritme opstellen, dit is een opeenvolging bestaande uit verschillende stappen om ons doel te bereiken. Oefening: Fahrenheit Probleemstelling Maak een programma die een aantal graden Celcius omzet naar Fahrenheit. Palletobject Property Value JLabel JLabel JTextField JTextField JButton enable lblcelsius Celcius lblfahrenheit Fahrenheit txtcelsius txtfahrenheit false btnrekenen Celcius naar Fahrenheit Probleemanalyse Wat is gegeven? Fahrenheit = Celsius Wat moet nog ingevoerd worden? Een aantal graden Celsius. Welke verwerking moet gebeuren? Omrekenen van Celsius naar Fahrenheit. Wat met de uitvoer? Een aantal graden Fahrenheit. Algoritme Structuurdiagram start stop celsius, fahrenheit: double INVOER: celsius fahrenheit=celsius* UITVOER: fahrenheit Psuedocode Leren programmeren met JAVA 17 Bert Van den Abbeele
18 Programma Operator Operator - Negatief maken of aftrekken * Vermenigvuldigen / Deling % Modulo (rest bij deling) + Optellen public void Bereken() { double celsius ; double fahrenheit; celsius=float.parsefloat(this.txtcelsius.gettext()); fahrenheit=celsius*1.8+32; this.txtfahrenheit.settext(string.valueof(fahrenheit)); Oefening: Het telraam Testen Documenteren Probleemstelling Maak een programma dat kan tellen. Er zijn twee knoppen en één label. Het label bevat steeds een zin met de huidige tellerwaarde. Palletobject Property Value JButton JButton JLabel Probleemanalyse Wat is gegeven? De teller start op 0 btnmeer Meer btnminder Minder lblteller De teller staat op... Wat moet nog ingevoerd worden? Een druk op de knop meer of minder Leren programmeren met JAVA 18 Bert Van den Abbeele
19 Welke verwerking moet gebeuren? Druk op knop meer = teller verhogen Druk op knop minder = teller verminderen Wat met de uitvoer? De teller staat op... Algoritme Structuurdiagram teller: integer teller=0 start Meer teller++ UITVOER: De teller staat op, teller stop start Minder teller-- UITVOER: De teller staat op, teller stop Psuedocode int teller = 0; Operator Programma Operator + Concatenatie (tekst samenvoegen) ++ Increment -- public void Meer() { teller++; this.lblteller.settext("de teller staat op public void Minder() { teller--; this.lblteller.settext("de teller staat op "+String.valueOf(teller)); Java kan alle operatoren combineren met het isgelijkteken. We kunnen te teller verhogen door teller = teller + 1 maar ook verkort door teller+=1. Aangezien het hier een toename met 1 is kunnen we gebruik maken van de operator ++ en krijgen we teller++. Testen Documenteren Leren programmeren met JAVA 19 Bert Van den Abbeele
20 Herhaling Wat moet ik kennen? De controlestructuur sequentie en zijn syntax.. Operatoren gebruiken voor increment, decrement en concatenatie. Wat moet ik kunnen? Een algoritme opstellen in NS-diagram of pseudocode. Tekst samenvoegen via het concatenatieteken. Test je kennis Vraag 1: Noteer in eigen woorden wat een algoritme is Vraag 2: Wat is concateneren? Vraag 3: Wat gebeurt er wanneer we de opdracht getal++ geven? Oefeningen Oefening 1: Maak een programma voor aan de kassa van de locale supermarkt. De kassierster geeft in wat de klant moet betalen en het ontvangen bedrag. Het programma berekent hoeveel geld we terug moeten krijgen. Oefening 2: Maak een programma waarbij de enkele graden Celcius invoeren, na een druk op de knop weten we hoeveel graden Fahrenheit dit is. (Maak ook het omgekeerde mogelijk) Oefening 3: Maak een programma voor een winkel. De gerant geeft de inkoopprijs in, en de winstmarge. Het programma geeft de verkoopprijs exclusief en inclusief 21% BTW. Leren programmeren met JAVA 20 Bert Van den Abbeele
21 De selectie Wat is dit? We spreken van een selectie, wanneer een actie pas wordt uitgevoerd als aan een bepaalde voorwaarde voldaan is. Een voorbeeld van een selectie in OpenOffice.org Calc is de functie ALS(). Oefening: Even of Oneven? Probleemstelling Geef een getal in en bepaal of dit getal even of oneven is. Palletobject Property Value JLabel JTextField JButton JLabel lblgetal Getal txtgetal BtnControleer Controleer lblresultaat Het getal is... [even/oneven] Probleemanalyse Wat is gegeven? Een even getal is deelbaar door 2. Wat moet nog ingevoerd worden? Een getal. Welke verwerking moet gebeuren? Bereken de rest na deling door 2. Is de rest 0 dan is het een even getal, zo niet dan is het een oneven getal. Modulus (mod) is een rekenkundige bewerking waarmee je op een eenvoudige en snelle manier de rest kan bekomen van een deling. Wat met de uitvoer? Het antwoord: even of oneven Algoritme getal: integer rest: double antwoord: string INVOER: getal rest = getal % 2 IF rest==0 THEN antwoord= even Leren programmeren met JAVA 21 Bert Van den Abbeele
22 Structuurdiagram ELSE antwoord= oneven ENDIF Uitvoer: antwoord Psuedocode Hier worden twee verschillende acties ondernomen, we noemen dit een tweevoudige selectie. We spreken hier ook soms over de If Then Else of in het nederlands Als Dan Anders. Programma Operator Vergelijking Operator Vergelijking > Groter dan! NOT < Kleiner dan Voorbeeld: Als X==5, dan is X!=1 waar. = = Gelijk aan && AND! = Niet gelijk aan Voorbeeld: Als X==5 dan is X>10 && X<100 vals. < = Kleiner of gelijk aan Short-circuit OR > = Groter of gelijk aan Voorbeeld: Als X==5 dan is X>10 X<100 waar. & Logische AND public void Controleer() { int getal; getal = Integer.parseInt(this.txtGetal.getText()); double rest; rest=getal%2; if (rest==0) { this.lblresultaat.settext("even"); else { this.lblresultaat.settext("oneven"); Testen Documenteren Leren programmeren met JAVA 22 Bert Van den Abbeele
23 Oefening: Kop of munt Probleemstelling Maak een programma die kan tossen: Kop of Munt? Palletobject Property Value JTextField JButton TxtTossen btntossen Tossen! Probleemanalyse Wat is gegeven? Kop of munt? Wat moet nog ingevoerd worden? - Welke verwerking moet gebeuren? Willekeurig 1 (Kop) of 2 (Munt)... Wat met de uitvoer? Kop of munt in tekstvak Algoritme rnd: double rnd=math.floor(math.random()*2)+1 CASE rnd OF 1 : KopOfMunt= Kop 2 : KopOfMunt= Munt ENDCASE UITVOER: KopOfMunt Psuedocode In deze oefening hebben we een willekeurig getal nodig: 1 (Kop) of 2 (Munt). Hieronder lees je hoe we een willekeurig getal kunnen maken. rnd=math.random() 0, ,9...9 rnd=math.random()*6 0, ,9...9 rnd=math.floor(math.random()*6) 0 4 rnd=math.floor(math.random()*6) Math syntax Bereik rnd De algemene formule is dus: rnd=math.floor(math.random()*hoogstewaarde-laatsewaarde+1)+laagtsewaarde In ons geval is dit: rnd=math.floor(math.random()*2-1+1)+1 rnd=math.floor(math.random()*2)+1 Merk op dat de functie Math.random en Math.floor werken met rationele getallen. Java is zeer strict over het gegevenstype van variabelen. Indien we de bovenstaande code gebruiken moeten we de variabele rnd declareren als een double, omdat de Math-functie double terug geeft. Leren programmeren met JAVA 23 Bert Van den Abbeele
24 double rnd; rnd=math.floor(math.random()*2)+1; We slaan echter twee gehele getallen op in rnd. Willen we rnd toch als integer declareren dan moeten we het gegevenstype van de waarde die de Math-functie terug geeft aanpassen. Dit heet typecasting. Het casten gebeurt door het gegegevenstype tussen haken te plaatsen voor de expressie. int rnd; rnd=(int) Math.floor(Math.random()*2)+1; In deze oefeningen hebben we opnieuw een keuze te maken. We hebben 1 (Kop) of 2 (Munt). We kunnen hiervoor een selectie opbouwen met de if syntax of gebruik maken voor de overzichtelijke select case syntax. if (rnd==1) { KopOfMunt="Kop"; else if (rnd==2) { KopOfMunt="Munt"; else { KopOfMunt=""; If select Programma public void Tossen() { int rnd; String KopOfMunt; rnd=(int) Math.floor(Math.random()*2)+1; KopOfMunt=""; switch (rnd) { case 1: KopOfMunt = "Kop"; break; case 2: KopOfMunt = "Munt"; break; default: KopOfMunt=""; this.txttossen.settext(kopofmunt); switch (rnd) { case 1: KopOfMunt = "Kop"; break; case 2: KopOfMunt = "Munt"; break; default: KopOfMunt=""; Case select Testen Documenteren Leren programmeren met JAVA 24 Bert Van den Abbeele
25 Oefening: Welke dag? Probleemstelling Je kan nooit beslissen op welke dag je huistaken gaat maken. Maak een programma die een willekeurige dag voor je kiest. Palletobject Property Value JLabel JTextField JButton lbldag Welke dag? txtdag btndag Kies dag! Probleemanalyse Wat is gegeven? Een willekeurige dag Wat moet nog ingevoerd worden? - Welke verwerking moet gebeuren? Willekeurige dag kiezen (nummer 0 tot 6) Wat met de uitvoer? De dag als tekst (maandag tot zondag) Algoritme rnd: int rnd=math.floor(math.rand()*7) arrdagen: array: String Dag=arrDagen[rbd] UITVOER: Dag Structuurdiagram Psuedocode We hebben 7 mogelijkheden, dus wensen we een willekeurig getal van 0 tot 6. We maken opnieuw gebruik van de functie: rnd=math.floor(math.random()*hoogstewaarde- LaatseWaarde+1)+LaagtseWaarde. In ons geval: rnd=math.floor(math.random()*7) Elk nummer staat voor een bepaalde dag. We moeten dit nummer kunnen omzetten naar een dag. De reeds gekende select case is bruikbaar maar er is een betere manier, namelijk werken met een array. Een array is een dimentionele variabele, een variabele met meerdere waarden. We voegen aan de variabele een index toe. Onder elke index kunnen we een nieuwe waarde (van hetzelfde gegevenstype) plaatsen. switch (Dagen) { case 0: Dag = "maandag"; break; case 1: KopOfMunt = "dinsdag"; break; case 2: KopOfMunt = "dinsdag"; String[] arrdagen; arrdagen = new String[7]; arrdagen[0] = "maandag"; arrdagen[1] = "dinsdag"; arrdagen[2] = "woensdag"; arrdagen[3] = "donderdag"; Leren programmeren met JAVA 25 Bert Van den Abbeele
26 ... break; case 6: KopOfMunt = "zondag"; break; select case arrdagen[4] = "vrijdag"; arrdagen[5] = "zaterdag"; arrdagen[6] = "zondag"; array Programma public void WillekeurigeDag() { // We maken een array voor de dagen van de week. String[] arrdagen; arrdagen = new String[7]; // We vullen de array met de dagen van de week. arrdagen[0] = "maandag"; arrdagen[1] = "dinsdag"; arrdagen[2] = "woensdag"; arrdagen[3] = "donderdag"; arrdagen[4] = "vrijdag"; arrdagen[5] = "zaterdag"; arrdagen[6] = "zondag"; // Willekeurig getal tss 0 en 6 zoeken.; int rnd; //rnd=integer.parseint(willekeur); rnd=(int) Math.floor(Math.random()*7); // De waarde uit de array halen en terug geven aan de gebruiker. this.txtdag.settext(arrdagen[rnd]); We merken dat we de code steeds structureren met tabs, dit maakt de code leesbaar. Om code gemakkelijker te begrijpen zie je hierboven commentaar tussen de code staan. Het documenteren en becommentariëren van code is zeer belangrijk. Er zijn twee manieren om code te noteren. 1 Code met één regel // Hierna komt de commentaar 2 Code met meerdere regels /* Hierna komt de meerlijnige code */ Deze syntax zorgt ervoor dat de regels genegeerd worden bij het uitvoeren van de code. Testen Documenteren Leren programmeren met JAVA 26 Bert Van den Abbeele
27 Herhaling Wat moet ik kennen? De controlestructuur selectie en zijn syntax. De verschillende operatoren. Een select case en zijn syntax. Een array met zijn syntax. Wat moet ik kunnen? De functie mod() gebruiken om een rest bij deling te berekeken. Een willekeurig getal genereren door de klasse Math te gebruiken. Commentaar toevoegen aan een programma. Het gegevenstype aanpassen via casting. Test je kennis Vraag 1: Wat is een array.... Vraag 2: Waarom is het nodig te casten?... Vraag 3: Wanneer maken we gebruik van een select case?... Oefeningen Oefening 1: Maak een programma die de vierkantswortel van een gegeven getal weergeeft. Oefening 2: Maak een programma die weergeeft of een gegeven jaar een schrikkeljaar is. Oefening 3: Maak een array aan met 10 willekeurige getallen. Laat deze willekeurige getallen zien aan de gebruiker. Oefening 4: Maak een programma die de oppervlakte van een cirkel berekent. Oefening 5: Maak een programma die controleert of een rekeningnummer geldig is. Oefening 6: Maak een programma waarbij een persoon zijn grootte en zijn gewicht ingeeft. Het programma berekent je ideale gewicht en geeft commentaar (overgewicht, goed gewicht of ondergewicht). Leren programmeren met JAVA 27 Bert Van den Abbeele
28 De iteratie Een iteratie is een herhaling in een programma. Er bestaan verschillende soorten herhalingen: Begrensde herhaling Een actie wordt een aantal keer herhaald. De begin en eindwaarde van de teller is op voorhand bepaald. Telkens de lus doorlopen wordt verhogen we de teller. for (teller=startwaarde; teller<=eindwaarde; teller verhogen) { acties Voorwaardelijke herhaling met aanvangsvoorwaarde Een voorwaarde wordt gecontroleerd alvorens de herhaling te starten. De herhaling blijft de acties uitvoeren tot de voorwaarde niet meer voldaan is. while (voorwaarde) { acties Voorwaardelijke herhaling met afbreekvoorwaarde De acties worden steeds minstens één keer doorlopen. Op het einde van de acties wordt gecontroleerd of een voorwaarde voldaan is. Is de voorwaarde voldaan dan worden de acties opnieuw uitgevoerd. Is de voorwaarde niet voldaan dan wordt de lus niet uitgevoerd. do { opdrachtenblok while (voorwaarde) ; Wees steeds aandachtig wanneer je een herhaling gebruikt. Ooit al eens een programma gehad die niet meer reageerde? Misschien was dit programma in een oneindige lus terecht gekomen. De voorwaarde moet ooit voldaan zijn zodat de herhaling wordt gestopt. int teller=0; do { teller=teller+1 while (teller>0) ; Structuurdiagram JAVA De teller verhogen of verlagen kan zoals hierboven via teller=teller+1. We kunnen deze ook in een verkorte notatie plaatsen. Teller = teller + 1 Teller = teller++ Teller = teller + 1 Teller = teller + increment Teller++ Teller += increment Voluit gescherven Verkorte notatie Deze verkortingen zijn ook met andere bewerkingen mogelijk. Leren programmeren met JAVA 28 Bert Van den Abbeele
29 Oefening: Quotiënten Probleemstelling Geef een overzicht van de deeltallen van deeltal X voor alle gehele delers vanaf een bepaalde startdeler tot einddeler. Palletobject Property Value JLabel JLabel JLabel JTextField JTextField JTextField JButton JTextArea lbldeeltal Deeltal lblstartdeler Startdeler lbleinddeler Eindeler txtdeeltal txtbegindeler txteinddeler btnreken Reken! txtresultaat Probleemanalyse Wat is gegeven? Een programma geeft delers weer Wat moet nog ingevoerd worden? Deeltal, startdeler en einddeler Welke verwerking moet gebeuren? Delen door (We gaan ook aandacht hebben voor het probleem: delen door nul.) Wat met de uitvoer? Deeltal / Deler = Resultaat Algoritme Leren programmeren met JAVA 29 Bert Van den Abbeele
30 INVOER: deeltal INVOER: startdeler INVOER: einddeler FOR teller <= einddeler UITVOER:resultaat=deeltal/teller ENDFOR Structuurdiagram Psuedocode Programma In deze oefening is het mogelijk dat de gebruiker probeert te delen door nul. Dit kan voor problemen zorgen. Daarom gaan we de problemen of beter exceptions vangen. Hiervoor gebruiken we een try-catch. Try { // Probeer dit uit te voeren... catch (Exception e) { // Vang uitzonderingen op in variabele e // Plaats de uitzondering in de statusbalk this.statusmessagelabel.settext("exception found: "+e); public void Delen() { int deeltal; int startdeler; int einddeler; int teller; int resultaat; deeltal=integer.parseint(this.txtdeeltal.gettext()); startdeler=integer.parseint(this.txtstartdeler.gettext()); einddeler=integer.parseint(this.txteinddeler.gettext()); this.txtresultaat.settext(""); for (teller=startdeler; teller<=einddeler;teller++) { try { resultaat=deeltal/teller; this.txtresultaat.settext( this.txtresultaat.gettext()+string.valueof( deeltal)+" / "+String.valueOf(teller)+" = "+String.valueOf(resultaat)+"\n"); catch (Exception e) { this.statusmessagelabel.settext("exception found: "+e); Testen Documenteren Leren programmeren met JAVA 30 Bert Van den Abbeele
31 Oefening: Piemgetallen Probleemstelling Maak een programma dat priemgetallen zoekt. Palletobject Property Value JLabel JLabel JLabel JTextField JTextField JButton JArea lblpriem Priemgetallen lblbegin Begin lbleinde Einde txtbegin txteinde btnpriem Priemgetallen zoeken txtpriem Probleemanalyse Wat is gegeven? Priemgetallen zoeken... Wat moet nog ingevoerd worden? Begin en eindpunt waartussen we de priemgetallen moeten vinden Welke verwerking moet gebeuren? Is het priem? Wat met de uitvoer? De priemgetallen onder elkaar weergeven. Algoritme Leren programmeren met JAVA 31 Bert Van den Abbeele
32 INVOER: begin INVOER: einde WHILE begin <= einde start = 2 stop = sqrt(begin) ispriem = true WHILE start <= stop rest=begin%start IF rest==0 AND begin!=start ispriem= false ENDIF ENDWHILE IF ispriem== true UITVOER: begin ENDIF ENDWHILE Structuurdiagram Psuedocode We voeren begin en eindpunt in. Aangezien negatieve getallen, nul en één niet priem zijn moeten we deze overslaan. Begin kan dus nooit lager zijn dan 2. We maken een nieuwe methode of functieprocedure aan: public boolean ispriem(int x).deze functie geeft true(1) of false(0) terug, vandaar het gegevenstype boolean. De functie ispriem neemt als argument een integer getal x. We proberen in de functie het getal x te delen vanaf 2 tot de vierkantswortel van x. Indien de rest 0 is dan hebben we een deler gevonden. Deze deler mag alleen 1 of het getal zelf zijn. Het getal 1 controleren we niet maar het getal zelf wel. Indien we een getal vinden dat deelbaar is, moeten we enkel controleren of dit het getal zelf is. Indien we een deler vinden dat niet het getal zelf is dan is het getal geen priemgetal. Op het einde van de functie noteren we return ispriem, dit zorgt ervoor dat de waarde terug gegeven wordt. public void priemgetallen() { // We maken het tekstveld leeg this.txtpriem.settext(""); // Het begin en einde uitlezen int begin; int einde; Programma begin=integer.parseint(this.txtbegin.gettext()); // De startwaarde kan nooit kleiner zijn dan // 2 (negatief, 0 en 1 zijn nooit priem) if ((begin==0) (begin==1) (begin<0)) { begin=2; Leren programmeren met JAVA 32 Bert Van den Abbeele
33 einde=integer.parseint(this.txteinde.gettext()); // Alle getallen van begin tot einde doorlopen // met stappen van 1 in begrensde herhaling int teller; for(teller=begin;teller<=einde;teller=teller+1) { if (ispriem(teller)==true) { this.txtpriem.settext(this.txtpriem.gettext()+ String.valueOf(teller)+"\n"); public boolean ispriem(int x) { // Variabele aanmaken voor de terugkeerwaarde boolean ispriem; ispriem=true; // We maken een teller aan, dit is tevens onze deler // We delen de te testen waarde door alle getallen van 2 // We stoppen met testen bij de vierkanswortel // van het te testen getal int i; int stop = (int) Math.sqrt(x); // De teller doorlopen met een begrensde herhaling for(i=2;i<=stop;i++) { // Alle delers testen, indien deelbaar // (en niet zichzelf) dan is het geen priemgetal // Indien deelbaar is de rest bij deling (modulus) 0 double rest; rest = (x % i); // Indien rest 0 hebben we een deler gevonden // Het is geen priemgetal tenzij dat de deler // het getal zelf is if ((rest == 0) && (x!= i)) { return ispriem; ispriem=false; Testen Documenteren Leren programmeren met JAVA 33 Bert Van den Abbeele
34 Oefening: Letter per letter Probleemstelling Maak een programma die een woord letter per letter weergeeft. Palletobject Property Value JLabel JTextField JButton JTextArea lblstring String txtstring btnspellen Spellen txtletters Probleemanalyse Wat is gegeven? Wat moet nog ingevoerd worden? Een woord Welke verwerking moet gebeuren? Letter per letter weergeven (incl. nummering) Wat met de uitvoer? De letters Algoritme Leren programmeren met JAVA 34 Bert Van den Abbeele
35 INVOER: tekst Lengte = tekst.length() nummer=0 DO letter=tekst.charat(nummer) UITVOER: nummer en letter nummer++ WHILE huidigeletter<lengte Structuurdiagram Psuedocode Programma Het gegevenstype String heeft een aantal methodes die we in deze oefening nodig hebben: charat(int), length(),... tekst.length() telt het aantal tekens van een string terug. Bij tekst= test dan geeft tekst.length() 4 terug. tekst.charat(3) geeft het karakter (char) terug op de derde plaats. Let wel op, we beginnen steeds te letten vanaf 0. Bij tekst= test dan heeft tekst.charat(3) t terug. We doorlopen letter per letter de string tot we de lengte bekomen hebben. public void Spellen() { String tekst=this.txtstring.gettext(); int huidigeletter = 0; int lengtetekst=tekst.length(); this.txtletters.settext(""); do { char letter; letter=tekst.charat(huidigeletter); this.txtletters.settext(this.txtletters.gettext() +"De letter "+String.valueOf(huidigeLetter+1)+" is "+String.valueOf(letter)+".\n"); huidigeletter++; while (huidigeletter<lengtetekst); Testen Documenteren Leren programmeren met JAVA 35 Bert Van den Abbeele
36 Oefening: Zoek de GGD... Probleemstelling Maak een programma die de grootst gemene deler weergeeft van twee getallen. Palletobject Property Value JLabel JLabel JLabel JTextField JTextField JButton lblgetal1 Getal 1 lblgetal2 Getal 2 lblresultaat GGD =? txtgetal1 txtgetal2 btnggd Zoek GGD! Probleemanalyse Wat is gegeven? Grootst gemene deler Wat moet nog ingevoerd worden? Twee gehele getallen Welke verwerking moet gebeuren? Zoeken naar de GGD Wat met de uitvoer? De GGD... Algoritme Eerst en vooral moeten we een algoritme zoeken voor het bepalen van de grootst gemene deler. Om de GGD te vinden gebruiken we de stelling van Euclides. Plaats steeds het grootste getal in de teller. Bepaal de rest bij deling. Indien de rest 0 is dan is de noemer de GGD. Indien we een rest hebben proberen we de noemer te delen door de gevonden rest. Opnieuw bepalen we de rest bij deling, indien 0 gevonden anders opnieuw de noemer delen door de gevonden rest. Bijvoorbeeld: 48 / 18 geeft rest 12, 18 / 12 geeft rest 6, 12 / 6 geeft rest 0 dus de GGD is 6 Leren programmeren met JAVA 36 Bert Van den Abbeele
37 INVOER: getal1 INVOER: getal2 IF getal2>getal1 wissel geta 1 en getal2 ENDIF WHILE getal2!=0 rest=getal1%getal2 getal1=getal2 getal2=rest ENDWHILE UITVOER: getal1 Structuurdiagram Psuedocode Programma public void GGD() { int getal1; int getal2; getal1=integer.parseint(this.txtgetal1.gettext()); getal2=integer.parseint(this.txtgetal2.gettext()); int GGD; GGD=zoekGGD(getal1,getal2); this.lblresultaat.settext(string.valueof(ggd)); int zoekggd(int getal1,int getal2) { int rest; // Getal1 moet het grootste getal zijn (eventueel omwisselene) if (getal2>getal1) { int x; x=getal1; getal1=getal2; getal2=x; // We delen de getallen tot zolang de rest niet 0 is while(getal2!=0){ rest=getal1%getal2; getal1=getal2; getal2=rest; return getal1; Testen Documenteren Leren programmeren met JAVA 37 Bert Van den Abbeele
38 Herhaling Wat moet ik kennen? De controlestructuur iteratie en zijn syntax. De soorten herhalingen: begrensd, voorwaardelijk met aanvang- of afbraakvoorwaarde. De oneindige lus. Wat moet ik kunnen? Uitzonderingen vangen met een try en catch. Een functieprocedures of methode maken met een return. Test je kennis Vraag 1: Hoe kan je een oneindige lus voorkomen?... Vraag 2: Wat doet de actie return var in een functieprocedure of methode?... Vraag 3: Hoe kan je voorkomen dat een programma blokkeert na delen door 0?... Oefeningen Oefening 1: Maak een programma die alle machten van een gegeven getal berekent tot een bepaald maximum. Oefening 2: Maak een array met 100 willekeurige getallen en laat 10 waarden aan de gebruiker zien (0e, 10e, 20e,...). Oefening 3: Maak de rij van fibonacci aan X 1 = 1 X 2 = 2 X n = X n-2 + U n-1 voor n > 2 Oefening 4: Geef een getal in en geef al zijn delers weer. Leren programmeren met JAVA 38 Bert Van den Abbeele
39
40 Leren programmeren met JAVA 40 Bert Van den Abbeele
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 [email protected] en [email protected]
VAN HET PROGRAMMEREN. Inleiding
OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,
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/
VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:
OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,
Variabelen en statements in ActionScript
Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer
Info-books. Toegepaste Informatica. Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) AL20. Jos Gils Erik Goossens
Info-books AL20 Toegepaste Informatica Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) Jos Gils Erik Goossens Hoofdstuk 6 Lusstructuren of iteraties 6.1 Probleemstelling Het gebeurt dikwijls
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
Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie
Leren Programmeren met Visual Basic 6.0 Les 3+4 Hoofdstuk 4 : De Selectie Visual Basic 6.0 1 Basisstructuren (herhaling) Sequentie (HK2) : Alle opdrachten gewoon na mekaar uitvoeren. Hier worden geen keuzes
Java Les 3 Theorie Herhaal structuren
Java Les 3 Theorie Herhaal structuren Algemeen Een herhaal structuur een is programmeertechniek waarbij bepaalde Java instructies worden herhaald net zo lang tot een bepaalde voorwaarde is bereikt. Een
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
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
Programmeren met Arduino-software
Programmeren met Arduino-software De software waarin we programmeren is Arduino IDE. Deze software is te downloaden via www.arduino.cc. De programmeertaal die hier gebruikt wordt, is gebaseerd op C en
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
OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.
Les C-02: Werken met Programma Structuur Diagrammen 2.0 Inleiding In deze lesbrief bekijken we een methode om een algoritme zodanig structuur te geven dat er gemakkelijk programmacode bij te schrijven
Programmeren: Visual Basic
PETERSTUYVESANT COLLEGE INFORMATICA 2009-2010 Programmeren: Visual Basic Algemene Kennis: 01. Programmeren Programmeren is het schrijven van een computerprogramma, een concrete verzameling instructies
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
Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,
Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt
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 [email protected] 1 Programmeren 1.1 Hoe werkt een
Zelftest Inleiding Programmeren
Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze
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
Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.
HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een
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
8.3 Leren programmeren met OpenOffice.org StarBasic
8.3 Leren programmeren met OpenOffice.org StarBasic 8.3.1 Inhoudstafel 8.3.1 Inhoudstafel...191 8.3.2 Inleiding...192 8.3.3 Structuur aanbrengen...194 8.3.4 Macro's...197 8.3.5 Algoritmen...205 8.3.6 Sequentie...207
PYTHON REEKS 1: BASICS. Mathias Polfliet
PYTHON REEKS 1: BASICS Mathias Polfliet [email protected] EENVOUDIGE REKENMACHINE 2 soorten getallen Getallen Z -> integers (gehele getallen) Getallen R -> floating points (reële getallen) Door beperkte
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
APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts
APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN Onderdeel van SmartProducts INHOUD COLLEGE 3 Scope van variabelen {3.9} Class ontwerpen en maken,
Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET
Visual Basic.NET M. den Besten 0.3 VB. NET Inhoud Voorwoord Deel 1 Visual Basic.NET 1.1 Inleiding...13 1.2 De programmeertaal Visual Basic.NET...14 1.3 Microsoft Visual Basic 2010 Express Edition...15
II. ZELFGEDEFINIEERDE FUNCTIES
II. ZELFGEDEFINIEERDE FUNCTIES In Excel bestaat reeds een uitgebreide reeks van functies zoals SOM, GEMIDDELDE, AFRONDEN, NU enz. Het is de bedoeling om functies aan deze lijst toe te voegen door in Visual
Een computerprogramma is opgebouwd uit een aantal instructies die op elkaar volgen en die normaal na elkaar uitgevoerd worden.
2 Programmeren 2.1 Computerprogramma s Een computerprogramma is opgebouwd uit een aantal instructies die op elkaar volgen en die normaal na elkaar uitgevoerd worden. (=sequentie) Niet alle instructies
Een spoedcursus python
Een spoedcursus python Zoals je in de titel misschien al gezien hebt, geven wij een spoedcursus Python. Door deze cursus leer je alle basics, zoals het rekenen met Python en het gebruik van strings. Het
Small Basic Programmeren Text Console 2
Oefening 1: Hoogste getal Je leest een reeks positieve gehele getallen in totdat je het getal 0 (nul) invoert. Daarna stopt de invoer en druk je een regel af met het hoogste getal uit de reeks. Voorbeeld:
Hoofdstuk 5: Functies voor getallen en teksten
Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, maart 2001 Hoofdstuk 5: Functies voor getallen en teksten
Informatica: C# WPO 2
Informatica: C# WPO 2 1. Inhoud If, globale variabelen, debuggen, randomgetallen, strings vergelijken 2. Oefeningen Demo 1: Deelbaar door 0 Demo 2: Kassa Demo 3: Debug oplossingen demo s 1 en 2 A: Verschillend
Windows applicaties met VB.NET VB Express 2010
Windows applicaties met VB.NET VB Express 2010 HA 2258 01 Informaticabeheer(nieuw leerplan D/2010/7841/004) Marc De Wandel, Gerry Everaert, Nicole Legroe Christel Valkeners, Ria Van Eysendeyk Werkgroep
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
Een eerste applicatie
Een eerste applicatie 2.1 Inleiding Programmeren in Visual Basic.NET doe je niet alleen door regels met code te schrijven. Je begint met het ontwerpen van een venster in de design mode met allerlei controls,
Labo 2 Programmeren II
Labo 2 Programmeren II L. Schoofs K. van Assche Gebruik Visual Studio 2005 om een programma te ontwikkelen dat eenvoudige grafieken tekent. Deze opgave heb je vorig academiejaar reeds in Java geïmplementeerd.
Javascript oefenblad 1
Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de
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
BEGINNER JAVA Inhoudsopgave
Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire
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)
Lab Webdesign: Javascript 3 maart 2008
H5: OPERATORS In dit hoofdstuk zullen we het hebben over de operators (of ook wel: operatoren) in JavaScript waarmee allerlei rekenkundige en logische bewerkingen kunnen worden uitgevoerd. Daarbij zullen
Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2
Controle structuren De algemene vorm: 1 bloks door middel van indentatie Keuze Herhaling if expressie :...... In de volgende vorm is het else gedeelte weggelaten: if expressie :... Het if keuze- of conditioneel
SEQUENTIE-STRUCTUUR. Oefening: Dichtheid
SEQUETIE-STRUCTUUR Oefening: Dichtheid geef diameter vd bol(m) //Declaratie input variabelen double diameter; double soortmassa; //Declaratie variabelen voor tussenresultaten double volume; diameter //Declaratie
6.2 VBA Syntax. Inleiding Visual Basic
6.2 VBA Syntax Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken. Klik te tab Hulpmiddelen voor databases Klik op Maken Macro s en Code -
Online c++ leren programmeren:
Online c++ leren programmeren: Inhoud 1)Waar vind ik een c++ compiler?... 2 2)Hoe start ik een programma in c++?... 2 3)Een eerste c++ programma:... 3 Een eerste programma schrijven:... 3 Mijn eerste programma
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
APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES. Onderdeel van SmartProducts
APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES Onderdeel van SmartProducts INHOUD COLLEGE 2 module4.io.utwente.nl/applicatiebouw Software ontwerpen Gebruikersinterfaces,
9 Meer over datatypen
9 Meer over datatypen We hebben al gezien dat het gebruik van symbolische constanten de leesbaarheid van een programma kan verbeteren. Door een geschikte naam (identifier) voor een constante te definiëren,
Omschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing.
irkel (met Jpanel) ij de onderstaande opdracht behoort het bestand Panels: JPanels_1.java (map Panel) in de map irkel. pplicaties in Java hebben altijd een publieke klasse waarin een methode main voorkomt.
Cursus Onderwijs en ICT. Programmeren met Visual Basic
Cursus Onderwijs en ICT Jaargang 2, deel 23 (versie 1.0 NL 2-7-2011) Programmeren met Visual Basic door Serge de Beer Inleiding In sommige gevallen biedt het aanbod op de softwaremarkt niet wat je zoekt.
Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.
1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat
Datum. Vraag het bedrag in BEF. Reken om naar EURO. Toon het bedrag in EURO. --- Vraag het bedrag in BEF--- --- Reken om naar EURO---
3UREOHPHQRSORVVHQPHW9%$WRHSDVVLQJHQELMGHHO Naam. NR : Klas. PC : Datum. 23*$9( Hieronder vind je het algoritme om een bedrag in BEF om te rekenen naar EURO. Zet het algoritme om in programmacode. Noem
Handleiding JCreator. Inhoud. Een Workspace en een eerste project maken
Handleiding JCreator Inhoud Een Workspace en een eerste project maken Een tweede project maken De editor van JCreator Aanpassen van de basis-directory Documentatie over klassen en methoden van de JDK Bestand
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
Een typisch programma in C en C++ bestaat uit een aantal onderdelen:
Eerste stappen in C. Een typisch programma in C en C++ bestaat uit een aantal onderdelen: /* Alles wat op meerdere lijnen staat zoals hier is commentaar. */ // Dit is commentaar op 1 lijn. Geldig tot einde
6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken.
6.3 VBA Syntax Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken. Klik te tab Hulpmiddelen voor databases Klik in het groepsvak Macro op
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
Lessen Java: Reeks 3. David Blinder Jan G. Cornelis
Lessen Java: Reeks 3 David Blinder Jan G. Cornelis Vraag 0: Gebruik van de Debugger Syntax errors: fouten door verkeerd gebruik van Javacommandos code zal niet compileren. Locatie van de fout is bijna
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
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
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
Hoofdstuk 7: Werken met arrays
Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, januari 2004 Hoofdstuk 7: Werken met arrays 7.0 Leerdoel
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
Programmeermethoden NA. Week 5: Functies (vervolg)
Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def
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
Formulieren maken met Dreamweaver CS 4/CS 5
Formulieren maken met Dreamweaver CS 4/CS 5 In deze handleiding leer je om een formulier en elementen die je binnen een formulier kunt gebruiken, te ontwerpen met Dreamweaver. Het uitgangspunt is dat dit
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
PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd
Inhoudsopgave 1 Inleiding... 1 2 Toekenning- en herhalingsopdrachten (for loop)... 2 2.1 De wet van Ohm... 3 2.2 De spaarrekening... 3 2.3 De transformator... 3 3 Keuze- en herhalingsopdrachten (if, switch,
Programmeermethoden NA. Week 5: Functies (vervolg)
Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Functies Vorige week bekeken we functies: def bereken(a, x): return a * (x
NetBeans tutorial, Rik Eshuis, Kees Huizing versie 2.2 Augustus 2009
NetBeans tutorial, Rik Eshuis, Kees Huizing versie 2.2 Augustus 2009 NetBeans is een IDE voor (o.a.) Java, een programma waarmee je Javaprogramma's kunt schrijven en uitvoeren. Deze tutorial bevat informatie
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
In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.
4. Array s Een array is een geïndexeerde variabele. Deze zin zal de nodig vragen oproepen, waarop enige uitleg van toepassing is. Met variabelen hebben we al kennis gemaakt. In een variabele kun je iets
van PSD naar JavaScript
2015 van PSD naar JavaScript F. Vonk versie 2 19-9-2015 inhoudsopgave 1. inleiding... - 2-2. ontwikkelomgeving... - 3-3. programmeerconcepten... - 4 - statement... - 4 - sequentie... - 4 - variabele en
Inleiding tot programmeren: Javascript
Inleiding tot programmeren: Javascript Een definitie JavaScript is een scripttaal met objectgeoriënteerde mogelijkheden. Deze geïnterpreteerde programmeertaal is vooral gericht op het gebruik in webpagina
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
Pascal uitgediept Data structuren
Pascal uitgediept Data structuren MSX Computer & Club Magazine nummer 68-juni/juli 1994 Herman Post Scanned, ocr ed and converted to PDF by HansO, 2001 In deze aflevering wordt bekeken hoe zelf een datastructuur
Dynamiek met VO-Script
Dynamiek met VO-Script Door Bert Dingemans DLA Ontwerp & Software [email protected] Inleiding Op de SDGN nieuwsgroep voor Visual Objects ontstond laatst een draad van berichten over de nieuwe libraries
Opmerkingen en vragen aan Ultieme vraag: Hoe beïnvloedt dit de winstkansen?
2IP05: Programmeren Blok A http://www.win.tue.nl/ wstomv/edu/2ip05/ 5 spelers, 2 dobbelstenen Probleem met dobbelspel College 1 Per ronde werpt elke speler 1 Kees Hemerik Tom Verhoeff Technische Universiteit
Informatica: C# WPO 6
Informatica: C# WPO 6 1. Inhoud Timers, switch cases, combobox 2. Oefeningen Demo 1: Bounce Demo 2: Hex to decimal converter Demo 3: Debug oplossing demo 1 A: Count to 10 A: Biljarttafel A: Azerty to qwerty
Informatica: C# WPO 5
Informatica: C# WPO 5 1. Inhoud While-loop, do while, debuggen, graphics 2. Oefeningen Demo 1: Power of 2 Demo 2: Tel totdat... Demo 3: Debug oplossing demo s 1 en 2 A: Count down A: Random counting A:
Inleiding Visual Basic en VBA. Karel Nijs 2009/01
Inleiding Visual Basic en VBA Karel Nijs 2009/01 Leswijze Eerst wat theorie Begeleid met (korte) oefeningen Ms Excel 2003 Online hulp: http://www.ozgrid.com/vba/ http://msdn.microsoft.com/en-us/library/sh9ywfdk(vs.80).aspx
Probleem met dobbelspel. 2IP05: Programmeren Blok A. 5 spelers,2 dobbelstenen. wstomv/edu/2ip05/ Per ronde werpt elke speler 1
2IP05: Programmeren Blok A http://www.win.tue.nl/ wstomv/edu/2ip05/ College 1 5 spelers,2 dobbelstenen Probleem met dobbelspel Per ronde werpt elke speler 1 Tom Verhoeff Technische Universiteit Eindhoven
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
Hoofdstuk 2: Werken met variabelen
Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, februari 2001 Hoofdstuk 2: Werken met variabelen 2.0
Inhoud. VBA Excel 2010
Inhoud VBA Excel 2010 Inhoudsopgave 0. INSTELLINGEN EXCEL 2010... 9 1. WAT IS VISUAL BASIC FOR APPLICATIONS... 16 1.1. Achtergrond... 16 1.2. VBA is meer dan een macrotaal... 16 Case 1: Macro "Walk of
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
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf
Info-books. Toegepaste Informatica. Deel 40 : Gegevensbeheer en algoritmen in Access HA40. Jos Gils Erik Goossens
Info-books HA40 Toegepaste Informatica Deel 40 : Gegevensbeheer en algoritmen in Access Jos Gils Erik Goossens Gegevensbeheer Alle landen uit Europa en Azië die minder dan 1 000 000 inwoners tellen (Zie
Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14
Python Vraag 1: Expressies en types Integrated Development Environment (IDE): Ø Wing 101 (gratis te downloaden op www.wingware.com) Oefeningen in de shell >> noemen we de prompt Python commando s = expressies
Vaak wil je een code schrijven, waar je verschillende acties uitvoeren voor verschillende beslissingen. Je kan daarbij keuzestructuren gebruiken.
PHP Les 5 : Interessante links: o http://www.dbzweb.be/moermant/ o http://www.ivobrugge.be/cursusweb/html4/formulieren.asp Vaak wil je een code schrijven, waar je verschillende acties uitvoeren voor verschillende
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
Acht stappen voor JSF
Acht stappen voor JSF Inleiding In deze tutorial zullen we JSF (Java server faces) installeren. Wat we niet beschrijven is hoe te werken met JSF, over dit onderwerp zijn er genoeg boeken en internetsites
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.
Programmeren. Inleiding
Programmeren Inleiding STAPPEN IN DE ONTWIKKELING VAN EEN PROGRAMMA 1. Probleem 1. Probleem Ideaal gewicht berekenen Wortel van een vierkantsvergelijking berekenen Schaakspel spelen Boekhouding doen 2.
Verslag. Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers
Verslag SE Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers In dit verslag zullen wij een beschrijving geven, over welke
