Programmeren • Hoofdstuk 1 Programmeertalen • Hoofdstuk 2- PSD’s maken • Hoofdstuk 3 Imperatief programmeren - - De doelstel linqen van moduLe 4 Programrueren zijn. Je kent de vijf categorieen waarin programmeertalen ingedeeld worden en kunt van elke categorie bijzonderheden noernen. Je weet wat objectoriëntatie is en kent een aantal kernhegrippen van deze methode van programmeren. Bovendien kun je voor cii nade[en evan noemen. Je kent enkele veel toegepaste proqramrneertalen en hun bijzunderheden, je kent het verschil tussen client-sided en server-sided programmeertalen voor het web. je weet wat cen algoritme is. )e bent bekend met de shematechniek PSD, je weet waaruit eeii PSD hestaat en kent de tel men sequentie’, iteratie’ en selectie. je kunt (aLledaagse) handelingen weergeven in de vorm van cen PSD. Je kunt een PSD achteraf nalopen om te controleren of het schema juist is. dues:t: M o HoofcksEuk 2 HiiIproqrirnma’s (utilities) ziln bedoeld your het uitvuewn vui spe ficke taken in vurbatol net tie wci king en hut lwheei van de umputer Systeemontwikkelingsprogramma’s worden gebruikt bij de ontwikkeling van software. Belangrijke voorbeelden in deze categorie zijn programmeertalen en ASEtools of IDE’s. Een IDE is ecu programma waai in gemakkelijk cen apphiatie kan wol den gesdireven. Module 4 HOOFDSTUK 1 — Programmeren - Programmeren 1.1 Inleiding programmeertalen In prngrammeei taten kunnen reekseii instructies wocden opgesteld die samen een computerprogramma vormen. We hebben at eerder gezien dat een computer niets doet zonder dat hij van instructies wordt voorzien. Die instructies worden hem ‘toegediend’ in de vorm van programma’s. Ook de applicaties die we in module 3 hebben besproken, zijn niets anders dan reeksen instructies. Ze zijn stuk voor stuk geschreven in een prograrnmeertaal In dit hoofdstuk maak je nader kennis met een aantat programmeertalen, met primitieve en ineer qeavanceerde. 1.2 Programmeertalen in historisch perspectief Prograimiecrialen woiden wet ingedeeld in vijt huofdiatcgui ieën Deze indeling geeft milet al[een de chronologische voLgorde weer, rnaar ook een toenemende uitdrukkingskracht en abstractie. Dc eerste twee categorieën zal vandaag de dag door de gemiddeLde piogiarumeum zelden gebiuikt wurden, maar oiiidat ze voor de begripsvorming belangrijk ziln, gaan we er hier toch even op in. 1.2.1 jJ • Machinecode Dc kleinste geheugeneenlieid is ic bit. [en bit is een binair cijfer (binary digit’): het kan twee waarden hebberm: 0 en 1. Alles in het interne geheugen, maar ook op externe geheugenmedia, wordt hinair vastgeLegd Dii betekent dat ook een programrna in binaire vorm wordt opges[agen. Dit noernen we de mat hinecode, Elk type prmessoi heefi een eigen nianier, de instructieset, cm de iiiacliinewde Ic Lezeic’. De allereerste computers werden in machinecode geprogrammeerd. Het bedieningspanee[ van de computer bevatte ceo lange reeks schakclaars Dc programmeur voerde de opdracht in door de jtciste schakelaars omhoog of omlaag (dat is ceo 1 of ceo o) Ic zetten, waarna di’ opdrahl in bet geheugen werd opgeslagen i)at was eentonig werk, waarbij bovendien gemakkelijk fouten werden gemaakt In die hegintijd waren de programma’s nog niet 70 omvangrijk Bovendien waren ze sterk gekoppeld aan de computer waarvoom ze waren geschreven. Len progiammeur was al apetrots als hij de computer zo in kon stellen dat die de vierkantswortel van ecu getal van vijf cijters ging berekenen... Mac hinetalen zijn programmeertalen van de cerste genematie. Ze worden tot de lagere progracumeertalen geiekend. Lager wil in dit geval zeggen dicht bij de processor Programmeren ModuLe 4 ProgrammeertaLen — Hoofdsh*.c 1 Fen opdracht in marhinetaal om twee gelaflen op te tel en, kan als valgt luiclen: 1010 11001 ion iioio 1100 11011 I De bed/en/ngsponeIen van de EN/AC 1.2.2 AssembLeertaLen (assembly) Ook assembleertaal (assembly language of assembly) is een lagere programmeertaal. Het verschil met machinecode is dat er gebruik wordt gemaakt van gemakkelijker te onthouden lettercodes in piaats van nullen en enen. Een speciaal vertaalprograrnma, assembleerprogramma (assembler) genaamd, dient dan orn de lettercodes am te zetten n machine-instructies. Dat blijft onder alle omstandigheden nodiq, want uiteinde[ijk is dat voor een computer de enige verstaanbare taal. Overigens is gemakkelijker te onthouden maar betrekkelijk Je nioet denken aan combinaties die uit enkele letters bestaan, bijvoorheeld hR znu kunnen staan voor load into register (haal waarde vanuit het geheugen in het rekenregister), AC voor add constant (tel constante op) en PIM voor put into memory (zet inhoud van rekenregister op een geheuqenplaats). esi,togc •1i ip1’tiing pop eax • , (r,pr eax4) Fen opdraht in assembleertaal urn twee get dl ten op te tel len, kan als volgt luiden: pop pop icr. 101) V iflitroemory :ii eciic1iaracter cxiOOh aJ.,ai :::.t nker erstab1: tnov ricV i mak inc i;op ii JC Ii hi VUII f) -;--i jI(IIlUHtI1 It t.bie Ifl (It IHi)hI Module 4 Programmeren ProgrammeertaLen — Heofashsk 1 Len hiki emil veice liii your iii’ proglammetir is dat hij niel langer geheugenplaatseir imeft bij Ic Iineiiicn Het vertaalprogiainiiia regelt de pirialsing van iii variabek in bet gel ieugen Dc pi ogrammeur hoeft alleen maar de naam te noenwri en net het nummer van de geheugenplaats. As’nibleerlaal is een taal van de twerde generatie. Ondanks ret feit dat assenibleertaat verder van de processor at staat dan machinetaal, spreken we nog wet van een rnachinegeoriënteerde taal. Het schrijveri van programrna ‘S In assembleertaal is een zeer tijdrovende aangelegenheid, (tie meestal lange, 000ver7ichtelijke programmas oplevert. Er wordt daarnm alleen gehruik geniaakt van een assembleertaal als het programma atgest.eind moet worden op de spec i ft eke keninerken van een processor, bi j voorbeel d in embedded systems. Je rnoet dan drnkcn aan de pni essors tail r r or nut rollers in appar aten als knff leautumaten en I heinistat en. flit is ecu veel voorkumende toepassi rig van een assembi eertaal 1.2.3 Hogere programmeertaLen De votgende gwte stap in de ontwikkeling van programineertalen werd gezet ben het rnogetijk werd om verschillende machioetaalopdrachten te ombiticren in één programmaopdracht. Deze prograrnrnaopdraht henadert at veel meer de menselijke taaI dan assembleertaal. Bit hogere programmeertalen prrigramineerlalen van di’ derde generalie hoeft de programmeur geen kennis te hehhen van de eigens( happen van de prrnessor Dc programmeur schrijft stapsgewijs de procedure (regels) voor die de computer moet volgen om het programma nit te voeren We spreken daarom ook wel van procedurele talen. IforoLLLE mt up hetleiri is de dci de general iepi ugramniatucir (qes breven in (0131)1 Pascal en dci gel i jke I ii univancj lug steeds in it- nr-e,dei[reld. flit flcett mede te inaken niet de ver risseride vita ii tei I van surani g- oude tal en al s I 1)1301 Van COBOL is overigens 00k ten 00 versie versc[ienen. , , - Ook bij deze hogere programmeertalen worden de instriu ties ciiteiridclijk weer vcrtaald naai madiinencode. Hiervoor dient de compiler. Oat is ecu spec iaal vertaatprogramma sourcecode of hronrode) nniiet in mnc fine inst r neties (de objectcode of dock ode). dat de ping! arninar egels (de ri De programmaopdrachten in ceo progiainrneertaal van de derde generalie 1110 mac hine onafhankelijk. In bet ideate qeval kan dezelfdc bionrode zondei aanpassiligen worden gebi nikt op ceo courpute, met ceo andere processor Dc (urn piers voor de deslwtreftende tail zijn wel machine alhankelijk. Ze zett cnn tie biunuide on) in opdra hten voor ceo hepciatde processor of ten hcpaald hcsturinqssysteeni Program meren Module 4 Programmeertalen — Hoo4shte 1 Er iitn tient,illen derde- general etaten, Ze werden vadk urn wikkn’liJ your uen bepaahi tuepassinrtjsgebied. De Iwkeiutsle iijnr FOR’RI’i, ontwikkeld voor technische en wetenschappelijke toepassingen. COBOL, vioeger cen popnlaire programmeertaal your administiatieve Inepassingeni Fr zijn nog veet banken en verzekeringsmaatschappijen die COBOL-programma’s gebruiken. C, een nog altijd veelgebruikte taat voor het ontwikkelen van systeem- en applicatiesoftware. Het besturingssysteem UNIX is ontwikkeld in C. PascaL, een taal die helpt bij het ontwikkelen van goed gestructureerde programmas. • readin Een vootbeeld van een statement in Pascal jorfl.’%OFi€ tie opdracht in COBOL 0111 twee çjetallen op te tellen. luidt: COMPUIF X Y / 1.2.4 ‘Jierde-generatietalen In tateri van de vierde generatie (461) worden de programrnaopdrachten steeds krachtiger tie meeste talen van deze generatie zijn niet-procedureel; ze zijn eerder prob(eemgericht. tilt wit zeggen dat de programnneur moet aangeven welk duel hij your oçjen Iwelt en dat de omputer daarbij bepaall welke reeks Inst run ties (laarvoor nodig zi)n Deze talen iijn weer eeni stap verder verwijderd van de omputer. be huge verwarht ingr’ii dir’ men hail van vien dr’ generatielalen zijn niet nil qekomen Een algemeenr luepasbaic vner(Ie general ielaal Ievert onhandelhaar grote prograluma S up, omdat de software veel ballast bevat be vierde qeneratiesofiware die het programma maakt, begriipt natuurlijk niet echt wat er mod gebeuren en neernt your de zekerheid’ allerlel opdrachten en voorzieningen op. Een menselijke programmeur zou een meer afgewogen keuze maken. Hulpmiddelen Diii deze redeir heperki men zich beven tot vierde geneiatiehnlpmnddeien. Met deze hutpmiddelen (Engels: tools) kan men snel een tuepassing of ceo bepaald gedeelte van ccii toepassing gerrereren Een voorheeld van ion hulpmrddel is ecu schermgenerator, waarmee op cenvoodige wij,e de lay out van irrvu[schermen kani worden bepaatd Verder zijn er rapprtgerieratoren, waarmee men aarr de baird vail gegeveirs oft cern database sirel een overzklit kin p1 odm cntn ModuLe 4 Programmeren ProgrammeertaLen — 1 Uok macro’s de in appliLatres als Mit rosoti Word en Ixcel qeri aakl kunnen wnrdr’n en v,aaqlalen als SQL (Slim lured Query Laugnaje) worden tot ch uiriIe generatiehulpmidde[en gerekend. Met SQL kun je onder meer geri cht selecti es maken in een database. Deze vraagtaal wordt. in module 1 behandeld. 1.2.5 Objectgeoriënteerde taLen Vele talen ondersteunen tegenwoordig objectgeorinteerd prograowneren (56L). Objectqeorienteerde programma’s gebruiken de 00 techniek. Deze lechniek bouwt voort op de techniek van de derde generatietalen. Alleen 0 (IC terminologie van 00 spreken we over methoden (methods’) in plaats van over procedures of functies. COBOL is oorspronkelijk een derde-generatietaal. Deze is nu ook in een 00-versie verschenen. Meer over objectoriëntatie lees je in de volgende paragraaf. 1.3 1.3.1 00-techniek Procedures en objecten Do te.hniek van obje Igeorienteerde ploglaininas houwt vourt op do techniek van het werken mel p1 ui cdiii es Procedures Pr og; amnia’s di gesi hreveu wor den yr pror edur ele talen (van de dei de ijerier itie), zoak Pascal, voeren bewerkingen rut op afzonderlijke gegevens. Het komt regeirnatig your dat in programma’s bepaatde handelinqe.n op meerdere plaatsen uitqevoerd moeten wor den, bijvoor beeld hot suQ eren vrn getallen. Voot die handetingen kunnen aparte programrnaaljes worden gernaakt, procedures en fiinilie’, Duordal in ceo programma naar een procedure kan worden verwezen, is het niel nodig urn de afzonderlijke opdrachten I elkens npnieuw nit Ic I hi (yen Oinvangrijke prngrarnmas hi lyon door hot qebrnrk van procedures dris veel uveizichteliker Bovendien kunnen do gogevoris georqarriseerd worderi ii re urds van dour de pr oqraurrireur gedetrnieerde datatypen. Programme ModuLe 4 Programmeertat:n 1 Objecten Objectonentatie, vaak afgekort tot 00, is een tecliniek die voorlbouwt op de te iniek vaii bet werken met procedures en datatypen. Terwiji in procedurele talen code en gegeveris apart gestructureerd zijn worden 00-code en gegevens gecombineerd tot objecten. Voor het gebruik van een object in een programma hoeft een programmeur niet te weten hoe het object werkt. Bij gebruik van bet object hoeft tiij alleen de rol te kennen die bet object binneri het programma kan spelen In een programma worden naar objecten boodschappen (‘messages’) gestuurd waarvan bet object zeif bepaatt op welke manier (‘method’) bet die afhandelt. Birinen bet programma func.tioneert het object als een soort black box’. Veel meer dan bij de procedurele software-ontwikkeling wordt een programma dus beschouwd ats samenhangende zelfstandige eenheden. 1.3.2 Voorbeeld: leerlingenadministratie Een leeringenadministratie van een school kan goed met de 00-techniek opgebouwd worden. In zo’n administratie werkt men met zaken als yak, docent, leerling, es en toets, De administratie beschikt per Leering over gegevens zoals: naam adres b geboortedatum rapportcijfers, Bovendien voert de administratie regetmatig bewerkingen op de Leerlinggegevens nit. de namen moeten atgedrukt worden, de adresgegevens moeten gewijzigd kunnen wniden enzovoort. Objecten bestaan uil een set gegevens (nra,n, adres, gelmor tedt urn) en ecu serie procedures die op de gegevens uitgevoeid kunnen worden’ cen iomhinatie van data en bijbehorende instructies. —I Invoeren geboortedatum I Opvragen telefoon F’n s)nrbPpId von tot nbto t lee’, tine, no’i een eweunt no 1 C)4tLI 1.3.3 1 ‘Joordelen van objectoriëntatie Als voordelen van objectorientatie kunnen we noemen: kui teie uiilwikkeliiigstijd dnoi liergebi trik van programmamodutes complexere problemen zijn te hanteren door betere organisatie van programmacode betere onderhoudbaarheid van programma’s doordat duidelijker is wat elk deel van de software doet betere uitwisselingsmogelijkheden als gevoig van vastgestelde standaards. KLassieke programmatuur in de meerderheid Tot op heclen is de ‘klassieke’ programmatuui (geschreven in COBOL, Pascal, en dergelijke) in omvang nog steeds in de meerderheid. Dit heeft mede te maken met de verrassende vitaliteit van sommige oude talen als COBOL Van COBOl is overigens onk een 00 versie versr.henen. I Itforn.wLh€ Sinds de intriidu tie van Java (in 1995) treeft de ijntwikkel trig van objertgeorinteerde prograrnrnas een rlindelijke impuls gekregen. Bij grote softwarehuizen zag je dan ook een toename in de ontwikke]ing van 00 sottwareprojecten your coinrneruiële doe] einden. 1.3.4 Begrippen uit de objectoriëntatie Belangrijke hegrippen nit de wereld van de objednrientalie zijn (lnssen haakjes de Engelse 1 e in) objecten ( obects) kiassen I lasses) rnethoderi ( nrethods) inkapseling (t’n apsulation ovr’o’rving ( inlier ilan e) Objecten In het dagelijks leven komen we objecten in a[lerlei vormen tegen. Een huis, een stofzuiger, een sihoot en ccii auto zijn voorbeelden van objecten, Dok meer abstracte zaken zoals versiagen, rekeningen, nnderdelen van een gebruikersinterlace (hijvoorbeeld vensters, knoppen, pictogranlinen en menus) zijn objet ten, Hierbij vormen samenhangende gegevens en tie opdrachten die erop uitgevoerd worden, een onlosmakelijk geheel Het gcbr uik van obecIen in ccii programma heeft als vuordeel dat het niet irodig is orn te weten hoe bet objet I icc hnisc h in elkaar ill Bet is allenn van belang om te weten hoe je het object gebruikt. Objeclen zipi te onderscheiden op basis van eigensc happen Bij 00 noern die nigeusi liippt’ii tIributc’ii Programmeren Module 4 Programmeertalen — Hoottk I Attributen van het object ‘Auto’ kunnen zijn hel hebben van wielen. bestuurbaar zijn, merk, type, kleur. bouwjaar, cataloguswaarde, Kiassen Een object is attijd een vertegenwoordiger van een ktasse. Ktassen zijn rechtstreeks verbonden aan objecten. Men zegt wet dat ceo object een instantie van een kiasse is. In de klasse wordt pen lijst heschreven van alte attributen en methoden van het object. /oorbe.eLa We hebben daarnet een auto een object genoernd. Er zijn diverse typen autos: stationwagens. cabrios, SUV’s. besteiwagens. enzovoort. Afle hestelwdgens behoren tol de klosse van auto s Een ki asse bestaat, dos nit objecten met een aanl a gemeenschappelijke attr’ibuten. Elke individuele besteiwagen die uit de fabriek kornt, is een object van de kiasse Auto. . Methoden Methoden worden gebruikt om te communiceren met andere objecten en met tie buitenwereld. Dc methoden verzorcjen het geilrag van hel ohjet 1’ Methoden bi j he I object auto kunnen it in: verknnpk 1 car ina.keu repareren, overspuiten. nkapseUng Under irikapseling wordt verstacri: bet in een object insluiteri van cite taken die bet object nodig heelt urn te luni tionei en in bet hijznnder tie methoden en do data Door nkapse[iiig iijn tie netiriuten en tie data vooi ,indere ohjC( Oil Onik htbaai Overerving Klassen kunnen at Ii ibuten cii met hoiten van andere, vergelijkbare, kiasson ovei ne,ncn, We spreken dcii van oveieiviiig Dankiij deze mogelijkheid hoeven dezelfde eigens happen niet steeds opnieuw beschreven te worden. We zeggen dan wet dat de kiasse de attrihuten en methoden van tie erhoven gelecjen klasse cr11 ‘Joorbeda [err ki asse Rei olwcgr’n ke,il qrnl endr’eI s doze] fde at Ii thriten a] do kiasse Auto. Tmrners, nok hij elke tiestt’lwcgen is er sprake van Mock, lype, Kleur, Bouwjaar, Cataiuguswaarrte. II- S là. Hoc ModuLe 4 Programmeren Programmeertaten - di’uI. 1.35 VoorbeeLd: auto Ook aan een auto kunnen we begrippen uit de wereld van de objectoriéntatie koppelen: Objecten Objecten zijn te onderscheideo op basis van attributen. Atiributen van het object Auto kunnen zijn: het hebben van wielen bestuui baar zijn merk type kleur bouwjaar cataloguswaarde, Kiassen Een auto is een object. Er zijir diverse typeri duto’s. Bijvoorbeeld: stationwageris cabrio’s SUV’s hestelwcigeiis. ALLe besteLwagens behoren tot de klassr! van auto’s. Een kiasse bestaat dus uit objecten met een aantal gemeenschappelijke attributeo. Elke individue[e bestetwageri die uit de fabriek komt, is een object van de kLasse Auto Methoden Pr’thoden hij het nhje I Auto kurinen zijn verkopen repareren overspuiten. Overerving Een kiasse Beslelwaqt’n kent qi otendeels de7eltde atir itniten als de kiasse Auto, miners, ouk brj elke hesteLwageir is ci sprake viri Merk, type, Kleur, Bouwjaar, C,talociuswaarde. Hoofcstuk 1 1.4 Enkele veelgebruikte programmeertalen 1.4.1 Cen C++ C C is een derde-generatietaal, een gestructureerde procedurele taal die veel wordt toegepast voor het ontwikkelen van besturingssystemen en applicatiesoftware. C wordt beschouwd als een erg compacte en efficidnte taal die dicht bij machinecode staat. Oft maakt dat C snel is, maar ook toutgevoelig en vooral voor beqinliets niet echt rnakkelijk. C++ De ohjectgeorienteerde opvo[ger van C is C+, ook een derde-generatietaal. Het is een krachtige rnaar complexe taal die veel gebruikt wordt in tehnishe tuepassinqen - Ikfcj C++ is in 1980 ontworpen door B.j a me St roust i up een niedewei ki’ van AT&T. De naam C++ is als een woordspeling bedoeld. In ui. Q. C vervangen wordt door zijn C betekent C++ namelijk dat opvolger, dus C++ wil zegyeii ddt. bet em een vulgende versie van C gaat. 1.4.2 Java Java is ceo objetlgeorienteerde pmogrammueertaal, die grote nvereenkomsten heeft met C+. Het bijzondeie Van lava is dat bet platfoimomiafhankelik is. Drie onderdeLen Java is ontwmkkeld duui de tiniia Sun en bestaat uit die ondeidelen de programmeertaal Java Deze wordt beschouwd als een veetzijdige, overzichtelijke, betrouwbare en zuiver objet ttjenm idnteeide taal De taal was oorsprnnkelijk hedoeld om op kicine omputers te dmaaieii en wordt flu dan ook gebruikt in bijvnorheeld PDA’s en inobiele telefoons Java Development Kit (JDK) De JOK is een uitqebreide bibliotheek van proqiainmacomponenten 1)eze maakt Java tot een sonrt kist vol handiqe onderdelen waaimee bet leuk piogramma’s bouwen is. —. ‘‘ Java Virtual Machine (JVM) Flit is ceo vem taler die de hytei ode nmiet naai een mahinelaal die gesi hikt is vnnr het platform waarop bet Java programma wordt uitgevoerd. [)e bytec ode draait op atle Iattorins waaivoni em VM hvst,iit ModuLe 4 Programmeren ProgrammeertaLen I - Hooc&shk 1 Het Ia1 ci gnninde punt naakt Java weienliik anders dan zijn your ga nqer s Br de programmeertalen die voor de komst van lava gebruikt werden, wordt het geschreven programma vertaald naar de machinecode die de computer begrijpt. Daarvoor wordt een vertaalprogramma gebruikt, de al eerder genoemde compiler, Om het programma voor eon ander besturingssysteem (‘een ander platform’) geshikt te inaken noel het aangepast worden, waarna het opnieuw gecompileerd moet worden. Bytecode De (:ompiler vertaalt lava naar een vorm die geen mathinecode is van een bestaand besturingssysteem, maar naar een tussenLiggende vorm: de bytecode. Voor de uitvoering van die bytecode is het noodzakeiijk dat die bytecode omgezet wordt naar de machinetaat van die machine. Dit gebeurt door de JVM. Deze virtuete machine moet wel speciaaL geschreven zijn voor het betreffende besturingssysteem. Er is dos voor eLk hesturingssysteem eon eigen JVM nodig. - - H Hoewel wij de naam Java vooral associëren met een Indonesisch • eiland, is de taal genoemd naar de koffie die de ontwikkeiaars dronken (en die hen wakker moest houderi). Vandaar dat in het logo van Java 00k een kopje koffie te zien is. Overigens draait Java onder alLe populaire 64-bits systemen. Java program ma - HelloWnrldAppjwa kV Windows z:1 jo ,t,tirI,Ior tori rvi,ic Os LIflLIx in plntforn rirrfliuokt’lijkr bfi Programmeren ModuLe 4 ProgrammeertaLen — fIoo44sk 1.4.3 DeLphi •1 Delphi is een visuele, objectgeoriënteerde prograrnmeeromgeving van Borland, die gebaseerd is op de taal Pascal. In Delphi vind je alle bijzonderheden van OD-programmeren terug. Jo werkt in Delphi in de IDE. De IDE biedt de rnogelijkheid om: tekst op te maken een programma to compileren (omzetten naar ma( hinetaai) een proqianima te laten uitvoeren de fouten uit een programma te halen (te debuggen). r Al s een prugramma eon fout bevat spreken we van eon hug. Ilel zoeken naar touten wordt debuggen genoernd. Vol gens de over] everi ng werd een van de eerste gemel de fouten in een computerprogramma veroorzaakt door een insect: tussen de mechanische onderdelen van de computer was een met lei echtgekonien l)aan dour wer kte hoL appai aat ii let ndar behuren en moest hot ‘debugd’ worden, Eon van de sterke punten van Delphi is de VCL, een bibliotheek met objecten die klaar zijn voor gebruik. 1.4.4 Visual Basic .NET Len programineertaal van Microsoft is Visual Basic NET. Voorheen heette deze taal Visual Bask, niaai vanal versie 7 van Visual Basic heefi Mk rosoft qekozen your eon nieuwe naani (2002) VB NET rnaakt deel uit van een groter geheel, dat Microsoft hut .NEIplatform heeft genoemd Mel VB Nfl kuni e applii alie’, vuo do Vl/indows uiiigeviiig s linijveii be gehi uikensint erfa e slaat daai bij ( eiil iaal flew wurdf ontwon pen met al le your zieningen die kenmerkend zijn vooi Windowsapplicaties, zoals: knoppen dialooqvensters keuzemenu’s selerlievakjes Daai na wordt de bibehorende progranirnacude eraan verbondeii. Ouk hot s lii webapplicaties behoort tot de mogelijkheden ijveii van Module 4 Programmeren Programmeertalen — Ptatformonafhankelijk ticj bet rornpclereri van tie programmacode wordt gebruck qernaakt van een tussentaa[, verge[ijkbaar met de bytecode van Java. vvwCr0 is VBA ror00ki De Microsoft Office-pakketten bevatten cen vereenvoridigde versie van VB NET, die VBA wonit genoenid Hier nec kun je niet al leen macro’s voor de betreffende progracnmas ontwikkeien, maar ook vo[waardige programma’s. rv’i€. OLOLLc&€ k - oCrO aora€.’. &eE ois pro° UL 1.4.5 C# C# is, net ats Visual Basic, een programmeertaal ontwikke[d door Microsoft voor het NET-framework. Je spreekt de naarn uit als het Engelse ‘c sharp’. Net aLs C-t en Java, is C# objectgeoridnteerd. De taal kan worden ingezet voor desktopapplicaties, serverapplicaties en ook voor proqramma’s op mobiele apparatuur zoals PDA’s en smartphones. De naam Cf is geinspireerd door’ de rnuziekwereld, waar de Ii achier eeri bepaalde riout eeII Ira lye stap huger aangeef 1. LII is curs ccii halve SI ap huger dan C, waar’ncee net al S C Ieon vulgende ver sic van C mod wrileri aarcgedicirl 9 - Overeenkomsten met Java, C++ De overeenkomsten tusseri vooraL Java en Cli, maar ook tussen C+4 en C#, zijn groot. Java programmeuc s zullen daarom weinig ncoeite hebben urn over te schakelen naai Cli op bet NET-framework en vice versa, Voordelen Lnkete voordelerc van Cli zijn Net als bij Java, hoeti de ( li progranciocu genu cekening te houden met het ucrderhoud van bet geherigen lit wurdi auturnatcsc h door her NET-framework geregelcl We noernen dii qarhaqe toiLer. tcon Module 4 Programmeren Programmeertalen — Ho$dsEk 1 cen veilige taa[. Er wmdt gecontroleerd op kleine touteri die zouden kunnen leiden tot onverwat hte esuti aten ot ?elts een ash van het prog, arnina 811 ( + bijvoorbeeld, moet de programmeur deze toutjes zelt voorkomen C# is NET heeft een uitcjebreide bibliotheek waar C#programma’s gebruik van kunnen maken, C# is platformonafhankelijk. Bij de eerste release was .NET alteen voor Windows bedoeld, en dus niet platformonafhankelijk, maar dat is nu niet meer het gevat. Nadelen Er zijn ook nadeten te noemen: De extra controles voor stabiliteit drukken de performance van een C prngrainnra C staat verder van de processor dan C++ en rout daardoor performance in voor gebruikersvriende[ijkheid voor de programmeur. Doordat C# kenmerken van nogal wat ta[en (C, C++, Java) combineert, heelt het een hoop toeters en bellen. Dit kan een C#-programma onoverzichte[ijk maken. 1.5 1.5.1 ProgrammeertaLen voor het web Programmeertalen voor het web De k[assieke programmeertalen schieten over het algemeen tekort op het gebied van webapplicaties. Dc opkornst van Iret web heeft dan ook een aantal nienwe en vernieowde talen opgeleverd. 81) de indeling van deze talen speelt het lieni serverinodel een ml Als Iret client serverrnodel op inter ret loecjepast wot dl bestaat het uit verst lri[lende corn po n e ftc n I Dc lent is de ornpriler van de gehi ulker waar op een browser draait, Via dii programma bezoekt de gebruiker websites, bijvoorbeeld door de URL in de adresbalk te typen of op hyperlinks te klikken. Dc aanvraag voor cen wehpagina wordt verzonden naar een server waarop de website opgeslagen is. De server stuurt de gevraagde pagina naar de client. Poputaire sites zoals (icrogle en Fa thook kunnen nuijornen aarivr agerr per sec onde hedienen Hieronder zie je een scheinatisch voorstel van het client-servermodel. Dc clients duen eerr aanvraaq voor een webpagina bij een server; de server veriendt de çjevraagde pagina via o tel net I Module 4 — Programmeren Programmeertalen Hoofc&shLk 1 - -—— —— 2 . A .‘ 4 Zowel voor de server als voor de client zijn programmeertalen ontwikkeld. De client-sided programmeertalen worden uitgevoerd op de computer van de gebruiker, Hierbij zijn HTML en XHTML een oprnaaktaat, en JavaScript een scriptingtaa[, De server-sided ta[en zoals PHP en ASP worden uitgevoerd op de server die de websites bevat. 1.5.2 HTML I!I i — Met HTML beschrijt je de structuur van webpagina’s. Als je Hi ML gebruikt, plaats je besturingscodes in teksten. Daarrnee geef je aan hoe die tekst door een browser afgebee[d moet worden op het bee[dscherm. lI!i • HTMl Hyper [ext Markup I anguage [I Zifl veischitlende codes, INJV0O[beeld vool bet vet, cuisie[ en onderstreept inaken van tekst, voor het maken van qwte en minder grote koppen, VOO[ het opnernen van afheeldingen en hyperlinks (zie onder), voor het kiezen van kleuren, noern mair op. De codes staan tussen punthaken <en >. Over het algemeen bestaan ze nit een begin en een einckode, hijvaorbeeld <hi> om een hoofdkop aan te geven </hi urn het einde van deze kop aan te geven Met deze code geeft de browser kuppeir van niveau j 1’ weer. In grote err vette letters. in HIMI. kun je Java progranirna’s opnenien, die applets worden genoernd Appi et s dr aa en Oj) de cli not j Module 4 Programmeren Programmeertalen — Hco4k 1 Hyperlinks Een van de belangjljkste kenmerken van HTML is de moge[ijkheid om documenten aan elkaar te koppelen via hyperlinks, verwijzingen naar andere paginas op het internet. css HTMl. werkt samen met de techniek CSS. Via CSS is de opmaak van webpagina’s zeer nauwkeurig in te stellen. fl iforvoiLe CSS ‘\ =.-.-— Cascading Style Sheets HTMl. in de praktijk Dit is een voorbee[d van een HTML-code: chtml> <head> <titl e>Voorbeel d van een hyperl I nk</ti t,l e> </head> <body> Kl i k <d href ‘[ittp://www.simpel.htm”>hterc/o> voor een voorbeel ci van eeti s impel e wehpag I na </body> <I ht nil> Met deze code ziet tie webpagina er zo uit reeniprM!crosort Internet Explorer Bestand Oewerken Qooeige 0 Leeld Favorieteri Extra Help ZoekenFo.,oxerer 4, £l Koppehren Kiik ir voor eon voorbeeld VEfl EEtL othipele webpanina ezecenpr Neiton AnOWus Hoofd1uk 1 1.5.3 XHTML XHTML is een nieuwere variant van HtML. XHTML is dan aok net als HIML een client-sided opmaaktaat. XHTML stelt striktere eisen aan de codering dan HTML. Lu moet je bij XHTML afle tags rlsIuiten, Hii’idooi kan ci bij het albeelderi van webpaginas nnridci lout gaan. XHTML werkt sarnen met een techniek die CSS, Cascading Style Sheets, wordt genoernd. Hierdoor worden inhoud en structuur (XHTML) en opniaak (CSS) van een pagina gescheiden. XHTML eXteris I bi e HTMl 1.5.4 JavaScript Net als opmaaktalen zijn scriptingtalen client-sided programmeertaleri Fen hekende scriptingtaal is JavaScript. ScriptingtaaL JavaScript is ontwikkeld door under nicer Netscape Communications Corporation. Het is een Sc ripttaal die fungeert als uitbreidmng op HTML hier mnee kun je progranimaregels aan een webpagina toevoegen. De browser interpreteert de JavaScript-opdrachten als de pagina op het scherm gep[aatst wordt. Java en JavaScri pt worcien nogal eens door ci kaar gehaa id. Ilet grootste versrhii tussen beide talen is dat Java een volwaaritige prngranimeertaal is, ferwiji lavasrript is hcrtncid ais uithreimling op HTMl JavaSc-ript is eenvoudiger, maar ddardoor ook beper’kter: het, wormit uitsluit,end toegepast your wehapplicaties. De toepassingsmogelijkheden van Java zijri veel breder. Je knot cc hi jvoorhceld mnTnpletc Ickst verwerkers icc progranimer cmi. Geen vo11edge programmeertaaL In teqenstelling tot Java is JavaSiript qeen volledige prnqrarnmeertaal. Dc npdrachten zijn beperkt tot de objecten van de wehhrowser. Met JavaScript kan een ontwerper webpaginas mcci interactivpteit qeven Via wi script kan nj meaqeren op eiqenshappen van de browser en de computeromgevinq ? ModuLe 4 Programme Pgrammeerta r! (HdLshaL. 1 Event De gebrrnker voert een bepaalde handeting uit; liii tikt gegevens in, kiest een nioqelijkheid uit eon menu, kiikt op een knop of vuft een ve[d in, waarna (avaScript-opdrachten voor een passende reactie zorgen. We zeggen dan dat JavaScript reageert op een event; de handeliiig van de gebiuiker heet in programmeertaaijargon een event of geheurtenis Een reactie zou kunnen zijn dat er een aangepaste tekst wordt getoond, die betrekking heeft op de gemaakte keuze. mouseOver en mouseOut Een voorbeeld van een toepassing is het laten ‘op[ichten van eon plaatje of tekst als de gebruiker er met de muisaanwijzer overheen gaat. Dat is een visueet signaa[ dater op die ptaats gektikt kan worden. Er worden in dat gevat twee p[aatjes gemaakt, een donkere en een [ichte versie. De pagina bevat JavaScript-opdrachten die reageren op de event mouseOver’ en ervoor zorgen dat de Iichte versie van het p[aatje verschijnt. Bij de event ‘mrniseOut’ (do muisaanwijzer veriaat hot gebied) wordt de donkereyersie weer teruggezet. Andere scriptingta[en zijn Y8Script en Rash ActionScript. 1.5.5 PHP Moderne websites zijn vaak dynamisch. Ze bevatten a[[ertei functies die je niet met HTML kunt aanbrengen. Denk aan een gastenboek, een mogelijkheid om etektronisch te betalen, een discussietorum, een totoatburn of een gepersonatiseerde website. Urn deze functies rnocjelijk te maken lijn or aanvullingen op HTML nntwikkeid , PHP ASP ISP Coidlusion P1W Ilyper Text Preprocussu, :z..i..j Dc betekeri is van de a fkoi Ii ig Pill heeft in de 1 oi>p van tie t i jd een veraridori ny ondergaan in nor ste instant to hot ekonde het ‘Personal Home Page Tools’, maar tegenwoordig wordt meestal de aandui cling PHP: HyperText P1 eproc essor qehi ul kt . A Do syntaxis (si [odour en volgorde van do regels) van PHP vor mont uveieenkomsten met die van C, Java en Pen. Bij PHP voert cen preprocessot eerst een bewerking uit op eon wehpagina voordat liii naar de browsei wordt gestuuid PHP doninienton hebben meestal de extensie .php. Hoofdthk 1 Aanvuliinq op HTML Hoewel PHP een adovulting is op HTML, mekt de bezoeker van een website met dat er naast HTML ook PHP in de website is verwerkt. Het resultaat dat naar de browser op de client wordt gestuurd, is namelijk een HTML-bestand. Vaak komen de gegevens uit een database Err PHP is goed in staa gegevens nit een ddtabdse te halen en deze op te nenren tussen de HTML-code die naar de client wordt gestuurd. Dit is ook het dynamische aspect van PHP: afhankelijk van wat de internetgebruiker wiL, worden verschillende gegevens uit de database gesetecteerd. Denk hijvoorbeeld aan het gebruik van een zoekmachine: zonder een programmeertaal als PHP zou dit niet mogeLijk zijn. Op basis van de ingevoerde ‘ -c. • jr I!IL!1 — L1 zoekterm wordt het overzicht van websites samengesteld, afkomstig uit een immense database. Omdat PHP een aanvulling op HTML is, is kennis van HTML voor de PHP-programmeur een vereiste. PHP is ontwikkeld als open-sourceproduct. [lit betekent dat de broncode vrij is verspreid en aangepast mag worden (net. als bijvoorbeeld Linux). 0 opensoUtte PHP in de praktijk Hier zie je een HTML-code waarin een ‘PHP-blok’, gemarkeerd door de <.ht.ml <head> <!— voorbeeld 2.1 Bestarrdsnaani: voorbeeld_0201.php —> ctitlehet eerste PHPscript</tit]e> </head> <body) <h?>De huidige datnm</h?> <?php $vandadg getdateO; $ruaand $vandaag[’rnonth’]; $vandaag[’mday’ I: $dag P1 ho “Hal in Het is vandaaq $clag $rnaand” <Fir> /body </htrnl> Deze HTML rode en PHP blok zien er op de webpagina in nit O Book “ - tool, ‘ ‘o,oo,d R.ood I)e huidige datum EaJio Done El, Jon 9 Ap,l o aol, 00 bol, 000oo Bookoooko B 10 “,‘ is opgenomen: Module 4 Programmeren Programmeertalen — Hoo&htk 1 1.6 Vragen en opdrachten 1.6.1 Open vragen 1. Noem de vhf categorieen waarin programmeertalen kunnen worden ingedeeld en geef elke categorie één voorheeld. van 2. a. Wat is een procedurele programmeertaal? b. We[ke catecjorie talen ontwikke[de men aLs reactie up de procedure[e talen? 3. Assembleren betekent ‘samenste[len’. Wat wordt door een assernbleertaal samengesteld? 4. Geef twee voorbeelden van objecten met hun bijbehorende attributen, methoden en klassen. 5. Noem de drie onderde[en waaruit Java bestaat en geef een korte beschrijving van elk onderdeel. 6. Waarum wordt VB .NET p[atformonafhanke[ijk genoemd? 7. Wat is het verschil tussen client-sided en server-sided programmeertalen voor het web? 8. a. Waarvoor wordt HTML gebruikt? b. Wat is de functie van JavaScript? c. Wat is de functie van PHP? 9. Waarvoor dient de techniek CSS? 10. “Het ontwikkelen van informatiesystemen beslaat een breed gehitid. Je bent er niet met ahleen maar wat programnieren.” Leg uit wat ei met deze uitspraak bedoeld wordt. 11 Leg in je eigen woorden ml wat machinetaal 1.? Waai nm is. heel een taal van tIe tweede general ie onk wel cen mat hinegenrienteerde taal? 13. Noem vier voorbeelden van prograrnmeerta[en van de derde generatie en geef van elk én of meer kenmerken. 14. Meestal zijn programma’s die geschreven zijn in een [agere taal sneller leg uit hoe dit konil 15. Wat is het vuurdee[ van werken met procedures in 16. Wat is de taak van cen compiler 17, Welke verschil[en tussen HTML en XHTML ken je? ccii prugidmnnleer[dal? ModuLe 4 Programmeren ProgrammeertaLen — e4L)ofash.k 1. 18 avaSu pt munqeert als nil breiding op H ML Het reageer I op events Vrl hi ‘knrri dit ? 19. Hieronder lie je enkele instruities uit programma’s, Geet hij e[ke instrutie aan bij welk type prugrarnmeertaal hij hoorl a. 1011 11010 b. c. d. e. If Apple = Pear then goto Fruitcake; MOV 20h,A Window.close GROUP BY JArtiestj 1.6.2 Meerkeuzevragen 1. Hieronder staan twee heweringen’ I. Elk type processor heshikt over een spe ifieke instructieset orn rnachine ode te lezen. II. 31) gebruik van een assernbleertaal is een speciaal vertaalprograrnma nodig urn de programmacode om te zetten in nullen en enen. a. len II zijn juist. b. I is juist en II is onjuist. c. Irs unjuist en Ills juist d. I en II zijn beide uniuist, 2. Wat is a. Die b. Die c. Die d. Die 3 Welke van de onderstaande uitspraken over PHP is joist? a. PHP is eon opmaaktaal voor het web. h. Met do kumst van PHP is HTML ahteihaald. c. PHP mdc wnrdt opgenornm’n in ceo blok HTML ode d. PHP werkt alleen maar sarnen met de open sourebrowser Mozilla de taak van de Java Virtual Machine? zet bytecode orn in machine-instructies. levert programmacornponenten voor het ‘bouwen van programma’s. zet bytecode urn zodat deze gesihikt is vuor rnobiele telefoons. vurrut ne si hakel tussen do inn liinoi ode en hot best niiingssysteern 4. VVelke talon iijn prublorogorin hi a b. c. d. . talon van do vierde groeialin objet tgoor inteei de lalen talon van do derde generatie hogere prograrnmeertalen Hieronder stran steeds drie talen gerrnemd In welk geval gaat hot oni drie objectgeorienteerde talen? i C Visual I3ash Java b. C-n n, Delphi, HI Ml I CI,jdvd,C d. Pascal, Delphi, Baso Programmeren Module 4 ProgrammeertaLen — Hoofs& a ti. Het verschijnsel ddt objecten, altributen en/of int’thodeii vn andere, veigelijkbaie obje ten ku nnen overnemen, wordi aangeduid met de term a. overerving b. inkapseling C. classificatie d. attribuuttoekenning 7. Wat is VBA? a. de objectgeoriënteerde opvotger van Visual Basic b. een derde-generatietaat, ontwikkeld voor administratieve toepassingen c. een bibliotheek met objecten die ktaar zijn voor gebruik d, een versie van Visual Basic die ingebouwd is in de populaire Office pakketten 8. Welke technieken zijn vergelijkbaar met PHP? a. ISP en avaScript b. HTML en XHTML CSS en VBScript d. ASP en Cotdfusion 1.6.3 Korte opdrachten 1. Sommige talen maken bij het omzetten van de taal in machinecode geen gebruik van een compiler, rnaar van een interpreter. a. Zoek uit wat het verschit is tussen deze twee vertaatprogramma’s. b. Noem enkele talen die geInterpreteerd in plaats van gecompiteerd worden. c. Wat zijn naar jouw mening de voor- en nadelen van het gebruik van een interpreter? 2. Zoek nit wat de verschillen zijn tussen Ct en C#. 3. De naam van de programmeertaal C geeft aan dat er twee voorgangers waren. Zoek uit waarvoor de taal A en de taa( B werden gehruikt. 4. PHP is afgeleid van de scripttaal Pen. a. Zoek uit wat Pert is en waarvoor het dierrt. Beschrijf enkete kenmerken van Pert b. Wordt Pert nog steeds toegepast? Zn ja, waar? I ‘Hoofc&s+uk 1.7 Samenvatting Programmeerta[en kunnen in vijf hoofdcategorieën ingedeeld worden: • machinecode • assembleertalen • hogere programmeertalen • vierde-generatietalen • objectgeoriënteerde taten. Machinecode is de programmeertaal van de eerste generatie. De instructie’s beslaan uit mitten en enen. Deze taal wordt tot de [agere programmeertalen gerekend We zeggen ook wet dat dergetijke talen dichter bij de processor’ staan. Bij assemb[eertaten wordt er gebruik gemaakt van gemakkelijker te onthouden lettercodes in plaats van nullen en enen. Assemb[eertaal behoort tot de tweede gene ratie. Bij hogere programmeertaten (vanaf de derde generatie) worden de instructies door een compiler vertaald naar machinecode. Ze worden ook wet procedure[e talen genoemd. Bekende derde-generatietalen iijn COBOL, C en Pascal. De meeste ta[en van de vierde generatie zijn nret-proceduree[, maar meer prob[eemgericht. Ze leveren vaak onhandeLbaar grote programma’s op. Met vierde generatiehuLprniddelen kan men wet sne[ een toepassing of een bepaald gedeelte hiervan genereren. Bij objectoriëntatie worden gegevens en code gecombineerd in objecten. De code wordt in gang gezet naar aarr[eiding van boodschappen van andere objeten. Belangrijke hegrippen hij objectoriéntatie: objecten (‘objects’), klassen (‘classes’), methoden (‘methods’), inkapse[ing (‘encapsulation’) en overerving (‘inheritance’). b Voordelen van objectoriëntalie zijn • kortere ontwikkelingstijd door heigebruik van programmamodules • coruplexere problemen zijn te hanteren door betere orgarrisatie van progianimacode • het onderhoud van programma’s is eenvoudiger omdat duidelijker is wat elk deel van de software (Joel • betere uitwissetingsrnogelijkheden (tool vastqestel(le standaards Praktische problernen bij het gebruik van 00 zijn. • de moette orn procedurele programma’s urn te zetten naar OO-prograrnma’s • de geringe beschikbaarheid van programmeurs met vo[doende OO-kennis • het ontbreken van voldoende hulpmiddeten die programmeurs kunnen ondersteunerr bi hun werk De taal C is een derde ge’neratietaal Zijil objectgeonienteerde nakomeling is Ce + ava is een platformonafhanketilke OOprograrnmeertaal, die bestaat nit drip onderdeten Delphi is ceo vrsue[e 00programmeeromgeving, gebaseerd op de taa[ Pascal. Visual Basic NET is een prograrnmeertaat err omgeving van Microsoft, die kenmerken van objet tonientatie bevat C# is ceo programnieertaal van Mk-rosoft die keomerken van C, C en vooral lava heeh .- .. .. . Programme ModuLe 4 pogrammeerta: Hoofdshk 1 I3j programmeertalen voor het web maken we onderscheid tussen ciientsided en sives sided talen. De cci ste woiden op de Computer van de gebroiker uitqcvocrd, de laatste op de server waarop de gevraagde website zich bevindt. C bent-sided: opmaaktaien (HTML en XHTML) en scriptingtalen (waaronder javaScript). Server-sided: PHP en ASP. ModuLe 4 — Programmeren HOOFDSTUK 2 PSD’s maken 2.1 Inleiding PSD I!Ii&II Er zijrr verS( hilleride tetlinieken waaimee je stireirras kurt irraken Ecu daarvan is het PSU, iforvo&e PSD Programma Structuur Diagram Een PSD staat rink hekend under de naam Diagram. . Een PSD is een schema dat de samenhang de structuur van instructies binnen een programma weergeeft, PSD’s bestaan ult: — — rechthoeken driehoeken tekst. H rro’° 4 Ls SEruL0oJ100 \/001 ?St”s Probleemoplossing Je moet PSD’s beschouwen aLs voorbereiding op het coderen in een programmeertaa[. Ze zijn programmeertaalonafhankelijk. Bovendien geLden er geen strenge taalregels; de probLeernoplossing staat centraaL. We spreken in dit verband wet van ecu algoritme: een set opdrachten orn een berekening of een handeling stapsgewijs in een bepaalde volgorde ult te voeren. In de informatica slaat het meestaL op lets wat de computer uit dient te voeren. ifornw&t Voor alle duidelijkheid: het schrijven van opdrachten in een programmeertaal is en ongeveer de laatste stap in hel. systeernont,wi kkel i ngspr u es Eerst moet. de programmeur op een gestrrrclureerde wi jze de DPI 0551 rig van can pruhi eem bederiken PSD’ s vormen hi erbi j een hu 1 pmi ddel Basisstructuren Bil P50’s iijn er naar drie basisstrLlturen. Als je eleze up de juiste mauler combinee,t, kim je hiermee elk willekeurig programmeerprobleem oplossen. Dc basisstructuren zijn: sequentie (‘opeerivolging’) iteratie (herhaling’) selectie (‘keuze’). Hoofas 2 2.2 Sequentie Sequentie is de eerste basisstructuur van een PSD. Sequentiële opdrachten warden van boven naar beneden één voor één uitgevoerd: opdracht 1 opdracht 2 opdracht 3 opdracht 4, enzovoort Voorbeeld: ei bakken Laten we uitgaan van een eenvoudig probleem: het bakken van een ei. Dit ziet er in een PSD zo uit: vuur aansteken pan op het vuur zetten een halve eetlepel boter in de pan doen boter laten smelten ei breken en in de pan doen ei gedurende drie minuten bakken vuur uitdoen Hoe gedetailleerd een schema is, hangt at van de gebruiker. lemand die al vaker jets gekookt of gebakken heeft, za[ vo[doende hebben aan de handeting your aansteken’, Voor iemand die dit voor het eerst doet, zouden we het schema zo kunnen uithieiden: pak doosje lucifers haal een lucifer uit dousjc strijk lucifer langs iijkant draai het gas open houd brandende lucifer bij het gas blaas lucifer uit Algoritme Het stapsgewljs aihandelen van een sequentle (of reeks), iiuemen we ceo algoiitme. Algoritmes zijii niet voorbehouden aan de informatica: je komt ze ouk tegen in de wiskunde en natuurkunde !I ModuLe 4 — Programmeren PSD s maken V HOOahk 2 2.3 Iteratie Vaak moeten in programma’s bepaalde onderdelen herhaatd worden. Dit herhalende proces noem je iteratie. Iteratie is de tweede basisstructuur van een PSD. Voorbeeld: ei bakken Stel dat er in de pan maar één gebakken el past. A[s je meer eieren wilt bakken, hoefje de eerste en de Laatste stap uit het schema niet bij elk nieuw el opnieuw te doen, maar (Ic tussenliggende stappen moeten wel voor elk ei uitgevoerd worden. In het sherT1a geefje dit aan door middet van een iteratie. ControLe vocraf en achteraf E zijn twee soorten iteraties: iteratie met controle vooraf iteratie met controle achteraf. We geven beide vormen als vo[gt weer. Zolang voorwaarde Herhaal actie Herhaal actie Controte voaruf. Totdat voorwaarde Controle ochteraf Voorbeeld: controle vooraf je kunt vooraf en achteralcontroleren of je het gewenste aantal eieren gebakken hebt. We aan even uit van dne stuks. 81) Lontrote vooraf krijg je dit PSD your aansteken pan op het V[JUI 7ettcn aantal gebakken eierrn isO zolang aantal gebakken eleren ongelijk aan 3 een halve eetlepel boter in de pan doen boter lalen snwlten ci breken en in de pan doen ci gedurende drie minuten bakkcn ci op bord leggen aantal gebakken eieren plus één your uildnen I Hoof& shk Voorbeeld: controle achteraf Bij (out role achterat krijg je dit PSD vuur aansteken pan op het vuur zetten aantal gebakken eleren is 0 een halve eetlepel boter in de pan doen boter laten smelten el breken en in de pan doen ei gedurende drie minuten bakken ci op bord leggen aantal gebakken eieren plus één totdataantal gebakken eleren gelijk aan 3 vuur uitdoen i iforvto\ Bij controle achteraf wordt de herhaling minstens één keen uitgevoerd. DIt is een verschil ten opzichte van de controle vooraf. l3ovendien wordt en herhaald tot de voorwaarde waar is, BiJ controle vonraf wurdt er herhaald tot de voorwaarde niet waar 2.4 is. Selectie De derde basisstructuur van een PSD is selectie Dit houdt in dat het piogrammaverloop athanketijk is van een bepaalde keuzernoge[ijkheid. Welke kant liet programma opgaat, hangt at van het antwoord op de vraag of er aan een bepaalde vooiwaarde is voldaan Is het antwoord ja’, dan gaat het programma bijvoorbee[d linksat, urn de ene serie opdrachten afte werken Maar is het antwoord flee’, dan gaat het programma de aiidere kant up, naai de andere sei Ic opdiat hten In een PSD geef je dii weei in een di ielioek en twee kolommen. In de erw kolnlT staat wat het programma moet doen a[s de voorwaarde wel ge[dt, in do andere als deze niet geldt Voorbeeld: ei bakken Ak je een el gaat hakken, kan het Ic s hema ziet ci 70 nit: fl your aansteken zijn dat het your niet meor aanqestuken Irneft te woiden tvuiruit?fl ModuLe 4 Hcdsh - Programmeren PSD’s ma ken 2 Nu is dit natuorlilk ceo heel eenvnudiq keuzevoorlweld. Hel s ook denkhaar dat er zich, your (Joel Kijk eens naar hel volende voorbeeld. nadat eeir keuze (Jemaakt is, weer een rrieuw keuiepr obleerri Voorbeeld: toegarrgsprijs In dit voorbeeld gaat om het bepalen van de toegangsprijs voor een pretpark. Do normale prijs bedraagt tien euro. Kinderen tot twaalf jaar en ouderen vanaf zestig jaar betaten de hetft. Er zijn dus twee keuzes te maken: vraag leeftijd leeftijd <12 nee leeftijd >=60 toegang is 5 euro ja toeqang is 5 euro nee toegang is 10 euro ‘ e vend toegang 2.5 Programmabeschrijving Je hebt nu voorbeelden gezien van de drie basisstructuren van PSD’s: sequentie, iteratie en selectie. Het lijkt missc.hien onwaarschijnLijk, maar met deze structuren kun je in principe de werking van elk programrna heschrijven, hoe ingewikkeld dat ook is. Dat komt doordat elke rechthoek van een structuur zeif weer uit andere structuren mag bestaan: In het gedeelte dat herhaald wordt, mag een keuzediagram voorkomen. De vakken van een keuzediagram mogen nieuwe keuzeir bevatten. Enzovoort. Deze structuur kun je (los zelt eenvoudiq verder uitbreiden: is het vuor oil? ja your aanrstekenr nec Let op. als JO eenrrnaal eon programma gesr.hieven hebt, mod je deze nog we[ goed controleren! 2.6 Het naLopen van een PSD Om inzicht to krijgen in do werking van je PSD en orn to controleren of je shema joist is, is het betangmijk dat e de opdrachten naloopt, waarhij je do opdraditen stuk voor stuk uitvoert. Dit heeft uiteraard atteen zin als je dat nauwkeuriq doet. e moet daarhij alle opdrahten in do juiste volgorde uitvoeren en cike verandoring in waardon op papier bijhoriden. (Denk bijvoorheeld aan [ret aarrtal to hakkon eieren.) I HoofashI.. 2 Ocggetuiqerwerstag ion (ontrole wordt wet een ooggetuigenverstag genoernd. Het doel is tweeledig Als de werking van het P50 bekend is controteer je of het PSD juist is. Als de werking van het P50 onbekenci is onderzoek je wat bet PSD doet. Om de controle ult te voeren is het niet nodig dat je de werking van het PSD at van tevoren doel doorgrondt. Van het voorbeeld dat we nu gaan bekijken, weten we nog niet wat het ervan is. VoorbeeLd: de controle We hebben dit PSD (het is een vrij eenvoudig P50, maar het gaat om het principe) druk af ‘Dit bestand bestaat al. druk at ‘Toch onder deze naam opslaan? (ifN) wacht op toetsiridruk totdat een J of N is ingedrukt J? __sla het bestand op j wat op het Je ziet eerst twee sequentie-opdrachten. Het blijkt dat het hierbij gaat om jets scherm afqedrukt moet worden: is een waaishuwjng dat een bestand al onder een bepaalde naam op s hijfaanwezig h[ijven. moet de vraag of deze naam desondanks gehandhaafd ware Daaronder staat een iteratie met een (ontrole achieraf. Het programma moet als het herhaaldelijk’ wachten totdat de gebruiker een 1 of een N indrukt. programma Het P50 eindigt met een setectie: drukt de gebruike op de j-tuets, dan kan liet de dat betekent Dit niets. er geheurt gevallen andere In alle opslaan. overgaan tot te slaan get)ruikel uitsIuiIen(1 op de I kan drukken urn het hestand onder deieIfd ni-un op wordt oveisthreven ongewild Dit is eon methode om te voorkomen dat bet bestand I Hoofash I 4 . 2 2.7 Vragen en opdrachten 2.7.1 Open vragen 1. a. Wat betekent de afkorting PSD? b. Noteer in je eigen woorden wat de functie van een PSD is. c, Noem de drie basisstructuren van een PSD en geef aan hoe deze worden afgebee[d. 2 Bedenk ninirnaal viei situaties waariii je behoette hebt aan een aLgoritme. 3. Dc a[goritme om van een probleem tot een computerprogramma te komen bestaat uit de onderstaande vijffasen. Zet de letters van deze fasen in de juiste volgorde, m: maken van de sourcecode a: analyse p. prob[eeinstelling 5: schematische oplossing C: compileren 4. Hoe noem je in PSD jargon a. een herhaling b. een opeenvolging c. een keuze 5. Horen PSD’s meer bij derde-generatietalen of bij OO-ta[en? Motiveer je antwoord. 2.7.2 Meerkeuzevragen 1. We[ke uitspiaak is joist? a Bij ceo herhaling net i ontrole voot af is het rnogelijk dat de bjbehoi ende stappen nooit worden uitgevoerd. b. Bij een herhaliiig met controle arhterat is het moqelijk dat de bijbehorende stappen nooit worden uitgevoerd. c. Ilci haling met ontrole vooraf heeft hetzeltde effect ats heihaling net controle achteraf d. Herhaling met controle vooraf geeft een betere siructuur aan het programma. 2. De volgende dde stappen maken dod uit van do algor lime om van eon pmobleem tot eon programma te komen. Kies de juiste votgorde. a. :ompileren—probleemstelLing—maken van de sourcecode Li sc hematisi he oplrssmg—compileren maken van de sourcecode pmobIeernsteIIing-maken van de sourcecode--compileren d. ana[yse—schernatische oplossing- maken van de soon erode Hooc&shtk 2 3. Hier vnlgt een PSD. r AANTAL MAAND =1 zolang MAAND 12 OMZ(MAAND) > GEM IDDELDE nee ja AANTAL MNTAL i- 1 MAAND ÷1 MMND druk af AANTAL Wetke basisstructuren bevat dit schema? a. iteratie en setectie b. sequentie en iteratie C. selectie en sequentie d. sequentie, selectie en iteratie 4. Hieronder staan de onderde[en uit een PSD die de twee soorten iteratie voorste[[en. We[ke toe[ichting is hierop van toepassing? — a. b. c. d. Schema Schema Schema Schema A A B B Herhaal actie voorwaarde Herhaal actie stelt stelt stelt stelt — iteratie iteratie iteratie iteratie met contro[e met (out rote met cont role met controle voorwaarde voorat voor; het in te vu[[en woord is totdat’. achterat your; het in te vullen woord is tutddt. vonraf your; het in te viilten woord is ‘tntdal’ ahterafvoor; het in te vullen woord is ‘totdat’. Hoofashk 2 2.7.3 Korte opdrachten i. Bj het volgende PSI) worcit het totaal van dertien in te voeren getat[en berekend. Totaal krijgt ats waarde 0 Aantal_gehad krijgt als waarde 0 Zolang aantal_gehad ongelijk is aan 13 Vraag getal Verhoog aantaLgehad met 1 Tel bi] totaat de waarde van getal op Druk de waarde totaal af a. Waarom is de atlereerste opdracht ‘Totaal krijgt als waarde 0’? b. We[ke wijziging moet je in het PSD aanbrengen zodat het gemiddelde wordt afgedrukt? Wat is de waarde van aantal gehad’ als het totaal wordt afgedrukt? d. Bouw dit PSD om tot een PSI) met contro[e achteraf. . 2. Bij het volgende PSI) wordt vooraf gevraagd hoeveet getatlen worden opgegeven. Het is echter nog niet at. Druk af: “Hoeveel getalten zijn er? Vraag aantaLgetallen Totaal krijgt als waarde 0 Aanta[ gehad krijgt als waarde 0 Druk de waarde totaal af 3. Pas het PSI) van opgave 2 7odanig aan dat niet wordt geaaepteerd dat ‘aantalgetalten’ ecu waarde krijgt < 0. 4. Speelt bet maken van een PS[) nok ceo rot bi programmeren in PHP? Motiveer je antwoord 5. Schrijf ceii atgoritrne voor het zetten van koffie. 6. Srhrijf ecu PSI) voor de activiteit tanden poetsen’. Maak het PSI) iodanicj dat iemand niet met ‘slimme’ vragen komt, zoals: ‘Wat doe je a[s de tandpasta op is?” 7. Maak een ooggetuigenverslag en your getat B de waarde 25. van bet votgende PSD. Neem your getat A de waarde 8. Volgens sommigeri is de techniek van de PSDs niet meer relevant your 00 pwglannnelen. Ben je bet hierinee eens? Motiveer je antwoord. in L Hoodshk 2 ModuLe 4 — Programmeren PSD’s maken 2.8 Samenvatting Een aLgoritme is een set opdrachten am een berekening of een handeLing stapsgewijs in een bepaalde volgorde uit te voeren. Een PSD (Programma Structuur Diagram) is een schema dat de samenhang van instructies binnen een programma weergeeft. Een PSD bestaat uit rechthoeken, driehoeken en tekst en is te beschouwen aLs voorbereiding op het coderen in een program mee rtaa L. Bij PSD’s zijn er drie basisstructuren: sequentie, iteratie en selectie. Sequentiële opdrachten warden van boven naar beneden één voor eén uitgevoerd. Bij een iteratie worden bepaaLde opdrachten herhaald; er zijn twee soorten iteraties: iteratie met controLe achteraf en iteratie met controLe vooraf. Bij een se[ectie sp[itst het programmaverloop zich op grand van de vraag of wel of niet aan een bepaalde voorwaarde is voldaan. Het achterat nalopen van een PSD is noodzaketijk om iniicht te krijgen in de werking ervan en am na te gaan of het schema juist is. Dat nalopen wordt wel een ooggetuigenversLag genoemd. ModuLe 4 HOOFDSTUK — Programmeren 3 Imperatief programmeren 3.1 Stapsqewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurete programmeertalen. Imperatief programmeren is het stapsgewijs in code omschrijven wat een programma moet doen, net als een algoritme of een PSD. 3.2 If Then Else BiJ imperatief programmeren omschrijf je in een code stapsgewijs wat een programma moet doen, net ats een a[goritme en PSD. Wanneer een PSD selecties (keuzes) bevat, deeD de Din van het prograinma zich op met de verschiliende antwoorden op het vraagstuk. Denk nog maar even terug aan dit s hnna fl etvutfl vuur aansteken Als je imperatief gaat programmeren, krijg je veet met zulke keuzes of voorwaardes te maken. Hiertoe zijn erde ‘if then’ statements en de ‘else’-statements. VoorbeeLd: toegangsprijs We kijken weer even naar het voorbee[d dat de procedure beschrijft voor het bepalen van de toegangsprijs voor een pretpark - ALS leeftijd K 12 DAN toegany : S euro ANDERS ALS leeftijd >= 60 DAoegang ANDERS toegang EINDEALS [INDLALS 5 euro := 10 euro Decode wordt sequentleet, van boven naar beneden afgewerkt. Je ziet dat er aI[ertei keuzes gemaakt moeten worden. Uiteindelijk is het resultaat dat mensen jongerdan 12 en nuder dan, ofnetzooudalsbo,voordetoegang5euro hetalen; de overige leeftijden betalen 10 euro. Niet elke If heeft een ELse, maar weL eLke Else een If Het if-statement is niet onlosmakelijk verbunden aan het else-statement het is flint noodzakelijk dat elke if-statement ook cen else heeft. Aan de andere kant hoort elke else- statement wel bij cnn if. Programmeren ModuLe 4 Imperatief programmeren — Hoofc&sè 3 Wijze van weergeven Merk op dat alle operaties binnen een statement jets naar rechts zijo geplaatst. Dit principe noamen we inspringen. in de meest.e programmeertalen zal het programme onk werken al s je dii niet doet, maar het is belangrijk om het wet te doen, omdat de code er’ overzichtelijker van wordt. -- -— — 3.3 Lus Wanneer een programma een iteratie (herhaling) bevat, zeggen we ook wel dat er sprake is van een [us (of ‘loop’ in het Engels). De operaties die in een [us zitten worden name[ijk uitgevoerd zolang aan een bepaalde voorwaarde voldean wordt. De meest bekende is de whi[e-lus, hieronder aangegeven als ‘ZOLANG. Hier zie je een voorbeeld van een lus: ‘/oorbe.ela getal :‘ 0 ZOLANG getal < 3 getal : getal -f 1 EINDE-ZOLANG In dit voorheeld wordt een getal net zolang opgehoogd totdat deze niet meer k[einer is dan 3. Met andere woorden: de [us stopt zodra het geta[ 3 is geworden. Oneindige Lus Wanneer de voorwaarde van een while-lus nooit onwaar wordt, zal de lus niet vanzelf stoppen (het programma ‘b[ijft hangen’). Dit noem je een ‘oneindige his’. Meestal is dit niet de bedoelincj en heeft de programmeur een fout in de voorwaarde gernaakt, of ergens anders, of allebei. 3.4 Booleaanse expressies In de eerder gegeven voorbeelden heb je (misschien onbewust) at kennis gemaakt met Booleaanse expressies. len Booleaanse expressie is een expressie die de waarden true nf false can ken nernen. De naam Buolecans kumt van de wi skuiidi ge en f I losoot George Boole die het redeneren in waarden ci s true en false heeft geintroduceerd in de 19e eeuw. . II — — II I Module 4 Programmeren Imperatief programmeren — 3 be voorwaarde van een f-statement is een Bouteaanse expressie. Als die de de waarde bue heeft wordt de direct under I iggr ode ode tiitgevoerd en niet (IC code under de else als de else aanwezig is. Als de Booleaanse expressie de waarde false heeft, is het andersorn. Symbolen BooLeaanse Logka De symbofen in onderstaande tabef worden vaak gebruikt in de Booleaanse expressies van program m ee rta Len, SymbooL Naam > groter-dan >= - Gebruik x> y is true als x groter is dan y groter-dan of-gelrjk-aan x >= y is true a[s x groter is dan y of net zo groot - k[einer-dan y <y is true als x k[einer is dan y k[einer-danof-gelrjk-aan x not not not x is true ats x false is en andersom; de Booleaanse waarde van x wordt gemnverteerd and and x and yistrue als x en y beide true zijn or xor y is true als x kleiner is dan y of net in grout - <= - - - or x or y is true a[s x ofy true is (of a[s ze aHebei true zijn) exclusive or r x xor y is true als x of y true is (en niet als ze allebei true zijn) Misschien had je het aL opgemerkt: de code van de toegangsprijs van het pretpark kunnen we met deze logica korter onmchrijven; ALS leeftijd < 12 Ot leettijd )= 60 DAN tuegang 5 euro AND E RS :-- toegang E INDE-Al S 10 euro Wijze van weergeven Bij het opste[lerr van een BooLeaanse expressie moet je zorgvuldig te werk gaan. Een verschil in de volgorde van de expressie kan bijvoorbeeld heLe andere resultaten op[everen. Het is daarorn veilig em delen van je expressie te vooriien van haakjes: ( en )‘. Door deLen tussen haakjes te zetten, geet je aan dat deze als geheel geinterpreteerd moeten wo rde ii - HoofashLk 3 Waarheidstabet De voiçjende expressie. \(x EN y) OF z is niet hetzelfde als: x EN (y OF z) Je kunt dit gernakkelijk zien door voor deze expressies een waarheidstabel te maken. Dit is een tabel waarin je aangeeft wanneer de expressie true of false is bij welke waarden. Hieronder zijn van beide expressies de verschillende waarheidstabellen weergegeven. xEN(yOFz) I Y true true true (xENy)OFz x : Iaardevanexpressie y true true 4true true true true jalse true true false true true true false false false - - . .- - -.-. false I true Waarde van expressie true true true false true true H true false true true false false faLse false true true false false true false false faLse false true faLse false false - ... true true .. false false false false true true false false false true false false r - —________ false false Meestal worden in waarheidslabellen de termen true en false vervangen donr respertievelijk I en 0. flit kan zoTh tahel een stuk beknopter maken, 3.5 Variabelen Een variahele is een elen,r’nl dat een bepaalde waarde aan kan nernen Eon voorbeeld van een variabele is de toegangsprijs van een pretpark. De waarde die een variabele kan hebben, is afhaiikt’lijk van hel type van de variabele. Er ijn veishiLlerrde typen die voorkornen in verschillende programmeertalen, rnaar doorgaans zijn de volgende typen in eder geval aanwezig. Geheel getaL Dit wordt een integer cjenoemd, vaak atqekort tot nt. ‘42’s biivoorbeeld een heel getal. Module 4 - Programmeren Imperatief programmeren kommagetat Dii wordt vaak en double of float gennemd Bijvoorbeeld 109,75 In veel programmeertalen moet je deze getallen op zn Lngels noteren, met een decimale punt. Karakter Dit noemt men een character of kortweg char (spreek nit kar). Een karakter kan elk ANSI-, EBCDIC- of Unicode-teken zijn, bijvoorbeeld ‘$‘. BooLean Dit wordt ook wel bool genoemd (Neder[ands: booelaanse). Een bootean kan alteen maar true of false zijn. Sommige programmeertalen (waaronder C en C++) taten hier ook gehele getallen in toe, waarbij 0 staat voor false en alle andere getallen your true. Een apart soort variabele is de string. Dit is een reeks karakters, bijvoorbee[d ‘tijger’ of ‘$2,5o’. 3.6 Arrays De meeste programmeertaten 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 getatten maken. De variabelen van een array zijn genummerd; het voignummer noemen we de index. In veel programmeertalen begint de indexering van een array altijd met 0 (en niet met 1). Voorbeeld De rode rij_van_getaHen [32. 59. 825, 904?] De indexering: na n_geta Hen index: 0 1 2 3 waarde: 32 59 825 9042 37 Functies Je kunt een funciie (een verwant hegnip is proredure) gebruiken als je een hepaald stuk code vaker moet gebruiken of als e een programma overzichtelijker wilt maken. Met een funclie Inddk je ceo subprogrammaatje’. A[s in het programma de naam van een functie staat, wordt daar liet subprograrnmaatie dat erbij hoort, uitgevoerd. We noemen dat het aanroepen van de tuiu tie I Programmeren Module 4 Imperatief programmeren — Hofcishtk 3 Van een tunctie macten de volgende zaken wcnden qedefinieerd Denaam .1 EWe functie moet een unieke naam hebben. Sommige programmeertaten Eaten toe dat namen van functies vaker voorkomen, zolang de parameters verschilten. Dit principe noem je overloading. 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 nut of meer parameters hebben. Hetreturntype Dit is het waarde-type dat de functie na uitvoeren oplevert. Fen functie kan rnaar eén returntype hebben. Deze waarde wordt op de plek van de aanroep verder gebruikt. De body Dit is de code die uitgevoerd wordt als de functie aangeroepen wordt. Voorbeeld In dit voorbeeld wordt your elke variabele, het type van de variabele gespecificeerd (net als bij de meeste programmeertalen). mt getal2) lot optelling := getan + getal2 return optelling sorn(lnt getdll. mt - Dc functie ‘som’ telt twee getalten van het type ‘mt hij etkaar op en geeft het resultaat (wat hier de naam ‘optelling’ heeft gekregen) als ml terug. De termen ‘getall’ en ‘getal2’ zijn de parameters en warden gescheiden door een komma. We kunnen flu naar deze functie refererun, of andeis gezegd: we kunnen deze functie aanroepen en het resultaat in cen andere variahele stoppen Bijvoorbeeld tnt getalA : som(10, 20) ml; getaiB :- snm(getaIA, 70) sorn(som(S0, 50), getaiB) mt get.alC Ats bovenstaande code oil gevoerd zou worden, iou na atloop getalA do waaide jo hebben, getatB 100 en getaiC 200. je iiet: na een aanroep van eerr tunctie kan het resultaat precies zo worden behandeld ats het returntype van de lunctie. In dit gevat is het returntype van de tun tie ceo integer en kun je dus dit resultaat direct weer gebruiken, zoals op de derde regel hier oak gebeurt. 3 3.8 Parameters en argumenten We hebben eerder aangegeven dat getali en getai2 de parameters tim van do tunctie ‘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 herhalen het voorbeeld uit de vorige paragraaf: oorbeeLcl mt getalA som(10. 20) som(getalA, 10) tnt getaiB mt getaiC : som(som(50, 50), getaiB) Ais bij het aanroepen van een functie een variabete meegegeven wordt zoats in ons voorbeeld op do tweede rege[ het geval is dan wordt niet de variabele ze[f meegestuurd, maar de waarde van de variabele. Omdat de waarde wordt meegegeven, verandert de variabeie ze[f dus niet na het aanroepen van een methode, ongeacht wat do methode met de parameters doet. - We pruberen dit in het volgende voorbeeld te verduide[ijken. Voorbeeld We definiëren eerst een functie (die eigenlijk niets zinnigs doet): /oorI,da zornaarEenrunctie(mnt eenGetal) : eenGetal : 999 return 0 mt Vervolgens wepen we doze an rnijnEersteGetal mijnTweedeletal 5 : zomdarEenFunctie(mijnEerste6etdl ) Na het zogenaamd uitvoeren van deze code zal rnijnEersteGetdl nog altijd de waaide 5 hebben en mijnTweedeGetal de waarde o. I! ModuLe 4 Programmeren Imperatief programmeren — Hoofc&hLk 3 39 Void AILe voorbeeldfuncttes tot nu toe hadden een returnwaarde, namelijk een nt. Maar een functie hoeft niet per se een returnwaarde te hebben. Dat geef je aan met het returntype void. Void is eigenlijk geen variabele-type, maar is eerder cte afwezigheid van een waarde. Lettertijk vanuit het Engets vertaatd betekent void dan ook ‘Leegte’. 1-ileronder is een voorbeeldfunctie zonder returnwaarde gedefinieerd: \ oorbe.d 1 ‘v zegHallo() void print(”hallo”) Deze functie heett geen parameters en geen returnwaarde. Bovendieri wordt er een andere functie aangeroepen met de naam ‘print’, waarbij een string ats argument wordt ineegegeven. 310 Syntax De syntaxis (Engels: syntax) is de grammatica van een programmeertaal. Hij beschrift hoe de code er in een bepaaLde programmeertaa[ ult moet komen te zien, wat de grammatica[e regels zijn. E[ke programmeertaal heeft een eigen syntax, maar sommige programmeertalen hebben onder[ing veei syntactische overeenkomsten, zoals C, Ct )ava, C#. De reden dat veel programmeertalen een overeenkomstige syntax hebben, is urn het , programmeurs makkeLijker te maken een andere taa[ te leren. ( t/oorbd4 tnt sorn( tnt getal 1, I itt getal 2 return getall + getal2; Vonrbeeld van een functie die mu werken in C, C4÷, lava en C# .,.LIyJ 3DNIARK FUfUR ZMAPK System SLtt.,q 0—ST.,’, 0—. 0s i.,’, — mJT0-, 2,’2 flK. ,,,..o .c,j,a.2_,m0-,o2to,’ .569 04] I 0-°- -‘ — -I ‘J 4ashtk 3.11 Vragen en opdrachten 3.11.1 Open vragen 1. Wanneer zal van een e[sestatement de inhoud worden uitgevoerd? Geef de waarheidstabet van de volgende expressie: x OR (NOT y). a. Noem de Engetse namen van de verschi[lende typen variabelen die je kent. h Wat valt je op als je de string met de lijst vergelijkt? 2. a. Welke eigenschappen moet je van een functie of procedure definiëren? b. Wat is het verschil tussen een parameter en een argument? 3. Leg in je elgen woorden tilt wat syntax betekent. 3.11.2 Meerkeuzevragen 1. Welke van onderstaande beweringen over Iijsten is niet waar? a. De eerste waarde van een [ijst staat a[tijd op index o. b. Een [list heeft een volgorde waarin de wrardes gerangschikt zijn. c. In één [list kunnen verschillencte waardes worden opgesLagen van verschiHende typen. d. Een [ijst wordt ook wel array genoemd. 2 Bekijk dii voorbeeld: mt a jet b tnt c 2; — 4; 6; vermeriigvuldig(int x, mt y) : mt rei.urn x * y c :=vermenigvuldig(a, b) Stel dat deze code nit gevoerd iou worden, welke waardes zouden dan correct zijn nã het uitvoeren: a. xis2,yis4encis6. h. a is 2, b 1s4 en c is 8. c. bis4,yls4encis4. d aIs2.bis4encis6. 3. We[ke van onderstaande beweringen over lussen is niet waar? a. Van een lus worth de boo[eaanse expressie herhaaldelijk gecontroleerd, b. [en lus is vergelijkbaar met tie iteratie van een PSD. c. [en ander woord voor Ins is loop d. Bij eec or’ieirrdige [us wordt niet aan de booleaanse expressie voldaan Module:- progr:rnrnere. Hoofash*tr 3 De 4. Van de voqende hooleaanse expressle zIJn de operatoren vervangeil duot ijleis. waaiden voor x en y zijn x = Ii tie, y false Welke operalnien kunrwn hier stain urn de expressie de waarde true te laten zijn? x 1 y 2 3 (x 4 y) a. b. c. d. 3.11.3 1=XOR,2=AND,3=OR,4=XOR 1=OR,2AND,3NOT4AND 1=AND,2=AND,3=NOT,4=AND 1=OR,2=XOR,3=NOT,4=AND Korte opdrachten 1. 2. Zoek ten minste vijf syntactische regels voor de programmeertaal java en beschrijf deze kort in je eigen woorden. a. Schrijf zef code voor het zetten van koffie. Maak hierbij gebruik van variabelen, ten minste eên lus en ten minste één functie. b. Beschrijf vervolgens stapsgewijs de werking van jouw code. Geef hierbij onder andere aan welke variabefen op welk moment welke waarde hebben.