Oefeningen bij de cursus java

Maat: px
Weergave met pagina beginnen:

Download "Oefeningen bij de cursus java"

Transcriptie

1 Inhoud: Oefeningen bij de cursus java I. Reeksontwikkeling...1 II. Een tekst omzetten in hoofdletters...2 III. Klasse Punt: een oefening over klassen...2 IV. Constructoren...4 V. Oefening: klassen en afgeleide klassen...6 VI. De klasse Vector...9 VII. Een abstracte klasse ontwerpen...11 VIII. Een interface...12 IX. Muntcalculator X. Boots het bekende spelletje Schuifpuzzel na in een applet...17 XI. Een applet converteren naar een toepassing...20 XII. Absolute positionering...22 XIII. Memory het bekende geheugenspelletje nagebootst...23 I. Reeksontwikkeling Bereken e x tot een bepaalde nauwkeurigheid. Gebruik een reeksontwikkeling in een while-lus. De reeksontwikkeling is: e x? 1? 2 x x?? 2! 3 x 3!?...? n x? n! En hier is de code: /********************************************* Oefening op het gebruik van de while-opdracht Bereken e macht x tot bepaalde nauwkeurigheid. **********************************************/ public class Emacht public static void main(string args[]) double x=1.0; double nauwkeurigheid=1e-15; //stel de gewenste nauwkeurigheid in double term, som, vorigesom; int i; //teller term=1;... //reken tot het verschil < gewenste nauwkeurigheid som=1;vorigesom=0; i=1; while (Math.abs(som-vorigeSom)nauwkeurigheid) vorigesom=som; term *= x/i; som += term; i++; // en druk af System.out.println("e macht "+x+" is "+som); System.out.println("De lus werd "+i+" maal doorlopen."); Oefeningen bij de cursus java door ir. C. Daniels 1

2 II. Een tekst omzetten in hoofdletters Een tekst, ingegeven via het toetsenbord, omzetten naar hoofdletters in een methode /************************************* Een tekst omvormen naar hoofdletters in een methode **************************************/ public class Hoofdl static String Hoofdl(String s) return s.touppercase(); public static void main(string args[]) byte b[]=new byte[50]; //voor read() String tekst; try System.in.read(b); catch (java.io.ioexception e) tekst=new String(b); System.out.println(Hoofdl(tekst)); III. Klasse Punt: een oefening over klassen Ontwerp zelf een klasse Punt, met twee klassevariabelen de integer waarden x en y. Vul de klasse aan met constructoren, accessor-methoden en een methode tostring() die een tekstversie teruggeeft van een object, en een methode AfstandTotOorsprong() die de afstand van dat punt tot de oorsprong berekend. /************************************* Punt.java - De klasse punt *************************************/ public class Punt /**************************************************** de klassevariabelen x en y, omwille van de afscherming zijn ze private gedeclareerd *****************************************************/ private int x; private int y; /*********************************** De default constructor Eigenschappen van een constructor 1) is public 2) geen return-type 3) zelfde naam als klasse ************************************/ public Punt() x=0; //initialiseer hier de beide waarden op nul y=0; System.out.println("Default constructor Punt aangeroepen."); /*************************************************** Constructor 2 aanvaard 1 parameter xx, zowel x als y worden = xx Oefeningen bij de cursus java door ir. C. Daniels 2

3 ****************************************************/ public Punt(int xx) x=xx; y=xx; System.out.println("Constructor #2 aangeroepen"); /***************************************** Constructor 3 aanvaard 2 parameters voor x, en y resp. *****************************************/ public Punt(int xx,int yy) x=xx; y=yy; System.out.println("Constructor #3 aangeroepen"); /************************************* De "copy-constructor" aanvaard 1 parameters van het hetzelfde type als de klasse *************************************/ public Punt(Punt p) x=p.x; y=p.y; System.out.println("Copy-constructor aangeroepen"); /***************************************************** Accessor-methoden Laten toe de klassevariabelen te lezen of te wijzigen *****************************************************/ //wijzig x public void SetX(int xx) x=xx; //lees x public int ReturnX() return x; //wijzig y public void SetY(int yy) y=yy; //lees y public int ReturnY() return y; /******************************************** Andere methoden van de klasse *********************************************/ //Geef de waarde van de klassevariabelen //terug in een tekst public String tostring() return "x="+x+" y="+y; //Bereken de afstand tot oorpsrong van een object public double AfstandTotOorsprong() return Math.sqrt(x*x+y*y); Oefeningen bij de cursus java door ir. C. Daniels 3

4 Hier de code van het hoofdprogramma: /********************************************** OefeningPunt.java - gebruikt de klasse Punt **********************************************/ public class OefeningPunt public static void main(string args[]) Punt P1= new Punt(); //roept defaultconstructor aan System.out.println("P1: "+P1.toString()); Punt P2 = new Punt(50); //roept constructor 2 aan System.out.println("P2:"+P2.toString()); Punt P3 = new Punt(10,200); //roept constructor 3 aan P3.SetX(100); //wijzig de waarde van x in 100 System.out.println("P3.x = "+P3.ReturnX()); Punt P4= new Punt(P3); //roept de copyconstructor aan System.out.println("P4:"+P4.toString()); //bereken afstand tot oorsprong van P4 System.out.println("Afstand tot oorsprog van P4:" + P4.AfstandTotOorsprong()); De uitvoer van het prgramma ziet er als volgt uit: Default constructor Punt aangeroepen. P1: x=0 y=0 Constructor #2 aangeroepen P2:x=50 y=50 Constructor #3 aangeroepen P3.x = 100 Copy-constructor aangeroepen P4:x=100 y=200 Afstand tot oorsprog van P4: Process Exit.. IV. Constructoren Demonstreer het gebruik van constructoren in een klasse en de afgeleide klasse. Gebruik een klasse-methode om het aantal objecten te tellen. /********************************************* de superdklasse (Eng. parent-class) *********************************************/ class SuperKlasse //een klassevariabele //protected: dus alleen de afgeleide klasse //krijgt toegang tot deze variabele protected String Naam; //object teller protected static int ObjectTeller=0; //default constructor public SuperKlasse() System.out.println("Default-constructor superklasse"); Naam=new String("Java is geweldig..."); ObjectTeller ++; // andere constructor public SuperKlasse(String n) Oefeningen bij de cursus java door ir. C. Daniels 4

