Programmeren in PHP. Opleiding Ocean Technology Module HDM1. 20 april 2015 Versie 6.7 S. Hibma

Maat: px
Weergave met pagina beginnen:

Download "Programmeren in PHP. Opleiding Ocean Technology Module HDM1. 20 april 2015 Versie 6.7 S. Hibma"

Transcriptie

1 Opleiding Ocean Technology Module HDM1 20 april 2015 Versie 6.7 S. Hibma

2 Inhoudsopgave 1 Inleiding Wat is programmeren Wat is nodig voor de programmeeromgeving Installatie benodigde programma s Webserver Editor FTP-programma Eerste programma HTML-code php-code Variabelen Toekenning van een waarde aan een variabele (assignment) Operatoren Practicum opdrachten Programmastructuren Herhalingen (loops of lussen) In PSD-vorm De while lus in php De for-lus in php Keuze opdrachten Een 2-keuze in PSD-vorm Een 2-keuze in php Het meerkeuzediagram Meerkeuze in PSD-vorm Meerkeuze in php Interactie tussen programma en gebruiker Formulieren POST en GET variabelen POST GET Controle van POST en GET variabelen Opdrachten De kunst van het programmeren Netjes programmeren Maken van het ontwerp dmv een PSD Voorbeeld programmaontwerp Opdelen programma in losse delen via Include Uitbreiding opdracht renteberekening Opdracht priemgetal Functies Scope van variabelen Argumenten van een functie Resultaatwaarde van een functie

3 7.4 Opdracht koers en verheid Invoerformulier voor 2 posities Controle van de ingevoerde posities Het hoofdprogramma Omrekenen naar handelbare eenheden Functie lengteverschil (dl) Functie DVergrotende breedte (DVB) Functie Grondkoers loxodroom (Grk lox ) Functie Loxodroomverheid (V lox ) Files Openen en sluiten file Lezen en schrijven in een file Browsen naar een file String bewerkingen Opdracht Maak een programma wat: Uitbreiding: Arrays Wat is een array? Hoe maak je een array? Hoe spreek je een array aan? Kan een array een array bevatten? Functies die met Arrays te maken hebben Opdrachten dimensionale array dimensionale array

4 1 Inleiding 1.1 Wat is programmeren Programmeren is het maken van een lijst van instructies (meestal voor een computer). Een computer werkt alleen met binaire instructies die voor een normaal mens haast niet te lezen zijn. Daarom zijn er hogere programmeertalen ontwikkeld. De, in deze talen geschreven, programmacode moet dan wel door de computer worden terugvertaald naar binaire code (door een compiler). Bij het opstellen van een programma moeten we ons wel precies aan de regeltjes van een programmeertaal houden, anders reageert de compiler met foutmeldingen. Voorbeelden van moderne hogere programmeertalen zijn C++, Pascal, Visual Basic, PHP. Wij zullen programmeren in PHP. Dit is een bijzondere programmeertaal omdat hij draait op een Internetserver en dat hoeft beslist niet je eigen computer te zijn. De communicatie met de gebruiker loopt geheel via Internetpagina s. PHP wordt vooral gebruikt om Dynamische websites te maken, maar is ook bij uitstek geschikt om web-based applicaties te maken. Dat is in deze cursus uiteindelijk ons doel. 1.2 Wat is nodig voor de programmeeromgeving Een computer (webserver) waarop de volgende programmatuur draait: host-programma voor webpagina s. Deze maakt webpagina s, die op een webserver staan, zichtbaar voor Internetbrowsers (Internet Explorer, Firefox etc). Voorbeelden zijn: Apache en ISS. script processor (bv php, asp). Dit zijn serverside script-processors. Ze draaien op de webserver en produceren HTML-code die naar de cliënt wordt gestuurd. De cliënt hoeft, behalve een Internetbrowser, dus helemaal geen programmatuur te installeren om een programma te draaien. Dit in tegenstelling tot bv Javascripts. die samen met de HTML-code naar de cliënt worden gestuurd. De cliënt moet hiervoor vaak ook onderdelen installeren om deze applicaties te draaien (dit gaat overigens vaak automatisch). database-programma voor opslag gegevens (bv mysql, Microsoft SQL, postgre, access). Een database is niet altijd strikt nodig. Verder moeten we de scripts schrijven, controleren en op de juiste plaats rzetten: editor, liefst met wat syntaxcontrole (PHP-designer, Notepad++, Dreamweaver) FTP-programma, om scripts en files op de juiste plaats r te zetten. Dit is met name nodig als de webserver op een andere locatie staat of op een ander platform (Unix, Linux) draait dan de ontwikkelomgeving. Voorbeelden zijn WS-FTP95 en Filezilla. 3

5 2 Installatie benodigde programma s 2.1 Webserver Er zijn in principe 2 mogelijkheden: we maken gebruik van een externe webserver. Bij de NHL heeft iedereen een stukje webruimte om webpagina s r te zetten: Daarnaast kun je natuurlijk ook een eigen domein aanvragen bij een Internet provider. we maken van onze eigen computer (laptop) een webserver. We moeten dan (zie vorige paragraaf) een host-programma, een script-processor en (eventueel) een database-programma installeren. Van Internet kun je installatiepakketten downloaden die al deze zaken in één keer installeren. Dit worden wel WAMP pakketten genoemd (Windows Apache MySQL PHP). Voor Apple-computers wordt dit MAMP! Wij gaan in de lessen mogelijkheid 2 gebruiken. Het werkt het snelst en ons geknoei staat niet meteen online. 2.2 Editor In beide gevallen moeten we op onze lokale computer een editor beschikbaar hebben. In principe is Notepad voldoende, maar een programma als PHP-designer of Notepad++ werkt veel fijner. De regels zijn genummerd en er zitten mogelijkheden in voor foutopsporing. Zie Blackboard voor het programma en installatie. 2.3 FTP-programma Als we op onze lokale computer een webserver hebben draaien is dit niet nodig: we kunnen gewoon met de Windows verkenner de bestanden op de juiste plaats rzetten. Draaien we onze webpagina s op een externe server dan kunnen we met bv WS-FTP de programma s uploaden. Zie voor installatie en instellingen ons Intranet: Intern/ICT/Software instal. en instelling/wsftp. 4

6 3 Eerste programma Een php-programma produceert dus HTML-code (Hyper Text Markup Language) die over het Internet naar de cliënt wordt gestuurd. We moeten dus goed met HTML overweg kunnen om met php te kunnen werken. Hieronder eenvoudige voorbeelden. 3.1 HTML-code Een webpage heeft altijd de volgende gedaante: <html> <heading> eventuele headings (mag je eerst ook leeg laten) </heading> <body> Hello world </body> </html> Als we deze code opslaan onder de naam index.html in de documentroot van de webserver, dan zul je, als je met een browser naar het adres van je webserver gaat, de volgende uitvoer krijgen: Hello world Dit heeft nog niets met PHP te maken. Het wordt anders als we de naam van het bestand veranderen in index.php. In dat geval zal de webserver de pagina door de php-processor halen. In bovenstaande voorbeeld zit geen php-code. De php-processor zal dit dus gewoon als HTML doorgeven naar de browser van de cliënt. 3.2 php-code PHP-code staat altijd tussen de volgende tags: php-instructies gescheiden door ; De eerste php instructie die we leren is: echo. De regel in het voorbeeld waar Hello world wordt afgedrukt kunnen we schrijven als: echo "Hello world"; Eventueel kunnen we ook (een deel van) de omliggende HTML door php laten afdrukken. Het programma zou er dan als volgt uitzien: 5

7 Hele programma in php: echo "<html>"; echo "<heading>"; echo "</heading>"; echo "<body>"; echo "Hello world"; echo "</body>"; echo "</html>"; Deel van pogramma in php: <html> <heading> </heading> <body> echo "Hello world"; </body> </html> Voor welke versie je kiest maakt niet uit. Doe wat handig is. In deze voorbeelden is php helemaal niet nodig omdat dit allemaal statische informatie is. Daar gaan we straks verandering in brengen, maar daarvoor moeten we eerst kunnen werken met variabelen, assignments en operatoren. 3.3 Variabelen In een variabele kunnen we iets opslaan. Bij veel programmeertalen moeten we van te voren aangeven welke variabelen we gaan gebruiken en wat voor soort gegevens we in de variabele willen opslaan (datatype). Mogelijke datatypen in php zijn Boolean (True/False) true/false of 1/0 Integer (hele getallen) bv 123 Double (floating point getallen) bv String (tekenreeks) bv "Hello world" Array (rij van gegevens) komt later Object (variabele met een structuur) komt later In php is het helaas niet mogelijk om van tevoren een datatype op te geven voor een variabele.. PHP zoekt zelf uit wat het type moet zijn aan de hand van de gegevens die we er in stoppen. Een variabele in php begint altijd met een $, gevolgd door minimaal één letter of een underscore. Daarachter eventueel meer letters, cijfers of underscores. 3.4 Toekenning van een waarde aan een variabele (assignment) [variabele naam] = [waarde] ; In het bovenstaande voorbeeld kunnen we de body vervangen door: $test1 = "Hello world"; echo "$test1"; Als we bij echo slechts 1 variabele of expressie willen afdrukken mogen we de aanhalingstekens weglaten, dus: echo $test1; Als we 2 variabelen willen afdrukken kan dat als volgt: of echo $test1. $test2; echo "$test1 $test2"; 6

8 3.5 Operatoren PHP kent onder andere operatoren in de volgende groepen: Arithmetic Operators String Operators Assignment Operators Bitwise Operators Logical Operators Comparison Operators In de documentatie van staan deze operatoren beschreven onder Language Reference/Operators De prioriteit van de operatoren staat beschreven bij Operator Precedence. 7

9 3.5.1 Practicum opdrachten Bestudeer in de PHP Manual: Language Reference/Operators/Arithmetic Operators en de String Operators. Voorspel de uitkomst van: $a = ; $b = 5 ; echo $a + $b; echo $a - $b; echo $a * $b; echo $a / $b; echo $a % $b; echo $a. $b; Test je antwoorden door de bovenstaande expressies in een programma in te voeren. Bestudeer in de PHP Manual de Logical Operators. Voorspel de uitkomst van: $c = true; $d = false; echo ($c and $d); echo ($c or $d); echo ($c xor $d); echo (!$d); echo ($c && $d); echo ($c $d); Test je antwoorden door de bovenstaande expressies in het programma in te voeren. Opmerking: in php is true hetzelfde als 1 en false hetzelfde als 0. Bestudeer in de PHP Manual: Language Reference/Operators/Comparison Operators. Voorspel de uitkomst van: $e = 2.3; $f = 4; echo ($e = $f); echo ($e == $f); echo ($e === $f); echo ($e <= $f); Test je antwoorden door de bovenstaande expressies in een programma in te voeren. Bestudeer in de PHP Manual: Function Reference/Mathematical Extensions/Math/Math Function. Voorspel de uitkomst van: $g = 0.5; $h = 1.7; echo sin($h); echo asin($g); echo max($e,$h); echo round($g); echo floor($h); echo sqrt($g); Test je antwoorden door de bovenstaande expressies in het programma in te voeren. 8

