L E S B O E K J E. J. van Weert Wt (at) sgdb.nl Stedelijk Gymnasium s-hertogenbosch Wt /

Maat: px
Weergave met pagina beginnen:

Download "L E S B O E K J E. J. van Weert Wt (at) sgdb.nl Stedelijk Gymnasium s-hertogenbosch Wt /"

Transcriptie

1 W T S A D V A N C E D P Y T H O N L E S B O E K J E J. van Weert Wt (at) sgdb.nl Stedelijk Gymnasium s-hertogenbosch

2 INHOUD 1 Inleiding Object Oriented Programming (OOP) Classes Init en methoden met parameters Class variables en instance variables Overerving Meervoudige overerving Multiple inheritance probleem 1: conflicterende methoden Multiple inheritance probleem 2: meerdere init () methoden Geavanceerd overriden Opfrisser Methoden van je parent aanroepen Error handling Inleiding Soorten foutmeldingen Exceptions Extra: Eindproject(je) Links en vervolgsuggesties

3 1 INLEIDING Je hebt inmiddels aardig wat ervaring met Python. Toch valt er nog oneindig over te leren (veel meer nog dan we hier nog kunnen toevoegen). In dit boekje breiden we je programmeerarsenaal uit met 2 belangrijke concepten: Objects en Error Handling. Objects helpen je op verschillende manieren: - Objecten bieden extra structuur en maken daarmee je code overzichtelijker - Objecten helpen je voorkomen dat je code herhaalt. Dit voorkomt fouten en maakt je code beter te onderhouden - Objecten maken code recyclebaar: objecten die je eerder geschreven hebt, kun je gemakkelijk in nieuwe programma s importeren - Objecten maken het makkelijker je code in stukken te verdelen en daarmee is het makkelijker om samen te werken aan code (ieder zijn eigen afgesloten stuk) Error handling is een mechanisme dat helpt om fouten die kunnen optreden tijdens het gebruik van een programma (bijvoorbeeld ongeldige invoer van een gebruiker) op een goede manier af te handelen, zonder dat de gebruiker wordt overladen met cryptische foutmeldingen 3

4 2 OBJECT ORIENTED PROGRAMMING (OOP) 2.1 CLASSES In OOP draait alles om classes (klassen) en objects/instances (objecten of instanties). Bekijk het volgende filmpje met een voorbeeld en uitleg over de basics van Python classes: Thenewboston Tutorial 29: Classes and Objects Hierin leer je: - Basis class syntax (schrijfwijze) - Class variables - Class functions (+self) - Instanties (objects) maken - Het maken van meerdere instanties (objects) van een klasse en het gebruik ervan Opdracht 1: Bouw de Enemy() class na uit het filmpje. Breid de Enemy() klasse uit met een nieuwe functie heal(). Deze functie verhoogt de life van de enemy met 2. Test je functie door een Enemy object te maken, een paar keer de heal() en de attack() functies ervan uit te voeren en vervolgens met de checklife() functie de kijken of het goed heeft gewerkt. Opdracht 2: Wijzig de methode attack() zodanig dat elke attack een random getal tussen 0 en 3 kiest en dat van de life variabele afhaalt (schade is dus niet meer altijd 1, maar kan variëren). Schrijf vervolgens een programma dat twee objecten van het type Enemy maakt en ze om en om elkaar laat aanvallen (gebruik een loop). Als 1 van de 2 dood is, eindigt je programma met de melding wie er gewonnen heeft en hoeveel life de winnaar nog over heeft. NB: Kijk in de codecademy samenvatting hoe random ook alweer werkt. 4

5 2.2 INIT EN METHODEN MET PARAMETERS Bij het maken van een nieuw object is het vaak handig als meteen een stukje code wordt uitgevoerd dat de startwaarden van het object goed instelt. Hiertoe dient de speciale init () methode. Methodes kunnen natuurlijk (net als gewone functies) meerdere parameters hebben. Bekijk het volgende filmpje: Thenewboston Tutorial 30: Init Hierin leer je: - Werking van de speciale init () functie bij classes - (extra) parameters naast self voor functies Opdracht 3: Breid je Enemy() class van de vorige opdracht (opdracht 2) uit met een init () functie. Deze functie vraagt (naast de standaard benodigde self) om 2 parameters: het aantal levenspunten om mee te beginnen en de maximale schade die geïncasseerd kan worden per aanval (2 integers dus). Sla deze waarden op in variabelen van de class. Pas nu je attack() functie aan zodat de de maximum schade die gedaan kan worden gelijk is aan het opgeslagen maximum uit de init() methode. De schade is dus een random getal tussen 0 en het maximum. Laat bij elke keer dat de attack() functie wordt aangeroepen ook op het scherm zien wat de schade was en hoeveel life de Enemy nog heeft. Test je code door weer in een loop 2 instanties van Enemy met elkaar te laten vechten tot er een dood is. Experimenteer met verschillende waarden voor de init methodes van de beide Enemy objecten. 5

6 2.3 CLASS VARIABLES EN INSTANCE VARIABLES Er zijn verschillende termen voor variabelen die in een class gebruikt worden: - Class variables: Variabelen die in de klassedefinitie worden gezet. De waarde hiervan is dus hetzelfde voor alle objecten (instanties) van deze klasse. - Instance variables: Variabelen die gemaakt worden in de init () methode van de klasse. Deze verschillen van waarde bij verschillende objecten (instanties) van deze klasse. (Vandaar ook de naam, instance variabelen hebben voor elke instance een unieke waarde) Niet superlastig, maar belangrijk om deze termen te kennen en uit elkaar te kunnen houden. Bekijk het volgende filmpje voor een korte uitleg met een voorbeeld: Thenewboston tutorial 31 Opdracht 4: Bekijk nog even je code van opdracht 3. Als het goed is heb je zowel class variables als instance variables gebruikt. Welke zijn welke? 6