5 Naam=n; System.out.println("Constructor #2 superklasse"); ObjectTeller ++; //een andere methode public void Toon() System.out.println("Vanuit Toon() uit de superklasse:"); System.out.println(Naam); //Een klasse-methode = gemeenschappelijk aan alle objecten //Toon het aantal geïnstantieerde objecten public static void AantalObjecten() System.out.println("\nAantal geïnstantieerde objecten: "+ObjectTeller); /******************************************** de afgeleide klasse: erft dus variabelen en methodes uit de hoofdklasse *******************************************/ class AfgKlasse extends SuperKlasse protected int Getal; public AfgKlasse() //roept automatisch default constructor uit de superklasse aan Getal=100; System.out.println("Default constructor uit de afgeleide klasse"); public AfgKlasse(int n) //roept automatisch default constructor van de superklasse aan Getal=n; System.out.println("Constructor #3 van de afgeleide klasse"); public AfgKlasse(String s, int n) super(s); //roept constructor 2 van de superklasse aan Getal=n; System.out.println("Constructor #3 van de afgeleide klasse"); // "overrides" de methode Toon() uit de superklasse public void Toon() System.out.println("Vanuit Toon() uit de afgeleide klasse:"); System.out.println(Naam+" "+Getal); public class TestAfgKlasse public static void main(string args[]) //roept de default constructor van de superklasse aan Oefeningen bij de cursus java door ir. C. Daniels 5

6 System.out.println("\n*** object S van de superklasse ***"); SuperKlasse S=new SuperKlasse(); S.Toon(); //roept de default constructoren van de afgeleide klasse //en van de superklasse aan System.out.println("\n*** object A1 van de afgeleide klasse ***"); AfgKlasse A1= new AfgKlasse(); //object van de afgeleide klasse A1.Toon(); //roept constructor #2 aan van afgeleide klasse, //en de default constructor van de superklasse aan System.out.println("\n*** object A2 van de afgeleide klasse ***"); AfgKlasse A2=new AfgKlasse(111); A2.Toon(); //roept constructor #3 aan van afgeleide klasse, //en constructor #2 van de superklasse aan System.out.println("\n*** object A3 van de afgeleide klasse ***"); AfgKlasse A3=new AfgKlasse("Java is object georiënteerd",-555); A3.Toon(); //aanroep van een klase methode uit SuperKlasse SuperKlasse.AantalObjecten(); De uitvoer van deze oefening is als volgt: *** object S van de superklasse *** Default-constructor superklasse Vanuit Toon() uit de superklasse: Java is geweldig... *** object A1 van de afgeleide klasse *** Default-constructor superklasse Default constructor uit de afgeleide klasse Vanuit Toon() uit de afgeleide klasse: Java is geweldig *** object A2 van de afgeleide klasse *** Default-constructor superklasse Constructor #3 van de afgeleide klasse Vanuit Toon() uit de afgeleide klasse: Java is geweldig *** object A3 van de afgeleide klasse *** Constructor #2 superklasse Constructor #3 van de afgeleide klasse Vanuit Toon() uit de afgeleide klasse: Java is object georiënteerd -555 Aantal geïnstantieerde objecten: 4 V. Oefening: klassen en afgeleide klassen Ontwerp een superklasse Punt met als klassevariabelen de coördinaten x, en y. Een afgeleide klasse AfgeleidPunt met klassevariabelen Grootte en Kleur. Deklareer de nodige constructoren, accessors, en een methode tostring() die de eigenschappen van een punt als tekst weergeeft. Gebruik alles in een applet dat verschillende gekleurde cirkels tekent in een applet. Superklasse Punt Afgeleide klasse AfgeleidPunt ***************** ***************************** * int x * --- > * int Grootte * * int y * * Color Kleur * ***************** ***************************** En hieronder de code van de bestanden Punt.java, AfgeleidPunt.java, en het applet Oefpunt.java, en het html-bestand Oefpunt.html met het applet. Oefeningen bij de cursus java door ir. C. Daniels 6

7 /********************************* Punt.java - De superklasse Punt *********************************/ public class Punt //klassevariabelen //protected: alleen toegankelijk in afgeleide klassen protected int x; protected int y; //default constructor public Punt() System.out.println("Default constructor uit Punt"); x=0; y=0; //andere constructor public Punt(int xx, int yy) System.out.println("Constructor #2 uit Punt"); x=xx; y=yy; //copy constructor public Punt(Punt p) System.out.println("Copy-constructor uit Punt"); x=p.x; y=p.y; //accessors public int GeefX() return x; public int GeefY() return y; public void SetX(int xx) x=xx; public void SetY(int yy) y=yy; public String tostring() return "x= "+x+" y= "+y; /******************************************************** AfgeleidPunt.java - de afgeleide klasse van klasse Punt ********************************************************/ import java.awt.*; public class AfgeleidPunt extends Punt /* nieuwe klassevariabelen x en y reeds bekend uit superklasse Punt */ protected int Grootte; protected Color Kleur; //default constructor public AfgeleidPunt() Grootte=1; Kleur= Color.black; System.out.println("Default constructor uit AfgeleidPunt"); //andere constructor public AfgeleidPunt(int xx, int yy, int gr, Color kl) Oefeningen bij de cursus java door ir. C. Daniels 7

8 super(xx,yy); Grootte = gr; Kleur = kl; System.out.println("Constructor #2 uit AfgeleidPunt"); //copy-constructor public AfgeleidPunt(AfgeleidPunt ap) super(ap.x,ap.y); Grootte = ap.grootte; Kleur = ap.kleur; System.out.println("Copy-Constructor uit AfgeleidPunt"); //accessors public int GeefGrootte() return Grootte; public Color GeefKleur() return Kleur; public void SetGrootte(int gr) Grootte = gr; public void SetKleur(Color kl) Kleur = kl; //tostring, "overrides" tostring uit superklasse public String tostring() return super.tostring() //roep die even aan voor x- en y-waarde +"\ngrootte : "+Grootte+" Kleur : "+Kleur; /********************************************** OefPunt.java - oefening op afgeleide klasse ***********************************************/ import java.applet.*; import java.awt.*; public class OefPunt extends Applet AfgeleidPunt P[]; //een array van punten AfgeleidPunt ExtraPunt; //nog ééntje extra voor de blauwe rand final int MAXPUNTEN=10; //final: MAXPUNTEN is een constante waarde //initialiseer applet public void init() P = new AfgeleidPunt[10]; //eerste punt P[0]= new AfgeleidPunt(5,5,290,new Color(0,255,0)); //de andere punten for (int i=1;i<maxpunten;i++) P[i]= new AfgeleidPunt(50+5*i,50+5*i,20*i,new Color(25*i,255-25*i,0)); ExtraPunt=new AfgeleidPunt(P[0]); ExtraPunt.SetX(0); ExtraPunt.SetY(0); ExtraPunt.SetGrootte(300); ExtraPunt.SetKleur(Color.blue); //en teken de objecten public void paint(graphics g) //ExtraPunt g.setcolor(extrapunt.geefkleur()); g.filloval(extrapunt.geefx(),extrapunt.geefy(), Oefeningen bij de cursus java door ir. C. Daniels 8