10 4 Programmastructuren 4.1 Herhalingen (loops of lussen) Met deze structuur kan een herhalingslus in een programma worden ingebouwd In PSD-vorm Als de gegeven voorwaarde waar is wordt de opdracht(en) uitgevoerd. Daarna wordt de voorwaarde opnieuw getest. Dit gaat door zolang de voorwaarde geldt. Als dat niet meer zo is, dan wordt de lus dus beëindigd. Het zal duidelijk zijn dat de opdracht(en) invloed moet hebben op de voorwaarde. Zo niet, dan is de lus oneindig en dat is meestal niet de bedoeling. In PSD: zolang voorwaarde geldt opdracht(en) Voorbeeld: zolang uur<23 schrijf("het uur is nu: ", uur) uur := uur + 1 Er wordt begonnen met de test of de variabele uur groter is dan 1. We hebben dan meteen al een probleem: uur moet een waarde hebben gekregen voor we deze lus kunnen beginnen. Dit noemen we de initialisatie van de lus teller. Dus: Voorbeeld: uur := 0 zolang uur<23 schrijf("het uur is nu: ", uur) uur := uur + 1 Binnen de herhaling worden twee handelingen verricht (staan dus ook 2 procesdiagrammen): een opdracht die één en ander afdrukt een toekenningsopdracht waarin uur de waarde krijgt van zichzelf plus 1. Vraag: hoe vaak wordt de lus doorlopen? 9