7 2.4 OVERERVING Je hebt al gezien dat klassen een handige manier zijn om eenmalig een definitie van iets te schrijven (bijvoorbeeld de Enemy class uit de vorige opgaven) en meerdere objecten te maken die deze definitie gebruiken. Daar kunnen we nog een schepje bovenop doen met het principe van overerving (inheritance in het Engels). Bekijk het volgende filmpje: Thenewboston tutorial 32: Inheritance Hierin leer je: - De basics van inheritance (een klasse alle eigenschappen van een andere klasse laten overnemen en hier dingen aan toevoegen) - Overriding. Dit is het vervangen van een geërfde eigenschap (zoals een functie) door een andere invulling ervan. Het voorbeeldje uit het filmpje is simpel, maar inheritance is een erg krachtig concept. Je kunt zo een hele stamboom van classes maken die steeds specifieker worden. Hierdoor heb je nergens dubbele code, maar wel veel verschillende bruikbare classes met (deels) andere eigenschappen. Opdracht 5: Ga weer verder met je code uit opdracht 3. Maak een nieuwe class Boss en zorg dat dit een kindklasse is van de bestaande Enemy class. De Boss class erft nu dus alle variabelen en methoden van de Enemy class. Voeg de volgende dingen toe aan je Boss class: a. Een beetje eindbaas is natuurlijk ontzettend evil. Voeg een nieuwe methode evil_laugh() toe die Muhahahahah!! op het scherm afdrukt. b. De Boss class heeft een speciale eigenschap (het is tenslotte een eindbaas!) die hem moeilijker te verslaan maakt. Voeg een class variable met de naam shield toe aan de Boss. De waarde van shield is 3. c. Override de attack() methode die geërfd is van Enemy. Deze moet in de basis hetzelfde doen als de originele attack() methode van Enemy, maar met de volgende toevoeging: Als de Boss geraakt wordt en zijn shield variabele is groter dan 0, dan heeft hij 50% kans om de aanval af te weren en dus 0 schade te krijgen. Als dat gebeurt wordt zijn shield variabele met 1 verlaagd. (Zo kan hij dit maar 3x in totaal doen). Er wordt ook een melding afgedrukt dat de aanval geblokt is. Test je Boss door weer een gevecht te organiseren tussen een Boss en een Enemy., zoals je bij opdracht 3 gedaan hebt. Probeer ook eens een Boss tegen een Boss. 7

8 2.5 MEERVOUDIGE OVERERVING Bij overerving ben je niet beperkt tot 1 parent class. Een nieuwe klasse kan variabelen en functies erven van meerdere klassen tegelijk. Een voorbeeld zie je in het volgende filmpje: Thenewboston tutorial 33: Multiple inheritance Hierin zie je: - Het erven van functies uit 2 verschillende classes Opdracht 6: Ga verder met de code uit opdracht 5. In het spel zijn er verschillende dingen die tijdelijk onzichtbaar kunnen worden. Niet alle Enemies kunnen het, dus het kan geen eigenschap van de Enemy class zijn. Eindbazen kunnen het wel dus je zou het als eigenschap van de eindbaas kunnen toevoegen. Maar er zijn ook items die het kunnen (al hebben we die nog niet geïmplementeerd). Om te voorkomen dat we code dubbel moeten schrijven, kiezen we voor de volgende oplossing: Schrijf een nieuwe class Invisible(). Deze class introduceert een class-variabele visible die de waarde True krijgt. De class heeft ook 2 methoden: make_visible() en make_invisible(). Deze methoden passen de waarde van de visible variabele aan in respectievelijk True en False. Zorg nu dat je Boss class ook een kind is van de Invisible class (en nog steeds van Enemy natuurlijk) en test of je een instantie van Boss zichtbaar en onzichtbaar kunt maken. Een aantal dingen komen nog niet naar voren in het eenvoudige voorbeeld van het filmpje. Multiple inheritance is in sommige gevallen zeker handig, maar kan ook vaak voor problemen zorgen MULTIPLE INHERITANCE PROBLEEM 1: CONFLICTERENDE METHODEN Bij meervoudige overerving kunnen gemakkelijk conflicten ontstaan. Bekijk het volgende voorbeeldje: class Papa: def zeg_hallo(self): print "Hallo!" class Mama: def zeg_hallo(self): print "Hoi!" class Kind(Papa, Mama): def slaap(self): print "Zzzz" henkie = Kind() henkie.zeg_hallo() 8

9 Hier erft de Kind klasse dezelfde methode van 2 verschillende ouder klassen. Wat zou de uitvoer zijn bij de laatste regel? Het goede antwoord is Hallo!. Bij een conflict zoals hier, worden de parent classes op volgorde bekeken. Omdat de Kind klasse hier als eerste van de Papa class erft (die staat als eerste in zijn lijstje), zal daarvan de zeg_hallo() methode worden overgenomen. Je kunt je voorstellen dat dit voor problemen kan zorgen MULTIPLE INHERITANCE PROBLEEM 2: MEERDERE INIT () METHODEN Het probleem van conflicterende methoden van de vorige paragraaf wordt nog erger als beide ouders een init () methode hebben. Immers maar 1 van deze init () methoden wordt overgenomen door de kindklasse. Hierdoor kunnen zelfs verkeerd ingestelde variabelen ontstaan in de kindklasse. De init () methodes van beide ouders waren er immers niet voor niets. Ze zetten allerlei startwaarden goed en dat gebeurt nu misschien niet meer. Er zijn manieren om dit probleem te omzeilen (de init () methode overriden in de kindklasse is een optie), maar die vallen voor nu buiten de stof. In de praktijk wordt multiple inheritance niet veel gebruikt omdat het (zoals hierboven kort besproken) vaak meer problemen introduceert dan het oplost. In sommige specifieke gevallen is het nuttig en het is goed te weten dat het kan, maar wees er voorzichtig mee 9