9 ExtraPunt.GeefGrootte(),ExtraPunt.GeefGrootte()); //De andere punten for (int i=0;i<maxpunten;i++) g.setcolor(p[i].geefkleur()); g.filloval(p[i].geefx(),p[i].geefy(), P[i].GeefGrootte(),P[i].GeefGrootte()); System.out.println(P[i].toString()); <!-- ********************* Oefpunt.html ************************ -- > <HTML <HEAD <!-- Generated by Kawa IDE -- > <TITLEApplet title</title </HEAD <BODY <H2Oefening op klassen en afgeleide klassen</h2 <HR> <APPLET CODE=OefPunt WIDTH=300 HEIGHT=300</APPLET <HR </BODY </HTML Het afgewerkte applet gezien in Netscape Navigator: VI. De klasse Vector De klasse Vector laat toe een onbepaald aantal objecten op te slaan in een dynamisch array. Met de methode addelement() kunnen nieuwe objecten worden toegevoegd. Met de methode elementat(int) kan een element terug worden opgevraagd. We gebruiken dit om een aantal objecten van een zelf ontworpen klasse Cirkel op te slaan, en weer te geven in een applet. Oefeningen bij de cursus java door ir. C. Daniels 9

10 /**************************************************** Cirkels.java Teken een set gekleurde cirkels in een applet. Gebruik een vctor-object om de cirkelobjecten op te slaan. ******************************************************/ import java.awt.*; import java.util.*; import java.applet.*; //een cirkel-klasse class Cirkel private int x,y; //coordinaten van de top linksboven private int diameter; //diameter van de cirkel private int randdikte; //dikte van het randje rond de cirkel private Color kleur; //kleur van de cirkel //constructor public Cirkel(int xx,int yy, int d, Color c, int rd) x=xx; y=yy; diameter=d; randdikte=rd; kleur=c; //accessormethodes public int getx() return x; public int gety() return y; public int getdiameter() return diameter; Oefeningen bij de cursus java door ir. C. Daniels 10

11 public int getranddikte() return randdikte; public Color getkleur() return kleur; //ons applet public class Cirkels extends Applet //een Vector om een aantal cirkel-objecten op te slaan Vector Cirkels=new Vector(); public void init() Cirkel c; for (int i=0;i<10;i++) Cirkels.addElement( new Cirkel(5*i,5*i, 25*i,new Color(25*i,255-25*i,200),i/2)); System.out.println("Aantal cirkels:"+cirkels.size()); setbackground(color.yellow); public void paint(graphics g) Cirkel c; //hulp object om de code wat te verlichten for (int i=0;i<cirkels.size();i++) //Vector geeft Object terug, dus typecasting naar Cirkel c= (Cirkel)Cirkels.elementAt(i); g.setcolor(color.black); //een zwarte rand g.filloval(c.getx()-c.getranddikte(), c.gety()-c.getranddikte(), c.getdiameter()+2*c.getranddikte(), c.getdiameter()+2*c.getranddikte()); g.setcolor(c.getkleur()); //de cirkelkleur g.filloval(c.getx(), c.gety(), c.getdiameter(), c.getdiameter()); VII. Een abstracte klasse ontwerpen Een abstracte klasse bevat minstens één abstracte methode. Dit is een methode zonder body. Van zo'n klasse kan men geen object instantiëren. In een afgeleide klasse van een abstracte klasse is men verplicht deze methode alsnog te definiëren, dit is een body toe te voegen. Hieronder een eenvoudig voorbeeld om dit te illustreren. /***************************************** Oefeningen bij de cursus java door ir. C. Daniels 11

12 Een abstracte klasse bevat minstens één abstracte methode ******************************************/ abstract class Abstract //een abstracte methode bevat geen body ( het gedeelte tussen ) public abstract void MethodeA(); /***************************************************** Klasse subabstract afgeleid van Abstract is VERPLICHT (!) de abstracte methode te definiëren ******************************************************/ class subabstract extends Abstract public void MethodeA() System.out.println("OK! Dit mag wel..."); //Klasse AbstracteKlasse public class AbstracteKlasse public static void main(string args[]) //Abstract A = new Abstract(); //Niet ok! geen object van een abstracte klasse mogelijk... subabstract B = new subabstract(); //OK! B.MethodeA(); Plaats de bovenstaande code in een bestand AbstracteKlasse.java en compileer VIII. Een interface Een interface is een abstracte klasse. Zij worden in java gebruikt om meervoudige overerving mogelijk te maken in java. Een interface bevat uitsluitend constante waarden bevatten, of abstracte methoden. /********************************* een eenvoudige klasse *********************************/ class Artikelen protected String Artikel; //protected, dus gekend in de afgeleide klasse public Artikelen(String s) //een constructor Artikel=s; /************************************************ De interface - kan alleen constante waarden en abstracte methodes bevatten ************************************************/ interface Firma /*een variabele in een interface moet final zijn, dus constant, en geïnitialiseerd worden */ final int Maat=40; //een interface bevat ook geen constructor(s) //een abstracte methode public String FirmaNaam(); Oefeningen bij de cursus java door ir. C. Daniels 12

