Samenvatting programmeren I

Maat: px
Weergave met pagina beginnen:

Download "Samenvatting programmeren I"

Transcriptie

1 Samenvatting programmeren I Inhoud Inhoud Basis Types Wiskundige Expressies Begin van een Java-klasse Mutatormethoden (void) en accessormethoden (get) Interessante tekens Parameters Velden Tekst dat Java niet mag lezen Klasse String Programma laten werken zonder BlueJ pakketten Functies van Java en BlueJ Als-dan vergelijking Printen Lussen Documentatie en interessante methoden Random Lijsten, tabellen en andere opslagmogelijkheden Gooien en opvangen van fouten (Exceptions) Programmeren met stijl (enkele tips) Overerving Basis Dynamische en statsiche types Abstracte klassen en interfaces Bijlage 1: while-lus met dubbele conditie Bijlage 2: while- of for-lus Janos Braem

2 Basis Types Alles is van het type Object. Als je bijvoorbeeld een tabel maakt van het type Object kan je daar alles in steken. Een geheel getal int Een reëel getal double 1 teken char aanduiding q (niet q, dat is een string) waar/niet waar boolean (true false in Java). Een booleaanse waarde wordt vaak een vlag genoemd bij methoden waarbij een boolean teruggegeven moet worden. Bv: bij de methode isred kan je een vlag maken boolean isred. Tijdens je methode vul je die booleaanse waarde en deze kan dan op het einde teruggegeven worden. Deze 4 primitieve types horen bij de klassen: Double, Integer, Character, Boolean (je kan deze klassen dan gebruiken bij een ArrayList en een HashMap). Dit zijn twee interessante methoden die van een string een int of een double maken. Double.parseDouble Integer.parseInt Verder zijn er nog enkele opmerking i.v.m. het type char. Al de waarden in het type char zijn alfabetisch geordend. Zo kun je ook chars met elkaar vergelijken. Om bv te weten of een char een hoofdletter is kan je het volgende doen: return ch >= A && ch <= Z ; Zo kan je ook twee getallen van elkaar aftrekken. Zo wordt D - A 3 en weet je dus dat deze twee letters 3 plaatsen van elkaar afwijken. Verder kan je ook een getal omzetten in een hoofdletter: if (ch >= a && ch <= z ) ch += A - a ; return ch; Er treedt wel een probleem op wanneer je een int en een char met elkaar wil optellen. Je moet dan een cast gebruiken. if (ch >= a && ch <= z ) return (char)(ch + A - a ); else return ch; Wiskundige expressies + optellen - aftrekken i++ is hetzelfde als i= i+1 i-- is hetzelfde als i= i-1 i += m is hetzelfde als i = i+m * - vermenigvuldigen / - delen (deling van twee gehele getallen is een geheel getal, analoog rationale getallen) % - modulus of rest-na-delen Rekenregels: modulus, vermenigvuldigen en delen eerder dan optellen en aftrekken == - is gelijk aan (bij String gebruik de methode equals!)!= - is niet gelijk aan < - kleiner dan (analoog voor groter dan) <= kleiner of gelijk aan (analoog voor groter of gelijk aan) Absolute waarde Math.abs(x) Correct wiskundig afronden (java rond steeds naar beneden af) Math.round(x) 2 Janos Braem