10 2.6 GEAVANCEERD OVERRIDEN (Geen filmpje bij dit stukje stof helaas ) OPFRISSER We hebben gezien dat methodes die een kindklasse erft vervangen kunnen worden door nieuwe versies ervan: overriding. Nog even een simpel voorbeeldje over hoe dat ook alweer zat: class Papa: def slaap(self): print "Zzzzz" def zeg_hallo(self): print "Hallo allemaal!" class Kind(Papa): def zeg_hallo(self): print "Yolo matties!" fred = Papa() henkie = Kind() fred.slaap() fred.zeg_hallo() henkie.slaap() henkie.zeg_hallo() uitvoer: Zzzzz Hallo allemaal! Zzzzz Yolo matties! De Papa class definieert 2 functies die worden geërfd door de Kind klasse: slaap() en zeg_hallo(). In de Kind klasse wordt de zeg_hallo() functie vervangen door een nieuwe versie. In de uitvoer kun je zien dat bij het kind de slaap() functie ongewijzigd is overgenomen en de zeg_hallo() vervangen is. 10

11 2.6.2 METHODEN VAN JE PARENT AANROEPEN Hoewel het fijn is dat je methoden die je geërfd hebt kunt vervangen, gooi je daarmee soms ook veel nuttige code weg. Je schrijft namelijk de hele methode opnieuw, terwijl je soms gewoon een kleine toevoeging wilt doen aan de geërfde methode. Om dit te bereiken kun je de code van een methode van je parent weer oproepen als je als kindklasse de methode overschrijft. Bekijk het volgende voorbeeld: class Persoon: def init (self, voor, achter): self.voornaam = voor self.achternaam = achter def wie_ben_ik(self): print "Mijn naam is", self.voornaam, self.achternaam class Medewerker(Persoon): def init (self, voor, achter, stafnr): Persoon. init (self, voor, achter) self.stafnummer = stafnr def wie_ben_ik(self): Persoon.wie_ben_ik(self) print "en mijn stafnummer is:", self.stafnummer x = Persoon("Frits", "Worschtenbroodt") y = Medewerker("Hendrik", "Appelentaerte", 104) x.wie_ben_ik() y.wie_ben_ik() uitvoer: Mijn naam is Frits Worschtenbroodt Mijn naam is Hendrik Appelentaerte en mijn stafnummer is: 104 In de code zie je 2 klassen: Persoon en Medewerker. Medewerker is een kindklasse van Persoon en erft zowel de init () methode als de wie_ben_ik() methode van Persoon. Beide methoden worden in Medewerker overschreven door een nieuwe versie, maar op een andere manier dan tot nu: De code uit de originele methode van de parent wordt hierbij steeds eerst aangeroepen (Persoon. init (self, voor, achter) en Persoon.wie_ben_ik(self)) en vervolgens worden er nog dingen aan toegevoegd. De schrijfwijze hiervan lijkt op het gewoon aanroepen van een methode met 2 verschillen: 11

12 - Je noemt de naam van de parent-klasse (in dit geval Persoon) in plaats van de naam van de instantie - De self parameter moet ook worden opgegeven Bekijk de code goed en zorg dat je goed begrijpt hoe het aanroepen van een methode van de parent werkt. Opdracht 7: Ga verder met je code uit opgave 6. a: In opgave 5 heb je de Boss class toegevoegd als subclass van Enemy. Hierbij is de attack() methode van de Boss een override van die van de Enemy. Hierbij heb je veel code herhaald (de Boss doet hetzelfde als de Enemy, maar heeft een kans op het gebruik van zijn shield) Verbeter je code door bij deze attack() methode alle dubbele code bij de Boss versie weg te halen en deze te vervangen door een aanroep van de attack van zijn parent (de Enemy). Zorg wel dat de Boss zijn shield kan blijven gebruiken natuurlijk. b: De Boss class erft de init () method van Enemy(). We willen nu ook de waarde van de shield variabele van de Boss kunnen instellen bij het maken van een Boss object. Override de init () methode van Enemy(). Roep in de nieuwe init () van Boss de originele init () van de Enemy aan en voeg het instellen van de shield variabale toe. 12

13 3 ERROR HANDLING 3.1 INLEIDING PROGRAMMING TODAY IS A RACE BETWEEN SOFTWARE ENGINEERS STRIVING TO BUILD BIGGER AND BETTER IDIOT- PROOF PROGRAMS, AND THE UNIVERSE TRYING TO PRODUCE BIGGER AND BETTER IDIOTS. SO FAR, THE UNIVERSE IS WINNING. - RICK COOK Gebruikers doen niet altijd wat je verwacht (en eerlijk is eerlijk: als programmeur is het ook niet altijd te overzien op welke manieren je code gebruikt gaat worden, die maken ook fouten), dus de kans dat er tijdens de uitvoering van een programma wel eens een fout optreedt is groot. Dit is op zichzelf geen ramp, als er maar op een goede manier mee wordt omgegaan in de code. Een programma dat er halverwege mee ophoudt met een of andere obscure error die de gebruiker niet snapt is altijd een slechte zaak. De oplossing: Error handling Het basisprincipe van error handling is eigenlijk vrij eenvoudig: - Je moet erop verdacht zijn welke delen van je code tot fouten kunnen leiden bij (verkeerd) gebruik. - Aan deze delen voeg je een speciale pythonconstructie toe die de fouten vangt. - Bij het vangen van een fout, schrijf je code die voorkomt dat het programma crasht op de fout. - Eventueel voorzie de je de gebruiker van nuttige feedback (duidelijke foutmelding) zodat deze actie kan ondernemen. 13