13 /************************************************************ De klasse Stock is afgeleid van de klasse Artikel, en implementeert de interface Firma. U mag zoveel interfaces implementeren als u wil. Vermeld dan de namen van de interfaces achter het woordje "implements", gescheiden door een komma ************************************************************/ class Stock extends Artikelen implements Firma public Stock(String s) super(s); //roep constructor van de bovenklasse aan met super() //de methode FirmaNaam() methode MOET hier gedefiniëerd worden! public String FirmaNaam() return "Krekels nv."; public String Toon() return Artikel; public class OefInterface public static void main(string args[]) Stock MijnArtikel=new Stock("Jeans"); //instantieer een object van de klasse Stock System.out.println(MijnArtikel.Toon() + " (maat:" + MijnArtikel.Maat + ") van de firma " + MijnArtikel.FirmaNaam()); Plaats de hele code in een bestand OefInterface.java, en compileer. De uitvoer is: Jeans (maat:40) van de firma Krekels nv. IX. Muntcalculator. Onderstaande oefening laat toe munten om te rekenen. De gegevens kunnen door de gebruiker worden aangepast, door de code in het html-bestand aan te passen. We maken gebruik van een klasse MuntEenheid, die de naam, en de waarde van de munt in Euro bevat. Oefeningen bij de cursus java door ir. C. Daniels 13

14 Hieronder de code van de klasse MuntEenheid: /*********************************** MuntEenheid.java ***********************************/ public class MuntEenheid protected String Naam; //naam van de munteenheid protected double WaardeInEuro;//de waarde in Euro //constructor public MuntEenheid(String n,double w) Naam=n; WaardeInEuro=w; //accessors public String getnaam() return Naam; public double getwaarde() return WaardeInEuro; //geef een tekstweergave van het object public String tostring() return "1 "+Naam+" = "+WaardeInEuro+"Euro"; En dit is de code van het applet: /********************************* Muntcalculator.java Omrekenen van munten Gebruikt de klasse MuntEenheid **********************************/ import java.applet.*; import java.awt.*; import java.awt.event.*; Oefeningen bij de cursus java door ir. C. Daniels 14

15 public class MuntCalculator extends Applet implements ActionListener private final int AANTAL=5; //plaats voor 5 munten private Choice Munt1,Munt2; private TextField Bedrag; private int AantalMunten; private Panel MyPanel[]; private Label Resultaat; private Button Berekenen; MuntEenheid ME[]; //array van Munten en waarde in Euro int s1,s2; //de geslecteerde munten public void init() setbackground(new Color(200,255,200)); Munt1= new Choice(); Munt2= new Choice(); Bedrag= new TextField(6); Bedrag.addActionListener(this); Berekenen=new Button("Berekenen"); Berekenen.addActionListener(this); Resultaat = new Label("Resultaat ----",Label.RIGHT); Color c=new Color(200,255,200); FlowLayout fr = new FlowLayout(FlowLayout.RIGHT); //intialiseer de 5 panelen MyPanel=new Panel[5]; for (int i=0;i<5;i++) MyPanel[i]=new Panel(fR); MyPanel[i].setBackground(c); MyPanel[4].setBackground(new Color(255,180,180)); MyPanel[0].add(new Label("Bedrag: ")); MyPanel[0].add(Bedrag); MyPanel[1].add(new Label("Van : ")); MyPanel[1].add(Munt1); MyPanel[2].add(new Label("Naar: ")); MyPanel[2].add(Munt2); MyPanel[3].add(Berekenen); MyPanel[4].add(Resultaat); setfont(new Font("TimesRoman",3,12)); setlayout(new FlowLayout(FlowLayout.RIGHT)); //panelen bij het applet voegen for (int i=0;i<5;i++) add(mypanel[i]); ME=new MuntEenheid[AANTAL]; /* lees de munten in met getparameter() uit het html-bestand */ String p; AantalMunten=0; p=getparameter("munt1"); if (p!=null) ME[0]=new MuntEenheid(p, new Double(getParameter("Waarde1")).doubleValue()); AantalMunten++; p=getparameter("munt2"); if (p!=null) ME[1]=new MuntEenheid(p, new Double(getParameter("Waarde2")).doubleValue()); AantalMunten++; Oefeningen bij de cursus java door ir. C. Daniels 15

16 p=getparameter("munt3"); if (p!=null) ME[2]=new MuntEenheid(p, new Double(getParameter("Waarde3")).doubleValue()); AantalMunten++; p=getparameter("munt4"); if (p!=null) ME[3]=new MuntEenheid(p, new Double(getParameter("Waarde4")).doubleValue()); AantalMunten++; p=getparameter("munt5"); if (p!=null) ME[4]=new MuntEenheid(p, new Double(getParameter("Waarde5")).doubleValue()); AantalMunten++; //Voeg de namen bij de keuzelijsten for (int i=0;i<aantalmunten;i++) Munt1.addItem(ME[i].getNaam()); Munt2.addItem(ME[i].getNaam()); //bereken de waarde van bedrag in de nieuwe munt public Double BerekenWaarde(Double w) s1=munt1.getselectedindex(); s2=munt2.getselectedindex(); return new Double(w.doubleValue()*ME[s1].getWaarde()/ME[s2].getWaarde()); //reageer op knopdruk en op return in het veld bedrag public void actionperformed(actionevent e) try Double s=new Double(Bedrag.getText()); //Berekenen en afronden op 2 cijfers na de komma s=new Double( Math.round(100.0*BerekenWaarde(s).doubleValue())/100.0 ); //plaats de uitkomst in het Resultaat-label Resultaat.setText(s.toString()+" "+ME[s2].getNaam()); catch(exception ee) Resultaat.setText("Ongeldig!"); En dit is de code van het het bijhorende html-bestand: <HTML <HEAD <!-- Generated by Kawa IDE -- <TITLEMuntcalculator title</title </HEAD <BODY Oefeningen bij de cursus java door ir. C. Daniels 16

