HOOFDSTUK Stapsgewijs programmeren. I m peratief programme re n. 3.2 If Then Else. Joorbee1d: toegangsprijs

Vergelijkbare documenten
HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

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

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Informatie. Voorbeeld. Voorbeeld: toegangsprijs

Modelleren en Programmeren

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1

1 Inleiding in Functioneel Programmeren

Small Basic Programmeren Text Console 2

Variabelen en statements in ActionScript

Zelftest Inleiding Programmeren

PYTHON REEKS 1: BASICS. Mathias Polfliet

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Programmeren in Java les 3

OEFENINGEN PYTHON REEKS 1

PSD. Reeksen van logische procedures om problemen op te lossen in een eindig aantal stappen.

Een korte samenvatting van enkele FORTRAN opdrachten

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Vakgroep CW KAHO Sint-Lieven

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14

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

[8] De ene 1 is de andere niet

VAN HET PROGRAMMEREN. Inleiding

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

import java.io.*; één klasse public class Hallo { public static void main (String[] a) ...met één functie System.out.println("Hallo!

Programmeermethoden NA

Programmeren (1) Examen NAAM:

Een eenvoudig algoritme om permutaties te genereren

Programmeren met Arduino-software

Java Les 3 Theorie Herhaal structuren

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

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

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS

Inleiding Programmeren 2

Lab Webdesign: Javascript 3 maart 2008

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Arrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma:

17 Operaties op bits Bitoperatoren en bitexpressies

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

BEGINNER JAVA Inhoudsopgave

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.

inleiding theoretische informatica practicum 1 deadline woensdag 20 februari 2008 om uur

Programmeermethoden NA. Week 6: Lijsten

Verzamelingen, Lijsten, Functioneel Programmeren

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

Propositielogica Het maken van een waarheidstabel

Modelleren en Programmeren

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

College Notatie, Recursie, Lijsten

10 Meer over functies

College Introductie

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

Inleiding Programmeren 2

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur

Voorbeeld: Simulatie van bewegende deeltjes

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.

Informatica: C# WPO 11

Javascript oefenblad 1


Haskell: programmeren in een luie, puur functionele taal

Deeltentamen Grammatica s en ontleden 22 december 2005

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting?

Programmeermethoden NA. Week 5: Functies (vervolg)

Modelleren en Programmeren

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica

Verzamelingen, Lijsten, Functioneel Programmeren

Programmeermethoden NA. Week 3: Controlestructuren

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

Programmeermethoden NA. Week 5: Functies (vervolg)

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

3. Structuren in de taal

OEFENINGEN PYTHON REEKS 6

Module 1 Programmeren

Scala. Korte introductie. Sylvia Stuurman

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

Modelleren en Programmeren

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

Objectgericht programmeren 1.

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

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

Uitwerking tentamen Analyse van Algoritmen, 29 januari

GEDETAILLEERDE INHOUD

Opdracht 3: Betere oplossingen

Opdrachten herhalen. public void tekenscherm (object o, PEA pea) { int x; x = 1; zolang de voorwaarde geldig is

Hoofdstuk 6: Zelf functies maken

Python. Informatica. Renske Smetsers

[13] Rondjes draaien (loops)

DE INTERACTIEVE SHELL

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Stroomschema s maken op papier

Modelleren en Programmeren

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

De keuzestructuur. Versie DD

Opdracht 3: Betere oplossingen

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

Tentamen Programmeren in C (EE1400)

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse

Zoemzinnen. Algemene info. Functies met een variabel aantal argumenten

Transcriptie:

HOOFDSTUK 3 m peratief programme re n 3.1 Stapsgewijs programmeren ModuLe 4 Programmeren De programmeerta[en die tot nu toe genoemd zijn, zin imperatieve of proceduree programmeertalen. mperatief programmeren is het stapsgewis in code omschrijven wat een programma moet doen, net als een algoritme of een PSD. 3.2 f Then Else Bij imperatief programmeren omschrijfje in een code stapsgewijs wat een programma moet doen, net als een algoritme en PSD. Wanneer een PSD selecties (keuzes) bevat, deelt de Lijn van het programma zich op met de verschi[[ende antwoorden op het vraagstuk. Denk nog maar even terug aan dit schema: ja vuur aansteken is het vuur ult? nec j Ats je imperatiefgaat programmeren, krijg je veel met zulke keuzes ofvoorwaardeste maken. Hiertoe zijn er de if then -statements en de else -statements. Joorbee1d: toegangsprijs We kijken weer even naar het voorbee[d dat de procedure beschrijft voor het bepalen van de toegangsprijs voor een pretpark. H ALS leeftijd < 12 DAN toegang : 5 euro J H ANDERS ALS leeftijd >= 60 H DAoegang : 5 euro De code wordt sequentieel, van boven naar ANDERS beneden afgewerkt. Je ziet dat er allerlei keuzes toegang : 10 euro gemaakt moeten worden. Uiteindelijk is het ENDE-ALS resu[taat dat mensen jonger dan 12 en ouder ENDEALs dan,ofnetzoouda[s6o,voordetoegangseuro rr betalen; de overige leeftijden betalen 10 euro. Niet elke f heeft een ELse, maar wet etke ELse een f -let if-statement is niet onlosrnake[ijk verbonden aan het else-statement; het is niet noodzakelijk dat elke if-statement ook een else heeft. Aan de andere kant hoort elke elsestatement wel bij een if.

Hoc4c&shk 3. forn.wei.. \ Wijze van weergeven Merk op dat alle operaties binnen een statement jets naar rechts zijn geplaatst. Dit principe noemen we inspringen. n de meeste programmeertalen zal het programma ook werken als je dit niet doet, maar het is belangrijk om het wel te doen. omdat de code er overzichtelijker van wordt. 3.3 [us Wanneer een programma een teratie (herhaling) bevat, zeggen we ook wel dat er sprake is van een [us (of loop in het Engels). De operaties die in een lus zitten worden namelijk uitgevoerd zo[ang aan een bepaa[de voorwaarde vo[daan wordt. De meest bekende is de while-lus, hieronder aangegeven als ZOLANG. Hier zie je een voorbeeld van een lus: 4 )oorlci getal 0 ZOLANG getal < 3 getal : getal ENDE-Z0LANG +1 n dit voorbeeld wordt een geta[ net zolang opgehoogd totdat deze niet meer k[einer is dan 3. Met andere woorden: de lus stopt zodra het getal 3 is geworden. Oneindge lus Wanneer de voorwaarde van een whi[e-lus nooit onwaar wordt, zal de [us niet vanzetf stoppen (het programma b[ijft hangen ). Dit noem je een oneindige lus. MeestaL is dit niet de bedoeling en heeft de programmeur een fout in de voorwaarde gemaakt, of ergens anders, of allebei. 3,4 Booleaanse expressies n de eerder gegeven voorbee[den heb je (misschien onbewust) al kennis gemaakt met Boo[eaanse expressies. Een Booleaanse expressie is een expressie die de waarden of false aan kan nemen De naam Booleaans komt van de wiskundige en filosoof George Boole, die het redeneren in waarden als en false heeft geintroduceerd in de 19e eeuw. -

-.- Hoofashk 3 Module 4 Programmeren mperatief programmeren De voorwaarde van een if-statement is een Booleaanse expressie. Als die de de waarde heeft, wordt de direct onderliggende code uitgevoerd en niet de code onder de else = als de else aanwezig is. Als de Booleaanse expressie de waarde false heeft, is het andersom. SymboLen BooLeaanse Logica De symbolen in onderstaande tabel warden vaak gebruikt in de Booleaanse expressies van program mee rta len. oo1 Naam Gebruik ELoteL_x>yisaisxgroterisdany not groter-dan of-ge lij k-a a n kleiner-dan x >= y is als x grater is dan y of net zo groot y < y is als x kleiner is dan y kleiner-dan.. x <= y is als x kleiner is dan y of net zo groot of-gelijk-aan not not x is als x false is en andersom de Booleaanse waarde van x wordt geinverteerd and and x andy is als x en y beide zijn or or x or y is als x of y is (of als ze allebei zijn) rr exclusive or xxoryis alsxofy is(en niet als ze allebei zijn) Misschien had je het al opgemerkt: de code van de toegangsprijs van het pretpark kunnen we met deze logica korter omschrijven: L oorbla ALS < 12 OF DAN toegang := S euro AND E RS toegang 10 euro ENDE-ALS leeftijd : leeftijd > 60 Wijze van weergeven Bij het opstellen van een Booleaanse expressie moet je zorgvuldig te werk gaan. Een verschil in de volgorde van de expressie kan bijvoorbeeld hele andere resultaten opleveren. Het is daarom veilig am delen van je expressie te voorzien van haakjes: ( en ). Door delen tussen haakjes te zetten, geef je aan dat deze als geheel genterpreteerd moeten warden.

getal. Geheel getal 3.5 VariabeLen false false false false false false Jise false false false false false false f false false false rue 1 false is niet hetzelfde als: x EN (y OF z) Je kunt dit gemakkelijk zien door voor deze expressies een waarheidstabel te maken. Dit is een tabel waarin je aangeeft wanneer de expressie of false is bij welke waarden. 1-lieronder zijn van beide expressies de verschi[lende waarheidstabellen weergegeven. \(x EN y) OF z De volgende expressie: WaarheidstabeL 4false false false false LL9 v Hoo4ash.Lk false z mperatief program meren Module 4 Programmeren typen die voorkomen in verschillende programmeertalen, maar doorgaans zijn de volgende typen in ieder geval aanwezig: variabele kan hebben, is afhankelijk van het type van de variabele. Er zijn verschitlende [H1 stuk beknopter maken. Een variabete is een element dat een bepaalde waarde aan kan nemen. Een voorbeeld van een variabele is de toegangsprijs van een pretpark. De waarde die een Dit wordt een integer genoemd, vaak afgekort tot mt. 42 is bijvoorbeeld een heel vervangen door respectievelijk 1 en 0. Dit kan zoth tabel een Meestal worden in waarheidstabellen de termen en false false false.- - Waarde van expressie (x EN y) OF 1 false jse false false false false false Fe Waarde van expressie x EN (y OF z) false

Hoof&sluk 3 Module 4 Programmeren mperatief programmeren Kommagetal Dit wordt vaak een double of float genoemd. Bijvoorbeeld: 109,75. n veel programmeertalen moet je deze getallen op z n Engels noteren, met een decimale punt. Karakter Dit noemt men een character of kortweg char (spreek uit: kar). Een karakter kan elk ANS-, EBCDC- of Unicode-teken zijn, bijvoorbeetd $. Boolean Dit wordt ook wet bool genoemd (Nederlands: booelaanse). Een boolean kan alteen maar of false zijn. Sommige programmeertalen (waaronder C en C++) laten hier ook gehele getallen in toe, waarbij 0 staat voor false en alle andere getallen voor. Een apart soort variabele is de string. Dit is een reeks karakters, bijvoorbeeld tijger of $2,5o. 3.6 Arrays De meeste programmeertalen bieden de mogelijkheid om arrays (NederLands: nj) te maken. Een array is een geordende nj van variabelen van hetzelfde type. Zo kun je bijvoorbeeld een array van gehele getallen maken. De variabelen van een array zijn genummerd; het votgnummer noemen we de index. n veel programmeertalen begint de indexering van een array altijd met 0 (en niet met 1). Voorbeeld De code: rij_van_getallen [32. 59, 825. 9042] De ridexeri rig: rj_van_getallen index: 0 1 2 3 waarde:t32 825 9042 3.7 Functies je kunt een functie (een verwant begrip is procedure) gebruiken als je een bepaatd stuk code vaker moet gebruiken of als je een programma overzichtelijker wilt maken. Met een functie maak je een subprogrammaatje. Als in het programma de naam van een functie staat, wordt daar het subprogrammaatje dat erbij hoort, uitgevoerd. We noemen dat het aanroepen van de functie.

Voorbeeld Van een functie moeten de volgende zaken worden gedefinieerd: ELke functie moet een unieke naam hebben. Sommige programmeertalen laten toe dat De parameters Dit zijn speciale variabelen die een waarde krijgen bij het aanroepen van de functie. Zo kan de functie werken met de meegegeven waarden. Een functie kan nul of meer Dit is het waarde-type dat de functie na uitvoeren oplevert. Een functie kan maar één Dit is de code die uitgevoerd wordt als de functie aangeroepen wordt. n dit voorbeeld wordt voor elke variabele, het type van de variabele gespecificeerd (net als bij de meeste programmeertalen). De functie som telt twee getallen van het type int bij etkaar op en geeft het resuttaat zijn de parameters en worden gescheiden door een komma. We kunnen nu naar deze Als bovenstaande code uitgevoerd zou worden, zou na afloop getala de waarde 30 hebben, zo worden behandeld als het returntype van de functie. n dit geval is het returntype van de functie een integer en kun je dus dit resultaat direct weer gebruiken, zoals op de derde regel hier ook gebeurt. geta[b 100 en getaic 200. Je ziet: na een aanroep van een functie kan het resultaat precies oorbeelc\ return optelling som(int getall, mt getal2) : mt )oorkew. Debody returntype hebben. Deze waarde wordt op de plek van de aanroep verder gebruikt. Het returntype parameters hebben. noem je overloading. een andere variabele stoppen. Bijvoorbeeld: functie refereren, of anders gezegd: we kunnen deze functie aanroepen en het resu[taat in (wat hier de naam optelling heeft gekregen) als mt terug. De termen getali en getal2 namen van functies vaker voorkomen, zolang de parameters verschillen. Dit principe Denaam Hoofashk mt optelling := getall + getal2 mt getala : som(10, 20) mt getaib : som(getala. 70) mt getaic : som(som(50. 50), getaib) mperatief programmeren Module 4 - Programmeren

Hoofashk 3 Module 4 Programmeren mperatief programmeren 3.8 Parameters en argumenten We hebben eerder aangegeven dat getali en getal2 de parameters zijn van de functie som. Bij het aanroepen worden deze parameters ingevuld door, wat we noemen, de argumenten. Een argument is een waarde die meegegeven wordt bij een functie-aanroep. We herhaten het voorbeew uit de vorige paragraaf: /oorb.lc& J f mt getala : som(10,20) mt getaib := som(getala. 70) [t getaic : som(som(50,50).getalb) Ats bij het aanroepen van een functie een variabele meegegeven wordt - zoa[s in ons voorbeeld op de tweede rege[ het geval is - dan wordt niet de variabele zeif meegestuurd, maar de waarde van de variabele. Omdat de waarde wordt meegegeven, verandert de variabele ze[f dus niet na het aanroepen van een methode, ongeacht wat de methode met de parameters doet. We proberen dit in het volgende voorbeeld te verduide[ijken. Voorbeeld We definiëren eerst een functie (die eigen[ijk niets zinnigs doet): Joor ia A zomaareenfunctie(int eengetal) : mt eengetal 999 return 0 Vervo[gens roepen we deze aan: ( oorl eld mijneerstegetal 5 mijntweedegetal : zomaareenfunctie(mijneerstegetal) Na het zogenaamd uitvoeren van deze code zal mijneerstegetat nog altijd de waarde 5 hebben en mijntweede6etat de waarde 0.

Module 4 HoofashLk S 39 Void Alte voorbeeldfuncties tot nu toe hadden een returnwaarde, namelijk een i. Maar een functie hoeft niet per se een returnwaarde te hebben. Dat geef je aan met het returntype void. Void is eigenlijk geen variabete-type, maar is eerder de afwezigheid van een waarde. LetterLijk vanuit het Engels vertaald betekent void dan ook leegte. Hieronder is een voorbee[dfunctie zonder returnwaarde gedefinieerd: Joorbeia zeghallo() : void print( hallo ) Deze functie heeft geen parameters en geen returnwaarde. Bovendien wordt er een andere functie aangeroepen met de naam print, waarbij een string ats argument wordt meegegeven. 3.10 Syntax De syntaxis (Engels: syntax) is de grammatica van een programmeertaal. Hij beschrijft hoe de code er in een bepaatde programmeertaa[ uit moet komen te zien, wat de grammaticate regeis zijn. E[ke programmeertaai heeft een elgen syntax, maar sommige programmeertaien hebben onder[ing vee[ syntactische overeenkomsten, zoals C, C++, Java, C#. De reden dat veet programmeertalen een overeenkomstige syntax hebben, is om het programmeurs makke[ijker te maken een andere taal te leren. ( Joordd. - mt som(int getall, mt getal2) return getall + getal2; Voorbeeld van eenfunctie die zou werken in C, C++, Java en C#. 3DFVARK =

Hoofdsh.k 3 3.11 Vragen en opdrachten 3.11.1 Open vragen 1. Wanneer zal van een else-statement de inhoud worden uitgevoerd? Geef de waarheidstabel van de volgende expressie: x OR (NOT y). a. Noem de Engelse namen van de verschillende typen variabelen die je kent. b. Wat valt je op als je de string met cle [list verge[ijkt? 2. a. Welke eigenschappen moet je van een functie of procedure definléren? b. Wat is het verschi[ tussen een parameter en een argument? 3. Leg in je eigen woorden uit wat syntax betekent. 3.11.2 Meerkeuzevragen 1. We[ke van onderstaande beweringen over [listen is niet waar? a. De eerste waarde van een lijst staat a[tijd op index 0. b. Een i jst heeft een volgorde waarin de waardes gerangschikt zijn. c. n één lijst kunnen verschi[lende waardes worden opges[agen van verschillende typen. d. Een lijst wordt ook wel array genoernd. 2. Bekijk dit voorbee[d: mt a = 2; mt b = 4; mt c 6; vermenigvuldig(int x, mt y) : mt return x * y c := vermenigvuldig(a, b) Stel dat deze code uitgevoerd zou worden, we[ke waardes zouden dan correct zijn ná het uitvoeren: a. xis 2, y 54 en c is 6. b. ais2,bis4encis8. c. bis4,yis4encis4. d. ais2,bis4encis6. 3. WeLke van onderstaande beweringen over [ussen is niet waar? a. Van een [us wordt de boo[eaanse expressie herhaaldelijk gecontroleerd. b. Een [us is vergelijkbaar met de iteratie van een PSD. c. Een ander woord voor [us is loop. d. Bij een oneindige [us wordt niet aan de boo[eaanse expressie voldaan.

Hoofashk 3 Module 4 Programmeren mperatef programmeren 4. Van de volgende boo[eaanse expressie zijn de operatoren vervangen door cijfers. De waarden voor x en y zijn: x =, y = false. Wetke operatoren kunnen hier staan om de expressie de waarde te laten zijn? x 1 y 2 3 Cx 4 y) a. 1=XOR,2=AND,3=OR,4=XOR b. 1=OR,2=AND,3=NOT4AND c. 1AND,2=AND,3NOT,4AND d. 1=OR,2=XOR,3=NOT,4=AND 3.11.3 Korte opdrachten 1. Zoek ten minste vijf syntactische regels voor de programmeertaal Java en beschrijf deze kort in je eigen woorden. 2. a. Schrijf zeif code voor het zetten van koffie. Maak hierbij gebruik van variabelen, ten minste één lus en ten minste éen functie. b. Beschrijf vervolgens stapsgewijs de werking van jouw code. Geef hierbij onder andere aan welke variabelen op welk moment welke waarde hebben.

te maken en herhalende code slechts één keer te hoeven schrijven. lussen: herhalingen, denk hierbij aan de while-lus functies of procedures: k[eine deelprogramma s cm het programma overzichtelijker if-, then-, etse-statemens: gebruikt cm voorwaarden aan variabelen te stelien naar beneden uitgevoerd worden. Kenmerken hierbij zijn: mperatief programmeren is het stapsgewijs schrijven van instructies die van boven 3.12 Samenvatting programmeur zich voor die taal moet houden. De syntax van een programmeertaa[ beschrijft de grammaticaregels waaraan een Een list (of array) is een reeks van waardes van één type variabele. Een string is een reeks van karakters. double of float: kommagetal char; een karakterteken bool of booleari: heeft de waarde of false. nt: heel getal Er zijn verschilende typen variabelen: waarde die je meegeeft bij het aanroepen van een functie. Een parameter is een variabe[e die gedefiniëerd is bij een functie. Een argument is de Hoofc&thk 3

zzz::z.i AANTEKENNGEN ntj 1