14 3.2 SOORTEN FOUTMELDINGEN Laten we eerst maar eens wat dingen expres mis laten lopen om een beetje een gevoel te krijgen wat er zoal stuk kan gaan. Opdracht 8: Voer de volgende opdrachten uit en noteer wat de foutmelding is. Probeer ook te begrijpen wat de foutmelding zegt en leg uit wat er precies mis gaat. a. Voer de volgende code uit. Wat gaat er mis en waarom? lijst = [1, 2, 3] print lijst[6] b. Voer de volgende code uit. Geef verschillende getallen als invoer. Probeer dan ook eens het getal 0 als invoer. Wat gaat er mis en waarom? deler = int(raw_input("met hoeveel personen ga je een taart delen? ")) stuk = 1.0 / deler print "Dan krijgt iedereen", stuk, "stuk taart" c. Voer de code uit vraag b nog eens uit, maar in plaats van een getal voer je een stuk tekst in zoals appeltaart. Wat gaat er mis en waarom? d. Voer de volgende code uit. Voer verschillende getallen in. Het werkt niet, waarom? (kijk goed naar de foutmelding): getal = raw_input("geef een getal: ") uitkomst = 2 + getal print "De uitkomst is:", uitkomst e. Leg uit wat er mis gaat bij het maken van het nieuwe object mijntaart: class Appeltaart: calorieen = 2500 def init (self, aantal_stukken): self.stukken = aantal_stukken mijntaart = Appeltaart() Je hebt nu een aantal foutmeldingen uitgeprobeerd. Er zijn er nog (heel) veel meer (kijk voor de grap maar eens naar de hele lijst). Dat python onderscheid maakt tussen zoveel verschillende foutmeldingen is een goede zaak. Zoals we gaan zien kun je fouten vangen en afhandelen. Hierbij kun je verschillende soorten fouten op een verschillende manier behandelen en voor elke fout de juiste oplossing inbouwen. 14

15 3.3 EXCEPTIONS Ìn de vorige paragraaf heb je (expres) een aantal fouten veroorzaakt. Het optreden van zo n fout heet in Python een Exception (uitzondering). Deze exceptions kun je vangen en zorgen dat ze op een nette manier worden afgehandeld in plaats van met een crytptische foutmelding en een onderbroken programma. Bekijk het volgende filmpje: Thenewboston tutorial 28: Exceptions Hierin leer je: - Try block - Catch blok met specifieke Exceptions - Catch blok met algemene Exceptions - Finally block Opdracht 9: Ga verder met je code van opdracht 7. a. Breid de constructor ( init () ) van Enemy uit, zodat de Enemy (en de Boss dankzij overerving ook) een naam krijgt. Dit is simpelweg een string variabele die in de class wordt opgeslagen. b. We gaan nu de gebruiker bij je code betrekken (oei, weten we dat zeker?). Laat de gebruiker een gevecht organiseren tussen 2 Enemies/Bosses. Hiervoor ga je de gebruiker steeds keuzes aanbieden. Bijvoorbeeld: Wat is deelnemer 1? Kies 1 voor Enemy en 2 voor Boss Wat is de naam van deelnemer 1? Op deze manier bepaalt de gebruiker alle eingeschappen van de 2 deelnemers. Deze laat je tegen elkaar vechten zoals voorheen en drukt steeds de tussenstand van het gevecht af. Gebruik ook de naam van de deelnemers bij het afdrukken van de informatie De gebruiker kan natuurlijk allerlei fouten maken. Zorg dat je met loops en try except blokken alle fouten netjes vangt, zodat de gebruiker je programma niet meer stuk kan maken. 15

16 4 EXTRA: EINDPROJECT(JE) Je hebt nu kennis van Objecten in python en weet de weg in error handling. Hierbij word je aangemoedigd om verder te experimenteren met de dingen die je geleerd hebt om het je nog verder eigen te maken (en gewoon voor de leuk natuurlijk). Probeer het eens in de praktijk te brengen met een eindproject. Je kunt de vechtsimulatie van de voorgaande opdrachten natuurlijk verder uitbreiden met meer opties. Denk aan: - Meer soorten Enemies (subclasses) met meer verschillende eigenschappen - Meer gebruikers interactie (welke aanval?) - Meerdere enemies tegelijk (arena) - - Je zou ook bijvoorbeeld een tekst adventure spel kunnen maken dat de speler random vijanden voorschotelt, die met verschillende aanvallen verslagen kunnen worden (denk aan een soort Pokémon) Je zou dan bijvoorbeeld (een deel van) de volgende classes kunnen implementeren: - Player class, met bijvoorbeeld o Health, o Mana o Xp, o Level o Etc - Enemy class (en subclasses) met bijvoorbeeld: o Damage o Hp o Skills o Etc. - Item class met subclasses voor verschillende soorten items - NPC class - Skills - 16

17 5 LINKS EN VERVOLGSUGGESTIES Geen genoeg van Python? Er valt nog oneindig veel te leren. Zowel over mogelijkheden van de taal Python zelf als over programmeren en algoritmiek in het algemeen. Een aantal suggesties voor verdere studie (geen toetsstof uiteraard) - The Hitchhikers guide to Python Onofficiele handleiding over alles wat met Python te maken heeft. Van installatie tot goede programmeerstijlen - Thenewboston youtube tutorials Een aantal filmpjes stonden gelinkt in dit boekje. De hele playlist is nuttig (let op: wel Python 3, maar de verschillen met Python 2 zijn klein) - Learn Python the hard way Goed boek over het keren van Python 17

L E S B O E K J E. Jochum. van Weert Wt (at) sgdb.nl Stedelijk Gymnasium s-hertogenbosch v Delen onder Creative Commons toegestaan