17 <H1Muntcalculator</H1 <HR <APPLET CODE=MuntCalculator WIDTH=175 HEIGHT=230 <! Plaats de waarden van de munten en hun waarde in Euro in de parameter-tabel > <param name=munt1 value="bfr" <param name=waarde1 value=" " <param name=munt2 value="euro" <param name=waarde2 value="1" <param name=munt3 value="usd" <param name=waarde3 value="1.1160" <param name=munt4 value="ngl" <param name=waarde4 value=" " <param name=munt5 value="dm" <param name=waarde5 value=" " </APPLET <HR </BODY </HTML Als de waarde van de munteenheden veranderen, is het voldoende dit aan te passen in de html-code. X. Boots het bekende spelletje Schuifpuzzel na in een applet Ontwerp een applet dat het bekende spelletje schuifpuzzel nabootst: En hier is de bijbehorende code: /********************************************************** Schuifpuzzel.java door C. Daniels Dit is het bekende spelletje met de schuivende blokjes. Wij verschuiven echter niet de blokjes, maar wel het opschrift (Label). Één blokje is steeds onzichtbaar. De uitvoer naar System.out is ter controle **********************************************************/ import java.awt.*; import java.awt.event.*; import java.applet.*; import java.lang.string; public class Schuifpuzzel extends Applet implements ActionListener Oefeningen bij de cursus java door ir. C. Daniels 17

18 private Button Knop[]; //16 knopjes private int OnzichtbaarBlokje; //plaats van het onzichtbare blokje private int Teller=0; //telt aan het aantal keren dat u een blokje verschuift private String s;//tekst voor het einddialoog //initialiseer het applet public void init() Knop = new Button[16]; //maak het array aan int rij=0,kolom=0; setbackground(new Color(0,0,0)); //initialiseer alle knopjes for (int i=0;i<16;i++) Knop[i]=new Button(); kolom++; if (kolom==4) kolom=0;rij++; setlayout( new GridLayout(4,4)); for (int i=0;i<16;i++) Knop[i].addActionListener(this); //actionlistener bijvoegen Knop[i].setActionCommand(String.valueOf(i)); //actioncommand instellen Knop[i].setLabel(String.valueOf(i+1)); //label instellen add(knop[i]); //voeg het bij het applet Knop[15].setVisible(false); //laatste blokje wordt onzichtbaar OnzichtbaarBlokje=15; Shuffle(); //schudt de blokjes... //op blokje geklikt? public void actionperformed(actionevent e) //op welk blokje? int plaats =(new Integer(e.getActionCommand())).intValue(); System.out.println("Action:"+plaats+" "+OnzichtbaarBlokje); //grenst het aan het lege blokje? if (GrenstAan(plaats,OnzichtbaarBlokje)) String temp; System.out.println("OK! verwisseld..."+ ++Teller); Knop[plaats].setVisible(false); Knop[OnzichtbaarBlokje].setVisible(true); temp=knop[plaats].getlabel(); Knop[plaats].setLabel(Knop[OnzichtbaarBlokje].getLabel()); Knop[OnzichtbaarBlokje].setLabel(temp); OnzichtbaarBlokje=plaats; else System.out.println("nope...dat gaat niet..."); if (Opgelost()) //spel opgelost? System.out.println("Klaar!!!"); //doe hier later iets nuttiger... s=new String("Spel is afgelopen, na "+Teller+" keren klikken!"); EindDialoog.MaakFrame(s); //Toon einddialoog Teller=0; //reset de teller Shuffle(); // en opnieuw shuffelen... Oefeningen bij de cursus java door ir. C. Daniels 18

19 // Schud de blokjes... Verwissel maal twee blokjes, public void Shuffle() String temp; int r1,r2; for (int i=1;i<10000;i++) r1=(int)math.round(math.random()*15); r2=(int)math.round(math.random()*15); // Moeten aan elkaar grenzen // en één van beide moet het onzichtbaar blokje zijn if (GrenstAan(r1,r2)&&(r1==OnzichtbaarBlokje r2==onzichtbaarblokje)) System.out.println(r1+" "+r2); temp=knop[r1].getlabel(); Knop[r1].setLabel(Knop[r2].getLabel()); Knop[r2].setLabel(temp); if (r1==onzichtbaarblokje) OnzichtbaarBlokje=r2; else OnzichtbaarBlokje=r1; //en maak het blokje met label 16 onzichtbaar for (int i=0;i<16;i++) Knop[i].setVisible(true); if (new Integer(Knop[i].getLabel()).intValue()==16) OnzichtbaarBlokje=i; Knop[i].setVisible(false); //test of twee blokjes aan elkaar grenzen public boolean GrenstAan(int p,int q) int i; if (p>q) i=p;p=q;q=i; //zet kleinste eerst if ( (Math.abs(p-q)==1 &&( (p!=3 && q!=4)) //niet achter het randje... &&( (p!=7 && q!=8)) &&( (p!=11 && q!=12)) ) (Math.abs(p-q)==4) ) return true; return false; //puzzel opgelost? public boolean Opgelost() boolean temp=true; for (int i=0;i<16;i++) if (i!=new Integer(Knop[i].getLabel()).intValue()-1) temp=false; return temp; En dit is de herbruikbare klasse EindDialoog. Geeft aan dat u alle blokjes op de juiste plaats heeft gekregen, en na hoeveel zetten. U kunt dit voorbeeld ook in een andere toepassing herbruiken! Oefeningen bij de cursus java door ir. C. Daniels 19

20 Plaats het in een apart bestand EindDialoog.java en voeg het bij aan het project. /*********************************************** EindDialoog.java aanroepen met EindDialoog.MaakFrame(tekst) ***********************************************/ import java.awt.*; import java.awt.event.*; public class EindDialoog extends Dialog implements ActionListener protected Button OkKnop; //een dialoog moet een frame hebben... protected static Frame HetFrame; public EindDialoog(Frame parent,string s) super(parent,true); setlayout( new FlowLayout(FlowLayout.CENTER)); Font f=new Font("TimesRoman",3,15); //mooie grote letters setfont(f); setbackground(new Color(255,200,200)); //WindowListener erbij... addwindowlistener (new WindowAdapter() public void windowclosing(windowevent e) hide(); if (HetFrame!=null) HetFrame.hide(); ); setsize(300,150); add(new Label(s)); OkKnop=new Button("OK"); OkKnop.addActionListener(this); add(okknop); public static void MaakFrame(String tekst) //als er geen Frame-object is, maak het dan nu één //maar we tonen het niet... if (HetFrame==null) HetFrame=new Frame("Dialoog"); //instantieer het dialoogvenster EindDialoog einddialoog = new EindDialoog(HetFrame,tekst); //en toon de einddialoog einddialoog.show(); public void actionperformed(actionevent e) System.out.println("stoppen!"+e.getSource()); hide(); if (HetFrame!=null) HetFrame.hide(); XI. Een applet converteren naar een toepassing Een applet converteren zodat het werkt als een toepassing. Oefeningen bij de cursus java door ir. C. Daniels 20

