[15] Variabelen in functies (of: een woordje over scope)
|
|
- Fien Boer
- 6 jaren geleden
- Aantal bezoeken:
Transcriptie
1 [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 het hoofdprogramma. Maar hebben we die parameters en die return-waarden eigenlijk wel nodig? Is het niet makkelijker om variabelen gewoon rechtstreeks vanuit een functie aan te passen? Kijk bijvoorbeeld naar dit programma: def verandernaam(nieuwenaam): naam = nieuwenaam # HOOFDPROGRAMMA # naam = 'Karel' print('hallo', naam) verandernaam('thomas') print('hallo', naam) In dit programma definieer ik een variabele naam die ik eerst de waarde Karel geef. Ik schrijf een begroeting op het scherm, en vervolgens verander ik de variabele naam in Thomas, via de functie verandernaam(). Daarna begroet ik opnieuw. Maar mijn programma mislukt. Dit verschijnt op het scherm: Hallo Karel Hallo Karel De functie verandernaam() heeft met andere woorden onze variabele naam niet veranderd. De schuld ligt bij de scope (of het bereik) van variabelen. Globale versus lokale variabelen Om te snappen wat er mis loopt, moeten we even bekijken hoe Python omgaat met variabelen in een programma en in functies. Op de volgende bladzijde staat een tekening die een programma voorstelt. Een programma draait in een bepaalde ruimte (in de tekening voorgesteld door een rechthoek), en in de ruimte van dat programma zijn er een aantal variabelen gedefinieerd. programavariabele1, programmavariabele2, programmavariabele3 en programmavariabele4 kunnen gelijk waar in het programma gebruikt worden. In het programma worden ook een aantal functies gedefiniëerd. Zoals je ziet op de tekening heeft de functie zijn eigen rechthoek gekregen. Een functie is een soort mini-programma, en dat mini-programma draait in zijn eigen wereldje. De variabelen die gedefinieerd zijn in een functie zijn énkel gekend in het kleine wereldje van die functie. Het zijn lokale variabelen. Python [15] Variabelen in functies (of: een woordje over scope) versie 9/03/2015 1/6
2 De variabelen functievariabele1, functievariabele2 en functievariabele3 in de functie zijn dus énkel binnen die functie gekend. De functie heeft geen weet van wat er in het grote programma allemaal bestaat. Dus als ik binnen de functie met bv. programmavariabele3 probeer te werken, zal dit niét de programmavariabele3 uit het hoofdprogramma zijn. Hoe kunnen we dan gegevens uitwisselen tussen hoofdprogramma en functie? Op de manieren die we al geleerd hebben, en op een bijkomende manier: - waarden van variabelen uit het hoofdprogramma doorgeven aan een functie doen we via de parameters van de functie - waarden van variabelen uit de functie doorgeven aan het hoofdprogramma doen we via de returnwaarden van de functie - als bijkomende manier kunnen we een variabele in een functie eventueel als globaal definiëren. Daarmee vertellen we aan Python dat we eigenlijk de variabele uit het hoofdprogramma willen gebruiken. We keren even terug naar het programma uit het begin van deze fiche, en we voegen één regeltje toe aan de functie: def verandernaam(nieuwenaam): global naam naam = nieuwenaam Via het regeltje global naam vertellen we aan Python dat we binnen de functie met de globale versie van naam willen werken. En nu werkt ons programma wel zoals voorzien. Dus: het bereik (de scope) van een variabele is normaal gezien altijd lokaal dat wil zeggen dat de variabele enkel gekend is binnen het wereldje van de functie maar als we willen kunnen we ook werken met globale variabelen. Python [15] Variabelen in functies (of: een woordje over scope) versie 9/03/2015 2/6
3 Dat concept kennen jullie trouwens misschien nog uit Scratch. Kijk eens naar het kadertje dat je krijgt als je een nieuwe variabele maakt in Scratch: Zie je de selectie? Voor alle sprites of Alleen voor deze sprite. - Voor alle sprites wil zeggen dat je de variabele globaal definieert, en dat alle sprites gebruik kunnen maken van dezelfde variabele. - Alleen voor deze sprite wil zeggen dat je de variabele lokaal definieert, en dat de andere sprites deze niet zullen kunnen gebruiken. Probeer globale variabelen te vermijden Het gebruik van het Python-keyword global kan een heel makkelijke manier lijken om met functies te werken in Python en om ervoor te zorgen dat je niet voortdurend met parameters en return-waarden moet werken, maar toch is overmatig gebruik ervan af te raden. We kunnen over het algemeen perfect zonder globale variabelen, als we maar een beetje nadenken over welke parameters we doorgeven en welke return-waarden we teruggeven. Een poging tot voorbeeld Hoewel we ver moeten zoeken om een béétje een goed voorbeeld van het gebruik van globale variabelen te vinden, doen we toch een poging. We willen een programma maken om een lijst met superhelden bij te houden. In de lijst met superhelden staat de gewone dagdagelijkse naam van de superheld, staat de superheldennaam van de held, en wordt er bijgehouden of ze momenteel verkleed zijn als mens of als ze verkleed zijn als superheld. Python [15] Variabelen in functies (of: een woordje over scope) versie 9/03/2015 3/6
4 We gaan een aantal functies definiëren om gemakkelijk de superheldenlijst te kunnen beheren: - een functie om een lege lijst aan te maken (te initialiseren) - een functie om een persoon toe te voegen aan onze lijst - een functie om de superheldenidentiteit van een persoon toe te voegen aan de lijst - een functie om aan te geven dat een bepaald persoon zich verkleedt (van mens naar superheld en omgekeerd) - een functie om de lijst te tonen van de superhelden en hoe ze momenteel verkleed zijn Als we bij al die functies de superheldenlijst die we opbouwen telkens zouden moeten doorgeven als returnwaarde en als parameter, wordt het een beetje omslachtig. Dus we gaan werken met een globale superheldenlijst, die in elke functie gekend is. Zo kan ons programma er dan uit zien: Volg mee via 15_Scope.py def maaklegelijst(): superheldenlijst = dict() def voegpersoontoe(persoon, identiteit=''): # We voegen een persoon toe. # Standaard weten we niets over zijn superheldenidentiteit. superheldenlijst[persoon] = {'superheldenidentiteit': identiteit, 'issuperheld': False} def bepaalsuperheldenidentiteit(persoon, identiteit): superheldenlijst[persoon]['superheldenidentiteit'] = identiteit def verkleed(persoon): superheldenlijst[persoon]['issuperheld'] = not superheldenlijst[persoon]['issuperheld'] def toonlijst(): for persoon, kenmerken in superheldenlijst.items(): if kenmerken['superheldenidentiteit']!= '': print('-', persoon, 'is momenteel', end=' ') if kenmerken['issuperheld']: print(kenmerken['superheldenidentiteit']) else: print('zichzelf') else: # Er is geen superheldenidentiteit bekend print('-', persoon, 'heeft geen superheldenidentiteit') Python [15] Variabelen in functies (of: een woordje over scope) versie 9/03/2015 4/6
5 # HOOFDPROGRAMMA # maaklegelijst() voegpersoontoe('peter Parker') voegpersoontoe('clark Kent', 'Superman') bepaalsuperheldenidentiteit('peter Parker', 'Spiderman') voegpersoontoe('piet Buyse') voegpersoontoe('bruce Wayne', 'Batman') verkleed('clark Kent') # word Superman verkleed('bruce Wayne') # word Batman verkleed('clark Kent') # word weer Clark Kent toonlijst() Als we het programma laten lopen krijgen we deze output: - Peter Parker is momenteel zichzelf - Clark Kent is momenteel zichzelf - Piet Buyse heeft geen superheldenidentiteit - Bruce Wayne is momenteel Batman En tot daar het beste voorbeeld dat we konden verzinnen voor het gebruik van globale variabelen. En eigenlijk is het nog altijd een slecht voorbeeld, want het geval waarvoor we hier globale variabelen gebruiken vraagt eigenlijk veel meer om het gebruik van klasses en objecten dan om het gebruik van globale variabelen. Zodra we in leerfiche [19] over klasses en objecten leren, zullen we zien dat klasses en objecten een veel betere manier zijn om dit superheldenprogramma te maken. En met klasses zullen de mogelijkheden van ons programma groter zijn. Want wat als we bv. tegelijkertijd 2 verschillende superheldenlijsten willen bijhouden? Eén met slechteriken en één met de goeie? Hoe lossen we dàt op met ons globale-variabelenprogramma? (tip: niet) Standaardwaarden voor parameters Heb je iets speciaals opgemerkt aan de functie voegpersoontoe()? Kijk eens in het hoofdprogramma: de functie wordt daar op 2 manieren aangeroepen: voegpersoontoe('peter Parker') voegpersoontoe('clark Kent', 'Superman') De eerste keer voegen we gewoon een persoon toe, met één parameter. We geven de superheldenidentiteit nog niet op we doen dat pas later in het programma met de functie bepaalsuperheldenidentiteit(). De tweede keer (als we Clark Kent toevoegen) geven we wél direct zijn superheldenidentiteit op. We gebruiken dus plots twee parameters voor dezelfde functie. Hoe kan dat zonder dat Python een foutmelding geeft? Door het gebruik van standaardwaarden voor optionele parameters. Python [15] Variabelen in functies (of: een woordje over scope) versie 9/03/2015 5/6
6 Bekijk de definitie van de functie voegpersoontoe(): def voegpersoontoe(persoon, identiteit=''): # We voegen een persoon toe. # Standaard weten we niets over zijn superheldenidentiteit. superheldenlijst[persoon] = {'superheldenidentiteit': identiteit, 'issuperheld': False} Doordat we bij de tweede parameter direct een waarde opgeven (de lege string '') hebben we deze parameter als optioneel gemarkeerd. Ik mag dus kiezen of ik de parameter opgeef of niet. Geef ik niets op, dan wordt de opgegeven standaardwaarde gebruikt. Nog één voorbeeldje om het af te leren: def coderdojois(wat='supertof'): print('coderdojo is', wat + '!') # HOOFDPROGRAMMA # coderdojois('megabangelijk') # CoderDojo is megabangelijk! coderdojois() # CoderDojo is supertof! De eerste keer roepen we de functie coderdojois() aan mét parameter, de tweede keer zonder. Bij de aanroep zonder wordt er supertof als standaardwaarde gebruikt. Oefeningen Maak een programma waarin je een naam definieert. Roep vervolgens een functie begroet() aan (zonder parameters dus) waardoor er bv. Hallo Xander verschijnt (als de naam die je gedefinieerd hebt Xander is). Pas nu de functie aan, en zorg dat je optioneel een naam kan ingeven om te laten begroeten. Bekijk de functie toonlijst() uit het superheldenprogramma eens heel goed. Daar wordt een forlus gebruikt die je kan gebruiken in combinatie met een Python-woordenboek, om tegelijkertijd de namen van de elementen als de waarden te krijgen in je lus. Python [15] Variabelen in functies (of: een woordje over scope) versie 9/03/2015 6/6
[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[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[7] Variabelen en constanten
[7] Variabelen en constanten We gaan een eenvoudig programma schrijven waarbij we reclame maken voor CoderDojo Dendermonde. Volg mee via 07_VariabelenConstanten.py Dit is wat er moet verschijnen op het
Nadere informatieProgrammeermethoden NA
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Getal opbouwen Stel je leest losse karakters (waaronder
Nadere informatieProgrammeermethoden NA. Week 6: Lijsten
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Getal opbouwen Stel je leest losse karakters (waaronder cijfers) en je moet daar een getal
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Nadere informatieProgrammeermethoden 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 informatieProgrammeermethoden 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 informatieHet 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 informatieStroomschema 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 informatieSmall Basic Programmeren Text Console 2
Oefening 1: Hoogste getal Je leest een reeks positieve gehele getallen in totdat je het getal 0 (nul) invoert. Daarna stopt de invoer en druk je een regel af met het hoogste getal uit de reeks. Voorbeeld:
Nadere informatieZoemzinnen. Algemene info. Functies met een variabel aantal argumenten
Zoemzinnen Functies met een variabel aantal argumenten Bij het definiëren van een functie leg je in principe vast hoeveel argumenten er aan de functie moeten doorgegeven worden. Dit aantal correspondeert
Nadere informatieINHOUDSOPGAVE. Over de auteur, de illustrator en de technische redacteuren 13
INHOUDSOPGAVE Over de auteur, de illustrator en de technische redacteuren 13 Dankwoord 14 Inleiding 15 Waarom Python?... 16 Hoe je code leert schrijven... 16 Voor wie is dit boek... 17 Wat staat er in
Nadere informatie[8] De ene 1 is de andere niet
[8] De ene 1 is de andere niet Volg mee via 08_Types.py In de volgende leerfiche gaan we rekenen met Python. Dat kan je in een programma doen, maar dat kan je ook gewoon vanuit het Shell-venster doen.
Nadere informatiePYTHON REEKS 2: FUNCTIES. Mathias Polfliet
PYTHON REEKS 2: FUNCTIES Mathias Polfliet mpolflie@etrovub.be TERUG NAAR PYTHON BASICS VRAAG 1: VOLUME BOL Het volume van een bol met straal r is 4 3 πr3 π Wat is het volume in cm³ van een bol met straal
Nadere informatieOEFENINGEN PYTHON REEKS 6
OEFENINGEN PYTHON REEKS 6 1. A) Schrijf een functie die een getal x en een getal y meekrijgt. De functie geeft de uitkomst van volgende bewerking als returnwaarde terug: x y x als x y x y y als x < y B)
Nadere informatieProjecten in scratch!
Projecten in scratch! Scratch project De dansende dino Stap 1. Wat gaan we maken vandaag?! Een dansende dino! Kies eerst de sprite dinosaur. Deze heeft namelijk verschillende kostuums. Vind je een andere
Nadere informatieHOOFDSTUK 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 informatieMeer Blokken. 1. Dit is een functie genaamd Maximum, die twee argumenten heeft: number1 en number2.
Meer Blokken Voorkennis: SuperDojo, Snake Leerdoelen: Meer Blokken Introductie Meer Blokken zijn Scratch s manier van functies. Functies zijn een heel belangrijk concept in alle programmeertalen. Het staat
Nadere informatieJe 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 informatieHoofdstuk 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 informatieProgrammeermethoden NA
Programmeermethoden NA Week 4: Files & Functies Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Vorige week: Controlestructuren # gegeven # 0
Nadere informatieToetsvoorbereiding 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 informatieOEFENINGEN PYTHON REEKS 5
Vraag 1: Interpoleren (vervolg) OEFENINGEN PYTHON REEKS 5 Bouw verder op je code van Reeks 3, vraag 4. Voeg vier constanten toe aan je code: X0 = 280, Y0 = 0, Z0 = 50 en SIZE = 8. a) Teken een kubus met
Nadere informatieMINICURSUS 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 informatieVeel 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 informatieWat als je een heleboel informatie wilt opslaan? Bijvoorbeeld alle namen van iedereen die bij jouw dojo's aanwezig is? Hier gebruik je een lijst voor:
1 Wat als je een heleboel informatie wilt opslaan? Bijvoorbeeld alle namen van iedereen die bij jouw dojo's aanwezig is? Hier gebruik je een lijst voor: list_of_names = ["Alice", "Bob", "Chris"] list_of_numbers
Nadere informatieHet 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 informatieModelleren 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 informatieOEFENINGEN 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 informatieAls 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 informatieDisclaimer 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 informatieLab Webdesign: Javascript 25 februari 2008
H4: FUNCTIES We zullen in dit hoofdstuk zien hoe we functies moeten maken, aanroepen, argumenten doorgeven en waarden retourneren. Ook zullen we het hebben over het begrip "recursie", en laten zien hoe
Nadere informatieStroomschema s maken op papier
1 Stroomschema s maken op papier Een programma direct maken in Scratch, 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
Nadere informatieGEDETAILLEERDE INHOUD
GEDETAILLEERDE INHOUD dankwoord 17 Inleiding 19 Waarom leer je programmeren?... 19 Waarom Python?... 20 Waarom Minecraft?... 20 Wat staat er in dit boek?.... 20 Online bronnen... 22 Ga nu maar op avontuur...
Nadere informatieOEFENINGEN 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 informatieDatatypes 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 informatieDatum, Tijd en Timer-object
IX. Datum, Tijd en Timer-object A. Hoe worden tijd en datum in VB aangeduid? Zowel datum als tijd worden als een getal met decimalen opgeslagen. Het gedeelte voor de komma geeft de datum aan, het gedeelte
Nadere informatieEen 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 informatieVakgroep 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 informatieSnake met Scratch. Stap voor stap. Pagina 1 van 15
Snake met Scratch Stap voor stap Pagina 1 van 15 1. Introductie Met deze handleiding gaan we vandaag aan de slag om stap voor stap het klassieke spel Snake te bouwen met Scratch! Spelregels De spelregels
Nadere informatieafrondende suggesties worden gebruikt om dieper op het onderwerp in te gaan als daar tijd voor is.
U UNPLUGGED Functie Bovenbouw: Liedjes schrijven met parameters Lestijd: 20 minuten Deze basisles omvat alleen oefeningen. Er kunnen inleidende en afrondende suggesties worden gebruikt om dieper op het
Nadere informatieProgrammeermethoden NA. Week 4: Files & Functies
Programmeermethoden NA Week 4: Files & Functies Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Vorige week: Controlestructuren # gegeven # 0
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 27 november 2015 Recursie Objecten Constructors Aanpassen variabelen this keyword Recursie Recursie Recursieve functie roept zichzelf (direct of indirect) aan
Nadere informatiePython. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14
Python Vraag 1: Expressies en types Integrated Development Environment (IDE): Ø Wing 101 (gratis te downloaden op www.wingware.com) Oefeningen in de shell >> noemen we de prompt Python commando s = expressies
Nadere informatieModule 3: Scratch programmeren: is het logisch of is het niet logisch?
Module 3: Scratch programmeren: is het logisch of is het niet logisch? Inhoudsopgave Module 3: Scratch programmeren: is het logisch of is het niet logisch?...1 Wat is een computerprogramma eigenlijk?...2
Nadere informatie1. Programmeerblokken
1. Programmeerblokken In Scratch bouw je het programma op aan de hand van programmeerblokken. Er zijn acht verschillende categorieën om programmeerblokken in terug te vinden. Je vindt op de volgende bladzijden
Nadere informatieII. 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 informatieToets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00
Toets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00 TU/e Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica (Na de toets gecorrigeerde versie) PROBLEEM: Sleutels Lees
Nadere informatieEerste deeltentamen Gameprogrammeren Vrijdag 25 september 2015, uur
Naam: Eerste deeltentamen Gameprogrammeren Vrijdag 25 september 2015, 11.00-13.00 uur Studentnummer: Het tentamen bestaat uit 4 opgaven. Elke opgave levert 10 punten op. Je cijfer is het totaal aantal
Nadere informatieScratch 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 informatieCursus MSW-Logo. Def. Recursie: recursie is het oproepen van dezelfde functie of procedure binnen de functie of procedure
Hfdst 1: De schildpadwereld Recursie Cursus MSW-Logo Def. Recursie: recursie is het oproepen van dezelfde functie of procedure binnen de functie of procedure Regelmatige vierhoeken Voorbeeld in Logo: TO
Nadere informatieVariabelen 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 informatieHOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10
CPP 1 van 10 ADSdt 1-2009 TENTAMENVOORBLAD Voor aanvang van het tentamen s.v.p. de tentamengegevens goed doorlezen om eventuele misverstanden te voorkomen!! Naam student : Studentnummer : Groep : Studieonderdeel
Nadere informatie10 Meer over functies
10 Meer over functies In hoofdstuk 5 hebben we functies uitgebreid bestudeerd. In dit hoofdstuk bekijken we drie andere aspecten van functies: recursieve functies dat wil zeggen, functies die zichzelf
Nadere informatieScratch. Gemaakt door: Déjan van Noordt en Leroy van den Driesche Leerlingen HAVO 5 SG Spieringshoek Als onderdeel voor het vak Informatica
Scratch sdas Gemaakt door: Déjan van Noordt en Leroy van den Driesche Leerlingen HAVO 5 SG Spieringshoek Als onderdeel voor het vak Informatica Inhoud Wat is scratch?... 2 Deel 1: Account aanmaken... 2
Nadere informatierecursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie
Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk
Nadere informatieObjectgericht Programmeren. (in Python)
Objectgericht Programmeren (in Python) Motivatie Programmeren is moeilijk Waarom? Complexiteit 100 200 300 400 500 kloc (1000 lijnen code) g1 = raw_input("eerste getal?") g2 = raw_input("tweede getal?")
Nadere informatieProgrammeren (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 informatieInformatica. 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 informatieArrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma:
Geen stijlvol programma: Complexe datastructuren Arrays vijf verschillende variabelen voor iets dat als één rij getallen bestempeld wordt; onbruikbaar wanneer het over meer getallen (bijvoorbeeld ) gaat.
Nadere informatieInleiding 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 informatieProgrammeren. 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 informatieDit werkt voor Mac, Windows en sommige versies van Linux. In de filmpjes gebruiken wij de versie in de browser.
Hoi! Wat leuk dat je je hebt opgegeven om gastdocent te zijn bij het Wereldrecord Programmeren!! Zonder gastdocenten zou het ons nooit lukken. In deze handleiding vind je uitleg in twee verschillende categorieen:
Nadere informatieTentamen 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 informatieAlgemeen. Rorschachtest. Algemene info
Algemeen Als Python de volgende regel moet lezen uit een tekstbestand, dan wordt er gelezen tot en met de eerstvolgende newline ('\n') of tot het einde van het bestand. Het laatste karakter van de regel
Nadere informatieUitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur
Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, 11.00-13.00 uur 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan
Nadere informatieOEFENINGEN 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 informatieVI. 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 informatieTussentoets Programmeren en genomics, 8CA10, versie A 17 maart 2017, u.
Tussentoets Programmeren en genomics, 8CA10, versie A 17 maart 2017, 15.45-16.45u. Er zijn 2 opgaven. Per opgave is er een bestand (respectievelijk opgave1.py en opgave2.py) beschikbaar waarin je verzocht
Nadere informatieUNIT 4 GAMES DROOMGAMES EERSTE GAMES SCORE EXTENSIES INTERACTIES DEBUG IT!
UNIT 4 GAMES JE BENT HIER INHOUD 4 0 1 2 3 5 6 DROOMGAMES EERSTE GAMES SCORE EXTENSIES INTERACTIES DEBUG IT! DROOMGAMES REFLECTIES NAAM: GEEF ANTWOORD OP ONDERSTAANDE VRAGEN IN DE VOORZIENE VAKJES OF
Nadere informatieInleiding 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 informatieDe sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall,
sheets Programmeren 1 Java college 4, Walter Kosters De sheets zijn gebaseerd op met name hoofdstuk 8 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/
Nadere informatieInhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren
Inhoudsopgave Voorwoord... 5 Voordat je begint... 6 Wat heb je nodig?... 7 De website bij het boek... 7 Voor ouders, verzorgers en leraren... 8 Vervolgboeken over programmeren... 8 1. Aan de slag met Python
Nadere informatieMICRO: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 informatieHoe zou je dit vertellen aan iemand die er vandaag niet bij is? Leerlingen helpen om wiskunde te begrijpen: Vragen die: Ben je het er mee eens?
Leerlingen helpen om wiskunde te begrijpen: 1 2 Welke strategie heb je gebruikt? 3 Ben je het er mee eens? Ben je het er mee oneens? 4 Zou je die vraag aan de klas kunnen stellen? 5 Kun je je 6 Wil 7 oplosmethode
Nadere informatieScratch 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 informatiePROGRAMMA'S SCHRIJVEN
Hoofdstuk 3 Hoofdstuk 3 Programma's schrijven 13 PROGRAMMA'S SCHRIJVEN In dit hoofdstuk behandelen we: Hoe de verwerking van instructies verloopt Strings (tekenreeksen) Stringconcatenatie (oftewel strings
Nadere informatieStroomschema s maken in Word
1 Stroomschema s maken in Word Een programma direct maken in Scratch 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 informatieWie ben jij? HANDLEIDING
HANDLEIDING Wie ben jij? Korte omschrijving lesactiviteit Iedereen legt vijf vingers op tafel. Om de beurt vertel je iets over jezelf, waarvan je denkt dat het uniek is. Als het inderdaad uniek is, dan
Nadere informatieNaam:... INFO / WIS-INF / ASIB / IAJ. Theorie
Theorie Beantwoord onderstaande vragen (elke vraag staat op 3 punten) door de antwoordzinnen KORT aan te vullen. 1. Wat doe je wanneer je de risico's projecteert (afschat)? Welke categorieën van risico's
Nadere informatieWat gaan we maken? Scratch Invaders!
Wat gaan we maken? Scratch Invaders! Het ruimteschip is in gevaar! Er komen monsters aan, en die komen steeds dichterbij. Je kunt schieten en ze proberen te raken, maar ze bewegen en je kunt niet door
Nadere informatieProgrammeren PYTHON OEFENTENTAMEN 2. Schrijf jouw antwoorden op dit tentamen. Tijd: 2 uur. Maximaal aantal punten: 32. Naam: Studentnummer:
Programmeren PYTHON OEFENTENTAMEN 2 Naam: Studentnummer: Schrijf jouw antwoorden op dit tentamen Tijd: 2 uur Maximaal aantal punten: 32 Menselijke interpreter (6 punten) 0. (1 punt) Wat is de uitkomst
Nadere informatieLes 1: Een sprookje schrijven
Les 1: Een sprookje schrijven Wat ga je schrijven: een sprookje. In deze les ga je een sprookje verzinnen. De held van het sprookje heeft een slechte gewoonte. 1. Wat zijn slechte gewoontes? Kun je voorbeelden
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord December 17, 2018 Vandaag Naar aanleiding van de opdrachten Zelle hoofdstuk 11 Boolean variabelen: niet checken met == Fout: if clicked == True : gohome () Goed:
Nadere informatieInformatie voor de leerkracht Introductie nieuw concept (pagina 1) Programmeren met Bomberbot (pagina 1)
Leerlingen herkennen dat de moderne technologie om ons heen geprogrammeerd is door mensen. Leerlingen begrijpen dat een computer-programma bestaat uit een set instructies die een computer uitvoert en dat
Nadere informatie1 Werken met (keuze)lijstjes: de control listbox
1 Werken met (keuze)lijstjes: de control listbox 1.1 Keuzelijstjes: wat en waarom In een educatief programma wordt vaak gebruik gemaakt van keuzelijstjes. Enkele voorbeelden: * bij het opstarten van een
Nadere informatieGa 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 informatieLet s play baseball! Let s get ready! Voorkennis: Sprites, Lopen, Variabelen, Scores, xy. Leerdoelen: 3D illusie, Klonen
Let s play baseball! Voorkennis: Sprites, Lopen, Variabelen, Scores, xy Leerdoelen: 3D illusie, Klonen Let s get ready! Jullie weten ongetwijfeld wat het belangrijkste is van het succes van elk goed spel
Nadere informatieComputervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting?
Inhoud Computervaardigheden Hoofdstuk 4 Scripting (Let op: dit is enkel voor studenten Biologie.) Dit hoofdstuk bekijkt heel kort de basis van scripting. - Opstellen van functies. - Conditionele code.
Nadere informatieKlonen. Het doel is om de appel op te eten. Iedere keer dat de slang de appel eet, groeit hij één vakje langer.
Snake [v2] Voorkennis: Zend Signaal, Variabelen Leerdoelen: Klonen Introductie Snake is een spel waarbij een slang kronkelt. Hij is bestuurbaar met de pijltoetsen en kan alleen op een grid bewegen. Oftewel
Nadere informatieOpgaven. 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 informatieTAPPY PLANE. Voor gevorderde scratch-ers.
TAPPY PLANE Voor gevorderde scratch-ers. WAT IS HET? Tappy Plane is een kloon van het bekende spel Flappy Bird. In plaats van een vogeltje moet je nu een vliegtuigje besturen dat tussen de bergen door
Nadere informatieMijn doelen voor dit jaar
Mijn doelen voor dit jaar Een nieuw schooljaar betekent nieuwe kansen. Aan het begin van een nieuw kalenderjaar maken veel mensen goede voornemens. Dat gaan wij nu ook doen: het maken van voornemens of
Nadere informatiePowershell. Data import scripts (voor beginners) Willem Geesink
Powershell Data import scripts (voor beginners) Willem Geesink Onderwerpen 1.Waarom is powershell handig? 2.Basiselementen waarmee we gaan werken 3.De foreach loop versus pipe 4.Voorbeeld scripts: 1. Opbouwen
Nadere informatieEen klok met wijzers Voorkennis: Rekenen en graden Leerdoel: Systeem tijd opvragen Werken met variabele Tussen verschillende sprites signalen sturen
Een klok met wijzers Voorkennis: Rekenen en graden Leerdoel: Systeem tijd opvragen Werken met variabele Tussen verschillende sprites signalen sturen computer is snel, maar code regels kosten computertijd
Nadere informatieAvontuur in de ruimte. Deel 1 Basis van het spel
Avontuur in de ruimte Deel 1 Basis van het spel Stap 1. Start een nieuw project en verwijder de kat. Ga naar de sprites en gebruik je rechtermuis knop boven op de kat en gebruik de optie verwijderen. Voeg
Nadere informatieUitwerking 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 informatieTentamen Bionformatica deel A(8C074), 18 januari 2007, u.
Tentamen Bionformatica deel A(8C074), 18 januari 2007, 10.30-12.00u. Twee algemene opmerkingen Het tentamen bestaat uit 5 opgaven verdeeld over 2 pagina s. Op pagina 2 staat voor iedere opgave het maximale
Nadere informatie