Inhoud: Overzicht van de methode Algemene informatie Inhoudsopgave deel 1 Voorbeelden deel 1 Inhoudsopgave deel V Voorbeelden deel V Inhoudsopgave deel E Voorbeelden deel E ENIGMA De Stichting ENIGMA Online biedt haar gebruikers een database, gevuld met een curriculum dekkende hoeveelheid leermateriaal voor het vak informatica. Om toch enige lijn te houden in al dat materiaal, gaan we uit van de volgende onderverdeling: In het kernprogramma komen de volgende onderwerpen aan bod: Informatieverwerkende systemen Elementaire bewerkingen Hardware Visueel Programmeren met Java Maatschappelijke aspecten Besturingssystemen Databases Netwerken en Internet Geschiedenis van de computer In het verdiepingsprogramma (alleen vwo) komen de volgende onderwerpen aan bod: Objectgeoriënteerd programmeren met Java Informatiemodellering Cryptografie, van klassiek naar digitaal Artificial Intelligence Vakgebied informatica In het examenprogramma (havo en vwo) komen de volgende onderwerpen aan bod: XHTML/CSS PHP/MySQL Ambient intelligence (o.a. domotica) MMI Software engineering Robotica Typografie Laatste update: januari 2011 INFORMATICA Informatica is een vak dat in de 2e fase van Havo en VWO gekozen kan worden. Bij Informatica worden de achtergronden van computers behandeld. Om een vergelijking met de auto industrie te maken: je gaat onder de motorkap kijken. Informatica houdt NIET in: spelletjes uitproberen, informatie op het Internet zoeken, webpagina’s ontwerpen, grafieken maken met MS-Office etc. Dergelijke toepassingen horen bij andere vakken thuis. Was gebeurt er wel?. Je leert hoe een computer werkt, je gaat gegevensbestanden opzetten, zelf computerprogramma’s maken etc. Alle aspecten van de ICT (Informatie en Communicatie Technologie) komen stap voor stap aan bod. Onderwerpen De 3 onderdelen van ICT worden uitgebreid behandeld: hardware, databases en software. Je ontdekt dat een computer werkt op basis van binaire getallen (nullen en enen). Je leert hoe een computer deel kan uitmaken van een netwerk en hoe randapparaten als scanners en diverse opslagmedia werken. Je leert gegevens op een gestructureerde wijze in bestanden opslaan en informatiesystemen opzetten. Je leert hoe het kernprogramma (besturingssysteem) van een computer in elkaar zit en zelf programma’s maken voor bepaalde toepassingen, van eenvoudig rekenwerk tot computergraphics. Opbouw leerstof en examens Havo 4: basiskennis en basisvaardigheden (is: kernprogramma) Laatste toetsweek Havo 4: 1e schoolexamen (theorie) Havo 5: drie semesters, elk afgesloten met een schoolexamen (1x theorie, 1x programmeren, 1x project (software enginering)) Vwo 4: basiskennis en basisvaardigheden (is kernprogramma) Vwo 5: verdieping (deel V) Laatste toetsweek Vwo 5: 1e schoolexamen (theorie) Vwo 6:drie semesters, elk afgesloten met een schoolexamen (1x theorie, 1x programmeren, 1x project (software enginering)) Er zijn geen landelijke examens voor Informatica. Lesmateriaal Als basis wordt de Enigma lesmethode gebruikt. Deze bestaat uit traditionele lesboeken – een Informatieboek en Verwerkingsboek (met opdrachten) - aangevuld met allerhande lesmateriaal in digitale vorm. Voor het ontwerpen van databases wordt gebruik gemaakt van standaard software van Microsoft (Access/SQL). Voor het ontwikkelen van software wordt ondermeer JAVA van Sun Microsytems gebruikt. Profiel Informatica is met name geschikt voor leerlingen met een NT profiel, maar leerlingen met een ander profiel kunnen het ook kiezen. In principe is het bedoeld voor alle Havo/Vwo leerlingen die niet alleen met computers willen omgaan maar willen weten hoe ze werken en zelf computerprogramma’s en bijbehorende bestanden willen kunnen maken. & !"" #$ %" & !" ' ( ) * + & , - & ! - & /" - & & & "" (" (" 0"" & %1$ 23" "" (3"" ("3" 4 *%5*6 *076 *50#6 & *8076 9 & *( ":$ & *0"" 2" *1 *$"$ & 9 , *1$ *" & & ' ) . & & & ' ) & & ' 21$ 7%/ 9 70/ 2 & / " & *$ & 2: & # & 0" & 9*670/ & *(* & "62**(* & ;"$" 7 ' # ' + ' / ' & % ' ' / ' ) 4$ ' . , ' ," ' / !" # & ' (1,*0$$ ' ' ) ) . . . & & & & & & & & && && &' &) &) %" +< => 2" (" ? $?; 2%" ?6 @$$ #$ 3 5? *"" & 27%" ' #$ ) 2" 1" . /6 9 + 2" $> & 27%" & *"$ & 26 & & *" ""> "" & ' 261"6 & ) 26"6 (" ' !" "" ' 7-" "" ' 0 &. & & & ' ' ' '& '& '' '' ') '. '. ' ' ) ) ) ) ) ) ) ) )& )' )' )' ) ' & 7 "" ' ' 9$" ' ) #" ' . 4$""" + ) 2,"%" ) 2 $ ) 9 ) & 9 $%&'""("& & & )) )) ). ) ) ) . . . !$1$ 01$$" 1$ + $ %$":$ %$":$1 %$":$1 %$":$: , ,$1 9 " & " 1 & ( & 1 & & ; )*! $ * +0+ 0+ , ! & %"6 ' !$ 0+ 0+ 0 !$ & !$ & # & # 1$ . . .' .' .) .. .. . & & ' . . & & ' ) ) ) . ) + & ' ) . & ' 7"" 2-" 7""" "" +A4B+A4 C * +A4 +"$ & + ' !" + "1 & %5*6 & 076 & 4=;6 & & 50#6 & ' 7"" & ) +5D44 & . 56 2"" E ! . !70D,F . (1"" +< ;$+A4 ! G1:> #""G ""1: *-$3 , (1,*0$$ 9 91$" ( 9$" ,$$$" #1$ ,"" & " & ; & EH 7"" ' 51$" ' #9,G," ' "B,C ' & ,6 ' ' ,#9, ' ) ,"" ' . 2*5+ ' ##4 ' 93@ & ' ) . . . & ' ) . . & & ' ) ) ) . . . ) . 2" ) D74 ) ;6" ( 1$ . 211$ . ("1 # D#, !">" +"" & *" & & %, & " & & !+/ & ' !,7+ & ) D/#+ & . 2+*,% -.&'& "! & ' ) + 7$ "," ?6/?< 9" & 22"" ' ! " * ;"$ ;"$ %"# ; & *;5%9 ' ?5 / / / ,9@ & *@ & %" & %1$$" & & */,9 & ' ,*%@ +1 ' +1$$ 71$$" ) ;" 1$$" ) #$$ ' ' ' ) ) . . . . . . & & & & & & & && && &' &) &. &. & & & & ' ' ' ' ' '& '' '' (1,*0$ *+,$-&(.++/ ! " ! # ! $%&"'()! * $+ % , # - .! ! $- ! $ /! " 0 . - " $ 0 # 0 1. . $%&'( !"! "! # )%&'( (1,*0$ !! !"#$%#! &'()## *#$+$)#,#( " # $%&# ' ' ' # (# % ) * ( ' # + # ' + ,- . ' /# * # 0* ( (1,*0$ !"!#!! !"#! "!#! "#! $ % & ' ( ! ! ! ! ! ! ! ! ! ) * +,- . %/. 00+,- 00 %/. . 1# 2 & ) ! 3 ' 3"#!4 ! " !4 1 . 3!""#! !! 00 5 . Hoofdstuk 3 35 Hardware 3 HET WERKGEHEUGEN Alle computers zijn gebouwd volgens het principe van de wiskundige John von Neumann (1903-1957). Hij was wetenschappelijk adviseur van het ENIAC-team, die een van de eerste computers bouwde. Von Neumann ging ervan uit dat zowel de instructies (het computerprogramma) als de data binair konden worden opgeslagen in het werkgeheugen (ook wel intern geheugen genoemd). Moderne computersystemen hebben grote werkgeheugens nodig van minimaal 512 MB. Vooral het werken met geluid en afbeeldingen vraagt veel geheugencapaciteit. Bij de huidige computers bevindt het programma zich in het werkgeheugen. Bij de allereerste computers was dat niet het geval. Het programma werd van buitenaf ingevoerd via een ponsband of het werd in de hardware aangebracht. De wiskundige John von Neumann kwam in 1945 met het idee om ook het programma in het geheugen te plaatsen: het ‘stored program concept’. De CPU had de taak de instructies van dat programma uit het geheugen op te halen, te verwerken en de resultaten weer in het geheugen terug te zetten. Dit wordt de Von Neumann-architectuur genoemd. Je maakt bij het werkgeheugen onderscheid tussen RAM, cachegeheugen en ROM. 3.1 RAM RAM is de afkorting van Random Access Memory: vrij toegankelijk geheugen voor het besturingssysteem en de gebruiker om daar tijdelijk gegevens in op te slaan. 'At random' betekent willekeurig: het maakt niet uit waar de gegevens in de chips zijn opgeslagen. De processor kan die snel vinden en gebruiken voor de verwerking. RAM-chips worden geleverd als DIMM's: Dual Inline Memory Modules, dunne strips met geheugenchips die in de geheugenbank op het moederbord worden geplaatst. De geheugenchips kunnen twee elektronische toestanden weergeven: geleidend en niet-geleidend: 0 of 1. Het grootste nadeel van RAM is dat het kwetsbaar is, De RAM-chips moeten constant onder elektrische spanning staan om de inhoud te bewaren. Zodra de stroom wordt onderbroken, wordt alles gewist. DIMM's zijn de opvolger van de SIMM-modules. RAM-chips hebben ook een aantal voordeHet belangrijkste verschil tussen beide typen is len: hoewel ze klein zijn, kunnen ze veel dat DIMM’s een 64-bit datapad hebben en gegevens bevatten. De processor kan ze SIMM’s een 32-bit. snel benaderen om de inhoud op te vragen. Er zijn verschillende type DIMM-modules: x SDR SDRAM Ze zijn in de loop van de tijd steeds goedx DDR SDRAM koper geworden en daarom bevatten mox DDR2 SDRAM derne computers RAM-chips met een grote x DDR3 SDRAM geheugencapaciteit. SDDRAM: opdracht 32 Synchronous Dynamic Random Access Memory SDR: Single Data Rate DDR: Dual Data Rate De laatste heeft een doorvoersnelheid die twee keer zo hoog ligt als die van SDR. ENIGMA 38 Informatieboek 4.1.2 HARDE SCHIJF In tegenstelling tot het flexibele materiaal van een diskette, bestaat een harde schijf uit een aantal met magnetisch materiaal beklede platen van glas of metaal die met grote snelheid ronddraaien. De opslagcapaciteit is ook veel groter dan een diskette. Een harde schijf in een moderne computers kan meerdere GigaBytes aan gegevens bevatten. Het aantal platen en de samenstelling van de magnetische laag bepalen de opslagcapaciteit. Harde schijven zijn zeer gevoelig voor stof. De lees- en schrijfkoppen bewegen zo dicht over het oppervlak dat een stofdeeltje een kras zou maken. Daarom worden harde schijven beschermd door een luchtdicht afgesloten metalen omhulsel. Daarin draaien de platen met duizenden omwentelingen per minuut. Bron: Erwin Suvaal 4.1.3 TAPE Een tape verschilt van magnetische schijven door de manier waarop data wordt gelezen en weggeschreven. Bij een tape gebeurt dat sequentieel (achter elkaar), terwijl een schijf de data random (willekeurig) kan lezen. Dit maakt een tape zeer geschikt voor het maken van een backup, maar ongeschikt voor het snel bewerken van een file. DDS (Digital Data Storage) is een populair formaat voor het maken van backups op tapes. Het is gebaseerd op de techniek van DAT (Digital Audio Tape), maar door het gebruik van betere tapes en een foutcorrectiemechanisme is het mogelijk bestanden op te slaan en zonder fouten weer te lezen. opdracht 40 4.2 OPTISCHE OPSLAG Op optische schijven is data weggeschreven door microscopisch kleine putjes (pits) te persen in het oppervlak van de schijf. De niet-bewerkte gebieden rond de pits heten lands. Om gegevens te lezen schijnt een laser een straal op de schijf. De laserstraal bevindt zich aan de onderkant, zodat de pits daar uitsteken als kleine dammetjes. Bron: Erwin Suvaal ' ( )( '* +, ) - # ( . cijfer >= 6- ( / true false- 0 ( , + - / ( 1) ( 2 + - !"#$ %& !"#$ %& !"# '* ( (- . 8 . 9 $!# : 8; . < !"#$ , % / %, , % %, . = 8 3( ZOLANG ( /- '* 1 ((2 + , 4 ( / ( - # (( + 55 (. (- 6 ZOLANG7( ( / ( ) , ) TOTDAT7( ( , 4 ( '* + 55 7 , ( / ( - ) ( ZOLANG7( TOTDAT7( ( ((7 55 + - (1,*0$ ! " #$ % &' () () beginkapitaalVeldrenteVeldtermijnenVeld ( eindkapitaalVeldberekenKnop $* ) ! int beginkapitaal; beginkapitaal = Integer.parseInt(beginkapitaalVeld.getText()); int rente; rente = Integer.parseInt(renteVeld.getText()); int termijnen; termijnen = Integer.parseInt(termijnenVeld.getText()); int kapitaal; kapitaal = beginkapitaal; int termijn; termijn = 1; while (termijn <= termijnen){ kapitaal = kapitaal + kapitaal * rente / 100; termijn = termijn + 1; } eindkapitaalVeld.setText(String.valueOf(kapitaal)); (1,*0$ for (int termijn = 1; termijn <= termijnen; termijn++) 0.:7 77. . #./0 1. 2 10 0 + 3". 40 01 0 5 !"#$% & '#$ !"( ) *+,- . 3" • MOD. 10 • STR2 0 010/ .67 String.valueOf() ,1$ • INT 1 0 0.0 84/ . 400 4 5 .71 3"/ 77 ,1 0 2 0 5972 6 0 8 1 6. 0.145" ,11 01. 3"5 (1,*0$ !"#$%!%&'$(!#)"%*+,+(% ! " # ! # $ ! ! % ! # && # $ " ' ( ! ) * ! -'%()!"".!%#$%!%&'$(!#)"%*+,+(% ( ( ( + ! ! ,-., /0 /0 1234 ( /012 1256/0 ! " ! # $ % # ! & ' ( ) *+ # , - # # ,# , , . # ! , # # $% , / 0 12 , # / # 3 # # # # , # 4 # ( # , 4 % ! ! % , - WHFKQLVFK # , # , 5 1 # # / (1,*0$ $% ! $! " # $ ! ! % ! " ! ! • % ! ! • & % ! • " ! # $ • ! % !' $ % !' % ! # ! # (1,*0$ ! " " " ! " " #$%& ' "$ "$ # $ ("! " " ) ! $* " " $+,!) " " - $. "" - " " / " " ! ""$*01' " - 2 32 3 " - " " ""23 ! (1,*0$ LEDEN lidnr voornaam naam adres woonplaats telefoonnr geslacht geboortedatum inschrijfdatum enkel dubbel TEAMS Teamcode lidnr klasse SCORES lidnr teamcode gewonnen verloren BOETES boetenr lidnr datum bedrag (QLJPD ! " "" # $ %&'( ) $ %" *+, "( *+, "*+, " *+, " " *+, * - " * " *+, $ SELECT FROM voornaam, naam, telefoonnr leden; ! " #$ SELECT FROM WHERE COUNT(*) leden NOT woonplaats = ‘Doetinchem’; % & ' ' ( #$ ' &) SELECT FROM SUM(bedrag) AS totaal_boetes, boetes; !"#$%&'( ( ) ' * ' ) ')*) SELECT DISTINCT woonplaats FROM leden ORDER BY woonplaats; SELECT FROM WHERE count(*) AS Beek leden woonplaats = ‘Beek’; + +,-./ %0 ( ' 1 2 '+)*,- SELECT woonplaats, count(*) AS aantal_leden FROM leden GROUP BY woonplaats; (1,*0$ !"#$% !"!&!'' ! ! " # $ # $%! & ! ' ! # $( # $ # $ ()#*!+)#'+),$ ) * ! ( ! ++ ! ! ! !! 1 !"!"! # ! " # $ ! ! $ ! $ ! # # % ! !! " !! # ! " ! ! ! $ # & #% ! !$ ' $( )$ ! ! * +, ! $ $$ $-. ' ! $ $ $" ! $ % " # ! / /# $ # 0#* ! /% " # 1 2 " $ 3 # )$ # #" $ ! # ' ! $$ #! #% # , ! 4 % ! # ' $#" % # ! # ! " # ! % ! # !! # ! 5 6 # !7 (1,*0$ ! " ! # ! ! ! ! $ "!! % ! !! ! &!''! ! ! (% ! ! ! (% ! ) (% ! ! ! $ ! ! * ! ! (% ! ! ! (% ! ! ! ! ! !# (% (% ! ! ! # (% $ ! + ,$ ! !! !! ! $! + ,! $ (% ! ( !+ , *! (%- $ %+$" % ,$ % ! ! . $/0!+!, $ % " $ %! ! " # $ ! %$ & &'()* + ( ,--. /0121 ! & " " 3 ! ! *4 5 6 ! 5 6 4 ! '! " 1 3 ! " 3 ( 53(6 3 ! "$ ! " 3($ 7 ! 3($ " " ! 8 ! 1 3($ ! " # " ! $ $ $ %$ " & !"#! ' () %$ $ * ! + # $ $ $ ! , - ! * $ $%&'(")%%!!)*!%'"& $ .'+ $ / ! # ! $ 0 10 ! # ! * $ %$ $ ! $$ $ $ , 2 # # 3 # ! * , ( ) ! " # $ • % • • & • '()* • * • % !"# + " , - . " $ /0 ) 1 ( 23 . # 1 . . 44 . 5 67 8 1 8 * ,69:.6;<9- 6 . . 1 (1,*0$ !"#$%&"##$'( () ( ((( ) (((* & ( ) "#%+ ),(-. ) "#/$ )( ( (( ) ( )0( ( ((( ), ( ) 1 & & ) 1 1( 2 34!"#/#&"5"#'), ( )6( ( ((& )4& ( ) !" 7 & ( )1 (& )1( ( ( 89(!"5-$&":%/') (1,*0$ !" ! "#$%& $%'() * " *+ ++ + , ,+$%-. / + /012+ 21 ) +$%-. ,3/ 4 *5"12 #51 2 ( + ) $%-.) 678 19 6 +!6 96037 ) )+ )+ + ) $%:)" " 7;+ ,7$%:+ ) " */ /;8$ , 2 < = (1,*0$ !" # !" "!$ % & '()*' )# + !" #+ , # & + --. "/) # !") +( + + 0 ) + # 1 • *' • ! ' 2 2 + • 34 2 " • ! 2 ## +1 5 34 ) 2 6 '()*'+( ##- & +2 ( # &( ( 2 + + #2 + +( ++# ++ (+-+ + *#+ # 7$87$ 9 + :;8 9! 245+ + !"< & + #* + 4 + 4='4=784 =' 4 =7 9 6 + (&>( +4 &>+ + &"( -+#- -8 9+ & ; 2# +&" 'HPRGHHO9 ,1+28' 2EMHFWJHRULsQWHHUGSURJUDPPHUHQPHW-DYD 2EMHFWJHRULsQWHHUGSURJUDPPHUHQ 2EMHFWHQ .ODVVHQ (HQYRRUEHHOGGHNODVVH'REEHOVWHHQ 2EMHFWHQ 'HILQLWLHYDQGHNODVVH ,PSOHPHQWDWLHYDQGHNODVVH +HWJHEUXLNYDQGHNODVVH'REEHOVWHHQLQHHQDSSOHW 'HNODVVH$SSOHW ,PSRUW 2YHUHUYLQJ 7HNHQHQ 0HWKRGHQRPWHWHNHQHQ .OHXUHQ +HWYHUNHHUVOLFKW $UUD\V $UUD\V (HQDUUD\PDNHQ (HQDUUD\YXOOHQ =RHNHQLQHHQDUUD\ =RHNHQYDQHHQEHSDDOGHZDDUGH :HUNHQPHWDUUD\V +HWFGDSSOHW 7RHYRHJHQ 9HUZLMGHUHQ 9HUSODDWVHQ 6RUWHUHQ ,QIRUPDWLHPRGHOOHULQJ ,QIRUPDWLHV\VWHPHQ ,QOHLGLQJ :DDURPPRGHOOHUHQ +HUNDQVLQJHQ 'HJHJHYHQVYRRUKHWLQIRUPDWLHV\VWHHP +HWPRGHOOHUHQYDQGHFRPPXQLFDWLH &ODVVLILFDWLHHQNZDOLILFDWLH 2UGHQHQYDQGHIHLWH[SUHVVLHV $QDO\VHUHQYDQGHIHLWH[SUHVVLHV (QNHOHRSPHUNLQJHQ ,QIDJRQ +HW,QIRUPDWLH*UDPPDWLFD'LDJUDP,*' %HSHUNLQJVUHJHOV :DDUGHQEHSHUNLQJ 8QLFLWHLWVEHSHUNLQJ 7RWDOLWHLWVEHSHUNLQJ +HW,*'RP]HWWHQQDDUHHQUHODWLRQHOHGDWDEDVH &RQWUROH */5DOJRULWPH ([SRUWHUHQ &U\SWRJUDILHYDQNODVVLHNQDDUGLJLWDDO ,QOHLGLQJ &U\SWRJUDILHWRWGHHHHXZ *ULHNHQHQ3HU]HQ &DHVDU 0RGXORUHNHQHQ 'H9LJHQqUH )UHTXHQWLHDQDO\VH &U\SWRJUDILHYDQDIGHHHHXZ +HW=LPPHUPDQQWHOHJUDP 'H(QLJPDPDFKLQH 'LJLWDOHFU\SWRJUDILH ;25YHUVOHXWHOLQJ 6\PHWULVFKHQDV\PHWULVFK 3XEOLFHQSULYDWHNH\ 'HNUDFKWYDQ56$ %ORNYHUVOHXWHOLQJ 'H0DQLQWKHPLGGOHDDQYDO 3UHWW\JRRGSULYDF\ $UWLILFLDO,QWHOOLJHQFH (1,*0$,QIRUPDWLHERHN 9RRUEHHOGPRGHOHHQIHHVWMH 2SHHQIHHVWMH 8LWGDJLQJ 0RGHOOHQ 9RRUEHHOGPRGHOZROYHQVFKDSHQHQJUDV %HVWXXUKHWPRGHOGHNQRSSHQ 'HLQVWHOOLQJHQYHUDQGHUHQVFKXLIEDONHQHQVFKDNHOLQJHQ 7HVWHHQQLHXZHVLWXDWLH -HEOLNRSGHZHUHOGYDQKHWPRGHO &RPPDQGR¶V 9RRUEHHOGPRGHOYHUNHHU +HW&RPPDQGR&HQWUXP :HUNHQPHWNOHXUHQ $JHQW0RQLWRUVHQ$JHQW&RPPDQGHUV 3URFHGXUHV $JHQWVHQSURFHGXUHV +HWPDNHQYDQGHVHWXSNQRS +HWPDNHQYDQGHJRNQRS ([SHULPHQWHUHQPHWGHFRPPDGR¶V 3DWFKHVHQYDULDEHOHQ 9DULDEHOHQGLHELMGHWXUWOHVKRUHQ 0RQLWRUHQ 6ZLWFKHVHQODEHOV 1RJPHHUSURFHGXUHV 3ORWV*UDILHNHQ 'HPRGHHO9 *OREDOHYDULDEHOHQ 'HODDWVWHSXQWMHVRSGHL 0RGHOOHUHQLQ$, :DWLV$," :DWLVKHWGRHOYDQ$," :DW]LMQGLHPDFKLQHV 0RGHOOHUHQHQVLPXODWLHV :DWLVHHQPRGHO" :DWLVHHQJRHGPRGHO" 9HUVFKLOOHQGHVRRUWHQPRGHOOHQ +RHNHQWHHQDJHQWGHZHUHOG" +RHJHEUXLNWHHQDJHQW]LMQIHLWHOLMNHZHUHOGNHQQLV" *HGUDJHQHPRWLH 'HWHUPLQLVWLVFKRIQLHWGHWHUPLQLVWLVFK" &RQFOXVLH &RGHVFKULMYHQ 6HWHQ*R 5HFXUVLHYHSURFHGXUHV =HOIHHQDFKWHUJURQGPDNHQ 9DNJHELHG,QIRUPDWLFD 5ROOHQHQUROSURILHOHQ 5ROOHQ %XUJHU *HEUXLNHU 0DNHU 2QGHU]RHNHU 5ROSURILHOHQ %XUJHUV *HEUXLNHUV 0DNHUV 2SOHLGLQJ 'HRQWZHUSF\FOXVHQKHWRQWZLNHOWUDMHFW +HWRQWZLNNHOWUDMHFW 'HUROYDQGHZLVNXQGH ,QIRUPDWLFDDOVZHWHQVFKDS 7HFKQLVFKHFRPSXWHUNXQGH $OJRULWPLHNHQSURJUDPPDWXXU ,QIRUPDWLHV\VWHPHQ 7KHRUHWLVFKHLQIRUPDWLFD ,QWHOOLJHQWHV\VWHPHQ ,QIRUPDWLHNXQGH (HQDQGHUSHUVSHFWLHI 7KHRULHsQ 7DOHQ 0HWKRGHQ *HUHHGVFKDSSHQ (QYHUGHU" ,QIRUPDWLFDVWXGHUHQ (1,*0$,QIRUPDWLHERHN 2EMHFWJHRULsQWHHUGSURJUDPPHUHQPHW-DYD ((19225%((/''(./$66('2%%(/67((1 Om ervaring op te doen met het ontwerpen en schrijven van een klasse ga je een eenvoudig dobbelspel programmeren. ,QGLWVSHOPDJHHQVSHOHUGULHNHHUJRRLHQPHW PD[LPDDOGULHGREEHOVWHQHQ+LMNDQEHVOXLWHQRPHHQRI PHHUGHUHVWHQHQWHODWHQOLJJHQ+HWGRHOYDQKHWVSHOLV RPQDGULHZRUSHQHHQ]RKRRJPRJHOLMNHVFRUHWH EHKDOHQ 'HLQWHUIDFHYDQKHWVSHOVWDDWKLHUQDDVWDIJHEHHOG :HONHREMHFWHQ]LMQHUWHRQGHUVFKHLGHQLQGLWVSHO" :DQQHHUMHQDDUGHLQWHUIDFHNLMNWGDQ]LHMHWZHH NQRSSHQ6WDUW6SHOHQ'REEHO(U]LMQGULH WHNVWYHOGHQGLHKHWUHVXOWDDWYDQGHZRUSODWHQ]LHQHQ HHQYLHUGHWHNVWYHOGGDWGHWRWDOHVFRUHZHHUJHHIW 7HQVORWWH]LMQHUQRJGULHVHOHFWLHYDNMHV'RRUHHQ VHOHFWLHYDNMHDDQWHYLQNHQJHHIWGHVSHOHUDDQGDWKLM GH]HGREEHOVWHHQODDWOLJJHQ'H]HREMHFWHQ]LMQ LQVWDQWLHVYDQUHVSHFWLHYHOLMNHGHNODVVHQButton TextfieldHQCheckbox %HKDOYHGHREMHFWHQGLHMHRSGHLQWHUIDFH]LHW]LMQHU QRJGULHREMHFWHQGHGREEHOVWHQHQZDDUPHHJHJRRLG PRHWZRUGHQ-DYDNHQWJHHQVWDQGDDUGNODVVH 'REEHOVWHHQ'LH]XOMH]HOIPRHWHQRQWZHUSHQ '(),1,7,(9$1'(./$66( ,Q-DYDLVGHEDVLVYRUPYDQHHQNODVVHQGHILQLWLH 2%-(&7(1 toegang class Naam { body } +HWZRRUGclassLVLQ-DYDHHQJHUHVHUYHHUGZRRUGHQGXLGWKHWEHJLQYDQGHGHILQLWLH YDQHHQNODVVHDDQ'DDUDFKWHUVWDDWGHQDDPYDQGHNODVVH+HWLVLQ-DYDJHEUXLNHOLMN RPGHQDDPYDQHHQNODVVHDOWLMGPHWHHQKRRIGOHWWHUWHEHJLQQHQ 'HPRGHHO9 9RRUGHclassVWDDWHHQZRRUGGDWGHWRHJDQJWRWGHNODVVHVSHFLILFHHUW:LMNRPHQKLHU ODWHULQGH]HSDUDJUDDIRSWHUXJ 7XVVHQtoegangHQclassVWDDQQRJYDDNZRRUGHQDOVstaticabstractRIfinal 'H]HZRRUGHQJHYHQGHNODVVHHHQVSHFLDOHEHWHNHQLVGLHZHKLHUYHUGHUQLHW]XOOHQ EHVSUHNHQ2RNWXVVHQGHQDDPHQGHOLQNHUDFFRODGHNXQQHQQRJH[WUDDDQGXLGLQJHQ YRRUNRPHQ ,QGHERG\VWDDQGHGHILQLWLHVYDQGHYHOGHQGHFRQVWUXFWRUHQGHPHWKRGHQ'HYHOGHQ EHYDWWHQGHHLJHQVFKDSSHQYDQGHREMHFWHQLQGHNODVVH'HPHWKRGHQGHILQLsUHQGH EHZHUNLQJHQGLHRSGHREMHFWHQNXQQHQZRUGHQWRHJHSDVW'HFRQVWUXFWRULVHHQVSHFLDOH PHWKRGHGLHGHQDDPYDQGHNODVVH]HOIKHHIW,QGHFRQVWUXFWRULVYDVWJHOHJGZDWHU PRHWJHEHXUHQELMGHFRQVWUXFWLHYDQHHQQLHXZHLQVWDQWLHYDQGHNODVVH ,03/(0(17$7,(9$1'(./$66( (HQLPSOHPHQWDWLHYDQGHNODVVH'REEHOVWHHQ]RXHUDOVYROJWXLWNXQQHQ]LHQ public class Dobbelsteen { //velden private int worp; //constructor public Dobbelsteen() { } //methoden public void dobbel() { double randomGetal = Math.random(); worp = (int)(6*randomGetal)+1; } public int getWorp() { return worp; } } RSGUDFKW $OVHHUVWHZRUGWLQGHNODVVHYDVWJHOHJGZHONHJHJHYHQVEHKHHUG]XOOHQZRUGHQ'H NODVVH'REEHOVWHHQEHYDWppQYHOGworpYDQKHWW\SHint +HWYROJHQGHRQGHUGHHOYDQGHNODVVHQGHILQLWLHLVHHQFRQVWUXFWRU'HFRQVWUXFWRU]RUJW YRRUKHWFRQVWUXHUHQYDQHHQREMHFWHQGHLQLWLDOLVDWLHYDQGHYHOGHQ,QRQ]HNODVVH 'REEHOVWHHQLVGHFRQVWUXFWRUOHHJ,QGDWJHYDONULMJHQDOOHYHOGHQHHQVWDQGDDUG EHJLQZDDUGH9RRUQXPHULHNHYHOGHQLVGDWGHZDDUGH(HQOHJHFRQVWUXFWRUPDJ ZHJJHODWHQZRUGHQ,QKHWYHUYROJ]XOOHQZLMGDWGRHQ 6WHOGDWMHLQVWDQWLHVYDQDobbelsteen]RXZLOOHQFUHsUHQGLHHHQYHUVFKLOOHQGDDQWDO RJHQKHEEHQGDQ]RXKHWEHJLQYDQGHNODVVHDOVYROJWJHGHILQLHHUGNXQQHQZRUGHQ (1,*0$,QIRUPDWLHERHN public class Dobbelsteen { //velden private int worp; private int aantalZijden; //constructor public Dobbelsteen(int zijden) aantalZijden = zijden; } { RSGUDFKW +HWJURRWVWHGHHOYDQGHNODVVHQGHILQLWLHEHVWDDWXLWPHWKRGHQ'HEDVLVYRUPYDQHHQ PHWKRGHGHILQLWLHLV toegang resultaattype methodenaam(parameters) { statements } ,QGHNODVVH'REEHOVWHHQVWDDQWZHHPHWKRGHQdobbel()GLHGHGREEHOVWHHQJRRLWHQ getWorp()GLHKHWUHVXOWDDWYDQGHZRUSRSOHYHUW 'HPRGHHO9 ,QIRUPDWLHPRGHOOHULQJ +(7,1)250$7,(*5$00$7,&$',$*5$0,*' %LMKHWPRGHOOHUHQYDQKHWLQIRUPDWLHV\VWHHPYRRUGHKHUNDQVLQJHQKHEMHNXQQHQ]LHQ GDWMHVQHOWHPDNHQKHEWPHWHHQJURRWDDQWDOIHLWW\SHQ2RNDOKHEEHQZHPHWHHQ UHODWLHIHHQYRXGLJV\VWHHPWHPDNHQ,QGHSUDNWLMNNDQKHWDDQWDOIHLWW\SHQLQGH KRQGHUGHQORSHQ-HUDDNWGDQDOVQHOKHWRYHU]LFKWNZLMW'DDURPJHEUXLNHQ LQIRUPDWLHDQDOLVWHQGLDJUDPPHQRPIHLWW\SHQREMHFWW\SHQHQODEHOW\SHQRPKXQ RQGHUOLQJHVDPHQKDQJZHHUWHJHYHQ ,QIDJRQELHGWGHPRJHOLMNKHLGRPGLDJUDPPHQWHPDNHQ(HQGHUJHOLMNGLDJUDPZRUGW HHQLQIRUPDWLHJUDPPDWLFDGLDJUDP,*'JHQRHPG ,QHHQ,*'ZRUGWKHWGDWDPRGHOEHVWDDQGHXLWIHLWW\SHQREMHFWW\SHQHQODEHOW\SHQ JHWHNHQG:HEHNLMNHQDOVYRRUEHHOGGHRSERXZYDQKHWIHLWW\SHWoonplaats +HWIHLWW\SHWoonplaatsKHHIWUROOHQHQ'HHHUVWHUROZRUGWJHVSHHOGGRRUKHW REMHFWW\SHLeerlingGHWZHHGHUROGRRUKHWREMHFWW\SHPlaats'LWZRUGWDDQJHJHYHQ GRRUGHYHUELQGLQJVOLMQHQ'HODEHOW\SHQ]LMQZHHUGRRUHHQYHUELQGLQJVOLMQYHUERQGHQ PHWGHREMHFWW\SHQ 2PHHQ,*'WHPDNHQPRHWHUHHQ,*'YHQVWHUZRUGHQJHRSHQG .OLNLQGHNQRSSHQEDONRS1HZ,*' 6HOHFWHHUDOOHEHQRGLJGHRQGHUGHOHQXLWKHW,*YHQVWHU'LWNDQGRRUHHUVWHHQRQGHUGHHO WHVHOHFWHUHQGH&WUOWRHWVLQJHGUXNWWHKRXGHQYHUYROJHQVDQGHUHRQGHUGHOHQDDQWH NOLNNHQ6OHHSQXGHJHVHOHFWHHUGHRQGHUGHOHQXLWKHW,*YHQVWHUQDDUKHW,*'YHQVWHU +HWFDVHWRROERXZWKHWGLDJUDPDXWRPDWLVFKRS (1,*0$,QIRUPDWLHERHN +LHURQGHUYROJHQHQNHOHWLSVYRRUGHRSPDDNYDQKHW,*' • -HNXQWGHHOHPHQWHQIHLWW\SHQREMHFWW\SHQHQODEHOW\SHQDDQNOLNNHQHQ YHUVOHSHQRPKHW,*'GXLGHOLMNHUHQRYHU]LFKWHOLMNHUWHPDNHQ • :DQQHHUMHRSHHQOLMQNOLNWYHUVFKLMQWHUHHQNOHLQYODNMHRS+LHUPHHNXQMHGH OLMQLQGLHQQRGLJRPHHQHOHPHQWOHLGHQ'RRURSKHWYODNMHUHFKWVWHNOLNNHQNULMJ MHHHQPHQXZDDULQHURQGHUDQGHUHJHNR]HQNDQZRUGHQYRRUKHWZHHUUHFKW PDNHQYDQGHYHUELQGLQJVOLMQ • -HNXQWGHUROOHQYDQHHQIHLWW\SHLQHHQGLDJUDPZLVVHOHQ.OLNPHWGH&WUOWRHWV LQJHGUXNWRSHHQURORPGH]HWHVHOHFWHUHQGHUROZRUGWJURHQ+RXG YHUYROJHQVGH$OWWRHWVLQJHGUXNWHQYHUVOHHSGHUROQDDUGHSODDWVHUQDDVW • :DQQHHUMHPHWGHUHFKWHUPXLVNQRSLQKHWYHQVWHUNOLNWNULMJMHHHQVQHOPHQX 'DDUPHHNXQMHGHDIEHHOGLQJFHQWUHUHQDIGUXNNHQWHNVWWRHYRHJHQHWF /DWHQZHQRJHHQVGHEHODQJULMNVWHJUDILVFKHV\PEROHQGLHJHEUXLNWZRUGHQLQ,*'¶VRS HHQULMWMH]HWWHQ:HGRHQGDWDDQGHKDQGYDQGHDOHHUGHUEHVSURNHQIHLWW\SHQ (HQHQNHOHUHFKWKRHNZRUGWJHEUXLNWELM IHLWW\SHQPHWppQUROXQDLUIHLWW\SH]RDOV ELMGH]LQ³(ULVHHQNODV+D´ 'HUROOHQZRUGHQJHQXPPHUG]RGDW]HWH YHUELQGHQ]LMQPHWGHIHLWW\SHH[SUHVVLH 7ZHHRIPHHUDDQHHQJHVORWHQUHFKWKRHNHQ JHYHQHHQIHLWW\SHPHWWZHHRIPHHUUROOHQ DDQELQDLUWHUQDLUIHLW\SH ,HGHUHUHFKWKRHNVWHOWppQUROYRRU (HQJHVWLSSHOGHFLUNHOJHHIWHHQODEHOW\SH DDQ (HQJHVORWHQFLUNHOURQGHHQIHLWW\SHJHHIW HHQREMHFWW\SHDDQ RSGUDFKW (HQYHUELQGLQJVOLMQWXVVHQHHQUROHQHHQ REMHFWW\SHJHHIWDDQGDWGHUROJHVSHHOG ZRUGWGRRUKHWREMHFWW\SH 'HPRGHHO9 &U\SWRJUDILHYDQNODVVLHNQDDUGLJLWDDO (UZDUHQNUDFKWLJHUPHWKRGHVQRGLJRPEHULFKWHQJHKHLPWHKRXGHQ,Q RQWZLNNHOGHGH'XLWVHXLWYLQGHU6FKHUELXVHHQPDFKLQHZDDUPHHKLMSUREHHUGHRS GHVWLMGVPRGHUQHZLM]HFU\SWRJUDILHWHEHGULMYHQ(U]RXGHQPHFKDQLVFKHHQHOHNWULVFKH RQGHUGHOHQELMJHEUXLNWZRUGHQ,QIHLWHZDVKHWHHQHOHNWULVFKHYHUVLHYDQGH VFKLMYHQPHWKRGHYDQ$OEHUWL+LMQRHPGHKHWDSSDUDDW(QLJPD(QLJPDEHWHNHQW ³UDDGVHO´HQGDWZDVGH]HPDFKLQHRRNHHQODQJHWLMG 2Q]HPHWKRGHKHHWRRNQLHWYRRUQLHWV(QLJPDMHOHHUWHU PHQLJGLJLWDDOUDDGVHOPHHGRRUJURQGHQ 1DKHWUDDGVHOYDQ'H9LJHQqUH]RXGHQGHYHUVOHXWHOGH EHULFKWHQGLHXLWGH]HPDFKLQHNZDPHQQLHWWHNUDNHQ ]LMQ2PGDWGH(QLJPDGHODDWVWHHOHNWULVFKPHFKDQLVFKH YRRUORSHUZDVYDQGHPRGHUQHGLJLWDOH HQFU\SWLHWHFKQLHNHQZLOOHQZHMHHHQNRUWHEHKDQGHOLQJ HUYDQQLHWRQWKRXGHQ +HWDSSDUDDWEHVWRQGXLWHHQDDQWDOILMQPHFKDQLVFKH FRPSRQHQWHQGLHLQJHQLHXVWRWHHQJHKHHOZDUHQ VDPHQJHYRHJG$OVMHKHWDSSDUDDW]R]DJZDVKHWHHQ LQJHZLNNHOGPHFKDQLVPH]RDOVHHQKDQGJHERXZGKRUORJH HUYDQELQQHQUDDGVHODFKWLJXLW]LHW+DDOMHKHWHFKWHUXLW HONDDUHQZHHWMHGHZHUNLQJYDQHONRQGHUGHHOGDQEOLMNW KHWKHHOORJLVFKLQHONDDUWH]LWWHQ'HEDVLVYRUPYDQKHW DSSDUDDWYDQ6FKHUELXV]LHDIEHHOGLQJXLWKHW:DU 0XVHXPLQ/RQGHQEHVWRQGXLWGULHHOHPHQWHQGLH (HQURWRU:HKUPDFKW(QLJPDWH RQGHUOLQJPHWGUDGHQYHUERQGHQZDUHQ+HWEHVWRQGXLW ]LHQLQKHW,PSHULDO:DU HHQWRHWVHQERUG 0XVHXP/RQGRQ RPHHQJHZRQH ERRGVFKDSLQWH W\SHQHHQDDQWDOVFUDPEOHUVGLHPRHVWHQGH LQJHW\SWHOHWWHUQDDUHHQDQGHUHOHWWHU RP]HWWHQHQHHQGLVSOD\ZDDURSGH YHUVOHXWHOGHOHWWHUPHWHHQODPSMHYHUOLFKW ZHUG$DQGHKDQGYDQGHDIEHHOGLQJ6FKHPD ZHUNLQJ(QLJPDZRUGWGHZHUNLQJYHUGXLGHOLMNW 'HDIEHHOGLQJODDWVFKHPDWLVFKHHQPDFKLQH ]LHQZDDURSPDDUYLHUOHWWHUVJHEUXLNWZRUGHQ ,QZHUNHOLMNKHLG]LMQHUOHWWHUVODPSMHV HQVWHNNHUVHQKHHIWHONHURWRU GRRUYHUELQGLQJHQ 9DQHHQEDWWHULMYORHLWGHVWURRPGRRUGH ZLVVHOVFKDNHODDUGLHEHGLHQGZRUGWGRRUGH LQJHGUXNWH$WRHWVGHWRHWVEHYLQGW]LFKLQGH WHNHQLQJRQGHUGHURGHOHWWHU$QDDUKHW VWHNNHUERUG6WHFNHUEUHWW'LWVWHNNHUERUG PDDNWKHWPRJHOLMNGHEHGUDGLQJWXVVHQ WRHWVHQERUGHQGHQLHWGUDDLHQGHYDVWH LQJDQJVVWDWRU(LQWULWWZDO]HWHZLM]LJHQ PHWNDEHOWMHV '((1,*0$0$&+,1( 6FKHPDZHUNLQJ(QLJPD (1,*0$,QIRUPDWLHERHN %LMGHOHWWHU$LVQXQLHWVDDQJHVORWHQRSKHWVWHNNHUERUGGXVKLHUYHUDQGHUWQLHWV'H VWURRPJDDWYHUYROJHQVYDQGHFRQWDFWEXVVHQRSKHWVWHNNHUERUGGRRUGH LQJDQJVVWDWRUHQGRRUGHGULHVWDSVJHZLMVGUDDLHQGHURWRUV]LHRRNGHDIEHHOGLQJ 5RWRUVYDQGH(QLJPD:DO]HQGLHGHOHWWHUVYHUFLMIHUHQGRRUHONDDUKDOHQYLDKXQ LQWHUQHEHGUDGLQJRPYHUYROJHQVGRRUGHUHIOHFWRU8PNHKUZDO]HYLDHHQDQGHUH ZHJWHUXJJHVWXXUGWHZRUGHQGRRUGHURWRUVODQJVKHWVWHNNHUERUG'HVWURRP DUULYHHUWRSKHWVWHNNHUERUGELMGHOHWWHU6(ULVKLHULQGHWHNHQLQJHHQNDEHOWMH JHOHJGWXVVHQ6HQ']RGDWGHVWURRPYHUGHUJDDWODQJVGHQLHWLQJHGUXNWHWRHWV' HQGHJORHLODPS'ODDWEUDQGHQ'H$ZRUGWGXVYHUFLMIHUGDOV'-HNXQWQDJDDQGDWGH VWURRPELMKHWLQGUXNNHQYDQGH'WRHWVGH]HOIGH ZHJDIOHJWLQRPJHNHHUGHULFKWLQJHQKHW$ ODPSMHODDWEUDQGHQ'LWLVGHYRRU(QLJPD W\SLVFKHUHFLSURNHRPNHHUEDUHYHUVOHXWHOLQJ=R ODQJGH]HQGHUDDQGHRQWYDQJHUEHNHQGNRQ PDNHQRSZHONHZLM]HGHYHUDQGHUEDUH RQGHUGHOHQYDQGH(QLJPDLQJHVWHOGZDUHQ NRQGHQEHLGHERRGVFKDSSHQYHUVOHXWHOHQHQ RQWFLMIHUHQ'HURWRUVKDGGHQSHUVWXN OHWWHUWHNHQVGHURWRUVRS]LFKNRQGHQRQGHUOLQJ YDQSRVLWLHJHZLM]LJGZRUGHQHQKHWVWHNNHUERUG NRQRRNZHHUSDUHQYDQWZHHOHWWHUVXLW OHWWHUVPHWHONDDUYHUELQGHQ URWRUVYDQGH(QLJPD 'H(QLJPDKDGGRRUKHWLQVWHOOHQYDQDOGLH PRJHOLMNKHGHQ[[[[ § WLHQGXL]HQGELOMRHQYHUVOHXWHOLQJVPRJHOLMNKHGHQ +HWLVGXLGHOLMNGDWGHHHUVWHSRJLQJHQRPGHRSJHYDQJHQJHKHLPHERRGVFKDSSHQWH RQWFLMIHUHQYUXFKWHORRVZDUHQ'H'XLWVHUVKDGGHQGDDUPHHQD:2,KHWPHHVW]HNHUH FRPPXQLFDWLHV\VWHHPWHUZHUHOG0DDURPGDWGH'XLWVHUVQDKXQQHGHUODDJDOOH]HLOHQ PRHVWHQELM]HWWHQRPHFRQRPLVFKHUZHHUERYHQRSWHNRPHQYHUZDDUORRVGHQ]LMKXQ (QLJPDV\VWHHP(QRPGDWGH*HDOOLHHUGHQ]LFKQDGH'XLWVHQHGHUODDJVXSHULHXU YRHOGHQKDGGHQGH]HRRNZHLQLJEHKRHIWHDDQYHUGHUHRQWZLNNHOLQJYDQ FRGHHUPHWKRGHV$OOHHQGH3ROHQLQJHNOHPGWXVVHQ5XVODQGPHWFRPPXQLVWLVFKH H[SDQVLHLGHHsQHQGH'XLWVHUVHURSXLWODQGWHUXJWHNULMJHQYDQ3ROHQKDGGHQGH EHKRHIWHDDQKHWRQWFLMIHUHQYDQJHKHLPHEHULFKWHQGLH]LMRSYLQJHQ9LD+DQV7LOR 6FKPLGWHHQJHGHVLOOXVLRQHHUGH'XLWVH]DNHQPDQGLHKHW(QLJPDJHKHLPYHUNRFKWDDQ GH3ROHQHQGH3RRO0DULDQ5HMHZVNLGLHHHQLPLWDWLH(QLJPDPDFKLQHQDXZNHXULJ EHVWXGHHUGHZHUGGH(QLJPDPHWKRGHJHNUDDNW(UZHUGYRRUKHWYHU]HQGHQYDQHHQ JHKHLPEHULFKWHHQ]RJHQDDPGHGDJVOHXWHOJHEUXLNWGLHGHURWRUHQVFUDPEOHULQVWHOOLQJ EHSDDOGH5HMHZVNLEHJUHHSQX]RYHHOYDQGH(QLJPDGDWKLMLQVWDDWZDVWHJHQGH DYRQGEHULFKWHQWHRQWFLMIHUHQGLHGLH]HOIGHGDJYHUVWXXUGZDUHQ-DUHQODQJNRQGHQGH 3ROHQ]RDOOHJHKHLPHEHULFKWHQYDQGH'XLWVHUV RQWFLMIHUHQ0DDULQEUHLGGHQGH'XLWVHUV GH(QLJPDPDFKLQHXLWPHWH[WUDURWRUV ZDDUGRRUKHWDDQWDOPRJHOLMNKHGHQHQRUP WRHQDP5HMHZVNLKDGKHWQDNLMNHQ (HQYDQGHQDJHERXZGH(QLJPDPDFKLQHVZHUG LQVHSWHPEHUQDDU%OHWFKOH\3DUNELM /RQGHQJHVPRNNHOGZDDU$ODQ7XULQJHUPHHLQ DDQUDNLQJNZDP%OHWFKOH\3DUNZDVGH VXSHUJHKHLPHSOHNYDQGH%ULWVH ,QOLFKWLQJHQGLHQVWZDDUHHQWHDPVSHFLDOLVWHQ ]LFKEH]LJKLHOGPHWKHWRQWFLMIHUHQYDQJHKHLPH ERRGVFKDSSHQ %OHWFKOH\3DUNELM/RQGHQGH]HHUJHKHLPH SOHNZDDURRUORJVEHULFKWHQZHUGHQ RQWFLMIHUG 'HPRGHHO9 $UWLILFLDO,QWHOOLJHQFH /(602'8/(352&('85(6 ,QGH]HOHVPRGXOHJDMHVWDSYRRUVWDSHHQYROOHGLJPRGHOERXZHQ $*(176$*(17(1(1352&('85(6 ,QGHWZHHGHPRGXOHKHEMHJHOHHUGKRHMHKHWFRPPDQGRFHQWUXPHQGHPRQLWRUHQNRQ JHEUXLNHQRPGHDJHQWVWHYHUDQGHUHQHQGLQJHQWHODWHQGRHQ1XEHJLQWKHWHFKWH ZHUNGHNQRSSURFHGXUHVLQKHW7DEVPHQX -HKHEWDORSGUDFKWHQJHJHYHQDDQYHUVFKLOOHQGHW\SHVDJHQWVSDWFKHVWXUWOHVHQ REVHUYHU3DWFKHVNXQQHQQLHWEHZHJHQHQ]LMQJHUDQJVFKLNWLQHHQWZHHGLPHQVLRQDDO YODN7XUWOHVEHZHJHQRYHUGDWYODN'H2EVHUYHUEHNLMNWZDWHUJHEHXUWHQNDQ]RZHOGH SDWFKHVDOVWXUWOHVDDQVWXUHQ $OOHGULHVRRUWHQDJHQWVNXQQHQRSGUDFKWHQRIFRPPDQGR VJHYHQ=HNXQQHQDOOHGULH SURFHGXUHVXLWYRHUHQ(HQSURFHGXUHLVHHQYHU]DPHOLQJFRPPDQGR VLQHHQQLHXZ FRPPDQGRGDWHHQHLJHQQDDPNULMJW-LM]HOIYHU]LQWGLHQDDP -H]XOWOHUHQKRHMHSURFHGXUHVVFKULMIWGLHHUYRRU]RUJHQGDWWXUWOHVHWHQ]LFK YRRUWSODQWHQHQVWHUYHQ-H]XOWRRNOHUHQKRHMHPRQLWRUHQVFKXLIEDONHQHQJUDILHNHQ PDDNW+HWPRGHOGDWZHJDDQERXZHQLVHHQVLPSHOHFRV\VWHHPGDWYHHOZHJKHHIWYDQ KHWYRRUEHHOGYDQGHZROYHQHQGHVFKDSHQHQKHWJUDVXLWGHHHUVWHPRGXOH +(70$.(19$1'(6(783.123 .OLNRS1HZLQKHW)LOH0HQX .OLNRSGH%XWWRQNQRSYDQKHWPHQX .OLNRSGHSODDWVZDDUMHGHNQRSZLOWKHEEHQ (UYHUVFKLMQWHHQSRSXSVFKHUPZDDULQMHNXQWDDQJHYHQZHONHWHNVWHURSGHNQRSPRHW VWDDQ 7\SVHWXSLQKHWYHQVWHUZDDUFRPPDQGVERYHQVWDDW .OLNRS2.]RGDWKHWSRSXSYHQVWHUVOXLWHQGHUDQGURQGGHNQRSYHUGZLMQW 'UXNPHWGHUHFKWHUPXLVNQRSRSGHNQRSHQNLHVVHOHFW(UYHUVFKLMQWRSQLHXZHHQUDQG URQGGHNQRS1XNXQMHKHPYHUSODDWVHQDOVMHGDWZLOW .OLNQDDVWGHNQRSHQGHUDQGYHUGZLMQWZHHU (1,*0$,QIRUPDWLHERHN 1XKHEMHHHQNQRSZDDUPHHKHWPRGHOGHZDDUGHQNDQLQVWHOOHQ2PGDWHUQRJJHHQ VHULHFRPPDQGR VLVJHVFKUHYHQZDDUPHHGDWJHEHXUWLVGHWHNVWRSGHNQRSURRG$OV MHRSGHNQRSGUXNWYHUVFKLMQWHUHHQVFKHUPGDWMHSUHFLHVYHUWHOWZDDURPGHWHNVWURRG LVHUPRHWHHQSURFHGXUHZRUGHQJHVFKUHYHQPHWHHQQDDPGLHFRUUHVSRQGHHUWPHWGH WHNVWRSGHNQRS .OLNRSGHNQRS3URFHGXUHVLQKHW7DEVPHQX 7\SGHYROJHQGHWHNVWHQKRXGMHDDQGHOD\RXW to setup clear-all create-turtles 100 ask turtles [setxy random-xcor random-ycor] end .OLNRS,QWHUIDFHHQRSGHVHWXSNQRS -HKHEWQXHHQSURFHGXUHJHVFKUHYHQPHWGHQDDPVHWXS'HQDDPHQGHFRPPDQGR V YDQGHSURFHGXUHZRUGWYRRUDIJHJDDQGRRUWRHQDIJHVORWHQPHWHQG (U]LMQGULHFRPPDQGR V • clear-allPDDNWGHZHUHOGYDQKHWPRGHOKHOHPDDOVFKRRQPDDNWGHSDWFKHV]ZDUW HQYHUZLMGHUWHYHQWXHOHWXUWOHV • create-turtles 100PDDNWWXUWOHVHQ]HW]HLQKHW PLGGHQYDQKHWYHOG • ask turtles [setxy random-xcor random-ycor]EHYDW HLJHQOLMNFRPPDQGR VDVNLVHHQRSGUDFKWYDQGHREVHUYHU RPGHWXUWOHVLHWVWHODWHQGRHQ:DWGHWXUWOHVPRHWHQGRHQ VWDDWWXVVHQGHYLHUNDQWHKDNHQ=HPRHWHQHHQUDQGRP SOHNLQQHPHQLQKHWYODN (HQUDQGRPSOHNLVHHQSDWFKPHWHHQUDQGRP[FR|UGLQDDW HQHHQUDQGRP\FR|UGLQDDW+HWUDQGRPJHWDOYRRUGH FR|UGLQDWHQZRUGWJHPDDNWGRRUHHQUHSRUWHU 'HUHSRUWHUUDQGRP[FRUUDSSRUWHHUWGHUDQGRPZDDUGHYRRUGH[FR|UGLQDDWYDQGH WXUWOHHQKRXGWUHNHQLQJPHWGHWRHJHVWDQHZDDUGHQ]RGDWGHWXUWOHQLHWEXLWHQKHW YODNNDQORSHQ'HUDQGRP\FRUGRHWGDWYRRUGH\FR|UGLQDDW-H]XOWODWHULQGH]H PRGXOHEHWHUEHJULMSHQZDWHHQUHSRUWHULV :DWKHWHIIHFWLVYDQGHFRPPDQGR V]LHMHDOVMHRSGHVHWXSNQRSGUXNW'UXNHHQSDDU NHHURSGHNQRSHQMH]XOW]LHQGDWGHVWDUWSRVLWLHYDQGHSDWFKHVHONHNHHUDQGHUVLV -HKHEWZDDUVFKLMQOLMNDOJHUDGHQGDWQXGHSURFHGXUHYRRUGHJRNQRSDDQGHEHXUWLV 'HPRGHHO9 +HWYDNJHELHGLQIRUPDWLFD ,QIRUPDWLFDLVRRNHHQZHWHQVFKDS2SKHWJHELHGYDQGHLQIRUPDWLFDZRUGWZHUHOGZLMG ZHWHQVFKDSSHOLMNRQGHU]RHNJHGDDQDDQXQLYHUVLWHLWHQHQLQRQGHU]RHNVODERUDWRULDYDQ VRPPLJHJURWHEHGULMYHQ0DDUZDWGRHQGLHRQGHU]RHNHUVHLJHQOLMN"'HPHHVWHPHQVHQ KHEEHQGDDUJHHQJRHGEHHOGYDQ=HZHWHQZHOGDWRQGHU]RHNHUVQLHXZH FRPSXWHUWRHSDVVLQJHQEHGHQNHQHQ GHFRPSXWHU VWHHGVVQHOOHUHQ VWHHGVNOHLQHUPDNHQPDDUGDDUPHHKRXGWKHWZHO]R QEHHWMHRS ,V:RUGYDQ0LFURVRIWKHWUHVXOWDDWYDQZHWHQVFKDSSHOLMN RQGHU]RHN",VLQWHUQHWHHQXLWYLQGLQJHHQZHWHQVFKDSSHOLMNH RQWGHNNLQJRIHHQIDVHLQHHQJHOHLGHOLMNHRQWZLNNHOLQJ"+HW DQWZRRUGRS]XONHYUDJHQ]DOPHHVWDO]LMQ³'DWKDQJWHUPDDU YDQDIKRHMHKHWEHNLMNW´:RUGHQLQWHUQHW]LMQRS]LFK]HOI JHHQZHWHQVFKDSSHOLMNHRQWGHNNLQJHQ:RUGLVJHZRRQHHQ FRPPHUFLHHOSURGXFWHQLQWHUQHWLVJHOHLGHOLMNRQWZLNNHOG HQXLWJHERXZG%HLGH]LMQZHOJHEDVHHUGRS ZHWHQVFKDSSHOLMNHRQWGHNNLQJHQRIXLWYLQGLQJHQ RSGUDFKW 'LWKRRIGVWXNJHHIWHHQVFKHWVYDQGHLQIRUPDWLFDDOVZHWHQVFKDSHQ HQNHOHYRRUEHHOGHQYDQRQGHU]RHNVYUDJHQ,QKHWHHUVWHGHHOYDQGLWKRRIGVWXN LVHURRNDOLHWVRYHUJH]HJGHQGDDUJDDQZHQXZDWFRQFUHWHURSLQ'LWKRRIGVWXNZLOLQ GHHHUVWHSODDWVKHOSHQELMKHWPDNHQYDQHHQNHX]HYRRURIMXLVWWHJHQHHQ XQLYHUVLWDLUHVWXGLHLQIRUPDWLFD'HXQLYHUVLWHLWELHGWZHOLVZDDURRNHHQµEHURHSVRSOHLGLQJ RSDFDGHPLVFKQLYHDX¶PDDUHHQRSOHLGLQJWRWZHWHQVFKDSSHOLMNRQGHU]RHNHUYLQGMH DOOppQDDQGHXQLYHUVLWHLW ,QIRUPDWLFDRQGHU]RHNEHVWXGHHUWGH ZLVNXQGLJHJURQGVODJHQWKHRULHHQGH SUDNWLVFKHDVSHFWHQYDQKDUGZDUH FRPSXWHUVHQVRIWZDUHSURJUDPPD V HQJHJHYHQV'HUHODWLHPHQV RUJDQLVDWLHLQIRUPDWLHWHFKQRORJLH RQWZLNNHOW]LFKWRWHHQHLJHQGHHOJHELHG 2PUHVXOWDWHQYDQQXORSHQGRQGHU]RHN JRHGWHEHJULMSHQ]RXMHPRHWHQ EHVFKLNNHQRYHUYULMJHVSHFLDOLVHHUGH NHQQLV'DDURPJHYHQZHHQNHOH YRRUEHHOGHQYDQDOYHHOHHUGHUEHKDDOGHUHVXOWDWHQHQYDQHQNHOHYUDDJVWHOOLQJHQLQ PRGHUQRQGHU]RHN:HGRHQGDWDDQGHKDQGYDQYHUVFKLOOHQGHRQGHU]RHNVJHELHGHQYDQ GHLQIRUPDWLFD RSGUDFKW± ,1)250$7,&$$/6:(7(16&+$3 (1,*0$,QIRUPDWLHERHN 7(&+1,6&+(&20387(5.81'( (pQYDQGHRXGVWHRQGHU]RHNVJHELHGHQLVGDWYDQKHWORJLVFKRQWZHUSGH DUFKLWHFWXXU YDQFRPSXWHUV:DWLVHHQQXWWLJHVHWLQVWUXFWLHVYRRUHHQ&38"-HNXQWELMYRRUEHHOG UHNHQLQJKRXGHQPHWSRSXODLUHDSSOLFDWLHVGHQNDDQGHPXOWLPHGLDDDQYXOOLQJHQYDQ 3HQWLXPVRISUREHUHQPRGHUQHSURJUDPPHHUWDOHQRSWLPDDOWHRQGHUVWHXQHQ]RGDW ELMYRRUEHHOGPHWKRGHDDQURHSHQKHHOZHLQLJWLMGNRVWHQ3URFHVVRUHQZRUGHQYHUVQHOG GRRUVWHHGVVXEWLHOHUHFDFKHWHFKQLHNHQ'HLQVWUXFWLHF\FOXVNDQZRUGHQRSJHYRHUGGRRU SLSHOLQLQJZDDUELMHHQLQVWUXFWLHZRUGWRSJHKDDOGYRRUGDWGHYRULJHLVDIJHORSHQ,Q PRGHUQHSURFHVVRUHQ]LWWHQHUVRPVZHOLQVWUXFWLHVLQGHSLMSOLMQ (HQ NDOH FRPSXWHULV]RQGHU lopende band HHQEHVWXULQJVV\VWHHPHHQ WDPHOLMNRQEUXLNEDDUGLQJ ‘CMP R0, #12’ ‘ADD R0, #1’ ‘LOAD R0, 1234’ %HVWXULQJVV\VWHPHQ]LWWHQ]y GLFKWRSGHKDUGZDUHGDWPHQ ZHOVSUHHNWYDQ KDUGH OPHALEN ANALYSEREN UITVOEREN INSTRUCTIE INSTRUCTIE INSTRUCTIE VRIWZDUH RI ILUPZDUH &HQWUDOH RQGHU]RHNVYUDJHQ]LMQKLHURI KHWV\VWHHPFRUUHFWLVGRHW GEHEUGEN KHWZDWKHWPRHWGRHQ"HQ EHWURXZEDDUGRHWKHWQLHWZDW KHWQLHWPRHWGRHQ"%RYHQGLHQLVGHHIILFLsQWLHYDQJURRWEHODQJGRHWKHWZDWKHW PRHWGRHQ]RVQHOHQHIILFLsQWPRJHOLMN"'LW]LMQRYHULJHQVGULHIXQGDPHQWHOH YUDDJVWHOOLQJHQGLHLQYULMZHODOKHWLQIRUPDWLFDRQGHU]RHNHHQUROVSHOHQ RSGUDFKW 'HPHHVWHEHVWXULQJVV\VWHPHQZHUNHQDOVHHQVDPHQVSHOYDQYHOHPLQRIPHHU ]HOIVWDQGLJHSURFHVVHQ2SHONPRPHQWLVHUKRRJVWHQVppQSURFHVDFWLHI1DYHUORRS YDQWLMGZRUGWKHWLQDFWLHIGRRUGDWKHWPRHWZDFKWHQRSLQYRHUYDQHHQDSSDUDDWRIRS JHJHYHQVYDQHHQDQGHUSURFHVRIRPGDWKHWQXDOODQJJHQRHJDFWLHILV±HQSDNZHJ VHFLVDOHHQIOLQNHWLMG'DQZRUGWHHQDQGHUSURFHVJHDFWLYHHUG'RRUGHHQRUPH VQHOKHLGYDQSURFHVVRUHQOLMNWKHWRIDOOHSURFHVVHQWHJHOLMNEH]LJ]LMQ'LWZRUGWSDUDOOHO ZHUNLQJPXOWLSURJUDPPHULQJPXOWLWDVNLQJRIWKUHDGLQJJHQRHPG.LMNYRRUGH]HEHJULS SHQQRJHHQVLQKHWKRRIGVWXNRYHUEHVWXULQJVV\VWHPHQ2PGDWGHSURFHVVHQRRNRQGHU OLQJLQIRUPDWLHXLWZLVVHOHQ]LMQGHFRUUHFWKHLGHQEHWURXZEDDUKHLGYDQ]XONHV\VWHPHQ ELM]RQGHUODVWLJYDVWWHVWHOOHQ 3URFHVVHQGLHLQGHZDFKWJH]HW]LMQNXQQHQQDYHUORRS YDQWLMGZHHUYHUGHUELMYRRUEHHOG]RGUDGHLQYRHUELQQHQ LV$OVGHSURFHVVRUEH]HWLVGRRUHHQDQGHUSURFHVNRPHQ ]HLQHHQZDFKWULM.RPWGHSURFHVVRUYULMGDQLVGHYUDDJ ZHONSURFHVDDQGHEHXUWLV+HWODQJVWZDFKWHQGHSURFHV" (HQSURFHVGDWGHSURFHVVRUZDDUVFKLMQOLMNPDDUKHHOHYHQ QRGLJKHHIW"+HWSURFHVYDQGHEHVWEHWDOHQGHNODQW"(HQ SURFHVGDWHHQWLMGNULWLVFKDSSDUDDWEHVWXXUW"+HWEHSDOHQ YDQGH]HNHX]HKHHWVFKHGXOLQJHQLVHHQNODVVLHNH RQGHU]RHNVYUDDJZDDUELMYDQ]HOIVSUHNHQGGHZLVNXQGLJH ZDFKWWLMGWKHRULHHHQEHODQJULMNHUROVSHHOW(HQJRHGH VFKHGXOLQJNDQGHWRWDOHSUHVWDWLHVYDQKHWV\VWHHPVWHUN EHYRUGHUHQ RSGUDFKW 'HPRGHHO9 6RPPLJHFRPSXWHUVEHYDWWHQPHHUGDQppQSURFHVVRUPHWHHQJH]DPHQOLMNJHKHXJHQ =R QFRPSXWHUKHHWHHQWLJKWO\FRXSOHGPXOWLSURFHVVLQJV\VWHP+HWVSUHHNWYDQ]HOIGDW GHVFKHGXOLQJGDQQRJODVWLJHUZRUGW$OVKHWJDDWRP]HHUYHHOSURFHVVRUHQVSUHHNW PHQYDQPDVVLYHSDUDOOHOOLVP2SGLWJHELHGZRUGW]HHUYHHORQGHU]RHNJHGDDQ+HWJDDW HUYRRUDORPGHYHOHSURFHVVRUHQHIILFLsQWPHWHONDDUWHODWHQFRPPXQLFHUHQ +HWNDQRRN]LMQGDWKHWJHKHXJHQQLHWJHPHHQVFKDSSHOLMNLV+HWV\VWHHPLVGDQORRVHO\ FRXSOHG(LJHQOLMNLVKHWLQGDWJHYDOHHQQHWZHUNPHWJHPHHQVFKDSSHOLMNH DFKWHUJURQGJHKHXJHQVHQUDQGDSSDUDWHQ'HSURFHVVRUHQNXQQHQRRNYDQYHUVFKLOOHQG W\SH]LMQ'DQVSUHHNWPHQYDQHHQJHGLVWULEXHHUGV\VWHHP,QWHUQHWLVKHWPHHVW H[WUHPHYRRUEHHOG ,QHHQWLJKWO\FRXSOHGV\VWHP]DOHULQSULQFLSHQRJppQSURFHVGHEDDV]LMQ'LWSURFHV ]DORRNGHVFKHGXOLQJYHU]RUJHQ(HQW\SLVFKHRQGHU]RHNVYUDDJLV]RXKHWRRN GHPRFUDWLVFKNXQQHQ"'DWOLMNWLQHONJHYDOZHOQRGLJLQJHGLVWULEXHHUGHV\VWHPHQHQ ]HNHULQQHWZHUNHQ(ULVGDQJHHQVSUDNHPHHUYDQVFKHGXOLQJPDDUYDQDXWRQRPH SURFHVVHQGLHFRPPXQLFHUHQGRRUPLGGHOYDQSURWRFROOHQ RSGUDFKW± ! "#$% %% &$'( ! )#*+ , ' , - +' , .+' / *++ 0 122 0 1223 + 122 )+ % %% %%% &$'( 4 5 + 4 *6+ 4 5 4 7+ % + + 55 55('88 55928 ! $55 *% , -(+ 55* " *+ #8 5517 ! 1+5538 , *%#+ / %*+55 0 :; <%% & +'% ! ! ! , / 4 ! , , / 0 ! , , , 0 0 ! ! ! !! ! (1,*0$#*% 4 *%8+855 4 #3 4 :#3+ 4 #83 4! :$+3+ 4, :$8 $% 55 $%+8 7855 78+ 78 %$ * #8* ! ); ! ('; ! ;3 ! );+#3+ !! :; !, );#8 *% $ * , 55* , **55;2= , :#8;>+?88@A , :#8;>+?+8?*@A ,! :#8;>+?>;@A ,, :#8;>+?#8?;@A ,/ 33>; ,0 :*#*+ , $%*++ / &+#+ 55 0 "3+55 255 % ! 78++*' , " *+ 5'88 "#$ % & '&# + B*>8 )*++ 8 :8 ! : ! ! -* ! &% !! .( !, -$' !! !! !, !/ !/ !/ !0 ,4 , , ,! ,/ ,0 ,0 , , , /4 /4 /4 / / / / /0 04 0 0 0! 0, 0, 0, 0, 0/ 0/ 00 0 4 ! / 0 ! )* ) ! , / 0 + * 3838 $8C+;# :+;# $8C$# ! +*+$ ! 8'+ *%#+ ! #++ !! "+ %++#8 , :*%%+ , +%%+@A$+'' , :++% $8C+$ / +*+$C / +'%8$%+ / "+8 /! *'++>%+ /, "8D% // + 18+ ("+ ,' ' ! , 2#$" :$+ ) " " 8++ :8 " :+C.% ! :+; , '8+ / + *% #8+$ >8 88$ +E , + , , -+ -"' &" <*88+ 9 %9" ( ! , 44 44 4 4 4 4! 4! 4, 4/ 40 40 40 4 4 4 4 4 ! ! , / 0 0 4 ! / - ! '<1 +++<1 :%+2%+<1 2C%+8<1 ! -*'8 F <1 , - *'<1 ' ! +++ ! :%+2%+ ! 2C%+8 !! -*'8 F !, - *' .#"'+ ! , (1,*0$#*% + .8 &*+8#+#* &#+%++ &*%%% $ ! 4$ )+ :++ :8++ :(++ ; #8% 2F D ! " ! :; ! 58; ! +C; 1+#8+ ! ;+ ! G# ! 2%# !! -+# !! ;+; !! 58+; !! -;+; !, 1+#8+ !, :8+#8* !, :8+#8&6 !/ )8+#8; H+#+;% , G , " +;$%%+ , -F# , 28% , : + ,! G$% ! ! !0 !0 ,4 , ,0 /4 /, /, /, // / 04 0 0 0 0, 0/ 00 0 0 0 0 4 ! ! / / / 0 4 4 ! ! !" ! " #$"% <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>...</title> </head> <body> <!-- Op deze plaats komt alle code te staan. --> </body> </html> & " " " " % ' "( ! $" " )$" " % ! * " % & # % <h1>Dit is de hoofdkop.</h1> <h4>Dit is een minder belangrijke kop.</h4> " +( ! ( " $"% <p>Dit is een alinea.</p> <p>Dit is een tweede alinea.</p> ! " " "% , " " $"% - " ! ". <br />% Dit is regel 1.<br /> Dit is regel 2. !" " # !" $% ! & ! !$ ! "% ' ( " " ) " !" * " + , + " , " ' ( ! $ ! - " ! + ! % h1 { color: orange } $ + ! ! <h1>De titel</h1> <p>Met een <a href="pagina2.html" title="Volgende pagina">link</a> naar de volgende pagina.</p> . ! + ! + ! % / h1 { color: orange; text-decoration: underline } p { background-color: gray } <h1>De titel</h1> <p>Met een <a href="pagina2.html title="Volgende pagina">link</a> naar de volgende pagina.</p> !"#$$ ! " # $! :link :visited :hover :active Verwijzingen die nog niet bezocht zijn Bezochte verwijzingen Verwijzingen waar met de muis overheen gegaan wordt Verwijzingen waarop geklikt wordt, maar die niet worden losgelaten Twee voorbeelden van hoe je verwijzingen kunt opmaken. Het eerste voorbeeld: a { color: red; text-decoration: underline } a:visited { color: orange } a:hover { text-decoration: none } <a href="#">Dit is een standaardverwijzing.</a> #% .link { background-color: yellow; text-decoration: none; color: green } .link:hover { background-color: none } <a href="#" class="link">Verwijzing van de class 'link'.</a> %& $ $$'$$ & # # ' #( #) ) * # ! + # # # ! & * ) # ! Hoofdstuk 2 2 Interactieve websites met PHP en MySQL 33 Interactieve websites met PHP en MySQL 1 INLEIDING 1.1 WAT IS PHP? PHP is een server-side scripting taal. PHP stond oorspronkelijk voor "Personal Home Page" tools: ontworpen door Rasmus Lerdorf in 1994 en vrij ter beschikking gesteld op Internet. Sindsdien is het door vele programmeurs omarmd en ontwikkeld waardoor het een krachtige en betrouwbare ontwikkelomgeving is geworden die nog steeds vrij te gebruiken is. In PHP zijn veel elementen van andere programmeertalen geleend, zoals C en Perl. Maar het is ook zo ontworpen dat het eenvoudig in het gebruik is. De belangrijkste informatiebron voor PHP vind je op Internet op het volgende adres: www.php.net Websites die gebruik maken van PHP hebben vaak dit logo: 1.2 PHP EN ZIJN CONCURRENTEN PHP is een van de "grote drie" server-side scripting talen. De andere zijn: ASP: Active Server Pages, ontwikkeld door Microsoft en alleen maar beschikbaar op het Windows platform. JSP: Java Server Pages, ontwikkeld door Sun en alleen maar te gebruiken in combinatie met een Java Web Server. De belangrijkste voordelen van PHP boven de andere twee zijn: x Vrij: PHP is gratis te gebruiken x Platformonafhankelijk: is niet beperkt tot een enkel besturingssysteem of webserver x Krachtig: PHP heeft uitstekende faciliteiten om te kunnen samenwerken met databases, grafische bestanden, XML en PDF. 1.3 PHP VERSUS JAVASCRIPT De fundamentele verschillen tussen PHP en JavaScript zijn: JavaScript x Is een cliënt-side scripting taal; d.w.z. dat het script in de browser van je eigen computer wordt uitgevoerd x Statements worden door de webbrowser gerund x Scripts worden normaliter gerund na een event x De pagina kan gewijzigd worden na het tonen van de pagina. 36 ENIGMA Informatieboek Je moet je pagina’s online bekijken of offline als je een webserver op je machine hebt staan met ondersteuning van PHP. Alleen dan kan de code geparsed worden. Onder parsen van PHP code verstaan we het omzetten van de code naar HTML. Start de browser. Typ op de adresbalk de juiste URL. Druk op Enter. Je krijgt dan een pagina te zien die er ongeveer zo uitziet: Als je kijkt naar de broncode van deze getoonde webpagina dan ziet die er als volgt uit: De PHP code is verdwenen en vervangen door tekst die door het script is gegenereerd. Dat is gebeurd tijdens het runnen van het script op de webserver. Onthoud goed: je mag nooit PHP code in de broncode van een webpagina aantreffen. Als dat wel het geval is heb je ergens een fout gemaakt in het script of is het bestand als .txt opgeslagen. Om het bekijken van bestanden gemakkelijker te maken kun je in plaats van iedere keer de volledige URL in te typen ook een map in de htdocs map van je XAMPP aanmaken waarin je je scripts plaatst die je wilt testen. Voor deze module is op de lokale server een map PHP-Enigma aangemaakt. Let op! Je moet er wel op letten dat de meeste internetservers hoofdlettergevoelig zijn. Als je nu in de browser localhost/PHPEnigma intypt, krijg je iets te zien dat er ongeveer zo uitziet (zorg dat er geen index.html of index.php in de map PHP-Enigma staat): Hoofdstuk 2 45 Interactieve websites met PHP en MySQL Plaats echter geen puntkomma na het sluithaakje van de voorwaarde en ook niet na de else. De regels die hier gelden zijn ook van toepassing op de for-loop, de while-loop en de switch. 2.10.2 DE FOR-LOOP Voorbeeld van een for-loop: Enkelvoudig statement (for) for( initialisatie; test; ophoging/verlaging) Statement; Meervoudige statements (for) for( initialisatie; test; ophoging/verlaging) { Statement; Statement; etc. } $namen = array("Marja","Hans","Ronald","René","Louis","Piet"); Wil je nu alle namen uit de array in één keer onder elkaar in een genummerde lijst in een webpagina plaatsen, kun je de volgende gebruiken: <html> <head> <title>Weergeven van namen met een for-loop</title> </head> <body> <?php /* Deze loop zal alle namen van de array elkaar op het scherm zetten. */ in een genummerde lijst onder $namen = array("Marja","Hans","Ronald","René","Louis","Piet"); print("In de array zitten de volgende namen:<br>"); print("<ol>"); for($i = 0; $i < count($namen); $i++) print ( "<li><h4>$namen[$i]</h4></li>" ); print("</ol>"); ?> </body> </html> Als je het script uitvoert, krijg je het volgende te zien: (1,*0$ ! " # $ %& '(()# $ *&+ , -. // + $ ! 0 & * 1.# 1 1 * + . 2 " (1,*0$ ! "# ! $ ! ! % & ' 7 $ % )+89 " ()# * & !+ "!! # , ! - &. ! ! ! " # / !0 !+ &" # 1 & )2$3 & 4 ! / * ! ! , *!! & )&" && &# 55 2 ! / !6 !"#$#$% ! " #$ $ %$ & $ $ ' $ ( ) # *+% # $ ( ) &% &% $ , - $ # # $ . / # $ &% $ $ # 0 $ . /1 . 1 / 2 # $ &% $ # 0 . /1 . ) 1 / $ 3 $ $ $ ) • 0$ $ $ $ $ $ • ' $ $ • 4 0 $ $ ! ! ! " # ! $ # ! ! ! ! # ! % # ! $ ! ! ! ! # & ! ! '' ! ( ! )*** ( + " , ! ! ! ( ! ! + ! # ## 4' ' 5 ' #' # 1 ! $ -' # 6 ' ' # ( ' ' boolean isPriem (int getal) { for (int deler = 2; deler < getal; deler++) { if (getal % deler == 0) return false; } return true; } ! " # $ % #& ! $' # ( )* true' )) false' + , true ) - .' /01 22 2/ 2 3 # # ' # & 1 7 # ' / -8 # #' # % "**0 - % 9 , % ' / ' :#4 # # # # • (1,*0$ • • !"# • • • $ " # • % &' ( &' &')"&') # !"#$!%&# '&#!( )* ! " # $ " % $ % #& '( & " # • ) * # + & , & - . - . • /+ / " & + , + & - ! "#! $. - % &&&'. • 0 1 & + , & - '(() * . - +'(() * . 1 + $ % * -. + + !) ,%) - #!.&$- #! & (+ # # & # ( • & 22 - * ,. • & 3 & + "#$"%"#& WXSRV JUDSKHLQ !" # $ $ $ $ $ $ "$ $ $$ % $ $ & % %$ ' % % " %$ $ ! $ " $ '&$()*"$%$#"( '+,-#.$$%()*/"#--/*$--.$ $ $ " $ & " $ $ ( # $ " " ) *+ $" $$ "" " ! ) " "$ % $, $- .$ # " "$ " % $ ) /$ 0 % $$ 1$$ $ % " ) % $ $ % $ $ 2$ # $ ! %$ $ $$ $ 3 $" $ ( 4 56 $ " ! ( # " ! $ # 7$ $ ' 4" # $ "# $ $ 8/ % # %$ $" 9 # ""$ *2$ 4+ $ 9 : !"#$%&'()*+(,&-'! (1,*0$ !! " # ! $ % " $ " " " $ ! &'&(&)'*+'+(*),''-'* " !!&' ./ & &-'*" " ! 0" % $ !!-&'-- $ ! ! "-&''1 $ ! &)1 &)+