21 import java.awt.*; import java.applet.applet; import java.awt.color; /*ons applet - Niet public. Als u dat wel doet, moet u ze in een apart bestand declareren met de naam AppletConversie.java */ class AppletConversie extends Applet static int i=1; //tellertje ter info Font f; public void init() f=new Font("Arial",3,25); System.out.println("Geïnitialiseerd met init() "+i++); public void start() System.out.println("Gestart met start() "+i++); public void stop() System.out.println("Gestopt met stop() "+i++); public void destroy() System.out.println("Vernietigd met destroy() "+i++); public void paint(graphics g) g.setfont(f); g.setcolor(color.red); g.drawstring("java is fantastisch!",20,40); System.out.println("Paint()-methode "+i++); public class AppletToExe extends AppletConversie //voeg de main()-methode toe public static void main(string args[]) //instantieer uw appletklasse AppletConversie Ac = new AppletConversie(); //instantieer een nieuw frame Frame f=new Frame("Van applet naar toepassing"); //voeg het applet toe aan het frame f.add(ac); //grootte aanpassen f.setsize(300,100); //toon het frame, klaar... f.show(); /*roep zelf de init() en de start()-methode van het applet aan*/ Ac.init(); Ac.start(); Sla het met de naam van de public-klasse AppletToExe.java, en compileer. Oefeningen bij de cursus java door ir. C. Daniels 21

22 XII. Absolute positionering In java wordt sterk aangeraden om een layout-manager te gebruiken, voor de opmaak van uw toepassing. Men weet immers niet op voorhand wat de schermresolutie is, of de afmetingen van het scherm waarop uw toepassing, of applet, zal draaien. Nochtans is absolute positionering in java mogelijk met de methode setlocation(). Hieronder een speelse toepassing van deze methode, in het applet JumpingButton. Als u de knop wil aanklikken, verspringt hij van plaats. /*************************************************************** JumpingButton.java Maakt gebruik van de methode setlocation() om een knop naar een willekeurige plaats te verplaatsen. Deze methode wordt afgeraden ten voordele van de layoutmanagers ***************************************************************/ import java.awt.*; import java.applet.*; import java.awt.event.*; public class JumpingButton extends Applet implements MouseMotionListener static Button jb; //initialiseer het applet public void init() setbackground(new Color(200,220,255)); jb=new Button("Klik hier!"); jb.addmousemotionlistener(this); add(jb); //plaatst de knop op een randomplaats in het applet private void setbutton() int x=(int)(math.random()*this.getsize().width)-20; int y=(int)(math.random()*this.getsize().height)-20; jb.setlocation(x,y); //Als de muis boven de knop komt, verplaats hem... public void mousemoved(mouseevent e) setbutton(); repaint(); public void mousedragged(mouseevent e) Oefeningen bij de cursus java door ir. C. Daniels 22

23 XIII. Memory het bekende geheugenspelletje nagebootst Idereen kent wel het spelletje, waarin er van u verwacht wordt een aantal gekleurde knoppen in een bepalde willekeurige volgorde in te drukken. Na elke ronde wordt er één knop aan de sequentie bijgevoegd, tot u in de fout gaat. In de appletviewer ziet het afgewerkte spelletje er als volgt uit: En hier is de code van het applet. Ze bevat twee klassen. Zoals reeds gezegd is het betere methode om de twee klassen elk in hun eigen bronbestand te plaatsen. Hier werd alles samengezet. /****************************************** Memory.java Het bekende geheugenspelletje nagebootst *******************************************/ import java.applet.*; import java.awt.*; import java.awt.event.*; import java.util.*; /*************************************************** MyThread is een afgeleide van de Thread-klasse Laat de knoppen één voor én oplichten ***************************************************/ class MyThread extends Thread //houdt een array van de in te drukken knoppen bij private Vector ButtonReeks; Oefeningen bij de cursus java door ir. C. Daniels 23

24 //pointer naar hoofdklasse private Memory M; //speciale constructor met link naar de hoofdklasse public MyThread(Memory m) M=m; //hier wordt het werk gedaan... public void run() //haal de knoppensequentie op uit de hoofdklasse this.buttonreeks=m.getbuttonreeks(); //en toon ze één voor één for (int i=0;i<buttonreeks.size();i++) int p; p=((integer)buttonreeks.elementat(i)).intvalue(); //eventjes wachten tussenin try this.sleep(1000); catch(exception e) //Maak die knoop rood M.setButtonColor(p,M.ROOD); try this.sleep(200); catch(exception e) //en terug de originele kleur M.setButtonColor(p,M.ORIGINEEL); //de tekst in het label aanpassen public void settekst(string t) try sleep(2000); M.setLabelTekst(t); catch(exception e)system.out.println("ging niet..."); /************************************************************ Hoofdklasse *************************************************************/ public class Memory extends Applet implements ActionListener Oefeningen bij de cursus java door ir. C. Daniels 24

25 //indicatie voor de kleur van de knop public final int ORIGINEEL=0; public final int ROOD=1; //de knoppen private Button b[]; //kleurtjes voor de knoppen private Color kleuren[]= new Color[6]; //centrum van de knoppencirkel private final int centrumx=125; private final int centrumy=125; //grootte van de knoppen private final int LENGTE=75; //instantieer de threadklasse private MyThread Th; //de startknop private Button Start; //een Vector-array van knoppen Vector ButtonReeks=new Vector(); //het label onderaan private Label titel,tekst; //variabelen voor het spelbeheer private boolean SpelAanGang=false; private boolean SpelerAanBeurt=false; private int teller=0; //initialisatie van het applet public void init() Th=new MyThread(this); setlayout(null); //zet die layout even uit... //instantier de knoppekes b = new Button[6]; //straal van de cirkel waarop de knoppen staan double r=100.0; //instantieer de knoppen b[0]=new Button("EEN"); b[0].setbounds((int)math.round(r*math.sin(math.pi*180/180))+centrumx,(int)math.round(r*math.cos(math.pi*180/180))+centrumy,lengte,lengte); b[1]=new Button("TWEE"); b[1].setbounds((int)math.round(r*math.sin(math.pi*120/180))+centrumx,(int)math.round(r*math.cos(math.pi*120/180))+centrumy,lengte,lengte); b[2]=new Button("DRIE"); Oefeningen bij de cursus java door ir. C. Daniels 25