11 4.1.2 De while lus in php De algemene gedaante van een while is: while ( expr ) statement; Heel vaak willen we op de plaats waar "statement" staat meerdere handelingen uitvoeren. Door accolades om een groep statements te zetten kunnen we ze groeperen tot een zogenaamd compound statement. while( expr ) { statement1; statement2; De expressie expr is een voorwaarde die true (=1) of false (=0) oplevert. Het voorbeeld uit de vorige paragraaf kan worden geprogrammeerd met: $uur = 0; while($uur <= 23) { echo "Het uur is nu: ". $uur; $uur++; Opmerking: $uur++ is een verkorte notatie van $uur = $uur + 1 Er zijn nog andere manieren om een while te gebruiken: while (expr): statement... endwhile; do.. while (heeft ook echt een andere structuur) Zie hiervoor het PHP Manual/Language Reference/Control Structures/do-while Opdracht Ontwerp een programma voor het volgende probleem: We willen sin, cos en tangens afdrukken van de hoeken van 0 t/m 90 graden in een nette tabel. Aanwijzingen: de functies vind je in het PHP Manual: Function Reference/Mathematical Extensions/Math Om een tabel te maken moeten we de juiste HTML code afdrukken. De volgende code produceert een eenvoudige tabel: <table border=1> <tr> <th>hoek</th><th>sin</th><th>cos</th><th>tan</th> </tr> <tr> <td>cel1</td><td>cel2</td><td>cel3</td><td>cel4</td> </tr> <tr> <td>cel1</td><td>cel2</td><td>cel3</td><td>cel4</td> </tr> </table> 10

12 Dit geeft de volgende uitvoer. hoek sin cos tan cel1 cel2 cel3 cel4 cel1 cel2 cel3 cel4 Er zijn commando s om de weergave van getallen precies regelen: (zie PHP Manual: Function Reference/Text Processing/Strings/String Functions) sprintf(%01.2, 1.234) geeft als uitvoer 1.23 number_format(1.234, 2) geeft als uitvoer De for-lus in php Als we van tevoren weten hoe vaak we willen herhalen, kunnen we in plaats van while ook de for-lus gebruiken. De algemene gedaante van een for-lus is: for (expr1; expr2; expr3) statement Hierin is: expr1 de initialisatie van de lus teller expr2 de eindvoorwaarde expr3 de bewerking op de lus teller Het eerder gegeven voorbeeld kunnen we dus ook met een for lus maken: for($uur = 1; $uur <= 23 ; $uur++) { echo "Het uur is nu: ". uur; Je ziet dat dit een verkorte schrijfwijze oplevert Opdracht Herschrijf het programma van nu met een For-lus. 11

13 4.2 Keuze opdrachten Hiermee kan een keuze worden gemaakt tussen twee verschillende wegen door het programma. De keuze wordt gemaakt aan de hand van een gegeven voorwaarde Een 2-keuze in PSD-vorm als voorwaarde geldt ja statement 1 (statement 2) In het geval de voorwaarde geldt, wordt programmadeel 1 uitgevoerd. Zo niet, dan wordt programmadeel 2 uitgevoerd. Programmadeel 2 kan ook leeg worden gelaten. In dat geval wordt er bij dus niets gedaan en het programma vervolgt met de volgende diagram. We noemen het dan ook wel een voorwaardelijk diagram. Voorbeeld: getal := randomgetal getal>=0 ja schrijf( getal ) Verklaring: De variabele getal in de voorwaarde moet eerst een zinvolle waarde krijgen (initialisatie). Dit doen we hier door er een randomgetal aan toe te kennen Als uit de test blijkt dat getal groter dan of gelijk aan 0 is kunnen we hiervan de wortel berekenen en afdrukken. Als de voorwaarde oplevert wordt dus niets gedaan. Het programma gaat verder met het volgende diagram. We kunnen ook de -kant van een zinvolle betekenis voorzien: Voorbeeld: getal := randomgetal getal>=0 ja schrijf ( getal ) schrijf ( "kan niet" ) In dit voorbeeld wordt, afhankelijk van de voorwaarde, de uitkomst van getal afgedrukt of de tekststring kan niet. 12

14 4.2.2 Een 2-keuze in php Een keuzeopdracht met 1 mogelijkheid: if (expr)statement; Heel vaak willen we op de plaats waar "statement" staat meerdere handelingen uitvoeren. Door accolades om een groep statements te zetten kunnen we ze groeperen tot een zogenaamd compound statement. if ( expr ) { statement1; De expr is een voorwaarde die true (=1) of false (=0) oplevert. Het voorbeeld uit de vorige paragraaf ziet er in php als volgt uit: srand((double)microtime()* ); //start randomgenerator $getal = rand() - round(getrandmax()/2); if($getal>=0) { echo "De wortel van $getal is ".sqrt($getal)."<br>"; Een keuzeopdracht met 2 mogelijkheden: if ( expr ) { statement1; else { statement2; Het voorbeeld uit de vorige paragraaf ziet er in php als volgt uit: srand((double)microtime()* ); $getal = rand() - round(getrandmax()/2); if($getal>=0) { echo "De wortel van $getal is ".sqrt($getal)."<br>"; else { echo "kan niet<br>"; Opdracht Wijzig het programma van opdracht zodanig dat het woord oneindig wordt afgedrukt als de hoek 90 of 270 graden is. Aanwijzingen: bij de voorwaarde in de if-statement kunnen we meerdere logische expressies aan elkaar knopen met en && 13

15 4.3 Het meerkeuzediagram Heb je meer dan 2 keuzemogelijkheden nodig dan kun je: meerdere if.. else combinaties gebruiken gebruik maken van if.. elseif (zie PHP Manual: Language Reference/Control Structures) een meerkeuze gebruiken (alleen in specifieke gevallen). Dit is hieronder beschreven Meerkeuze in PSD-vorm Hier kan een keuze worden gemaakt uit meerdere mogelijkheden. In PSD expressie is: programmadeel 1 programmadeel 2 programmadeel 3 etc De expressie levert een uitkomst af. Vervolgens wordt bekeken of deze uitkomst overeenkomt met één van de opgegeven waarden (op de plaats van...). Komt geen van de waarden overeen dan wordt niets gedaan. Dit diagram wordt bij voorbeeld veel gebruikt om keuzemenu s te programmeren. Voorbeeld: lees(cijfer) cijfer is: schrijf("goed" ) schrijf("voldoende" ) schrijf("onvoldoende" ) schrijf("slecht" ) Hier wordt de expressie gevormd door de variabele cijfer. Deze moet natuurlijk wel een zinvolle waarde hebben gekregen (initialisatie). Dat wordt hier gedaan door opvragen van het toetsenbord. Afhankelijk van de ingevoerde waarde wordt dan één van de 4 opdrachten uitgevoerd. In dit geval wordt een tekststring afgedrukt, maar elk blokje kan natuurlijk weer net zo goed een groot stuk programma bevatten. 14

16 4.3.2 Meerkeuze in php Met het switch-commando kunnen we de meerkeuze uit het voorbeeld van de vorige paragraaf gemakkelijk programmeren: switch ($cijfer) { case 1: print "goed"; break; case 2: print "voldoende"; break; case 3: print "onvoldoende"; break; case 4: print "slecht"; break; Pas in het volgende hoofdstuk zullen we hier een opdracht mee maken. 15

17 5 Interactie tussen programma en gebruiker De meeste programma s hebben interactie met de gebruiker: de gebruiker voert bepaalde gegevens in waarna het programma aan de slag gaat en uitvoer genereert. 5.1 Formulieren De enige mogelijkheid om gebruikers dingen te laten invoeren via Internetpagina s is doormiddel van formulieren. In de HTML-handleiding (zie blackboard) kun je uitgebreide informatie over formulieren vinden. Het onderstaande voorbeeld is helemaal in HTML. <html> <head> <title>mijn eerste formulier</title> </head> <body> <form action="verwerk.php" method="post"> <label for="g1">getal 1:</label> <input type="text" name="g1" id="g1"><br> <label for="g2">getal 2:</label> <input type="text" name="g2" id="g2"><br> <label>bewerking:</label> <select name="bewerking"> <option>optellen</option> <option>aftrekken</option> <option>vermenigvuldigen</option> <option>delen</option> <option>machtsverheffen</option> </select><br> <input type="hidden" name="mijnnaam" value="sjoerd Hibma"> <input type="submit" value="verzenden"> </form> </body> </html> Dit geeft de volgende uitvoer: 16

18 Korte verklaring (zie voor uitgebreide informatie bv. ): action= verwerk.php : nadat op de knop Verzenden is gedrukt zal deze pagina worden gestart (in dit geval in dezelfde directory als het formulier) method= post : de manier waarop variabelen worden doorgegeven aan de volgende internetpagina (zie volgende paragraaf) label : is een nette manier om teksten voor invoervakken etc. op te geven <input type= text : geeft een invoervak name= g1 : de, door de gebruiker, in te voeren waarde wordt in de variabele g1 gestopt <select..> </select> : geeft een keuzelijst <option> </option> : definieert de elementen in de keuzelijst <input type= hidden : verstuurt een verborgen variabele <input type= submit : geeft een knop met als opschrift de waarde achter value= 5.2 POST en GET variabelen Er zijn 2 manieren waarop een Internetpagina gegevens kan doorgeven aan een volgende pagina POST Deze variabelen kunnen alleen vanuit een formulier worden verstuurd (als method= post is opgegeven). Deze variabelen worden in het verborgene doorgegeven. Ze zijn in php op te vragen als $_POST['naam']. echo $_POST['g1'].$_POST['bewerking'].$_POST['g2'].$_POST['mijnnaam']; Als we voor g1 en g2 resp. 23 en 12 hebben ingevoerd en als bewerking optellen dan is de uitvoer: 23optellen12Sjoerd Hibma Ziet er niet uit natuurlijk maar klopt wel GET Deze variabelen kunnen we versturen vanuit een formulier wanr method= get is opgegeven. De variabelen worden dan als argumenten met de pagina meegegeven. Als we op Verzenden hebben geklikt zien we in de adresbalk: Deze variabelen zijn in php op te vragen als $_GET['naam']. echo $_GET['g1'].$_GET['bewerking'].$_GET['g2'].$_GET['mijnnaam']; geeft als uitvoer evens: 23optellen12Sjoerd Hibma In formulieren gebruiken we zelden de get-methode. In links (en knoppen met daaronder links) daarentegen juist wel. 17

19 5.2.3 Controle van POST en GET variabelen Bij de verwerking van een formulier horen wij, nette programmeurs als we zijn, altijd controles uit te voeren. Bij onjuistheden sturen we de gebruiker terug naar het formulier zodat de fouten hersteld kunnen worden. Deze controles zijn Controleren of er een formulier gepost is Controleren of de vereiste velden ingevuld zijn Eventuele andere controles op de velden uitvoeren Wel errors? Fouten weergeven en terug naar formulier Geen errors? Gegevens verwerken. <html> <head> <title>verwerken van het formulier!</title> </head> <body> // Controle of een formulier gepost is if ($_SERVER['REQUEST_METHOD'] == 'POST') { // Controle of de betreffende post-velden bestaan if(isset($_post['g1']) and isset($_post['g2']) and isset($_post['bewerking'])) { // Controle of de betreffende post-velden goed zijn ingevuld if(is_numeric($_post['g1']) and is_numeric($_post['g2'] and strlen($_post['bewerking'])>0) { // zet voor het gemak de POST-variabelen in php-variabelen $getal1 = $_POST['g1']; $getal2 = $_POST['g2']; $bewerking = $_POST['bewerking']; // Eventueel verder controle op correcte waardes if($bewerking=="delen" and $getal2==0) { $fout = "delen door nul kan niet"; else { $fout = "Niets ingevuld bij een post-variable"; else { $fout = "Niet alle benodigde post-variabelen bestaan"; else { $fout = "Deze opgegeven pagina mag niet worden bezocht voordat dit formulier wordt ingevuld"; if (!empty($fout)) { // Er zijn fouten geconstateerd: terug naar het formulier echo "<font color=red>$fout</font><br>"; echo "Klik <a href='formulier.php'>hier</a> om terug te keren naar het formulier."; else { //=============================================================== //alles is goed gegaan. Nu gegevens verwerken 18

20 echo "Rekenmachine van ".$_POST['mijnnaam']." <br>"; switch ($bewerking) { case "optellen": $antwoord = $getal1 + $getal2; echo "$getal1 + $getal2 = $antwoord"; break; case "aftrekken": $antwoord = $getal1 - $getal2; echo "$getal1 - $getal2 = $antwoord"; break; case "vermenigvuldigen": $antwoord = $getal1 * $getal2; echo "$getal1 x $getal2 = $antwoord"; break; case "delen": $antwoord = $getal1 / $getal2; echo "$getal1 / $getal2 = $antwoord"; break; case "machtsverheffen": $antwoord = pow($getal1,$getal2); echo "$getal1<sup>$getal2</sup> = $antwoord"; break; default: echo "geen juiste bewerking geselecteerd"; </body> </html> In het eerste deel van het bovenstaande programma worden de wenselijke controles uitgevoerd en in het tweede deel worden de ingevoerde gegevens verwerkt. Op de Internetsite staat ook een zeer leerzaam voorbeeld van het verwerken van gegevens uit een formulier. Daarin worden echter arrays gebruikt en dat stellen we even uit Opdrachten Probeer het bovenstaande uit. Je kunt de code van formulier.php en verwerk.php kopiëren en in de betreffende bestanden opslaan. Vlooi de scripts helemaal door en zoek alle dingen die niet duidelijk zijn op in de handleidingen van HTML en php. We kunnen het nog mooier maken door zowel het invoerdeel als het verwerkdeel in één bestand te zetten. We krijgen dan een doorlopende rekenmachine waarin we eventueel ingevoerde waarden nog weer kunnen terugkoppelen. Probeer beide scripts samen te voegen tot één bestand: rekenmachine.php. Afhankelijk van het feit of er gegevens zijn gepost laat je het formulierdeel of het rekendeel uitvoeren. 19

21 6 De kunst van het programmeren De volgende zaken zijn erg belangrijk bij het programmeren: nette en consequente lay-out en commentaarregels maken van een ontwerp programma opdelen in overzichtelijke blokken die zo mogelijk herbruikbaar zijn terugkerende bewerkingen in aparte blokjes programma plaatsen: includes en functies. 6.1 Netjes programmeren Programma s zijn over het algemeen toch al moeilijk leesbaar. Zorg daarom voor een duidelijke en consequente lay-out en voorzie je programma van commentaarregels. Een voorbeeldje laat dit duidelijk zien: $fout = ""; if($_server['request_method'] == 'POST') { if(isset($_post['g1']) && isset($_post['g2'])) { if(is_numeric($_post['g1']) && is_numeric($_post['g2'])) { $inleg = $_POST['g1']; $rente = $_POST['g2']; else { $fout = "Niets ingevuld bij een post-variable"; else { $fout = "Niet alle benodigde post-variabelen bestaan"; else { $fout = "Deze opgegeven pagina mag niet worden bezocht voordat dit formulier wordt ingevuld"; Dit is slecht leesbaar. Zo is absoluut niet duidelijk welke else bij welke if hoort. Dit stukje programma herschreven in een nette lay-out en voorzien van commentaar ziet er bijvoorbeeld als volgt uit: // Controle of een formulier gepost is $fout = ""; if($_server['request_method'] == 'POST') { // Controle of de betreffende post-velden bestaan if(isset($_post['g1']) && isset($_post['g2'])) { // Controle of de betreffende post-velden zijn ingevuld if(is_numeric($_post['g1']) && is_numeric($_post['g2'])) { // zet voor het gemak de POST-variabelen in php-variabelen $inleg = $_POST['g1']; $rente = $_POST['g2']; else { $fout = "Niets ingevuld bij een post-variable"; else { $fout = "Niet alle benodigde post-variabelen bestaan"; else { $fout = "Deze opgegeven pagina mag niet worden bezocht voordat dit formulier wordt ingevuld"; Iets meer regels, maar veel duidelijker nietwaar? 20

22 6.2 Maken van het ontwerp dmv een PSD Een goed hulpmiddel bij het ontwerpen van programma s is het Programma Structuur Diagram (PSD). Hiermee kun je de structuur van een programma ontwerpen zonder de toeters en bellen die bij een programmeertaal horen. Reden 1: Het kost even tijd om eerst een ontwerp te maken, maar dit verdient zich altijd terug (echt waar) in de vorm van een duidelijk en logisch opgebouwd programma. Reden 2: Bij programmeren uit de losse pols kom je er meestal halverwege of op het eind achter dat je de zaak beter op een andere manier had kunnen aanpakken. Reden 3: Voor een buitenstaander is het erg lastig om programmacode te lezen. Dit geldt ook voor jezelf als je programma s lang geleden hebt geschreven. Heb je in de documentatie een structuurdiagram bij de hand, dan is het programma veel beter te volgen Voorbeeld programmaontwerp We gaan deze ontwerpmethodiek bekijken met het volgende probleem. Ik zet een op te vragen bedrag op de bank tegen een op te geven jaarrente. De rente wordt elk jaar aan het spaarbedrag toegevoegd. Druk voor de komende 25 jaar de jaarlijkse rente en het totale spaarbedrag af. Het stukje programma uit 6.1 is al een deel van dit programma: controle op correct ingevuld invoerformulier. Het kan in de volgende PSD in beeld worden gebracht: PSD controle op invoerformulier fout := ""; ja ja ja inleg:=postvar g1 rente:=postvar g2 inleg en rente numeriek? form gepost? inleg en rente ingevuld? fout := fout:= foute gegevens ingetypt" fout:= niet alle gegevens ingevuld "niet via formulier op deze pagina gekomen" Op deze manier kunnen we een programma blokje voor blokje ontwerpen en later aan elkaar koppelen. Het hele probleem kan door de volgende PSD worden beschreven: 21

23 PSD Renteberekening Controle op invoerformulier (zie afzonderlijke PSD) Fouten in de invoer? ja Druk foutmelding af totaal := inleg jaar := 1 zolang jaar<=25 rente := totaal := Druk af jaarrente en totaal tot nu toe jaar := jaar Opdracht renteberekening Schijf voor het bovenstaande probleem het programma in PHP. Daar hoort uiteraard ook het invulformulier bij. Extra: druk de bedragen in rood af zodra het inlegbedrag is verdubbeld. 6.3 Opdelen programma in losse delen via Include In het bovenstaande voorbeeld is de controle op het invoerformulier als een apart blokje in de PSD opgenomen. In PHP kunnen we dat ook daadwerkelijk doen. We kunnen verschillende kant en klare delen in verschillende bestanden zetten en dan in het hoofdprogramma deze blokken includen (ertussenin voegen) <html> <head> <title>berekenen spaarbedrag</title> </head> <body> // Controle of een formulier gepost is include('spaarcontrole.php'); if (!empty($fout)) { // Er zijn fouten geconstateerd echo "<font color=red>$fout</font><br>"; else { //=================================================== //alles is goed gegaan. Nu gegevens verwerken HIER KOMT DE REST VAN HET PROGRAMMA </body> </html Uitbreiding opdracht renteberekening Maak voor bovenstaande opdracht een apart bestand voor de invoercontrole en link die via include aan het hoofdprogramma Extra: druk de bedragen in rood af zodra het inlegbedrag is verdubbeld. 22

24 6.4 Opdracht priemgetal Van een op te vragen getal willen we bepalen of het een priemgetal is. Ontwerp het programma in de vorm van een PSD Schrijf het programma in PHP - Je krijgt weer 3 bestanden: een invoerformulier, een controlegedeelte en een hoofdprogramma die je met include aan elkaar kunt linken Aanwijzingen: Een priemgetal is alleen deelbaar door 1 en zichzelf. We kunnen dus vanaf 2 tot maximaal de helft van het ingevoerde getal kijken of de deling een rest oplevert. 23

25 7 Functies Een functie is een afgerond stukje programma waarmee we een bepaalde bewerking willen uitvoeren. Dit stukje programma zetten we meestal bovenaan in het programma of in een zelfgemaakte bibliotheek van functies die we met include in ons programma linken. De functie kunnen we vervolgens aanroepen waar, en zo vaak als we maar willen. 7.1 Scope van variabelen Variabelen uit het hoofdprogramma zijn niet bekend in een functie en omgekeerd zijn variabelen binnen de functie niet daarbuiten bekend. We hoeven ons bij het maken van een functie dus niet te bekommeren om variabele namen. Onderstaande voorbeeld moet dit duidelijk maken. /* functie voor het testen van variable scope */ function test($x,$y){ //$a en $b zijn hier niet bekend. Wel $x en $y $z = $x + $y; return $z; //============================================== $a = 4; $b = 5; $c = test($a,$b); //$x en $y zijn hier niet bekend echo "Antwoord is $c <br>"; Dit programma geeft als uitvoer: Antwoord is Argumenten van een functie We kunnen de functie van invoer voorzien door in de declaratie achter de functienaam tussen haakjes één of meer argumenten te zetten. In de aanroep moeten dan net zo veel argumenten staan (in de juiste volgorde en van het juiste type). Het 1 e argument in de aanroep wordt opgevangen in de 1 e variabele van de declaratie, de 2 e in de 2 e variabele, etc.. In ons voorbeeld krijgt $x dus de waarde van $a en $y de waarde van $b. Op de plaats van $a en $b mogen ook gewoon getallen staan. Dus $c = test(4,5) zou precies hetzelfde effect hebben. 7.3 Resultaatwaarde van een functie In het bovenstaande voorbeeld krijgt de functie test zelf een waarde via return $z. Een functie is dan ook altijd van een bepaald type. Dat zie je ook als je in php.net/manual een functie opzoekt. Er zal dan altijd een type bij staan. Bijvoorbeeld: float sin ( float $arg ). Het type kan zijn (meest voorkomende): 24

26 float floating point getallen (getal met cijfers achter de komma) int integer: hele getallen bool boolean: true of false (1 of 0) string tekenreeks Het kan ook zijn dat een functie geen resultaatwaarde krijgt. Er staat dan geen return in de functie. Dit gebeurt bijvoorbeeld als we binnen een functie alleen iets willen afdrukken. 7.4 Opdracht koers en verheid We willen een afgevaren en een bekomen positie opvragen en dan de koers en verheid berekenen volgens loxodroomnavigatie. In grote lijnen kun je de volgende werkwijze volgen. Globaal PSD invoer en controle van 2 posities omrekenen naar handelbare eenheden berekenen lengteverschil (dl) berekenen van het vergrotende breedteverschil (DVB) berekenen van de koers K ongecorrigeerd berekenen van de Grondkoers loxodroom (Grklox) berekenen van de Verheid loxodroom (Vlox) Invoerformulier voor 2 posities We hebben een formulier nodig wat 2 posities opvraagt (in de vorm van graden, minuten met decimalen en een teken N/S of E/W). Dit formulier gaan we bij voorkeur in een apart bestand zetten wat we met include in ons programma kunnen plakken. Omdat dit niet het meest interessante deel van het programma is, is het hieronder gegeven. Merk wel even op de value parameter in de input velden: we vullen hier de postvariabelen in mits ze bekend zijn. Dit heeft als voordeel dat bij foute invoer van bijvoorbeeld 1 veldje niet alle andere invoer ook verloren gaat en we alles opnieuw moeten intypen. // formulier voor het opvragen van 2 posities // in graden, minuten met decimalen en windstreek <form action="loxodroom.php" method="post"> <label for="ba">breedte A:</label> <input type="text" name="bga" id="bga" value= echo $_POST['bgA']; > <input type="text" name="bma" id="bma" value= echo $_POST['bmA']; > <select name="bta"> $selstr = $_POST['btA']=='S'? 'selected ' : ''; <option>n</option> <option echo $selstr; >S</option> </select><br> <label for="la">lengte A:</label> <input type="text" name="lga" id="lga" value= echo $_POST['lgA']; > <input type="text" name="lma" id="lma" value= echo $_POST['lmA']; > <select name="lta"> $selstr = $_POST['ltA']=='W'? 'selected ' : ''; <option>e</option> <option echo $selstr; >W</option> 25

27 </select><br> <label for="bb">breedte B:</label> <input type="text" name="bgb" id="bgb" value= echo $_POST['bgB']; > <input type="text" name="bmb" id="bmb" value= echo $_POST['bmB']; > <select name="btb"> $selstr = $_POST['btB']=='S'? 'selected ' : ''; <option>n</option> <option echo $selstr; >S</option> </select><br> <label for="lb">lengte B:</label> <input type="text" name="lgb" id="lgb" value= echo $_POST['lgB']; > <input type="text" name="lmb" id="lmb" value= echo $_POST['lmB']; > <select name="ltb"> $selstr = $_POST['ltB']=='W'? 'selected ' : ''; <option>e</option> <option echo $selstr; >W</option> </select><br> <input type="submit" value="verzenden"> </form> // einde formulier voor het opvragen van 2 posities Controle van de ingevoerde posities Hierna zal een verstandig programmeur een aantal controles uitvoeren om te zien of alle gegevens op de juiste manier zijn ingevuld: 26

28 PSD controlegedeelte fout := ; ja ja ja breedte A fout? fout:= fout+ Fout in breedte A ja lengte A fout? fout:=fout+ Fout in lengte A ja breedte B fout? fout:=fout+ Fout in breedte B ja lengte B fout? fout:=fout+ Fout in lengte B alles ingevuld? form gepost? fout:= Niet alle benodigde gegevens zijn ingevoerd fout:= Vul de posities in het formulier in Hieronder is de code weergegeven van het controlegedeelte. Dit kunnen we straks via include in ons hoofdprogramma plakken. Hier zijn al 2 functies opgenomen voor het controleren van de ingevoerde breedte resp. lengte. // functie voor checken van fouten in ingevoerde lengte // levert true af bij fouten en false als alles goed is function breedtefout($g, $m, $t) { $gradenok = is_numeric($g) && $g>=0 && $g<=90; $minutenok = is_numeric($m) && $m>=0 && $m<60; $totaalok = ($g + $m/60)<=90; $tekenok = strtoupper($t)=="n" strtoupper($t)=="s"; return!$gradenok!$minutenok!$tekenok; // functie voor checken van fouten in ingevoerde lengte // levert true af bij fouten en false als alles goed is function lengtefout($g, $m, $t) { $gradenok = is_numeric($g) && $g>=0 && $g<=180; $minutenok = is_numeric($m) && $m>=0 && $m<60; $totaalok = ($g + $m/60)<=180; $tekenok = strtoupper($t)=="e" strtoupper($t)=="w"; return!$gradenok!$minutenok!$tekenok!$totaalok; // Controle of een formulier gepost is $fout = ""; if($_server['request_method'] == 'POST') { // Controle of de betreffende post-velden zijn ingevuld if (isset($_post['bga']) && isset($_post['bma']) && isset($_post['bta']) && 27

29 isset($_post['lga']) && isset($_post['lma']) && isset($_post['lta']) && isset($_post['bgb']) && isset($_post['bmb']) && isset($_post['btb']) && isset($_post['lgb']) && isset($_post['lmb']) && isset($_post['ltb'])) { // Controle op correcte waardes if (breedtefout($_post['bga'], $_POST['bmA'], $_POST['btA'])) $fout = $fout. " Fout in breedte A"; if (lengtefout($_post['lga'], $_POST['lmA'], $_POST['ltA'])) $fout = $fout. " Fout in lengte A"; if (breedtefout($_post['bgb'], $_POST['bmB'], $_POST['btB'])) $fout = $fout. " Fout in breedte B"; if (lengtefout($_post['lgb'], $_POST['lmB'], $_POST['ltB'])) $fout = $fout. " Fout in lengte B"; else { $fout="niet alle benodigde gegevens zijn ingevoerd"; else { $fout = "Vul de posities in het formulier in"; Het hoofdprogramma Om een beetje overzicht te houden hieronder het hoofprogramma van de tot nu toe gemaakte stukken programma. PSD hoofdprogramma loxodroom Controlegedeelte (zie hierboven) zijn er fouten? ja print fout Berekeningen uitvoeren: zie hieronder details toon formulier <html> <head> <title>loxodroom berekeningen</title> </head> <body> /* functie voor omrekenen van een breedte van graden, minuten met decimaal en windstreek naar graden met decimaal en teken */ function reken_breedte_om($g, $m, $t) { if (strtoupper($t)=="n") $graden = $g + $m/60; else $graden = -($g + $m/60); return $graden; /* functie voor omrekenen van een lengte van graden, minuten met decimaal en windstreek naar graden met decimaal en teken */ function reken_lengte_om($g, $m, $t) { if (strtoupper($t)=="e") $graden = $g + $m/60; 28

30 else $graden = -($g + $m/60); return $graden; //========= hier begint het hoofdprogramma========= include('controle.php'); if ($fout) { echo "$fout <br>"; include('invoerform.php'); else { // alles ok ingevoerd $ba = reken_breedte_om($_post['bga'],$_post['bma'],$_post['bta']); </body> </html> Maak dit zelf verder af aan de hand van de beschrijvingen in de volgende paragrafen Omrekenen naar handelbare eenheden. Met de ingevoerde gegevens kunnen we niet zonder meer berekeningen uitvoeren. We moeten lengtes en breedtes omrekenen naar een eenheid waarmee we fatsoenlijk kunnen rekenen: bat= N? ja ba := bga+bma/60 ba := -(bga+bma/60) Natuurlijk doen we hetzelfde met la, bb en lb Functie lengteverschil (dl) Het (kleinste) lengteverschil gaan we berekenen met een functie. Onderstaande PSD is de leidraad: PSD lengteverschil verschil := len2 - len1 ja verschil < -180 verschil := verschil verschil > 180 Ja verschil:=verschil Functie Vergrotende breedte (DVB) Het vergrotende breedteverschil bereken we met de volgende formule PSD DVB bb tan(45 ) 180 DVB : LN 2 ba tan(45 ) 2 29

31 PSD Loxodroomkoers bb tan(45 ) 180 DVB : LN 2 ba tan(45 ) Functie Grondkoers loxodroom (Grk lox ) Uit de dl en DVB kunnen we de koers berekenen: ja DVB = 0 K := 90 K := atan(dl / DVB) dl = 0 ja DVB > 0 dl > 0 ja ja Grklox:=0 Grklox:=180 K > 0 K > 0 ja ja Grklox:=K Grklox:=K+180 Grklox:=K+180 Grklox:=K Functie Loxodroomverheid (V lox ) Tenslotte kunnen we uit ba, bb en de Grklox de verheid berekenen: PSD Loxodroomverheid ja bb = ba Vlox := dl * cos(ba) * 60 Vlox := (bb-ba) / cos(grklox) * 60 Maak van deze hele reeks van beschrijvingen een samenhangend, overzichtelijk en efficiënt programma. Gebruik van de genoemde functies is verplicht voor deze opdracht. Controleer nauwgezet of de antwoorden kloppen. Van vorig jaar heb je nog een Excel-opdracht die dezelfde berekeningen uitvoert. 30

32 8 Files Het is in PHP heel goed mogelijk om te lezen uit of schrijven naar een tekstbestand. Daarvoor is het begrip filepointer van belang. Dit is een wijzer naar een plaats in het gekozen bestand waar de eerstvolgende lees- of schrijfactie zal plaatsvinden. Deze filepointer moet worden benoemd zodra we iets met een bestand willen doen en is op verschillende manieren te manipuleren. 8.1 Openen en sluiten file Het generieke commando voor openen is: resource fopen ( string $filename, string $mode [, bool $use_include_path = false [, resource $context ]] ) Een eenvoudig voorbeeld is duidelijker: $fp = fopen("getallen.txt","r"); $fp is de filepointer waar we straks steeds naar moeten verwijzen als we iets willen lezen of schijven. $bestand is de naam van het te lezen of beschrijven bestand. De normale unix-achtige regels gelden voor bestandsnamen, zoals: / = scheidingsteken,. = huidige directory,.. = bovenliggende directory r = read: openen voor lezen w = write: openen voor schrijven a = append: openen voor schijven aan het einde Zie voor (veel) meer informatie Na gebruik horen we het bestand weer te sluiten. We doen dat door de filepointer te ontkoppelen: fclose($fp); 8.2 Lezen en schrijven in een file Zoals gezegd worden lees- en schijfacties uitgevoerd op de plaats waar de filepointer naar wijst (is in feite het adres van een bepaalde plaats op de schijf). Lezen van de plaats waar de filepointer naartoe wijst doen we als in het volgende voorbeeld: $regel = fgets($fp); Er wordt een hele regel gelezen (tot aan het EndOfLine (EOL) teken) en die wordt als string geplaatst in de variabele $regel. Als we op het einde van het bestand zijn aangekomen mogen we natuurlijk niet verder lezen. Achter elk bestand staat een EndOfFile (EOF) teken. We gebruiken daarom meestal de volgende constructie: 31

33 while (!feof($fp)){ $regel = fgets($fp);... Schrijven naar een file wordt duidelijk met met het volgende voorbeeld: fwrite($fp,$regel); Dit is heel kort door de bocht. Er is veel meer mogelijk. Zie hiervoor het php-manual. 8.3 Browsen naar een file We kunnen dus de bestandsnaam opgeven in ons programma. Het is echter handig als we via ons programma zouden kunnen browsen naar een file. Een file waar we gegevens uit willen lezen zal vaak niet in de document-root van de webserver staan, maar ergens op een lokale- of netwerkschijf. Een web-server heeft hier vaak problemen mee. Het is echter mogelijk om het gewenste bestand tijdelijk te uploaden naar de webserver en uit deze temporary file te lezen. Het onderstaande programma maakt dat mogelijk. Er wordt daarbij gebruik gemaakt van een formulier. Met de html opdracht input type="file" zal de filebrowser starten. Bij de form-tag moeten we enctype='multipart/form-data' opnemen om de variabele die alle fileinformatie bevat te kunnen versturen. // Controle of een file-upload is gedaan if (!$_FILES['bestand']['tmp_name'] ) { echo "Selecteer een bestand"; //===================================== <form action= echo $_SERVER['PHP_SELF']; method="post" enctype='multipart/form-data'> <input type="file" name="bestand"><br> <input type="submit" value="verzenden"> </form> //===================================== else { $bestand = $_FILES['bestand']['tmp_name']; $fp = fopen("$bestand","r"); //======= Hieronder de rest van het programma. 32

34 8.4 String bewerkingen Als we gegevens uit bestanden gaan lezen is het meestal onontkoombaar dat we de ingelezen gegevens moeten filteren en bewerken om datgene eruit te halen wat we willen hebben. Omdat we gegevens meestal als een string (tekenreeks) inlezen, moeten we hierop stringbewerkingen uitvoeren. Voorbeelden zijn: afdrukken (kennen we al) o.a.: echo, print, printf deel uit een string halen: substr(...) zoeken in een string: strpos(...) bepalen lengte string: strlen(...) vervangen van een deel van een string: str_replace( ) spaties aan begin en/of eind verwijderen: trim(...) string opsplitsen in meerdere delen: explode(...). Hier hebben we kennis van arrays nodig. en vele, vele andere: zie php-manual 8.5 Opdracht In Blackboard staat het tekstbestand PV-BVH txt. Hierin staan voor de maand april 2014 de dagopbrengsten van zonnepanelen op een zeker woonhuis aan de Burg. van Heusdenweg. Sla dit bestand op een willekeurige plaats op in je computer Maak een programma wat: de gebruiker laat browsen naar dit bestand de datum en de dagopbrengst leest, in afzonderlijke variabelen plaatst en afdrukt op het scherm het gemiddelde van deze getallen berekent en afdrukt op het scherm. NB: Controleer de antwoorden en let op eenheden en komma-problemen. Maak er een beetje nette uitvoer van zodat alles goed leesbaar is Uitbreiding: In het bestand staat de datum als bv. 15-apr Met deze notatie kunnen we niet rekenen. Dat hoeft hier ook niet, maar heel vaak willen we dat wel. Dat lukt dan als we de datum omzetten naar de zogenaamde Unix-Epoch. Volgens Wikipedia: De Unix Epoch is de datum en tijd die correspondeert met de waarde 0 van de klok en de timestamp van Unix. Op de meeste Unix-systemen is de epoch gelijk aan 00:00:00 GMT op 1 januari De meeste Unix-systemen gebruiken 1 'tick' per seconde, het aantal ticks wordt bijgehouden in een signed 32-bit integer. Dit zorgt ervoor dat vanaf 19 januari 2038 om 03:14:08 UTC deze teller niet meer bruikbaar zal zijn in de huidige vorm. Zie hiervoor het artikel "Softwareprobleem jaar 2038". Druk in de vorige opdracht tevens de Unix timestamp af achter elke datum. Zie hiervoor o.a. de functies date(), mktime() en strtotime(). 33

35 9 Arrays 9.1 Wat is een array? Je weet inmiddels dat je een waarde kunt opslaan in een variabele, bv: $val=19. In een variabele kun je echter maar één enkele waarde tegelijk opslaan. Met een array kun je verschillende waarden opslaan in één "variabele" en ze ook afzonderlijk aanspreken. Elke element van een array heeft een index die ervoor zorgt dat wij dit element op elk moment kunnen terugvinden. Arrays worden meestal gebruikt om lijsten van waarden te bewaren of bewerken (bv: een namenlijst of een rij getallen). 9.2 Hoe maak je een array? Er bestaan verschillende manieren om een array te maken. Hier worden de meest gebruikelijk methoden beschreven. $mijn_array = array(1, 19, "Hallo", "Mijn eerste array", 45); De array $mijn_array bestaat nu uit een reeks van variabelen met elk zijn eigen unieke index. De indices worden automatisch toegewezen. De eerste variabele krijgt de index 0, de volgende 1, 2... enz. In plaats van een nummer kunnen wij de index ook een naam geven. (associative array). $mijn_array = array("index1" => "waarde1", "index2" => "waarde2", "index3" => "waarde3"); Bijvoorbeeld: $mijn_array = array("naam" => "Daniel", "woonplaats" => "Oostende", " " => "ikke@mydomain.com"); De laatste en meest gebruikte methode (ook de meest eenvoudige): $mijn_array[] = "waarde1"; // deze krijgt index 0 $mijn_array[] = "waarde2"; // deze krijgt index 1 $mijn_array[] = "waarde3"; // deze krijgt index 2 34

36 Bij deze laatste methode kun je ook de waarde of naam van de index zelf opgeven. Bijvoorbeeld bij een indexed array: $mijn_array[0] = "waarde1"; $mijn_array[1] = "waarde2"; $mijn_array[2] = "waarde3"; of bij een associative array $mijn_array['index1'] = "waarde1"; $mijn_array['index2'] = "waarde2"; $mijn_array['index3'] = "waarde3"; 9.3 Hoe spreek je een array aan? Wij hebben dus verschillende manieren gezien om waarden in een Array te zetten, maar hoe spreken wij deze array aan om deze waarden terug te krijgen? Dit is eigenlijk nog makkelijker dan het aanmaken van een array. Het gebruik van de array is bijna hetzelfde als gewone variabelen. $var1=$mijn_array['index1']; echo "waarde1 is ".$mijn_array['index1']; $mijn_array = array("naam" => "Daniel", " " => "ikke@mydomain.com"); echo "Het adres van ".$mijn_array['naam']." is ".$mijn_array[' ']; // Het adres van Daniel is ikke@mydomain.com De index mag ook worden meegegeven door middel van een variabele. Dit is vooral van belang bij lussen. $index='index1'; echo "waarde1 is ".$mijn_array[$index]; 35

37 9.4 Kan een array een array bevatten? Een van de meest interessante eigenschappen van een array is dat je binnen een array een andere array als waarde mag geven. Dit noemen we een meerdimensionale array. Op deze manier kunnen we een meerdimensionale tabel in een array plaatsen. Naam Woonplaats 1 Daniel Oostende 2 Peter Brussel $mijn_tabel[1] = array("naam" => "Daniel", "woonplaats" => "Oostende"); $mijn_tabel[2] = array("naam" => "Peter", "woonplaats" => "Brussel"); Hoe krijgen wij nu de waarden van uit deze 'tabel' voor verder gebruik in onze code? 1. De array uit de array halen : $waarden = $mijn_tabel[1] ; echo $waarden['naam']." woont in ".$waarden['woonplaats']; // Daniel woont in Oostende 2. De waarden rechstreeks aanspreken : echo $mijn_tabel[1]['naam']." woont in ".$mijn_tabel[1]['woonplaats']; // Daniel woont in Oostende echo $mijn_tabel[2]['naam']." woont in ".$mijn_tabel[2]['woonplaats']; // Peter woont in Brussel 9.5 Functies die met Arrays te maken hebben Er zijn vele tientallen functies die arrays kunnen manipuleren. We zullen hier een paar behandelen. Functies voor de array pointer zijn: current, next, prev, reset. 36

38 $transport = array('foot', 'bike', 'car', 'plane'); reset($transport); echo current($transport). " <br>"; //foot echo next($transport). "<br>"; //bike echo next($transport). "<br>"; //car echo prev($transport). "<br>"; //bike echo end($transport). "<br>"; //plane De grootte van een array is te bepalen met count() of sizeof(). $transport = array('foot', 'bike', 'car', 'plane'); for ($i=0; $i<count($transport); $i++) { echo $transport[$i]. "<br>"; Geeft als output: foot bike car plane Sorteren van een array kan met sort() $transport = array('foot', 'bike', 'car', 'plane'); sort($transport); for ($i=0; $i<count($transport); $i++) { echo $transport[$i]. "<br>"; Geeft als de gesorteerde array als output: De functie explode() is eigenlijk een stringfunctie, maar geeft als resultaat een array. $mijnstring = "foot,bike,car,plane"; $transport = explode(",",$mijnstring); for ($i=0; $i<count($transport); $i++) { echo $transport[$i]. "<br>"; De string wordt in stukken geknipt (op het opgegeven scheidingsteken en in een array geplaatst. Met print_r ($arraynaam) kun je een array op een leesbare manier even afdrukken. In de testfase van een programma kan dit handig zijn. (Geen echte array-functie.) 37

Programmeren in PHP. Opleiding Ocean Technology Module HDM1. 20 apr 2016 Versie 7.3 S. Hibma

Programmeren in PHP. Opleiding Ocean Technology Module HDM1. 20 apr 2016 Versie 7.3 S. Hibma Opleiding Ocean Technology Module HDM1 20 apr 2016 Versie 7.3 S. Hibma Inhoudsopgave 1 Inleiding... 3 1.1 Wat is programmeren... 3 1.2 Wat is nodig voor de programmeeromgeving... 3 2 Installatie benodigde

Nadere informatie

Een korte samenvatting van enkele FORTRAN opdrachten

Een korte samenvatting van enkele FORTRAN opdrachten Een korte samenvatting van enkele FORTRAN opdrachten Inhoud 1 Introductie 3 2 De structuur van een FORTRAN programma 3 3 Datatypen, variabelen en declaraties 3 4 Expressies-volgorde van uitwerking 4 5

Nadere informatie

Variabelen en statements in ActionScript

Variabelen en statements in ActionScript Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer

Nadere informatie

Les W-04: Een introductie in PHP

Les W-04: Een introductie in PHP Les W-04: Een introductie in PHP 4.0 PHP De afgelopen jaren zijn websites steeds interactiever geworden. Je beantwoordt een enquête via internet, doet mee aan een poll, stuurt een formulier naar iemands

Nadere informatie

Formulier maken en opvangen met php

Formulier maken en opvangen met php Welkom bij mijn PHP tutorial (Deel 2) Ik ga in deze delen PHP uitleggen, dit doe ik in het programma notepad++ (gratis) deze kunt u downloaden van www.richard3332.nl/downloads.php Als u beschikt over dreamweaver

Nadere informatie

Formulieren maken met Dreamweaver CS 4/CS 5

Formulieren maken met Dreamweaver CS 4/CS 5 Formulieren maken met Dreamweaver CS 4/CS 5 In deze handleiding leer je om een formulier en elementen die je binnen een formulier kunt gebruiken, te ontwerpen met Dreamweaver. Het uitgangspunt is dat dit

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

Les 9: formulier controle met javascript.

Les 9: formulier controle met javascript. Les 9: formulier controle met javascript. Javascript is erg veel gebruikt bij internet toepassingen. In tegenstelling tot PHP, wat een server side scripting is, is java client side scripting. Dwz, niet

Nadere informatie

Dynamische websites met PHP (basis) Karel Nijs 2010/09

Dynamische websites met PHP (basis) Karel Nijs 2010/09 Dynamische websites met PHP (basis) Karel Nijs 2010/09 Leswijze Eerst wat theorie Begeleid met (korte) oefeningen Editor = UltraEdit Geen DreamWeaver Browser = Internet Explorer Vereiste voorkennis: (X)HTML

Nadere informatie

VAN HET PROGRAMMEREN. Inleiding

VAN HET PROGRAMMEREN. Inleiding OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,

Nadere informatie

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

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

Nadere informatie

Dynamische websites met PHP (basis) Karel Nijs 2010/09

Dynamische websites met PHP (basis) Karel Nijs 2010/09 Dynamische websites met PHP (basis) Karel Nijs 2010/09 Leswijze Eerst wat theorie Begeleid met (korte) oefeningen Editor = UltraEdit Geen DreamWeaver Browser = Internet Explorer Vereiste voorkennis: (X)HTML

Nadere informatie

Foutcontrole met Javascript

Foutcontrole met Javascript Foutcontrole met Javascript Pol Van Dingenen Yannick Van Hauwe INLEIDING Het controleren van de gegevens die ingevuld zijn in formulieren is heel erg belangrijk. In de praktijk is enkel en alleen controle

Nadere informatie

Software 1. php mysql. bachelor grafische en digitale media cross-media ontwerp & grafimediatechnologie academiejaar 2010-2011 semester 1

Software 1. php mysql. bachelor grafische en digitale media cross-media ontwerp & grafimediatechnologie academiejaar 2010-2011 semester 1 Software 1 php mysql bachelor grafische en digitale media cross-media ontwerp & grafimediatechnologie academiejaar 2010-2011 semester 1 Alain Simons alain.simons@artesis.be Basis php 1. Introductie 2.

Nadere informatie

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

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET Visual Basic.NET M. den Besten 0.3 VB. NET Inhoud Voorwoord Deel 1 Visual Basic.NET 1.1 Inleiding...13 1.2 De programmeertaal Visual Basic.NET...14 1.3 Microsoft Visual Basic 2010 Express Edition...15

Nadere informatie

Javascript oefenblad 1

Javascript oefenblad 1 Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de

Nadere informatie

Een spoedcursus python

Een spoedcursus python Een spoedcursus python Zoals je in de titel misschien al gezien hebt, geven wij een spoedcursus Python. Door deze cursus leer je alle basics, zoals het rekenen met Python en het gebruik van strings. Het

Nadere informatie

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester. In onderstaande oefeningen zijn kleuren gebruikt. Deze dienen aleen om de structuren makkelijker terug te kunnen herkennen. Ze worden niet standaard zo gebruikt. De dunne rood/roze balken zijn ook geen

Nadere informatie

PYTHON REEKS 1: BASICS. Mathias Polfliet

PYTHON REEKS 1: BASICS. Mathias Polfliet PYTHON REEKS 1: BASICS Mathias Polfliet mpolflie@etrovub.be EENVOUDIGE REKENMACHINE 2 soorten getallen Getallen Z -> integers (gehele getallen) Getallen R -> floating points (reële getallen) Door beperkte

Nadere informatie

PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd

PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd Inhoudsopgave 1 Inleiding... 1 2 Toekenning- en herhalingsopdrachten (for loop)... 2 2.1 De wet van Ohm... 3 2.2 De spaarrekening... 3 2.3 De transformator... 3 3 Keuze- en herhalingsopdrachten (if, switch,

Nadere informatie

Inhoudsopgave Disclaimer... 3 Voorwoord... 4 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op

Inhoudsopgave Disclaimer... 3 Voorwoord... 4 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op 1 Inhoudsopgave Disclaimer... 3 Voorwoord... 4 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP.... 8 Joomla installeren op XAMPP... 15 Handige links... 16 2 Disclaimer Bij de samenstelling

Nadere informatie

Lab Webdesign: Javascript 7 april 2008

Lab Webdesign: Javascript 7 april 2008 H8: FORMULIEREN In dit hoofdstuk komt het "form"-object aan de orde: we zullen zien hoe we JavaScript kunnen gebruiken voor het manipuleren en valideren van de gegevens die een eindgebruiker invult in

Nadere informatie

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

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. 1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat

Nadere informatie

http://www.liacs.nl/home/kosters/java/

http://www.liacs.nl/home/kosters/java/ sheets Programmeren 1 Java college 2, Walter Kosters De sheets zijn gebaseerd op de hoofdstukken 2 tot en met 6 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/

Nadere informatie

van PSD naar JavaScript

van PSD naar JavaScript 2015 van PSD naar JavaScript F. Vonk versie 2 19-9-2015 inhoudsopgave 1. inleiding... - 2-2. ontwikkelomgeving... - 3-3. programmeerconcepten... - 4 - statement... - 4 - sequentie... - 4 - variabele en

Nadere informatie

De tag aan het begin van het PHPscript is "<?php" aan het einde van het PHPscript gebruik je "?>".

De tag aan het begin van het PHPscript is <?php aan het einde van het PHPscript gebruik je ?>. PHP Les 3 Commando ECHO Interessante links: o http://www.donboscozwijnaarde.be/~moermant/ o http://php.net/manual/en/function.echo.php o http://www.w3schools.com/php/default.asp Wat is PHP? PHP is een

Nadere informatie

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

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

Functies. Huub de Beer. Eindhoven, 4 juni 2011

Functies. Huub de Beer. Eindhoven, 4 juni 2011 Functies Huub de Beer Eindhoven, 4 juni 2011 Functies: je kent ze al Je hebt al verschillende PHP functies gebruikt: pi() om het getal π uit te rekenen. sin( 0.453 ) om het de sinus van het getal 0.453

Nadere informatie

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

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet. Les C-02: Werken met Programma Structuur Diagrammen 2.0 Inleiding In deze lesbrief bekijken we een methode om een algoritme zodanig structuur te geven dat er gemakkelijk programmacode bij te schrijven

Nadere informatie

Programmeren voor het web met PHP

Programmeren voor het web met PHP Programmeren voor het web met PHP De meestgebruikte programmeertaal voor websites is PHP. Het is een heel handige taal waarmee je een eigen slimme website kunt bouwen. Je gaat nu leren hoe PHP werkt, en

Nadere informatie

BEGINNER JAVA Inhoudsopgave

BEGINNER JAVA Inhoudsopgave Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire

Nadere informatie

II. ZELFGEDEFINIEERDE FUNCTIES

II. ZELFGEDEFINIEERDE FUNCTIES II. ZELFGEDEFINIEERDE FUNCTIES In Excel bestaat reeds een uitgebreide reeks van functies zoals SOM, GEMIDDELDE, AFRONDEN, NU enz. Het is de bedoeling om functies aan deze lijst toe te voegen door in Visual

Nadere informatie

Lab Webdesign: Javascript 3 maart 2008

Lab Webdesign: Javascript 3 maart 2008 H5: OPERATORS In dit hoofdstuk zullen we het hebben over de operators (of ook wel: operatoren) in JavaScript waarmee allerlei rekenkundige en logische bewerkingen kunnen worden uitgevoerd. Daarbij zullen

Nadere informatie

In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze. programmeertaal? En hoe is het ontstaan? Ook leer je welke editors

In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze. programmeertaal? En hoe is het ontstaan? Ook leer je welke editors 1. Over PHP 1.1 Inleiding In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze programmeertaal? En hoe is het ontstaan? Ook leer je welke editors je kunt gebruiken om PHP-scripts te maken en hoe je

Nadere informatie

Hoofdstuk 2: Werken met variabelen

Hoofdstuk 2: Werken met variabelen Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, februari 2001 Hoofdstuk 2: Werken met variabelen 2.0

Nadere informatie

Zelftest Inleiding Programmeren

Zelftest Inleiding Programmeren Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze

Nadere informatie

Over PHP. PHP en MySQL. 1.1 Inleiding. In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze

Over PHP. PHP en MySQL. 1.1 Inleiding. In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze Over PHP 1.1 Inleiding In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze programmeertaal? En hoe is het ontstaan? Ook leer je welke editors je kunt gebruiken om PHP-scripts te maken en hoe je eenvoudig

Nadere informatie

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

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby? 1 Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby? Voordat je begint met programmeren, moet je Ruby installeren.

Nadere informatie

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

MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara MINICURSUS PHP Op dit lesmateriaal is een Creative Commons licentie van toepassing. 2017-2018 Sebastiaan Franken en Rosalie de Klerk Bambara PHP Cursus Deze cursus is om de eerste stappen in de wereld

Nadere informatie

Arrays en Foreach. Huub de Beer. Eindhoven, 4 juni 2011

Arrays en Foreach. Huub de Beer. Eindhoven, 4 juni 2011 Arrays en Foreach Huub de Beer Eindhoven, 4 juni 2011 Associatieve arrays (I) Je kent er al een aantal: $_POST en $_GET. PHP maakt er meer aan: $_SERVER, $_SESSION. Zie http://www.php.net/manual/en/reserved.variables.php

Nadere informatie

JavaScript. 0 - Wat is JavaScript? JavaScript toevoegen

JavaScript. 0 - Wat is JavaScript? JavaScript toevoegen 0 - Wat is JavaScript? JavaScript is hele andere koek dan Scratch. Het wordt ook door professionele programmeurs gebruikt. Doordat er veel mensen gebruik maken van JavaScript is er veel informatie over

Nadere informatie

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

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW: OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,

Nadere informatie

Hoofdstuk 7: Werken met arrays

Hoofdstuk 7: Werken met arrays Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, januari 2004 Hoofdstuk 7: Werken met arrays 7.0 Leerdoel

Nadere informatie

A.C. Gijssen. 0.3 PHP en MySQL

A.C. Gijssen. 0.3 PHP en MySQL PHP en MySQL A.C. Gijssen 0.3 PHP en MySQL PHP en MySQL 0.4 Inhoudsopgave Voorwoord Deel 1 Over PHP 1.1 Inleiding...13 1.2 Wat is PHP?...14 1.3 De geschiedenis van PHP...15 1.4 Editor...16 1.5 PHP en websites...17

Nadere informatie

Programmeerstructuren met App Inventor

Programmeerstructuren met App Inventor Programmeerstructuren met App Inventor Kevin Krul, Universiteit Utrecht Roncalli, Bergen op Zoom Inhoud: Les 1: Introductie tot App Inventor, when statement en variabelen. Les 2: Introductie if-statement

Nadere informatie

continue in een for, while of do lus herhaalt de lus vroegtijdig. De volgende herhaling wordt onmiddellijk begonnen.

continue in een for, while of do lus herhaalt de lus vroegtijdig. De volgende herhaling wordt onmiddellijk begonnen. Hoofdstuk 3: controlestructuren instructies en blokken Naar elke instructie staat een ; Instructies worden door de haakjes {} in een block samengevat. if else if ( expression) statement1; else statement2;

Nadere informatie

1 Inleiding Installatie 21. WAMP met Apache Friends 23. XAMPP starten en controleren 26. LAMP 32 De installatie ongedaan maken 33

1 Inleiding Installatie 21. WAMP met Apache Friends 23. XAMPP starten en controleren 26. LAMP 32 De installatie ongedaan maken 33 0DD&) QO( l 1 Inleiding 13 De betekenis van PHP 14 Voorkennis 15 Wat dit boek niet biedt 15 PHP 5 - Een routebeschrijving door dit boek 1 5 Zo kunt u de weg vinden 17 Een dankwoord van de auteur 18 Copyright

Nadere informatie

Programmeren met Arduino-software

Programmeren met Arduino-software Programmeren met Arduino-software De software waarin we programmeren is Arduino IDE. Deze software is te downloaden via www.arduino.cc. De programmeertaal die hier gebruikt wordt, is gebaseerd op C en

Nadere informatie

Hoofdstuk 5: Functies voor getallen en teksten

Hoofdstuk 5: Functies voor getallen en teksten Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, maart 2001 Hoofdstuk 5: Functies voor getallen en teksten

Nadere informatie

Hoofdstuk 2: Werken met variabelen

Hoofdstuk 2: Werken met variabelen Programmeren in Microsoft Visual Basic 2010 Express, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Vespucci College, Marnix Gymnasium Rotterdam, december 2011 Hoofdstuk

Nadere informatie

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

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax, Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt

Nadere informatie

Lab Webdesign: Javascript 11 februari 2008

Lab Webdesign: Javascript 11 februari 2008 H3: HERHALINGSLUSSEN EN LOGICA Om de voorbeelden niet nodeloos lang te maken, zullen we in het vervolg niet altijd de SCRIPT-tags en de HTML-commentaarregels herhalen. Om de JavaScript-opdrachten --de

Nadere informatie

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

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie Leren Programmeren met Visual Basic 6.0 Les 3+4 Hoofdstuk 4 : De Selectie Visual Basic 6.0 1 Basisstructuren (herhaling) Sequentie (HK2) : Alle opdrachten gewoon na mekaar uitvoeren. Hier worden geen keuzes

Nadere informatie

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

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2 Controle structuren De algemene vorm: 1 bloks door middel van indentatie Keuze Herhaling if expressie :...... In de volgende vorm is het else gedeelte weggelaten: if expressie :... Het if keuze- of conditioneel

Nadere informatie

ideal Betaal Formulier (Ondersteund o.a. ideal, MisterCash, Direct E-Banking en Credit Card)

ideal Betaal Formulier (Ondersteund o.a. ideal, MisterCash, Direct E-Banking en Credit Card) Script: Versie: 0.5 Licentie: ideal Betaal Formulier (Ondersteund o.a. ideal, MisterCash, Direct E-Banking en Credit Card) Gratis te gebruiken door (erkende) goede doelen. 200,00 excl. BTW voor aanschaf

Nadere informatie

Test Joomla op je PC 1

Test Joomla op je PC 1 1 Disclaimer Bij de samenstelling van dit ebook is de grootst mogelijke zorg besteed aan de juistheid en correctheid van de informatie die in dit ebook wordt verstrekt. De auteur van dit ebook kan op geen

Nadere informatie

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

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten

Nadere informatie

Programmeermethoden NA. Week 5: Functies (vervolg)

Programmeermethoden NA. Week 5: Functies (vervolg) Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def

Nadere informatie

Webscripting. PCVO Gent & OBAC. Willem De Meyer

Webscripting. PCVO Gent & OBAC. Willem De Meyer Webscripting PCVO Gent & OBAC Willem De Meyer Situering van de module De module webscripting kan na de cursus webdesign gevolgd worden. Kennis van html is noodzakelijk om op de opbouw van webpagina s te

Nadere informatie

Inhoudsopgave... 1 Disclaimer... 3 Voorwoord... 3 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op

Inhoudsopgave... 1 Disclaimer... 3 Voorwoord... 3 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op 1 Inhoudsopgave... 1 Disclaimer... 3 Voorwoord... 3 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op XAMPP... 14 Handige links... 15 2 Disclaimer Bij de

Nadere informatie

Programmeermethoden NA. Week 5: Functies (vervolg)

Programmeermethoden NA. Week 5: Functies (vervolg) Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Functies Vorige week bekeken we functies: def bereken(a, x): return a * (x

Nadere informatie

Programmeren: Visual Basic

Programmeren: Visual Basic PETERSTUYVESANT COLLEGE INFORMATICA 2009-2010 Programmeren: Visual Basic Algemene Kennis: 01. Programmeren Programmeren is het schrijven van een computerprogramma, een concrete verzameling instructies

Nadere informatie

Query SQL Boekje. Fredrik Hamer

Query SQL Boekje. Fredrik Hamer Query SQL Boekje Query SQL Boekje Fredrik Hamer Schrijver: Fredrik Hamer Coverontwerp: Fredrik Hamer ISBN: 9789402162103 Fredrik Hamer Inhoudsopgave A. Aanhef bepalen 17 Aantal 18 Aantal dagen tussen

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren

Nadere informatie

Wat zijn de verschillen tussen SPSS 9 en SPSS 10?

Wat zijn de verschillen tussen SPSS 9 en SPSS 10? Wat zijn de verschillen tussen SPSS 9 en SPSS 10? 1.1 De data-editor / het definiëren van variabelen 1.2 Het openen van bestanden 1.3 Output lezen 1.4 Mogelijke problemen 1.1.1 De data-editor Het grootste

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren

Nadere informatie

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

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent Het relaas van de beginnende programmeur Het hoe en waarom van de assistent 1. Help, mijn code doet niks... Mogelijke oplossingen: Heb je op run geduwd (groene pijltje)? Zolang je niet op 'run' duwt, kent

Nadere informatie

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

Syntax- (compile), runtime- en logische fouten Binaire operatoren Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 OEFENINGEN PYTHON REEKS 1 Vraag 1: Python als een eenvoudige rekenmachine Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3) en

Nadere informatie

Voor vragen: http://www.richard3332.nl/ of mail naar Richard3332@gmail.com

Voor vragen: http://www.richard3332.nl/ of mail naar Richard3332@gmail.com Welkom bij mijn PHP tutorial (Deel 1) Ik ga in deze delen PHP uitleggen, dit doe ik in het programma notepad++ (gratis) deze kunt u downloaden van www.richard3332.nl/downloads.php Als u beschikt over dreamweaver

Nadere informatie

PHP tekst-bewerkingen, uploaden csv-bestanden import/eport

PHP tekst-bewerkingen, uploaden csv-bestanden import/eport PHP tekst-bewerkingen, uploaden csv-bestanden import/eport Inhoudsopgave Inleiding 3 Voorkennis voor PHP-gevorderd 3 PHP Bestandsbewerkingen 4 Gegevens in een tekstbestand zetten 4 Gegevens zoeken in een

Nadere informatie

Dynamiek met VO-Script

Dynamiek met VO-Script Dynamiek met VO-Script Door Bert Dingemans DLA Ontwerp & Software bert@dla-architect.nl Inleiding Op de SDGN nieuwsgroep voor Visual Objects ontstond laatst een draad van berichten over de nieuwe libraries

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde

Nadere informatie

Java Les 3 Theorie Herhaal structuren

Java Les 3 Theorie Herhaal structuren Java Les 3 Theorie Herhaal structuren Algemeen Een herhaal structuur een is programmeertechniek waarbij bepaalde Java instructies worden herhaald net zo lang tot een bepaalde voorwaarde is bereikt. Een

Nadere informatie

AFO 142 Titel Aanwinsten Geschiedenis

AFO 142 Titel Aanwinsten Geschiedenis AFO 142 Titel Aanwinsten Geschiedenis 142.1 Inleiding Titel Aanwinsten Geschiedenis wordt gebruikt om toevoegingen en verwijderingen van bepaalde locaties door te geven aan een centrale catalogus instantie.

Nadere informatie

Online c++ leren programmeren:

Online c++ leren programmeren: Online c++ leren programmeren: Inhoud 1)Waar vind ik een c++ compiler?... 2 2)Hoe start ik een programma in c++?... 2 3)Een eerste c++ programma:... 3 Een eerste programma schrijven:... 3 Mijn eerste programma

Nadere informatie

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren Inhoudsopgave Voorwoord... 5 Voordat je begint... 6 Wat heb je nodig?... 7 De website bij het boek... 7 Voor ouders, verzorgers en leraren... 8 Vervolgboeken over programmeren... 8 1. Aan de slag met Python

Nadere informatie

Hoofdstuk 1 Inleiding PHP 7 of ouder Hoe dit boek werkt 2

Hoofdstuk 1 Inleiding PHP 7 of ouder Hoe dit boek werkt 2 Inhoud Hoofdstuk 1 Inleiding 1 1.1 PHP 7 of ouder 2 1.2 Hoe dit boek werkt 2 Hoofdstuk 2 De programmeeromgeving 5 2.1 In dit hoofdstuk 5 2.2 Editor 5 2.3 Webserver op Linux, Mac of PC 5 2.4 De webmap 6

Nadere informatie

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

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object. een symbolische naam voor een object. Variabelen Constanten Variabelen Expressies naam : geeft de plaats in het geheugen aan waarde : de inhoud van het object identifier : een rij van letters en/of cijfers

Nadere informatie

[8] De ene 1 is de andere niet

[8] De ene 1 is de andere niet [8] De ene 1 is de andere niet Volg mee via 08_Types.py In de volgende leerfiche gaan we rekenen met Python. Dat kan je in een programma doen, maar dat kan je ook gewoon vanuit het Shell-venster doen.

Nadere informatie

Programmeren in Java les 3

Programmeren in Java les 3 4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een

Nadere informatie

17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies

17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies 17 Operaties op bits In hoofdstuk 1 is gezegd dat C oorspronkelijk bedoeld was als systeemprogrammeertaal om het besturingssysteem UNIX te implementeren. Bij dit soort toepassingen komt het voor dat afzonderlijke

Nadere informatie

VBA voor Doe het Zelvers deel 20

VBA voor Doe het Zelvers deel 20 VBA voor Doe het Zelvers deel 20 Handleiding van Auteur: leofact Augustus 2015 handleiding: VBA voor Doe het Zelvers deel 20 Vorige aflevering In het vorige deel werd besproken hoe je de structuur en vensteropbouw

Nadere informatie

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO DE ASTRO PI PROGRAMMEREN DOCENTENHANDLEIDING 1 Deze handleiding is bedoeld om leerlingen te ondersteunen bij de Astro Pi Challenge, waarbij leerlingen een programma voor de Astro Pi-computer in het ISS

Nadere informatie

Excel reader. Beginner Gemiddeld. bas@excel-programmeur.nl

Excel reader. Beginner Gemiddeld. bas@excel-programmeur.nl Excel reader Beginner Gemiddeld Auteur Bas Meijerink E-mail bas@excel-programmeur.nl Versie 01D00 Datum 01-03-2014 Inhoudsopgave Introductie... - 3 - Hoofdstuk 1 - Databewerking - 4-1. Inleiding... - 5-2.

Nadere informatie

Dynamische Websites. Week 2

Dynamische Websites. Week 2 Dynamische Websites Week 2 AGENDA Labo 1 GET, POST Navigatie, etc Varia 1 2

Nadere informatie

Formulieren en waarden posten naar een view

Formulieren en waarden posten naar een view Hoofdstuk 4 Formulieren en waarden posten naar een view Waarden posten naar een view in een Zend-project gaat heel anders dan dat je gewend bent. Om dit mechanisme te leren, kunnen we het beste een eenvoudige

Nadere informatie

Gebruik van command-line operating systems

Gebruik van command-line operating systems Gebruik van command-line operating systems Mattias Holm & Kristian Rietveld Overzicht - Waarom hier meer over leren? - Wat is een shell? - Hoe werkt een shell? - Pipes en redirectie - Handige utilities

Nadere informatie

Matlab-Introductie (les 1)

Matlab-Introductie (les 1) Matlab-Introductie (les 1) Wat is Matlab? MATLAB staat voor MATrix LABoratory. Opstarten van Matlab Dit hangt af van het onderligge systeem (Windows, Linux,...), Maar kortweg geldt bijna altijd: ga met

Nadere informatie

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

Arrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma: Geen stijlvol programma: Complexe datastructuren Arrays vijf verschillende variabelen voor iets dat als één rij getallen bestempeld wordt; onbruikbaar wanneer het over meer getallen (bijvoorbeeld ) gaat.

Nadere informatie

Bijlage Inlezen nieuwe tarieven per verzekeraar

Bijlage Inlezen nieuwe tarieven per verzekeraar ! Bijlage inlezen nieuwe tarieven (vanaf 3.2) Bijlage Inlezen nieuwe tarieven per verzekeraar Scipio 3.303 biedt ondersteuning om gebruikers alle tarieven van de verschillende verzekeraars in één keer

Nadere informatie

Koppeling met een database

Koppeling met een database PHP en MySQL Koppeling met een database 11.1 Inleiding In PHP is het eenvoudig om een koppeling te maken met een database. Een database kan diverse gegevens bewaren die met PHP aangeroepen en/of bewerkt

Nadere informatie

Gebruikers Handleiding

Gebruikers Handleiding Gebruikers Handleiding (De SQL module) Versie 2.14 Pagina 2 van 14 Versie 2.14 Inhoudsopgave NGP SQL...5 Het Menu... 6 De instellingen... 7 De database informatie... 9 Het Script... 10 Pagina 3 van 14

Nadere informatie

Gegevens. Cliënt met browser Server met Apache/IIS Databaseserver En PHP

Gegevens. Cliënt met browser Server met Apache/IIS Databaseserver En PHP Webservers inrichten Inleiding De webapplicatie die je hebt geschreven, is volgens het three-tier systeem ontwikkeld: 1. Gegevensopslag in een database 2. PHP voor de logica 3. XHTML (en CSS) voor de presentatie

Nadere informatie

XAMPP Web Development omgeving opzetten onder Windows.

XAMPP Web Development omgeving opzetten onder Windows. XAMPP Web Development omgeving opzetten onder Windows. Inhoudsopgave 1. Lees dit eerst... 2 2. Inleiding... 2 1 Xampp downloaden... 2 2 Installatie Xampp 1.7.4 op externe harddisk... 3 3 XAMPP herconfiguren...

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 november 2015 Expressies Functies Ingebouwde functies Variabelenbereik Inleveropgave 1 Terugblik Programma is een lijst van opdrachten Terugblik Programma is

Nadere informatie

Lab Webdesign: Javascript 11 februari 2008

Lab Webdesign: Javascript 11 februari 2008 H2: BASISBEGRIPPEN In dit hoofdstuk zullen er enkele basisbegrippen worden behandelt PLAATSING VAN JAVASCRIPT-CODE DE SCRIPT-TAG De script-tag geeft aan dat er gebruik zal worden gemaakt van een scripttaal.

Nadere informatie

Small Basic Programmeren Text Console 2

Small Basic Programmeren Text Console 2 Oefening 1: Hoogste getal Je leest een reeks positieve gehele getallen in totdat je het getal 0 (nul) invoert. Daarna stopt de invoer en druk je een regel af met het hoogste getal uit de reeks. Voorbeeld:

Nadere informatie

PHP. Les 4 : Variabelen

PHP. Les 4 : Variabelen PHP Les 4 : Variabelen Interessante links: o http://www.dbzweb.be/moermant/ o http://php.net/manual/en/function.echo.php o http://www.w3schools.com/php/default.asp Wat zijn variabelen? Variabelen zijn

Nadere informatie