Leren module 4

Download Report

Transcript Leren module 4

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.