26 b[2].setbounds((int)math.round(r*math.sin(math.pi*60/180))+centrumx, (int)math.round(r*math.cos(math.pi*60/180))+centrumy,lengte,lengte); b[3]=new Button("VIER"); b[3].setbounds((int)math.round(r*math.sin(math.pi*0/180))+centrumx,( int)math.round(r*math.cos(math.pi*0/180))+centrumy,lengte,lengte); b[4]=new Button("VIJF"); b[4].setbounds((int)math.round(r*math.sin(math.pi*300/180))+centrumx,(int)math.round(r*math.cos(math.pi*300/180))+centrumy,lengte,lengte); b[5]=new Button("ZES"); b[5].setbounds((int)math.round(r*math.sin(math.pi*240/180))+centrumx,(int)math.round(r*math.cos(math.pi*240/180))+centrumy,lengte,lengte); //initialiseer de knopeigenschappen for (int i=0;i<6;i++) kleuren[i]=new Color(i*80%256,255-i*10,(i* )%256); b[i].addactionlistener(this); b[i].setbackground(kleuren[i]); add(b[i]); //bij het applet voegen //mooi achtergrondkleurtje setbackground(new Color(255,230,210)); //de titel titel=new Label("Memory"); titel.setfont(new Font("TimesRoman",2,20)); titel.setbounds(10,25,90,20); add(titel); //de tekst onderaan tekst=new Label("Klik op start!"); tekst.setfont(new Font("TimesRoman",2,20)); tekst.setbounds(60,330,200,30); tekst.setbackground(new Color(250,150,180)); tekst.setalignment(label.center); add(tekst); //de startknop Start=new Button("Start"); Start.setBounds(130,365,50,25); Start.addActionListener(this); Start.setBackground(new Color(250,150,180)); add(start); setlabeltekst("klik de knop 'Start'"); //een wilekeurige knop aan de reeks toevoegen public void KnopBijvoegen() Integer NieuweKnop= new Integer ((int)( Math.round ((Math.random()*5)))); ButtonReeks.addElement(NieuweKnop); Oefeningen bij de cursus java door ir. C. Daniels 26

27 //de tekst van het label aanpassen //kan aangeroepen worden vanuit de MyThread public void setlabeltekst(string s) tekst.settext(s); //gebruiken we nu niet public void mouseclicked(mouseevent e) public void mouseentered(mouseevent e) public void mouseexited(mouseevent e) //welke knop gedrukt? public void actionperformed(actionevent e) String lbl=""; int IngedrukteKnop=0; lbl=((button)e.getsource() ).getlabel(); if (SpelerAanBeurt && SpelAanGang) if (lbl=="een") IngedrukteKnop=0; else if (lbl=="twee") IngedrukteKnop=1; else if (lbl=="drie") IngedrukteKnop=2; else if (lbl=="vier") IngedrukteKnop=3; else if (lbl=="vijf") IngedrukteKnop=4; else if (lbl=="zes") IngedrukteKnop=5; //is er een fout gemaakt? if (IngedrukteKnop!=((Integer)ButtonReeks.elementAt(teller)).intValue()) setlabeltekst("mis! Score: "+(ButtonReeks.size()-1)); SpelAanGang=false; SpelerAanBeurt=false; teller=0; ButtonReeks.clear(); Start.setVisible(true); else setlabeltekst("ok..."); teller++; //telt de aangeklikte knopkes if (teller==buttonreeks.size()) //tot zover ok, dus nieuwe knop bijvoegen... SpelerAanBeurt=false; KnopBijvoegen(); setlabeltekst("volgende, let goed op!"); Oefeningen bij de cursus java door ir. C. Daniels 27

28 Th.run(); //toon de knoppensequentie setlabeltekst("nu is het uw beurt!"); SpelerAanBeurt=true; teller=0; if (lbl=="start") //de startknop ingedrukt Start.setVisible(false); SpelAanGang=true; setlabeltekst("ok we starten!"); setlabeltekst("let goed op!"); KnopBijvoegen(); Th.run(); //toon de knoppensequentie setlabeltekst("nu is het uw beurt!"); SpelerAanBeurt=true; //accessor, geeft de knoppenreeks door aan MyThread public Vector getbuttonreeks() return ButtonReeks; //kleur van de knoppekes, aangeroepen vanuit MyThread public void setbuttoncolor(int n,int k) if (k==origineel) b[n].setbackground(kleuren[n]); else if (k==rood) b[n].setbackground(color.red); Oefeningen bij de cursus java door ir. C. Daniels 28

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

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

Zo vind u hierin de volgende documentatie over de klasse Applet: +----java.awt.panel. +----java.applet.applet

Zo vind u hierin de volgende documentatie over de klasse Applet: +----java.awt.panel. +----java.applet.applet VII. De Java-klassen A. Package Het mooie aan Java is de programmeur een hele serie van klassen en afgeleide klassen geleverd worden, die de programmeur naar behoefte kan gebruiken. De basisklasse van

Nadere informatie

X. Grafische elementen

X. Grafische elementen X. Grafische elementen Om u te helpen bij grafische voorstellingen heeft java een aantal grafische afbeeldingen die u kunt gebruiken. Meestal worden zij in de methode paint(graphics g) geplaatst. Zij moeten

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

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

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

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

Imperatief Programmeren, derde deeltentamen (INFOIMP) 4 november 2005

Imperatief Programmeren, derde deeltentamen (INFOIMP) 4 november 2005 Departement Informatica en Informatiekunde, Faculteit Bètawetenschappen, UU. In elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. Het college INFOIMP werd in 2005/2006 gegeven door Jeroen

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 [email protected] en [email protected]

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

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

Omschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing.

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.

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

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

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

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

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

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

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 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

Nadere informatie

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

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

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

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 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,

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

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

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

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

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

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

Labo 2 Programmeren II

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.

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

Voor het bepalen van de getalswaarde van een string is een standaardmethode beschikbaar: n = Integer.parseInt(s);

Voor het bepalen van de getalswaarde van een string is een standaardmethode beschikbaar: n = Integer.parseInt(s); Uitwerking tentamen Imperatief Programmeren 20 december 2001 Cursieve opmerkingen behoren niet tot het antwoord, maar vormen een toelichting daarop. Die hoefden bij beantwoording van de vragen er niet

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

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

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

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

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

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