3 Minimum van x en y Math.min(x,y) (analoog voor maximum) Cosinus in x, met x in radialen Math.cos(x) (analoog voor sin(x), acos(x), asin(x), atan(x) E^x Math.exp(x) Ln(x) Math.log(x) Vierkantwortel x Math.sqrt(x) Vierkantswortel van x² + y² - Math.hypot (x,y) π Math.PI e Math.E AFRONDEN: Java rond int-waarden steeds naar beneden af. Hou daar rekening mee. Verder kan de compiler soms zeggen: possible loss of precision. Dit kan komen doordat je een int-waarde berekent met behulp van double waarden. Je kan dit oplossen door int-waarden te gebruiken (java zal afronden als hij double uitkomt) of door Math.round te gebruiken. Opmerking! In java zijn de volgende twee bewerking niet hetzelfde: (1) a = a* b/c en (2) a*= b/c. Want dan wordt de uitkomst bij (1) a wordt (ab)/c en bij (2) a wordt a(b/c). Deze twee waarden zijn niet gelijk want java rondt af! Als je dit doet: x*(1/2) zal dit niet het gewenste effect bereiken want Java rondt steeds naar beneden af! Dus dat wordt dan 0. Dit moet je doen: x/2. Begin van een java-klasse 1. Druk op new class 2. public class Naam{ (maak een nieuwe klasse aan met naam als naam) (voor public zie opmerking) 3. Noem alle velden die er moeten zijn en waarvan de klasse moet gebruik maken, dit moet je zo doen: private Type naam (maakt een nieuw privé-veld aan van Type met naam. Het is belangrijk dat velden altijd private zijn. Een klasse moet zo weinig mogelijk van zijn geheimen aan de buitenwereld prijsgeven.) 4. Zeg hoe een nieuw object moet noemen: public Naam() met binnenin de parameter, initialiseer daarna binnenin alle velden en parameters, altijd initialiseren, desnoods met 0 of null, of het eerste element van een tabel of lijst. Opmerkingen: 1. Gebruik static, na private of public, om van de methode een klassenmethode te maken. Dit wil zeggen dat deze methode een onderdeel is van een klasse en niet afhangt van een object. Je moet dus geen object hebben om de methode te kunnen toepassen. Dit is handig voor mensen die niets van BlueJ of Java kennen en toch het programma vlot willen gebruiken. Als je dan de geschreven methode wilt toepassen gebruik je: Class.methode(). Deze methode heeft twee beperkingen: a. Een klassenmethode mag geen gebruik maken van instantiemethoden, enkel van andere klassenmethode. b. Een klassenmethode mag geen gebruik maken van velden die gedeclareerd worden in een instantiemethode, enkel variabelen van de klasse zelf. 2. Gebruik final om een constante te definiëren. Het veld dan gecreëerd wordt is dan onveranderbaar. Hierbij moet de naam van de constante wel in hoofdletters worden geschreven. 3. Public gebruik je als het zichtbaar mag zijn voor heel java. Private is alleen beschikbaar voor de klasse. Protected is voor de klasse en subklassen zichtbaar. En als je niets zet is het voor alle klassen van hetzelfde pakket zichtbaar. 3 Janos Braem

4 Mutatormethoden (void) en accessormethoden (get) 1. public void naam() maakt een nieuwe methode die iets moet uitvoeren, gelijk wat, er kunnen eventueel parameters ingesteld worden om dan enkel binnen deze methode te gebruiken. Hier kan je niet het statement return gebruiken. 2. Type getiets() je kan hierna een methode schrijven maar op het einde moet je een return waarde geven dat iets teruggeeft van het type dat in het begin gezegd werd. Interessante tekens = steekt hetgeen dat na dit teken staat in het geen dat ervoor staat. voert de methode die erna staat uit op hetgeen ervoor staat Merk op! Als de methode in de klasse zelf voorkomt moet je ze niet op een object toepassen met.. return geeft iets terug ; moet na elke zin die je typt in java, behalve voorwaarden bij lussen of een als-dan vergelijking en ook niet na het declareren van een nieuwe methode, klasse of object. this.iets met this kan je vanuit de ene constructor een andere constructor van dezelfde klasse oproepen, this verwijst ook naar het object zelf! dit maakt van hetgeen erachter staat het omgekeerde (bv. true wordt dus false) (Type) Dit is een cast. Dit moet je voor iets zeggen en dan zeg je aan de compiler dat hetgeen dat hierna staat van het type tussen de haakjes is. Parameters De parameters moeten steeds tussen haakjes staan en later nog gebruikt worden. Je maakt een parameter door eerst het type te schrijven en daarna de naam van de desbetreffende parameter. Velden Er worden telkens nieuwe velden gedeclareerd in het begin. Het programma moet vooraf weten wat hij allemaal zal moeten gebruiken, maar hij moet het maar gebruiken (en initialiseren) in de methode zelf. Stel dat je in het begin hebt geschreven: private Schaakbord schaakbord. Dan moet je de eerste keer dat je dit schaakbord nodig hebt nog schrijven: schaakbord = new Schaakbord (dit kan je ook al doen als je een object van de klasse aanmaakt). Tekst dat java niet mag lezen Je kan bovenaan een methode, klasse of constructor schrijven: /** en dan op enter drukken. Je tekst mag geschreven na elk enkel sterretje. Je kan ook // schrijven en dan kan je tekst schrijven voor de rest van de regel. Java zal dat niet lezen. In je algemene omschrijving kan je ook bepaalde tags aan je java-klasse of programma verbinden. Hieronder volgt een lijst van vaak gebruikte De naam of namen van de De naam van de parameter(s), of een omschrijving De omschrijving van de te retourneren Een versie-omschrijving (Bv of de datum van de laatste aanpassing.) Klasse String Deze klasse is geen primitieve klasse, maar toch moet je de klasse niet bovenaan het programma importeren. Strings worden voorgesteld als q (niet q, anders heb je een char). Enkele belangrijke dingen over Strings: 1. Als je wilt weten of twee strings gelijk zijn moet je de methode.equals() gebruiken en niet ==. Bv. Stel je wilt weten of String s1 gelijk is aan String s2 dan doe je het volgende: s1.equals(s2). 2. Als je de lengte van een string wil weten, gebruik je de methode:.length() 3. Als je een String wilt splitsen gebruik je de volgende methode:.substring(beginpositie, eindpositie), waarbij je de eindpositie niet per sé hoeft te zeggen. 4 Janos Braem

5 4. Om een char in een String te zoeken:.indexof(char t, int vanafindex) Deze methode geeft de plaats weer van de eerste keer dat het teken t in de string voorkomt. De methode begint te zoeken vanaf de int die als parameter ingevuld wordt (vanafindex). Ook hier moet dit laatste niet per sé ingevuld te worden. 5. s1.contains(char): deze methode controleert of s1 de char bevat die als parameter opgegeven werd. 6. s1.isempty(): deze methode geeft aan of de string leeg is of niet. 7. String.replace (char c1, char c2): Vervangt alle tekens van c1 in een string door c2. 8. String.trim () doet begin- en eindspaties weg. 9. String.toLowerCase() zet alles om in kleine letters. 10. String.startsWith() Zegt met welk karakter een string begint. Programma laten werken zonder BlueJ Daarvoor moet je de hoofding van je methode aanpassen: public static void main (String[] args). Je methode noemt dus main en is public (uiteraard!). Verder heb je als parameter een tabel van Stringwaarden, dit is altijd zo! Deze hoofding gebruik je best zoals hij hier beschreven staat. Je kan je programma dan zo openen: c:\> java MijnKlasse een twee drie. De een twee drie zijn drie Strings die in de tabel zullen opgeslagen worden. De lengte van je tabel args hangt dus af van het aantal waarden dat je na c:\> java MijnKlasse schrijft. Om het te proberen kan je de opdrachtprompt gebruiken. Je kan je mappen veranderen door cd te schrijven en daarachter de nieuwe map. Compileren doe je als volgt: javac Naam.java. Pakketten Dit is een mechanisme die gelijkaardige klassen in een groep schikt. Alle klassen en pakketten zijn gebundeld in het pakket java. Elke subpakket heeft zo een aparte naam. Stel dat we onder java een klasse K hebben uit het pakket p dan wordt de officiële naam van die klasse: java.p.k. Bij Random is dat bijvoorbeeld: java.util.random. Dus in principe moet je altijd de officiële naam gebruiken. Maar om het schrijven te versimpelen zijn er enkele regels ingevoerd: Je kan een klasse importen. Die doe je bovenaan door te schrijven import java.p.k. Vanaf nu moet je dus in de rest van je klasse nooit meer de officiële naam van K gebruiken maar kan je gewoon K gebruiken. Klassen uit hetzelfde pakket waar je in bezig bent moet je niet meer importen en officiëel benoemen. Om een bestand in het package te plaatsen moet je het enerzijds in de juiste map zetten maar ook bovenaan schrijven: package java.p bijvoorbeeld. Functies van Java en BlueJ Als-dan vergelijking if(voorwaarde) {doe iets; doe iets; doe iets;} als aan de voorwaarde voldaan is zal hij iets doen else{doe iets anders;} als niet aan de voorwaarde voldaan is, doet hij iets anders Merk op! Vaak worden de accolades binnen een als-dan vergelijking weggelaten als er slechts 1 opdracht tussen de haakjes bevindt. Als je moet teruggeven of iets true of false is, kan je best direct return k<1 doen bv. In plaats van if(k<1){return true;)else{return false;} Als je wil controleren of een object van een gegeven type is, kan je het volgende na je if in de ronde haakjes schrijven: Object instanceof type. Printen Printen op een nieuwe regel System.out.println( te printen tekst ) Printen ernaast System.out.print( te printen tekst ) 5 Janos Braem

6 Strings worden aan elkaar gekoppeld door + Strings worden met andere waarden gekoppeld door + Als je gewoon een nieuwe lijn wilt zonder al direct iets af te drukken typ je System.out.println() (zonder parameters) Als je een blok tekst wil schrijven en je wilt middenin je regel een nieuwe regel schrijven gebruik je best de code \n De code System.out.print is niets nieuws: System is een klasse, out is een veld en print is een methode van die klasse. Belangrijk! Het is soms beter om de methode String tostring() te gebruiken. Deze methode zet een char, int of double om in een string. Als je dat van een object wil doen, kan je dat zelf schrijven door middel van een nieuwe methode die tostring() noemt en die dan via setters en getters een omschrijving geeft van het object. En nu komt het interessante. Als je System.out.println gebruikt en daarin iets zet dat geen string is, gebruikt hij automatisch de methode tostring van dat Object. Als je dat zelf reeds geschreven hebt, zal hij dat dus gebruiken. Als je dat niet doet gebruikt java een eigen code waar je als buitenstaander niet veel van kan maken. De tostring-methode is dus zeer handig. Want zo kan je de tostring niet alleen op een scherm gebruiken, maar ook in andere toepassingen. Lussen While-lus while (voorwaarde) {doe iets; doe iets; doe iets;} zolang aan de voorwaarde voldaan is, doet hij iets Merk op! Als je in je voorwaarde bij de while lus een dubbele conditie plaats, moet je eens zeer goed bijlage 1 lezen. for-each-lus for (Type naam: collectie) {doe iets;} voor elk element (=naam) van het Type uit de collectie, doe iets Merk op! Bij een for-each-lus, mag je NOOIT je lijst veranderen waarmee je aan het werken bent. Merk op! Als je dit schrijft, zal je niet elk element in de tabel in 5 veranderen: double [] tab = new double [20]; for (double d : tab) {d=5}. Java gaat 5 in de variabele d steken, maar niet in de tabel zelf. Het geen je hierboven schrijft is eigenlijk dit: For (int i = 0; i<tabel.length ; i++){double d = tab[i]; d=5;} (dit klopt dus niet!) for-lus for(initialiseren; voorwaarde; eindhandeling){doe iets} je initialiseert een waarde, als daarna aan de voorwaarde voldoen is doe hij hetgeen binnen de accolades. Daarna controleert java terug de voorwaarde. Vanaf het moment dat er niet aan de voorwaarde voldaan is wordt de eindhandeling uitgevoerd. Documentatie en interessante methoden Java bevat zeer veel klassen. Om ze allemaal van buiten te kennen zou je veel moeten blokken. Daarom staat er op de volgende link een overzicht. Zie API: 6.0/api/index.html. De belangrijkste methodes zijn deze van Math (zie wiskundige expressies pagina 1 en 2), Random (zie Random hieronder) en de methodes van een String (ga naar String ). Random Random is een bepaalde klasse die een bepaald willekeurig getal kan weergeven. Om de methode te gebruiken schrijf je helemaal bovenaan je programma: import java.util.random. Een nieuw object van de klasse random wordt op de volgende manier aangemaakt : private Random 6 Janos Braem

7 naamrandommachine. En om te initialiseren: naamrandommachine = new Random(). Interessante methodes die random bevat zijn: 1. naamrandommachine.nextboolean(): geeft willekeurig true of false terug. 2. naamrandommachine.nextint(): geeft een willekeurig getal terug. 3. naamrandommachine.nextint(int n): geeft een willekeurig getal van 0 tot n (dus n niet meegerekend) terug. 4. naamrandommachine.nextdouble(): geeft een willekeurig reëel getal terug. Lijsten, tabellen en andere opslagmogelijkheden Er zijn een aantal mogelijkheden om elementen ergens in een lijst of een tabel in op te slaan, met elk hun eigen voor- en nadelen. 1. Tabel. Bij een tabel maak je eigenlijk een fictief boek en je steekt daar vooraf allemaal blaadjes in. Het interessante aan een tabel is dat je vooraf moet beslissen hoeveel blaadjes je er in wilt steken. Bij een boek is dat net hetzelfde, eenmaal een boek ingebonden is, kan je het aantal bladeren niet meer veranderen. Elk blad heeft een nummer (beginnend van 0 en eindigend met het aantal pagina s -1. Een tabel heet in Java Array. Op elk blad kan je dan iets invullen. Hoe je ermee moet werken zie je hieronder. a. Je moet een tabel niet importeren in Java. b. Om je tabel zogezegd aan te maken schrijf je: Type [] naamtabel. Hierbij kan je meerdere elementen in de tabel steken op de volgende manier: int[] rij3 = { 3, 4, 5, 6 };. Dit kan je ook met een ander Type doen. c. Om de tabel de definiëren schrijf je: naamtabel = new Type [lengtetabel]. Hier kan je de tabel niet met meerdere elementen vullen zoals bij punt b! d. Om iets in de tabel te steken gebruik je naamtabel[positie] = vulling. e. Om een bepaald element te weten: naamtabel[positie] f. Om de lengte te weten: naamtabel.length g. Opmerking! Je kan een tabel ook twee dimensies geven. Zo kan je een tabel met i rijen en j kolommen aanmaken bijvoorbeeld. Dit doe je zo i. Aanmaken tabel: int[][] tabel = new int [3][5]; ii. Je kan de tabel als volgt vullen: iii. for (int i = 0; i < 3; i++) for (int j = 0; j < 5; j++) tabel[i][j] = 10 * (i + 1) + j + 1; Dan ziet je tabel er als volgt uit: iv. Om van een tweedimensionale tabel de lengte weten kan je het aantal rijen als volgt weten: tabel.length, het aantal kolommen weet je als volgt: tabel[0].length v. Het effect van het volgende java-fragment is dat je in elk kolomnummer dezelfde rij steekt: double [] [] mat = new double [5] []; double [] rij = new double [5]; for (int i = 0; i < 5; i++){ mat [i] = rij;} vi. Verder nog dit, vaak zul je te maken hebben met een situatie waarbij je een getal moet invoegen, en de andere getallen telkens met eentje moet opschuiven, de meest handige techniek is dan om van achter naar voor te werken, tot de plaats waar het element ingevoegd moet worden. 7 Janos Braem

8 2. Lijst. Een lijst is anders dan een tabel omdat je hier de lijst het best met een ringmap kan vergelijken. Je kan er heel wat blaadjes insteken en je kan ze ten allen tijde eruit halen of erin steken. Een groot nadeel van een ArrayList is dat er enkel objecten kunnen in opgeslagen worden en geen primitieve klasses zoals int. Je kan je lijst wel van het type Integer maken, dan lukt het wel. Om een lijst te maken en te gebruiken doe je het volgende a. Een lijst wordt geïmporteerd met: import java.util.arraylist; b. Om je lijst aan te maken schrijf je: private (of public) ArrayList<Type> naamlijst c. Om de lijst te initialiseren: naamlijst = new ArrayList<Type>(). d. Om iets toe te voegen: naamlijst.add(hettoetevoegenelement) merk op dat je hier geen positie moet invoeren, het element wordt op de laatste plaats in de lijst geplaatst. e. Om de lengte te weten: naamlijst.size() f. Om een bepaald element te weten: naamlijst.get(element) g. Om een element te verwijderen: naamlijst.remove(positieinlijst) i. Merk op! Als je een element verwijdert, verandert de nummering! 3. Hashmap. Een hashmap kan je het best vergelijken met een telefoonboek. Elke waarde uit een Hashmap is gekoppeld aan een andere waarde. We hebben telkens een soort sleutel nodig die dan iets anders vrijgeeft. In een Hashmap kunnen enkel objecten opgeslagen worden en geen primitieve types. Om een object uit de hashmap op te roepen moet je als het ware de naam ingeven en dan krijg je het telefoonnummer, je moet dus een object ingeven en dan zoekt hij waar in de hashmap hij dat object terugvindt en geeft dan het object dat ermee gekoppeld is terug. Een hashmap gebruik je als volgt (voor het gemak wordt de sleutel hier voornaam genoemd en het object dat aan de sleutel gekoppeld is wordt hier telnummer genoemd): a. Importeren: import java.util.hashmap b. Hashmap aanmaken : HashMap<TypeVoornaam, TypeTelnummer> naamhashmap c. Initialiseren: naamhashmap = new HashMap<TypeVoornaam, TypeTelnummer> () d. Er iets in steken: naamhashmap.put(voornaam, Telnummer) e. Om een element te weten: naamhashmap.get(voornaam) Gooien en opvangen van fouten (exceptions) Soms komen er bij het uitvoeren van programma s fouten tevoorschijn. Die fouten zijn eigenlijk objecten die allemaal van één klasse zijn. Al de klassen die een fout als object hebben zijn subklassen van Exception. Als er iets fout gaat wordt het volgende gedaan: throws new Exception ( boodschap ); Die Exception kan ook even goed IllegalArgumentException zijn, dat een subklasse van Exception is. Bovenstaande opdracht kan je zelf ook in je methode implementeren, maar dan moet er na de hoofding van je methode throws TypeException staan. Zo n fouten kunnen opgevangen worden. Dat kan door een stuk code in een try te plaatsen: try { implementatie waar er mogelijk een fout kan gegooid worden} catch (TypeException f) {als hij een fout heeft opgevangen van het type dat in de haakjes staat zal hij hetgeen doen dat hier in de accolades staat, je kan hierbij gebruik maken van f, dat is de boodschap die aan de fout verbonden is.} catch (TypeException f) { je kan dus meerdere types van fouten opvangen} finally { de code die hierin staat voert hij sowieso uit, of hij een fout opvangt of niet}. Er zijn twee soorten exceptions. We hebben de checked exceptions en de unchecked exceptions. Met de unchecked exceptions hebben wij meestal te maken. Als API bij het gebruik van een methode zegt dat er een checked exception gegenereerd kan worden dan moeten we de implementatie ervan in een try-catch vorm zetten. 8 Janos Braem

9 Gecontroleerde (checked) fouten zijn fouten waar wij een probleem kunnen verwachten, bijvoorbeeld iemand die het verkeerde getal ingeeft als parameter. In deze situaties kan de gebruiker het probleem oplossen. Ongecontroleerde (unchecked) fouten zijn fouten die onverwacht komen en zijn vaak een oorzaak van slecht programmeren. (Alle subklassen van RunTimeException). Programmeren met stijl Enkele tips om te programmeren met stijl, lees deze even door, het is niet de bedoeling dat je dit van buiten leert. Maar probreer er tijdens het programmeren rekening mee te houden. 1. Gebruik zinnige namen. Ook voor mutator- en accessormethoden: gebruik bv setiets() en getiets(). Wanneer een boolean geretourneerd moet worden, gebruik isiets(). Is je naam al zo goed en je moet een nieuwe verzinnen? Je kan ook this. Gebruiken. 2. Namen van klassen beginnen met een hoofdletter. 3. Namen van klassen zijn enkelvoudige zelfstandige naamwoorden (vb. dobbelsteen, oval, ) 4. Namen van methodes en variabelen beginnen met een kleine letter. Als er meerdere woorden in een naam voorkomen, zet je het tweede woord met een hoofdeltter. 5. Een constante wordt altijd in hoofdletters geschreven, om verschillende woorden hier te onderscheiden kan je gebruik maken van underscores. 6. Een niveau inspringen betekent vier spaties. 7. Alle statements binnen een blok worden een niveau ingesprongen 8. Accolades voor klassen en methodes staan op een eigen regel met dezelfde inspringing. Bij accolade-gebruik voor alle andere blokken moet de eerste accolade aan het eind van de regel geschreven worden. 9. Als je weet dat je in een bepaalde situatie de accolades kan weglaten, doe het dan. Ben je het niet zeker, laat ze dan staan (op het examen word je hiervoor niet afgestraft) 10. Plaats een lege regel tussen methodes en constructors. 11. Accolades bij een als dan vergelijking (zie paragraaf over als dan vergelijking) 12. Controleren van de conditite bij een while-lus (zie bijlage 1). 13. Wanneer een for-lus en wanneer een while-lus gebruiken (zie bijlage 2). 14. De klasse iterator wordt in programmeren 1 niet gebruikt, for each lus vervangt deze functie. 15. Om een programma met stijl te schrijven moet je er voor zorgen dat het programma door iemand anders makkelijk aan te passen valt: a. Hou samenhorende begrippen samen per klasse en gebruik zo weinig mogelijk klassen. b. Zorg voor een goede flexibiliteit: schrijf bij een tabel die 10 tekens telt in een for lus dus beter i<tab.length in plaats van i<10. c. Probeer code niet te dupliceren, dit wil zeggen dat er twee of meerdere keren in je programma een stuk code voorkomt met dezelfde structuur. Je kan er ofwel een methode van maken, ofwel de verschillende opdrachten samenvoegen door enkele constanten aan te passen naar variabelen. 16. Het is vaak zeer handig om, nadat je programma getest is, je code te herlezen en te refactoren: dit wil zeggen dat je de broncode nog eens bekijkt en bedenkt of er dingen anders (beter) geschreven kunnen worden. 17. Je moet een klasse inkapselen, ervoor zorgen dat enkel aan de buitenwereld wordt blootgegeven wat blootgegeven moet worden. Maak velden bijvoorbeeld steeds private. Want zij verraden hoe je bepaalde methodes gebruikt, en dat hoeft niet. Waarom is dit zo? Als je dit doet, dan gaan andere klassen gebruik maken van je velden en andere functies die je te veel hebt blootgegeven, en dat zorgt voor een grotere afhankelijkheid (de klassen zijn afhankelijker van elkaar). Dit is heel complex, onduidelijk en moeilijker aan te passen voor een buitenstaander. 9 Janos Braem

10 18. Als je een functie wilt toevoegen aan een programma en je weet niet in welke klasse je ze best schrijft kan je best het volgende trucje gebruiken: een klasse die verantwoordelijk is voor het opslaan van gegevens is ook verantwoordelijk voor het bewerken ervan. 19. Denk vooruit, denk goed na op welke manier een klasse in het vervolg nog kan aangepast kan worden. Stel dat je bijvoorbeeld iets afdrukt met system.out, maar dat dit in het vervolg via return handiger zou zijn, pas het dan nu al aan. 20. Probeer methoden zo kort mogelijk te houden en te beperken tot 1 taak. Waardoor een andere programmeur je code makkelijker kan lezen en begrijpen. 21. Soms moeten methoden en klassen gesplitst worden omdat ze (doordat er zodanig veel dingen worden bijgeschreven) te lang worden. Dit gebeurt in twee stappen: eerst splitsten (en controleren of de functionaliteit van je programma hetzelfde is) en dan pas je programma verbeteren (door nieuwe functie s toe te voegen). Overerving Basis Als je van verschillende klassen enkele methoden en velden gemeenschappelijk hebt is de basis voor overerving gelegd. Overerving zorgt namelijk voor een betere structuur in je programma. Het programma wordt dan ook veel gebruiksvriendelijker en overzichterlijker. Hoe ga je te werk? De superklasse is de gemeenschappelijke klasse die verschillende subklassen heeft. Die superklasse heeft een aantal methoden en velden, alle subklassen hebben die dan ook. Alleen kan je aan elke subklasse bijkomende individuele eigenschappen geven. Stel dat je bijvoorbeeld een klasse slangen hebt, dan kan je instellen dat die geen poten en schubben hebben, verder kan je dan met verschillende subklassen verschillende soorten slangen gaan definiëren met elk hun eigen eigenschappen. Een subklasse begint met: public class subklassenaam extends superklassenaam. Bij de initialisatie ga je dan alle parameters die je nodig hebt om een object van de superklasse aan te maken naast elkaar zitten onder de vorm: super(para1, para2). Verder verloopt alles hetzelfde. Enkele regels: 1. Een subklasse heeft alle methoden van de superklasse (deze moet je dus niet opnieuw schrijven). 2. Als je een object nodig hebt van de structuur in een methode buiten de structuur gebruik je steeds de naam van de superklasse. Als je een tabel wilt maken van slang gebruik je als type best Slang en niet Ratelslang bijvoorbeeld, zo kunnen alle slangen toegevoegd worden en niet alleen ratelslangen. 3. In sommige situaties kan je die super niet toepassen. Dan kan je de velden die je nodig hebt veranderen in protected (enkel zichtbaar voor de klasse zelf en subklassen ervan). Maar het is misschien beter om met getters en setters te werken. 4. Een object van de superklasse en een object van een subklasse hebben in principe hetzelfde type. Als het bijvoorbeeld toch niet werkt, kan je het volgende gebruiken: c = (Type) d. Maar dan moet d wel degelijk van het type zijn dat binnen de haakjes aangegeven staat. Dit laatste liever niet gebruiken. 5. Elk type heeft een superklasse, namelijk de klasse Object. Vb.: public class naamklasse is eigenlijk public class naamklasse extends Object. (extends Object mag weggelaten worden.) 6. Als we een methode van een superklasse willen gebruiken moeten we het volgende toepassen: super.naammethode (parameters). Opmerking: als een subklasse een lege constructor heeft mag die volledig weggelaten worden. Dynamische en statische types Er zijn twee soorten types: 1. Dynamische types zijn de types van het object dat op dit moment is opgeslagen in de variabele. Dit zijn types die gebruikt worden bij het uitvoeren van het programma. Java zal 10 Janos Braem

11 dan namelijk naar je subklasse kijken en minder naar je superklasse. Soms worden dynamische types ook gewoon klassen genoemd. 2. Statische types zijn de gedeclareerde types. Dit zijn types die enkel belangrijk zijn bij het compileren, waar de superklasse ook belangrijk is. Soms worden statische types ook gewoon type genoemd. De compiler zal altijd kijken naar het statische type, maar bij de uitvoering zal naar het dynamisch type worden gekeken. Als je een methode in een subklasse hebt, dan moet je die in principe ook in de superklasse steken, want anders zal de compiler dat niet begrijpen. Vb. Klasse heeft twee subklassen: klasse 1 en klasse 2. Stel dat klasse en klasse 1 beiden een methode print() hebben en klasse 2 niet. Dan zal bij het uitvoeren van die methode op een object van klasse 1, de methode van klasse 1 zelf gebruikt worden. Als dit bij klasse 2 gebeurt, dan hij de overgeërfde methode van klasse gebruiken. Waarom is dit zo? We hernemen bovenstaand voorbeeld. Als je nu buiten de sub- en superklassen ergens de methode print toepast op een object van klasse, dan kan het zijn dat jij weet dat daar enkel objecten van klasse 1 zullen gebruik van maken (omdat jij dat zo programmeert). De compiler weet dat echter niet. Dus moet er (stel dat de methode toch op een object van klasse 2 wordt toegepast) een methode in klasse staan zodat de subklassen daar zogezegd gebruik van kunnen maken. Abstracte klassen en interfaces Een abstracte methode is een methode die eigenlijk wel nodig is maar enkel omdat de compiler dan tevreden zou zijn. Het zijn methoden die bestaan, maar die eigenlijk niet gebruikt worden omdat steeds de methodes van de subklassen worden geschreven. Dit doe je als volgt: public abstract class KlasseNaam. Die moet je steeds doen vanaf er minstens één abstracte methode in zit. Een abstracte methode wordt als volgt geschreven: abstract public void add();. Hierbij moet je geen accolades en ook geen implementatie geven. Er kunnen nooit objecten van een abstracte klasse worden aangemaakt. Dat wordt volledig met hun subklassen geregeld. Toch moet er vaak een constructor zijn omdat de subklassen die met de super methode nodig hebben. Een interface is een klasse die volledig abstract is. Dit wil zeggen dat er geen enkele niet-abstracte methode in voorkomt. Een interface heeft dus ook geen constructor of implementatie. Er kunnen geen objecten aangemaakt worden van een interface. Je maakt een interface als volgt: public interface Naam. De verschillende methoden in die erin voorkomen worden dan als volgt gegeven: public void doeiets (String s); (merk op dat er een punt komma staat en dat er geen implementatie is). Het is ook niet verplicht om de waarde public te gebruiken. Die interface kan door een andere klasse gebruikt worden. Als een andere klasse een interface implementeert, moeten alle methoden van de interface in die klasse voorkomen en wordt dat bij de hoofding als volgt aangeduid: public class Naam implements Pipi. Het is als student van programmeren I nog niet altijd duidelijk wat precies het nut van een interface is. Het zorgt voor een betere structuur en het maakt ook meervoudige overerving mogelijk (een klasse heeft meer dan 1 superklasse). Uiteindelijk moet je niet echt zelf kunnen bepalen wanneer een interface echt nodig is. Meestal is het uit de context van een opgave af te lezen of het gebruik van een interface al dan niet aangewezen is. Maar dit is dan ook enkel bij programmeren I. 11 Janos Braem

12 Bijlage 1: while-lus met dubbele conditie Als je bij een while-lus een dubbele conditie plaatst, moet je het resultaat per conditie retourneren (bv met een als dan vergelijking). Een voorbeeld vind je bij public int IndexOf uit AutolijstTest uit hoofdstuk 6. Dan komt vaak de vraag, wat moet er bij de if-lus in de voorwaarde? Wel je past het volgende trucje toe: / Voorwaarde 1 OK Voorwaarde 1 niet OK Voorwaarde 2 OK Voorwaarde 2 niet OK Dan vul je de tabel in en kijk je wat er in de vakjes moet. Dan kan je makkelijker zien welke voorwaarde je moet gebruiken. Hier is er ook nog een opmerking te maken ivm programmeren met stijl: public boolean ispriem (int getal) { int deler = 2; while (deler * deler <= getal && getal % deler!= 0) deler ++; return deler*deler > getal; } Is veel beter geprogrammeerd dan: public boolean ispriem (int getal) { int deler = 2; while (deler * deler <= getal && getal % deler!= 0) deler ++; if (deler*deler > getal) return true; else return false; } 12 Janos Braem

13 Bijlage 2: while of for-lus? Alles wat je in Java met een for-lus kan doen, kan je ook met een while noteren, en omgekeerd. Wanneer je welk type lus gebruikt is dus in vele gevallen een kwestie van persoonlijke smaak. Toch kan je hier best een aantal bestaande conventies volgen. 1. In principe: enkel for-lus als je vooraf al weet hoeveel hij moet gedaan worden. Vb: bepaal de som van alle gehele getallen van 50 tot en met Als er een dubbele conditie is gebruik je beter een while. (vergeet niet bij het overlopen van een tabel ook als voorwaarde in te stellen dat hij niet verder mag gaan dan de tabel lang is!) 3. Als je de tellervariabele (vaak i) nog nodig hebt na de lus gebruik je ook beter een while-lus. 4. Als de eindwaarde van de teller afhangt van iets wat niet met de teller te maken heeft gebruik je best ook een while-lus (bv: stop met tellen bij de eerste positie van de tabel waar zich een negatief getal bevindt.) 5. Wanneer je in de for-lus een nieuwe waarde aan de teller toewijst, gebruik je best een while met dubbele conditie. 13 Janos Braem

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

Vakgroep CW KAHO Sint-Lieven

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

Nadere informatie

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

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

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

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

Programmeren 1 20 januari 2012 Prof. T. Schrijvers

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

Nadere informatie

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

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

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

BEGINNER JAVA Inhoudsopgave

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

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

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

Modelleren en Programmeren

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

Nadere informatie

NAAM: Programmeren 1 Examen 31/08/2011

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

Nadere informatie

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

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

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

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

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

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

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

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

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

Nadere informatie

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

Java. Basissyllabus. Egon Pas

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

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 9 december 2015 Foreach String arrays Boomstructuren Interfaces Ingebouwde datastructuren Quiz Foreach Foreach Speciale versie van for om iets voor alle elementen

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

Hoofdstuk 0. Van Python tot Java.

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

Nadere informatie

Objectgericht programmeren 1.

Objectgericht programmeren 1. Objectgericht programmeren 1 joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn Objectgericht ontwerpen 35% Objectgericht ontwerpen 65% OP1 Informatiesystemen 50% Databanken 50% OP1 Evaluatie

Nadere informatie

Informatie over. 5VWO DT51: JavaLogo. Casper Bezemer. Toetsweek 1 13 oktober 2016

Informatie over. 5VWO DT51: JavaLogo. Casper Bezemer. Toetsweek 1 13 oktober 2016 Informatie over 5VWO DT51: JavaLogo Casper Bezemer Toetsweek 1 13 oktober 2016 1 Informatie Voor toets DT51 wordt jou gevraagd Java(Logo) programma s te schrijven. De eerste opdracht is een Krimpfiguur,

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

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

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

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

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

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

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

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

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

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

DIAGNOSTISCHE TOETS Softwaresystemen UITWERKING

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

Nadere informatie

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

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

SYNTRA-WEST. Cursus OOP. Deel

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

Nadere informatie

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

OEFENINGEN PYTHON REEKS 1

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

Nadere informatie

Javascript oefenblad 1

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

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

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

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

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

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

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

OEFENINGEN PYTHON REEKS 1

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

Nadere informatie

Programmeren met Arduino-software

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

Nadere informatie

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object. een symbolische naam voor een object. Variabelen Constanten Variabelen Expressies naam : geeft de plaats in het geheugen aan waarde : de inhoud van het object identifier : een rij van letters en/of cijfers

Nadere informatie

Verslag. Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers

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

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

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

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

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

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

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

Nadere informatie

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby? 1 Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby? Voordat je begint met programmeren, moet je Ruby installeren.

Nadere informatie

OEFENINGEN PYTHON REEKS 1

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

Nadere informatie

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

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

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

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

[13] Rondjes draaien (loops)

[13] Rondjes draaien (loops) [13] Rondjes draaien (loops) Met de if else uit de leerfiche [11] hebben we leren werken met één van de belangrijkste programmeerstructuren in Python. Bijna even belangrijk zijn de verschillende mogelijkheden

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

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

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

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

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

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

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

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

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

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

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

Nadere informatie

Inleiding C++ Coding Conventions

Inleiding C++ Coding Conventions Inleiding C++ Coding Conventions Opleiding Bachelor of Science in Informatica, van de Faculteit Wetenschappen, Universiteit Antwerpen. Nota s bij de cursus voor academiejaar 2012-2013. Ruben Van den Bossche,

Nadere informatie

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49 Stacks and queues Introductie 45 Leerkern 45 6.1 Stacks 45 6.2 Queues 47 6.3 Double-ended queues 48 Terugkoppeling 49 Uitwerking van de opgaven 49 Bijlage: Diagrammen belangrijkste interfaces en klassen

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

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2

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

Nadere informatie

Online c++ leren programmeren:

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

Nadere informatie

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

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

Nadere informatie

Een inleiding in de Unified Modeling Language 67

Een inleiding in de Unified Modeling Language 67 Een inleiding in de Unified Modeling Language 67 1.4.5. Toepassing 5: Klasse Kaart. De opdracht bestaat erin algemene klassen te maken zodanig dat het mogelijk wordt om het even welk kaartspel te maken.

Nadere informatie

Veel succes! 1. Gegeven is de volgende klasse:

Veel succes! 1. Gegeven is de volgende klasse: Dit tentamen is in elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. A Eskwadraat kan niet aansprakelijk worden gesteld voor de gevolgen van eventuele fouten in dit tentamen. Derde deeltentamen

Nadere informatie

Objectgeoriënteerd Programmeren: WPO 3

Objectgeoriënteerd Programmeren: WPO 3 Objectgeoriënteerd Programmeren: WPO 3 1. Inhoud Eenvoudige (enkelvoudige) overerving, override, ToString(), base, private, public, protected, virtual 2. Oefeningen Demo: Scheepvaart A: Polygon A: Rekenmachine

Nadere informatie

II. ZELFGEDEFINIEERDE FUNCTIES

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

Nadere informatie

Een gelinkte lijst in C#

Een gelinkte lijst in C# Een gelinkte lijst in C# In deze tutorial ga demonstreren hoe je een gelinkte lijst kan opstellen in C#. We gaan een klasse schrijven, die een gelijkaardige functionaliteit heeft als een ArrayList, namelijk

Nadere informatie

Objectgericht programmeren 1.

Objectgericht programmeren 1. Objectgericht programmeren 1 joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn Objectgericht ontwerpen 35% Objectgericht ontwerpen 65% OP1 Informatiesystemen 50% Databanken 50% OP1 Evaluatie

Nadere informatie

Labo 1 Programmeren II

Labo 1 Programmeren II Labo 1 Programmeren II L. Schoofs K. van Assche Voor de OA Labo Programmeren II programmeren we in C# en met Microsoft Visual Studio 2005 als ontwikkelomgeving (voorlopig beta2). Deze IDE maakt gebruik

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

Afbeelding 12-1: Een voorbeeld van een schaakbord met een zwart paard op a4 en een wit paard op e6.

Afbeelding 12-1: Een voorbeeld van een schaakbord met een zwart paard op a4 en een wit paard op e6. Hoofdstuk 12 Cartesische coördinaten 157 Hoofdstuk 12 CARTESISCHE COÖRDINATEN In dit hoofdstuk behandelen we: Het Cartesisch coördinatenstelsel De X-as en de Y-as De commutatieve eigenschap van optellen

Nadere informatie

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

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

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

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

Prof.: M. van Dooren Academiejaar Auteur: Dieter Debast

Prof.: M. van Dooren Academiejaar Auteur: Dieter Debast Prof.: M. van Dooren Academiejaar 2014-2015 Auteur: Dieter Debast Klassen en methoden 1. Main methode public static void main(string[] args) { Java roept deze methode op bij het opstarten van het programma

Nadere informatie

Deeltentamen Grammatica s en ontleden 22 december 2005

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

Nadere informatie