L E S B O E K J E. Jochum. van Weert Wt (at) sgdb.nl Stedelijk Gymnasium s-hertogenbosch v Delen onder Creative Commons toegestaan W T S A D V A N C E D P Y T H O N L E S B O E K J E Jochum. van Weert Wt (at) sgdb.nl Stedelijk Gymnasium s-hertogenbosch v2.0 2017 Delen onder Creative Commons toegestaan 1 INHOUD 1 Inleiding... 3 2 Object

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

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

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord 11 december 2017 Zelle hoofdstuk 10 Stof Overzicht - theorie 1. Zelle hoofdstuk 4 en 5 2. Zelle hoofdstuk 7 en 8, recursie, Brookshear hoofdstuk 5 3. Zelle hoofdstuk

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord, Leonie Bosveld 12 december 2016 Zelle hoofdstuk 10 Stof Overzicht - theorie 1. Zelle hoofdstuk 4 en 5 2. Zelle hoofdstuk 7 en 8, recursie, Brookshear hoofdstuk

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

Hoofdstuk 6: Zelf functies maken

Hoofdstuk 6: Zelf functies maken Programmeren in Microsoft Visual Basic 2010 Express, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Vespucci College, Marnix Gymnasium Rotterdam, december 2011 Hoofdstuk

Nadere informatie

[15] Variabelen in functies (of: een woordje over scope)

[15] Variabelen in functies (of: een woordje over scope) [15] Variabelen in functies (of: een woordje over scope) In de vorige leerfiche hebben we geleerd over functies. We leerden dat functies parameters hebben en dat ze return-waarden kunnen teruggeven aan

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

Functioneel programmeren

Functioneel programmeren Functioneel programmeren Practicumopgave 2: Mastermind Het doel van deze opgave is het implementeren van het spel Mastermind; zie http://nl.wikipedia.org/wiki/mastermind voor een uitleg. Het spel is klein

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

Stap 1. Bepalen van invoer Het makkelijkst kun je dit vinden uit de zwarte vlakken met voorbeelden:

Stap 1. Bepalen van invoer Het makkelijkst kun je dit vinden uit de zwarte vlakken met voorbeelden: Stap 1. Bepalen van invoer Het makkelijkst kun je dit vinden uit de zwarte vlakken met voorbeelden: Na de opdracht Maak uw keuze: wordt er voor het eerst iets ingetypt door de gebruiker. De getallen die

Nadere informatie

Programmeermethoden NA. Week 5: Functies (vervolg)

Programmeermethoden NA. Week 5: Functies (vervolg) Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def

Nadere informatie

Disclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen

Disclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen Disclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen dat er zowel typografische als inhoudelijke onvolkomenheden

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

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

Een spoedcursus python

Een spoedcursus python Een spoedcursus python Zoals je in de titel misschien al gezien hebt, geven wij een spoedcursus Python. Door deze cursus leer je alle basics, zoals het rekenen met Python en het gebruik van strings. Het

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

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

Object Oriented Programming

Object Oriented Programming Object Oriented Programming voor webapplicaties Door Edwin Vlieg Waarom OOP? Basis uitleg over OOP Design Patterns ActiveRecord Model View Controller Extra informatie Vragen OOP Object Oriented Programming

Nadere informatie

Hoofdstuk 6: Zelf functies maken

Hoofdstuk 6: Zelf functies maken Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, januari 2004 Hoofdstuk 6: Zelf functies maken 6.0 Leerdoel

Nadere informatie

MICRO:BIT. Uitdaging 5 Magic8. Origineel: Micro:bit Educational Foundation 2016 Vertaling: CoderDojo Kennemerwaard 2017

MICRO:BIT. Uitdaging 5 Magic8. Origineel: Micro:bit Educational Foundation 2016 Vertaling: CoderDojo Kennemerwaard 2017 MICRO:BIT Uitdaging 5 Magic8 Origineel: Micro:bit Educational Foundation 2016 Vertaling: CoderDojo Kennemerwaard 2017 Dit programma maakt de magic8 bal. De gebruiker wordt een vraag gesteld en geeft antwoord

Nadere informatie

Herhaling. Individuele Oefening. Individuele oefening. Tips en technieken in Alice. Vis in de zee Houdt van zeewier

Herhaling. Individuele Oefening. Individuele oefening. Tips en technieken in Alice. Vis in de zee Houdt van zeewier Herhaling Individuele Oefening Klasseniveaumethode Voorbeeld Overerving Object erft methodes van eerder gedefinieerd object Voorbeeld Object opslaan onder nieuwe naam. Latere instantie kunnen vroeger gedefinieerde

Nadere informatie

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding: Programmeren A Genetisch Programma voor het Partitie Probleem begeleiding: Inleiding Het Partitie Probleem luidt als volgt: Gegeven een verzameling van n positieve integers, vindt twee disjuncte deelverzamelingen

Nadere informatie

Programmeermethoden NA. Week 5: Functies (vervolg)