sheets Programmeren 2 Java Recursie, de muis en graphics Walter Kosters http://www.liacs.nl/home/kosters/java/

sheets Programmeren 2 Java Recursie, de muis en graphics Walter Kosters http://www.liacs.nl/home/kosters/java/ sheets Programmeren 2 Java Recursie, de muis en graphics Walter Kosters http://www.liacs.nl/home/kosters/java/ 1 Java intro Voorkennis: dat wat bij het college Programmeren 1 over Java behandeld is; zie

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

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

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

Wat is een grafische gebruikersinterface (GUI)?

Wat is een grafische gebruikersinterface (GUI)? Wat is een grafische gebruikersinterface (GUI)? GUI is een Engelse afkorting voor Graphical User Interface, oftewel grafische gebruikersinterface. Het is de term voor het bedieningspaneel van een computerprogramma.

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

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

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

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

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

Lessen Java: Reeks 3. David Blinder Jan G. Cornelis

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

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

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

Opdracht 7a. Applicatiebouw 2014/2015

Opdracht 7a. Applicatiebouw 2014/2015 Applicatiebouw 2014/2015 Opdracht 7a Inhoud Applicatiebouw op dag 7 College In het college wordt oa. overerving behandeld, waarmee je uit een bestaande klasse een nieuwe andere klasse kan maken. Ook zijn

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

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

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit

Nadere informatie

Deel 1 : Gesloten Boek

Deel 1 : Gesloten Boek Naam : EXAMEN SOFTWAREONTWIKKELING 1STE PROEF BURG. IR. COMPUTERWETENSCHAPPEN EERSTE EXAMENPERIODE ACADEMIEJAAR 2004-2005 Deel 1 : Gesloten Boek 1. Testen Geef een overzicht van de verschillende testen

Nadere informatie

6.2 VBA Syntax. Inleiding Visual Basic

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 -

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

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

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

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

Tentamen Inleiding Programmeren (IN1608WI), 2 februari 2012, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Tentamen Inleiding Programmeren (IN1608WI), 2 februari 2012, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Tentamen Inleiding Programmeren (IN1608WI), 2 februari 2012, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Gesloten boek tentamen, bij dit tentamen mag je geen gebmik maken van

Nadere informatie

Tentamen in2705 Software Engineering

Tentamen in2705 Software Engineering Tentamen in2705 Software Engineering Voorbeeld (bijna tweemaal te groot) U mag meenemen naar dit tentamen: Lethbridge, afdrukken PPT slides, afdrukken handouts. 1. De TU wil een nieuw systeem ontwikkelen

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 26 september 2007 Deze les korte herhaling vorige les Unified Modelling Language notatie van een class afleiding pointers abstracte classes polymorphisme dubieuze(?) constructies interfaces Meer over class

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 [email protected] 1 Programmeren 1.1 Hoe werkt een

Nadere informatie

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 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

Nadere informatie

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

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 10 november 2017, uur Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 10 november 2017, 11.00-13.00 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde

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

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

Stel dat u 15 tellers nodig heeft. Dat kunt u een array van tellers als volgt declareren:

Stel dat u 15 tellers nodig heeft. Dat kunt u een array van tellers als volgt declareren: V. Arrays A. Wat zijn arrays? Een array is een verzameling van variabelen. Ze hebben allen dezelfde naam en hetzelfde type. Men kan ze van elkaar onderscheiden door een volgnummer, index genoemd. Enkele

Nadere informatie

Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers

Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers 1 Inhoud Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers 2 Geluidsbronnen simulator, deel 2 Inleiding De weergave versnellen

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

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

1. Exclusief aanvinken

1. Exclusief aanvinken 1. Exclusief aanvinken Hoe maak je meerkeuzevragen met exclusieve selectie? Het bestand 10_exclusiefhoe.ggb toont drie manieren om meerkeuzevragen te maken. 1.1 Aanvinkvakjes (voorlaatste knop) Op de aanvinkvakjes

Nadere informatie

1 Objectgeoriënteerd programmeren met Java

1 Objectgeoriënteerd programmeren met Java 6 ENIGMA Informatieboek 1 Objectgeoriënteerd programmeren met Java 1 OBJECTGEORIËNTEERD PROGRAMMEREN Moderne software is complex en het ontwikkelen ervan is een tijdrovende bezigheid. Niet voor niets worden

Nadere informatie

Variabelen en statements in ActionScript

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

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

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, 11.00-13.00 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde

Nadere informatie

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

Uitwerking Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 10 november 2017, uur Uitwerking Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 10 november 2017, 11.00-13.00 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het

Nadere informatie

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

Recursie. public static int faculteit( int n ){ // Deze functie berekent n! // pre: n = N en n >= 0 // post: faculteit = N! Recursie Faculteit: in de wiskunde: n! is gedefiniëerd als: 0! = 1 n! = n (n 1)! in Java: public static int faculteit( int n ) // Deze functie berekent n! // pre: n = N en n >= 0 // post: faculteit = N!

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

Syntax van opdracht. opdracht. expressie. variabele. = expressie ; klasse naam. methode naam. property naam += object

Syntax van opdracht. opdracht. expressie. variabele. = expressie ; klasse naam. methode naam. property naam += object Syntax van opdracht opdracht klasse naam methode naam ( expressie ) ; object expressie. property naam +=, variabele = expressie ; Static gewone methoden Bewerken een object Aanroep: object. methode ( )

Nadere informatie

Java Les 3 Theorie Herhaal structuren

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

Nadere informatie

Introductie in C++ Jan van Rijn. September 2013

Introductie in C++ Jan van Rijn. September 2013 Introductie in C++ Jan van Rijn September 2013 Inhoud Classes Overerving Const correctness Standard C++ library Templates Classes Voordelen van classes: Modelleren Modulariteit Informatie afschermen Makkelijk(er)

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

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

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, 8.30-10.30 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde

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

Programmeren in Java 3

Programmeren in Java 3 7 maart 2010 Deze les Zelf componenten maken Concurrency (multithreading): werken met threads levenscyclus van een thread starten tijdelijk onderbreken wachten stoppen Zelf componenten maken Je eigen component:

Nadere informatie