Programmeermethoden NA. Week 5: Functies (vervolg) Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Functies Vorige week bekeken we functies: def bereken(a, x): return a * (x

Nadere informatie

MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara

MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara MINICURSUS PHP Op dit lesmateriaal is een Creative Commons licentie van toepassing. 2017-2018 Sebastiaan Franken en Rosalie de Klerk Bambara PHP Cursus Deze cursus is om de eerste stappen in de wereld

Nadere informatie

JavaScript. 0 - Wat is JavaScript? JavaScript toevoegen

JavaScript. 0 - Wat is JavaScript? JavaScript toevoegen 0 - Wat is JavaScript? JavaScript is hele andere koek dan Scratch. Het wordt ook door professionele programmeurs gebruikt. Doordat er veel mensen gebruik maken van JavaScript is er veel informatie over

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

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester. In onderstaande oefeningen zijn kleuren gebruikt. Deze dienen aleen om de structuren makkelijker terug te kunnen herkennen. Ze worden niet standaard zo gebruikt. De dunne rood/roze balken zijn ook geen

Nadere informatie

Toetsvoorbereiding Informatica HAVO/VWO 5 (T51) Programmeren met Python II. Duur: 70 minuten Datum: sept 2018

Toetsvoorbereiding Informatica HAVO/VWO 5 (T51) Programmeren met Python II. Duur: 70 minuten Datum: sept 2018 Toetsvoorbereiding Informatica HAVO/VWO 5 (T51) Programmeren met Python II Duur: 70 minuten Datum: sept 2018 Stof: Basiskennis van vorig jaar, (Eigen) Functies & parameters, Loops (for en while), Turtle

Nadere informatie

Opgaven. Python Assessment

Opgaven. Python Assessment Opgaven Python Assessment Nijmegen - Utrecht www.atcomputing.nl Copyright 2015,2016 Versie: 1a Inleiding Met dit assessment kun je controleren of je voldoende parate kennis over Python hebt om te beginnen

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

Ga naar en remix dit project.

Ga naar   en remix dit project. Quiz In deze handleiding leer je hoe je een quiz kunt maken waarmee je kunt testen hoeveel jouw vriendjes en vriendinnetjes over jouw favoriete onderwerp weten. Ga naar https://scratch.mit.edu/projects/112774047/

Nadere informatie

Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn.

Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn. Objectgeoriënteerd PHP (versie 5) Kennisvereisten: Ervaring met programmeren in PHP met MySQL Je weet wat een class of klasse is Je weet wat een instantie van een klasse (een object) is Je weet wat een

Nadere informatie

[14] Functies. Volg mee via 14_Functies-1.py. We beginnen met een eenvoudig voorbeeldje:

[14] Functies. Volg mee via 14_Functies-1.py. We beginnen met een eenvoudig voorbeeldje: [14] Functies Een goede programmeur doet altijd zijn best om zoveel mogelijk aan hergebruik van code te doen. Je probeert in je programma code te gebruiken die iemand anders heeft gemaakt, of code die

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

VBA voor Doe het Zelvers deel 9

VBA voor Doe het Zelvers deel 9 VBA voor Doe het Zelvers deel 9 Handleiding van Auteur: leofact Augustus 2014 VBA voor Doe het Zelvers is een reeks artikelen, bedoelt voor mensen die met VBA in Excel aan de slag willen om taken te automatiseren

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

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal. 4. Array s Een array is een geïndexeerde variabele. Deze zin zal de nodig vragen oproepen, waarop enige uitleg van toepassing is. Met variabelen hebben we al kennis gemaakt. In een variabele kun je iets

Nadere informatie

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders. Spirograaf in Python Een kunstwerk maken Met programmeren kun je alles maken! Ook een kunstwerk! In deze les maken we zelf een kunstwerk met Python. Hiervoor zal je werken met herhalingen en variabelen.

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

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

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

Scratch in drie uur. Hallo, mijn naam is Minti Mint! Ik ga je uitleggen hoe je je eigen computerspel kunt maken. We gaan een racespel maken!

Scratch in drie uur. Hallo, mijn naam is Minti Mint! Ik ga je uitleggen hoe je je eigen computerspel kunt maken. We gaan een racespel maken! Scratch in drie uur Hallo, mijn naam is Minti Mint! Ik ga je uitleggen hoe je je eigen computerspel kunt maken. We gaan een racespel maken! Bernd Gärtner Nederlandse vertaling en bewerking: Martine Segers

Nadere informatie

Stroomschema s maken op papier

Stroomschema s maken op papier 1 Stroomschema s maken op papier Een programma direct maken in Python, gaat vaak wel goed als het een klein programma is. Als het programma groter en moeilijker is, is het lastig om goed te zien welk commando

Nadere informatie

Simon de schildpad. 2015 J van Weert 1

Simon de schildpad. 2015 J van Weert 1 Programmeren met Simon Simon de schildpad 2015 J van Weert 1 Inleiding: Wat is programmeren eigenlijk? Een computer doet niets zonder een programma. Die programma s worden geschreven door mensen: programmeurs.

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

HOOfDsTuk 1 Objecten en klassen

HOOfDsTuk 1 Objecten en klassen HOOfDsTuk 1 Belangrijkste concepten in dit hoofdstuk: objecten klassen methodes parameters We springen meteen in het diepe en maken een begin met onze behandeling van objectgeorienteerd programmeren. Om

Nadere informatie

Les 6: Abstractie, methods en parameters in Alice

Les 6: Abstractie, methods en parameters in Alice Les 6: Abstractie, methods en parameters in Alice Wouter Tavernier 18/12/2006 Inhoudstafel Object georiënteerd programmeren in Alice Stapsgewijze verfijning adhv methods Parameters Variabelen 1 Object

Nadere informatie

Numerieke benadering van vierkantwortels

Numerieke benadering van vierkantwortels HP Prime Grafische Rekenmachine Numerieke benadering van vierkantwortels Doel: De waarde van een vierkantswortel met een recursieve rij benaderen, het schrijven van een klein programma. Sleutelwoorden:

Nadere informatie

Hoofdstuk 7: Werken met arrays

Hoofdstuk 7: Werken met arrays Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, januari 2004 Hoofdstuk 7: Werken met arrays 7.0 Leerdoel

Nadere informatie

Het programma in dit hoofdstuk vertelt een paar moppen aan de gebruiker.

Het programma in dit hoofdstuk vertelt een paar moppen aan de gebruiker. Hoofdstuk 5 Moppen 36 Hoofdstuk 5 MOPPEN In dit hoofdstuk behandelen we: Het gebruik van het sleutelwoord end als argument in de print-functie om niet naar een nieuwe regel te gaan Escape-tekens Het gebruik

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

Android apps met App Inventor 2 antwoorden

Android apps met App Inventor 2 antwoorden 2014 Android apps met App Inventor 2 antwoorden F. Vonk versie 1 11-11-2014 inhoudsopgave Mollen Meppen... - 2 - Schrandere Scholier... - 15 - Meteoor... - 21 - Dit werk is gelicenseerd onder een Creative

Nadere informatie

Serienummers worden met hun ID opgeslagen

Serienummers worden met hun ID opgeslagen Solution Builder SE : BSE101 Versie : 8.0.0.4818 Releasedatum : 10-03-2015 Geschikt voor Synergy Enterprise : v.a. batch 249 ALGEMEEN Serienummers worden met hun ID opgeslagen Serienummers die aan entiteiten

Nadere informatie

Er wordt door veel mensen opgezien tegen de overstap

Er wordt door veel mensen opgezien tegen de overstap With a little Help from Wennen aan Office 2010 John Spronk Er wordt door veel mensen opgezien tegen de overstap naar Office 2010 omdat het er zo anders uitziet dan het vertrouwde Office 97. Degenen die

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

Practicumopgave 3: SAT-solver

Practicumopgave 3: SAT-solver Practicumopgave 3: SAT-solver Modelleren en Programmeren 2015/2016 Deadline: donderdag 7 januari 2016, 23:59 Introductie In het vak Inleiding Logica is onder andere de propositielogica behandeld. Veel

Nadere informatie

Methods of Development

Methods of Development Methods of Development College 4 OO & Tentamenstof Arjan Scherpenisse arjan.scherpenisse@kmt.hku.nl @acscherp Deze week Object-oriëntatie Herhaling vorige week Compositie De Opdracht Tentamenstof overview

Nadere informatie

Programmeermethoden NA

Programmeermethoden NA Programmeermethoden NA Week 7: OOP & Modules Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Tweede programmeeropdracht Uiteraard verwachten we

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

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent Het relaas van de beginnende programmeur Het hoe en waarom van de assistent 1. Help, mijn code doet niks... Mogelijke oplossingen: Heb je op run geduwd (groene pijltje)? Zolang je niet op 'run' duwt, kent

Nadere informatie

Programmeren in Java 3

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

Nadere informatie

Het project Gamemaker Kids is mede mogelijk gemaakt door:

Het project Gamemaker Kids is mede mogelijk gemaakt door: Tips voor docenten Het project Gamemaker Kids is mede mogelijk gemaakt door: Auteur: Eindredactie: Klasien Postma Sacha de Ruiter, Technika 10 Nederland Copyright: Creative Commons www.gamemakerkids.nl/index.pl/licentie

Nadere informatie

bug fixen F. Vonk versie

bug fixen F. Vonk versie 2017 bug fixen F. Vonk versie 1 24-7-2017 inhoudsopgave 1. inleiding... - 3-2. bug fixen... - 4-3. Sokoban... - 5-4. Breakout... - 7-5. Pac-Man... - 8-6. Asteroids... - 9-7. Snake... - 10-8. Super Mario...

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

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

R-Type 2009 Developing in XNA

R-Type 2009 Developing in XNA R-Type 2009 Developing in XNA Door : Martin Broos Student nr : 0794155 Vak : IMP08 Herkansing Docent: Bob Pikaar Versie : 2 1 Inhoud Inleiding... 3 Concept... 4 Uitdaging... 4 Features... 4 Vijanden...

Nadere informatie

extra oefening algoritmiek - antwoorden

extra oefening algoritmiek - antwoorden extra oefening algoritmiek - antwoorden opgave "Formule 1" Maak een programma dat de gebruiker drie getal A, B en C in laat voeren. De gebruiker zorgt ervoor dat er positieve gehele getallen worden ingevoerd.

Nadere informatie

Getting Started with Python Programming

Getting Started with Python Programming Getting Started with Python Programming QGIS Tutorials and Tips Author Ujaval Gandhi http://google.com/+ujavalgandhi Translations by Dick Groskamp This work is licensed under a Creative Commons Attribution

Nadere informatie

Paintcode Programmeer handleiding

Paintcode Programmeer handleiding Paintcode Programmeer handleiding Uitleg van aan te roepen en over te erven functies en codevoorbeelden Basis In dit deel van de handleiding wordt ingegaan op de basis van de Template. Hoe is het opgezet

Nadere informatie

DE INTERACTIEVE SHELL

DE INTERACTIEVE SHELL Hoofdstuk2 De interactieve shell 6 Hoofdstuk 2 DE INTERACTIEVE SHELL In dit hoofdstuk behandelen we: Integers (gehele getallen) en getallen met drijvende komma Expressies Waarden Operatoren Het evalueren

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

{ specificatie (contract) en toelichting }

{ specificatie (contract) en toelichting } Programmeren Blok B Drie aspecten van routines http://www.win.tue.nl/ wstomv/edu/2ip05/ College 7 Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering &

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

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

AFO 139 Automatische export

AFO 139 Automatische export AFO 139 Automatische export 139.1 Inleiding Vubis Smart beschikt over de mogelijkheid om volledig automatisch beschrijvingen te exporteren naar bestanden op de server. Andere bibliotheken (ongeacht of

Nadere informatie

TELEPORTEREN MET VARIABELEN

TELEPORTEREN MET VARIABELEN 2 TELEPORTEREN MET VARIABELEN Ben je zover dat je de kracht van Python kunt gebruiken om jouw Minecraft wereld te beheersen? In dit hoofdstuk krijg je een korte rondleiding langs de basisbegrippen van

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

algoritmiek - antwoorden

algoritmiek - antwoorden 2016 algoritmiek - antwoorden F. Vonk versie 1 28-8-2016 inhoudsopgave eenvoudige algoritmes... - 3 - complexe algoritmes... - 7 - zoeken (vwo)... - 10 - sorteren (vwo)... - 12 - Dit werk is gelicenseerd

Nadere informatie

HvA Instituut voor Interactieve Media ActionScript 3.0

HvA Instituut voor Interactieve Media ActionScript 3.0 PPRO 1: OEFENINGEN LES 1 Hierbij de werkgroepoefeningen behorend bij het practicum week 1. Lees de stukken uitleg aandachtig door, zonder deze informatie zullen de principes in de oefeningen moeilijk te

Nadere informatie

Hoofdstuk 9: Menu s toevoegen

Hoofdstuk 9: Menu s toevoegen Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, maart 2005 Hoofdstuk 9: Menu s toevoegen 9.0 Leerdoel

Nadere informatie

Chris de Kok 223548 TDI 3. Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren

Chris de Kok 223548 TDI 3. Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren Chris de Kok 223548 TDI 3 Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren Inhoud Inleiding... 3 Black box / White box... 3 XP... 3 SimpleTest... 3 Eclipse plugin... 4 GroupTest...

Nadere informatie

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, uur

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, uur Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, 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

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

ALGORITME objectgeoriënteerd programmeren

ALGORITME objectgeoriënteerd programmeren ALGORITME objectgeoriënteerd programmeren Gunter Schillebeeckx 1 objectgeoriënteerd programmeren Object Klasse Instantie Eigenschap Methode Inkapseling Polymorfisme Overerving 2 Inleiding Kern Samenvatting

Nadere informatie

U kunt een waardebon toepassen op alle klanten, op een klantengroep of op een enkele klant; u kunt de vervaldatum bepalen.

U kunt een waardebon toepassen op alle klanten, op een klantengroep of op een enkele klant; u kunt de vervaldatum bepalen. Winkelwagenregels Winkelwagenregels De pagina "Winkelwagenregels" geeft u toegang tot een geavanceerde tool dat het waardebonnensysteem van PrestaShop 1.4 opvolgt. Doorgewinterde PrestaShop-gebruikers

Nadere informatie

Programmeren. a. 0, 0, 0 b. 0, 0, 27 c. 15, 12, 0 d. 15, 12, 27

Programmeren. a. 0, 0, 0 b. 0, 0, 27 c. 15, 12, 0 d. 15, 12, 27 Programmeren 0. (1 punt.) Stel, een "afhankelijk kind" is een persoon is die jonger is dan 18 jaar, en hooguit 8.000 euro verdient. Welke van de onderstaande expressies definieert een afhankelijk kind?

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

TEKSTVERWERKEN, DE BASIS

TEKSTVERWERKEN, DE BASIS TEKSTVERWERKEN, DE BASIS Tekstverwerken Deze opdrachten helpen je bij het tekstverwerken waardoor je een brief of bericht kan typen in Word. Er zijn veel verschillende Wordversies. De symbolen blijven

Nadere informatie

Seven segments of Pi

Seven segments of Pi Seven segments of Pi Seven segments of pi Aan de slag met seven segments of Pi! Seven segments is een klein add-on boardje voor de raspberry pi. Deze add-on bestaat uit een display en een knopje. Meer

Nadere informatie

Programmeerstructuren met App Inventor

Programmeerstructuren met App Inventor Programmeerstructuren met App Inventor Kevin Krul, Universiteit Utrecht Roncalli, Bergen op Zoom Inhoud: Les 1: Introductie tot App Inventor, when statement en variabelen. Les 2: Introductie if-statement

Nadere informatie

Werkboek studiekeuzecheck Opleiding HBO-ICT

Werkboek studiekeuzecheck Opleiding HBO-ICT Werkboek studiekeuzecheck Opleiding HBO-ICT Naam:... Beste aspirant-student, Gefeliciteerd! Je hebt de online vragenlijst over de opleiding HBO-ICT aan de HAN ingevuld. Daarna heb je zelf geconcludeerd

Nadere informatie

Scratch les 3: Quiz! Je eigen spelshow

Scratch les 3: Quiz! Je eigen spelshow Scratch les 3: Quiz! Je eigen spelshow Hoeveel weten jouw vriendjes en vriendinnetjes over jouw favoriete onderwerp? Test het met je zelfgemaakte quiz! Ga naar https://scratch.mit.edu/projects/112774047/.

Nadere informatie

Hoofdstuk 13: Sorteren & Filteren* 2010

Hoofdstuk 13: Sorteren & Filteren* 2010 Hoofdstuk 13: Sorteren & Filteren* 2010 13.0 Inleiding Spreadsheets bieden meer grip op gegevens. De twee beste manieren om meer grip te krijgen, is door de gegevens te sorteren of door bepaalde waarden

Nadere informatie

Les 3: Het maken van pagina s, het menu en het schrijven van een blogpost Pagina s

Les 3: Het maken van pagina s, het menu en het schrijven van een blogpost Pagina s Les 3: Het maken van pagina s, het menu en het schrijven van een blogpost Bij het maken van een blog is het belangrijk dat je er inhoud op plaatst. Dit noemen we content. Alles wat je openbaar op je blog

Nadere informatie

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO DE ASTRO PI PROGRAMMEREN DOCENTENHANDLEIDING 1 Deze handleiding is bedoeld om leerlingen te ondersteunen bij de Astro Pi Challenge, waarbij leerlingen een programma voor de Astro Pi-computer in het ISS

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

Het koppelen van de u-remote aan de AC500-eco via Modbus TCP. A quick start guide. Jaap Ruiten

Het koppelen van de u-remote aan de AC500-eco via Modbus TCP. A quick start guide. Jaap Ruiten Het koppelen van de u-remote aan de AC500-eco via Modbus TCP. A quick start guide Jaap Ruiten Het koppelen van Weidmüller u-remote aan een AC500-eco plc. Thema: u-remote Modbus TCP Bladzijde 1 Inhoudsopgave

Nadere informatie

Stap 0: Voorbereiding

Stap 0: Voorbereiding Welkom, Wat fijn dat je voor NT2+ van ThiemeMeulenhoff hebt gekozen! We helpen je graag op weg! Termen: Instituut Groepen Coördinator Docent Student Een onderwijsinstelling die uit een of meerdere groepen

Nadere informatie