Het arrangement Module: Enigma - Visueel programmeren met JavaFX is gemaakt met Wikiwijs van Kennisnet. Wikiwijs is hét onderwijsplatform waar je leermiddelen zoekt, maakt en deelt.
- Auteur
- Laatst gewijzigd
- 2025-04-24 19:08:09
- Licentie
-
Dit lesmateriaal is gepubliceerd onder de Creative Commons Naamsvermelding-GelijkDelen 4.0 Internationale licentie. Dit houdt in dat je onder de voorwaarde van naamsvermelding en publicatie onder dezelfde licentie vrij bent om:
- het werk te delen - te kopiëren, te verspreiden en door te geven via elk medium of bestandsformaat
- het werk te bewerken - te remixen, te veranderen en afgeleide werken te maken
- voor alle doeleinden, inclusief commerciële doeleinden.
Meer informatie over de CC Naamsvermelding-GelijkDelen 4.0 Internationale licentie.
De module 'Programmeren met Java' is ontwikkeld door auteurs en medewerkers van Enigma-online. Fair Use In de modules van Enigma-online wordt gebruik gemaakt van beeld- en filmmateriaal dat beschikbaar is op internet. Bij het gebruik zijn we uitgegaan van fair use. Meer informatie: Fair use Mocht u vragen/opmerkingen hebben, neem dan contact op via de helpdesk VO-content.
Aanvullende informatie over dit lesmateriaal
Van dit lesmateriaal is de volgende aanvullende informatie beschikbaar:
- Toelichting
- Deze module is onderdeel van de arrangeerbare leerlijn van de Stercollecties voor het kerndeel van Informatica voor hv456. In deze interactieve module maak je kennis met de programmeertaal Java. Java werkt met een bibliotheek van klassen. Elke klasse bevat een stukje kant en klare code. Een programmeur kan in zijn eigen programma gebruik maken van één of meerdere bestaande klassen. De programmeur hoeft dan niet telkens alle code zelf te schrijven, maar kan slim gebruik maken van voorgeprogrammeerde klassen. En dat scheelt een hoop tijd! In ieder onderdeel vind je, verdeeld over verschillende pagina's, informatie in de vorm van teksten, afbeeldingen en video's. Daarnaast ga je zelf aan de slag met toepassingsopdrachten en toetsen. Van de toetsen wordt je voortgang bijgehouden en deze voortgang zal zowel door jou als je docent te bekijken zijn. Veel succes!
- Leerniveau
- HAVO 4; VWO 6; HAVO 5; VWO 4; VWO 5;
- Leerinhoud en doelen
- Informatica;
- Eindgebruiker
- leerling/student
- Moeilijkheidsgraad
- gemiddeld
- Trefwoorden
- algoritme, arrangeerbaar, computerprogramma, enigma- visueel programmeren met javafx, hv456, informatica, javafx, kerndeel, programmeren, stercollectie
In deze interactieve module maak je kennis met de programmeertaal Java. De taal Java is ontwikkeld door James Gosling. De naam Java is pas later bedacht. Gosling noemde zijn nieuwe programmeertaal aanvankelijk “Oak”. Vanuit zijn kantoor keek Gosling door het raam uit op een eikenboom. De naam Oak werd jaren later door Sun, het bedrijf waar Gosling werkte, veranderd in Java, omdat de naam al was geregistreerd door een ander bedrijf, Oak Technologies. In 2010 is Sun overgenomen door Oracle.


Computerprogramma’s worden geschreven door programmeurs. Een computerprogramma bestaat uit een reeks instructies die door een computer worden uitgevoerd. De programmacode die wordt geschreven, heet de broncode. Deze broncode kan niet rechtstreeks door een computer worden verwerkt. De broncode moet eerst worden omgezet naar uitvoerbare code. Daarna kan het programma pas worden gerund. Het proces van het omzetten van broncode naar uitvoerbare code verloopt, afhankelijk van de gebruikte programmeeromgeving, niet altijd op dezelfde manier.

Ontwerp een algoritme voor het spelletje boter, kaas en eieren.
Bij een herhaling kan worden gekozen voor een zolang- of een totdat-opdracht.
Voor het programmeren van een computerprogramma kun je volstaan met een eenvoudige editor zoals Notepad++. Om het programma uit te voeren heb je dan nog wel een compiler of interpreter nodig. Het verschil tussen een compiler en een interpreter is dat een interpreter de broncode regel voor regel omzet in machinecode. De broncode wordt gelijk uitgevoerd. Een compiler zet eerst alle broncode om naar machinecode waarna de code door de computer uitgevoerd kan worden.
Wat is het grote voordeel van een geïntegreerde ontwikkelomgeving boven een “ouderwetse” editor?



Open JavaEditor en start een nieuw project op (Bestand → Nieuw → FX-Application).
De eerste app

De naam die JavaEditor aan de knop heeft gegeven is button1. Wanneer we meerdere knoppen gebruiken in een app is aan de naam niet af te lezen welke knop bedoeld wordt. Daarom moet ieder object van een betekenisvolle naam worden voorzien.

Beschrijf in eigen woorden wat een event-handler is.
Maak een app met twee knoppen: Fun en Boring.
NAWApp
In de vorige opdracht hebben we code voor de event-handler van de opKnop geschreven (NAWApp). We gaan die code nader analyseren. Daarvoor moet je de volgende vragen beantwoorden:
Wijzig de achtergrondkleur van de app in BLUE.
In het invoerveld kan een gebruiker van de app tekst intypen en wijzigen. In het uitvoerveld is dat ook mogelijk. Dat is niet de bedoeling. Dit kan voorkomen worden door de volgende regel code aan de methode
In deze app kan de gebruiker de kleur en de positie van de knoppen wijzigen door op een knop te klikken.

In de EersteApp staat het volgende stukje programmacode:
In Java moeten namen aan vaste regels voldoen:
Een variabele is altijd van een bepaald type. Je kunt niet zomaar iedere waarde toekennen aan een variabele. Er zijn variabelen die tekst bevatten, maar ook variabelen die alleen een geheel getal of een reëel getal kunnen bevatten. Het geven van een naam en een type aan een variabele gebeurt in een declaratie.
Bekijk de volgende programmacode:
Je bent enkele voorbeelden van typen tegengekomen. Van welk type zijn de volgende waarden?
In de interactieve module staat ”Je mag niet alle woorden gebruiken als naam voor een variabele.”
Hieronder staat een deel van een Java-programma.
Wanneer je geld op een spaarrekening zet, dan krijg je daar rente over. Het kapitaal op de spaarrekening groeit. Om uit te rekenen hoe groot dat kapitaal na een aantal jaar geworden is, kun je een algoritme bedenken en een programma schrijven. De gebruiker van je programma moet eerst een aantal gegevens invoeren: het beginkapitaal, het aantal termijnen en de rente (in procenten). Voor het gemak kun je ervan uitgaan dat de jaarrente een geheel getal is. Wanneer er een termijn verstreken is, moet bij het kapitaal de rente opgeteld worden. Bij de volgende termijn berekent het programma natuurlijk de rente over het nieuwe kapitaal. Dat gaat door tot de laatste termijn is verstreken en dan ziet de gebruiker het kapitaal op het scherm verschijnen.
In deze opdracht gaan we stap voor stap de RenteApp maken:
De toekenning
Bekijk de event-handler van de
Een methode-aanroep heeft altijd de volgende vorm:
In de tweede regel van de programmacode van de 



Bekijk de volgende programmacode:
Bekijk de volgende programmacode:
In de interactieve module lees je wat statements zijn.

Schrijf een programma dat een bedrag in euro’s omzet naar dollars.

Maak een
Maak een app die strafwerkregels kan maken. De gebruiker typt de gevraagde strafwerkregel in.
Peter wil voor zijn leerlingen een app maken die een bepaalde tafel op het scherm toont.
In opgave “Aan de slag 24” heb je een app geschreven die euro’s naar dollars omrekent en omgekeerd.
Jane heeft een krantenwijk.
In 1202 vroeg de Leonardo van Pisa (ook wel Fibonacci genoemd) zich af hoe snel konijnen zich in ideale omstandigheden voortplanten. Hij stelde zichzelf de vraag: hoeveel konijnenparen zullen er na een jaar zijn, wanneer er een pasgeboren stel konijnen, een mannetje en een vrouwtje, wordt losgelaten op een terrein. Daarbij ging hij uit van de volgende voorwaarden:
Je hebt in de vorige onderdelen al kennis gemaakt met een herhalingslus. In deze paragraaf leer je andere voorbeelden van herhalingslussen kennen. Bij een herhaling moet Java vaak waarden met elkaar kunnen vergelijken. Java kent daarvoor een aantal relationele operatoren:
Java maakt gebruik van relationele operatoren.
De RenteApp anders geschreven
In de interactieve module elementaire bewerkingen hebben we laten zien hoe decimale getallen omgezet kunnen worden naar binaire getallen. Het algoritme daarvoor is:
Ontwerp de interface van de DecBinApp.
In de volgende oefening wordt getoetst wat je inmiddels zou moeten weten over het onderwerp programmeren in Java.
In de RenteApp is de herhalingsconstructie while vervangen door het for-statement:
We hebben de event-handler van de berekenKnop van de RenteApp naderhand anders geschreven.
In de
De OverwerkApp berekent welk bedrag aan een werknemer betaald moet worden als vergoeding voor overwerk. Tevens geeft de app aan wanneer er niet overgewerkt is. De gebruiker van de app voert een viertal gegevens in: het uurloon, het aantal uren dat de werknemer normaal werkt, het vergoedingspercentage voor overwerk en het aantal uren dat de werknemer werkelijk gewerkt heeft.
Ontwerp de interface van de OverwerkApp.
In de OverwerkApp wordt gebruik gemaakt van het if-else-statement.
Wat zal er met een programma gebeuren als de volgende lus wordt uitgevoerd:
Een jaar is een schrikkeljaar als het jaartal deelbaar is door 4.
In deze opdracht moet je een app schrijven die een Syracuserij maakt van een getal. Een Syracuserij is een rij getallen die begint met een positief, geheel getal. Het volgende getal in de rij krijg je door het getal door twee te delen, als het getal even is. Is het een oneven getal, dan wordt het getal met 3 vermenigvuldigd en vervolgens wordt bij het resultaat 1 opgeteld.
Het switch-statement wordt gebruikt wanneer je een groot aantal if-statements achter elkaar moet schrijven. Stel dat de dag van de week is opgeslagen in een variabele dag van het type int met een van de waarden 1 tot en met 7 voor de dagen maandag tot en met zondag:
Bij hockey zijn er de onderstaande categorieën per leeftijd:
In deze module heb je al eerder kennis gemaakt met het gebruik van variabelen in een Java-programma. Je kunt een variabele voorstellen als een doos met aan de buitenkant een sticker waar de naam op staat. In de doos zit een waarde (bijvoorbeeld een getal). De waarde kan door het programma gewijzigd worden, maar de naam niet. Een variabele heeft een type. Het type bepaalt welke waarden de variabele kan aannemen en welke operaties er op kunnen worden uitgevoerd. Het type is a.h.w. de vorm van de doos.
Het type
Hoe maak je een variabele
Voor het opslaan van reële getallen kent Java het type 
Geef het resultaat van x / y en x % y bij de volgende waarden voor x en y:
Het maken van random getallen (toevalsgetallen) komt veel voor in allerlei programma’s. In Java maak je een random getal met behulp van de methode
Ontwerp de interface van de
Conversie van numerieke variabelen
In het eerste voorbeeld is er sprake van een conversie van
In de programmacode moet het statement als volgt worden aangepast :
Wat is het verschil tussen een impliciete en een expliciete conversie?
In het voorbeeld van de dobbelsteen geeft de code
Bekijk de volgende programmacode:
Geef het resultaat van de volgende berekeningen:
Lokale variabelen en instance variabelen
Bij een sportwedstrijd wordt er vaak getost met een munt om te bepalen welke ploeg de bal uit mag nemen. De kans dat kop of munt gegooid wordt, is even groot. Tenminste dat nemen wij aan.
De docent wiskunde heeft jou gevraagd een programma te maken, waarmee zijn leerlingen het optellen van twee getallen kunnen oefenen. Hij wil dat het programma een nieuwe som maakt als de leerling op de knop Nieuwe som klikt. De twee getallen, die opgeteld moeten worden, liggen tussen de 0 en de 100.
Rapportcijfers zijn gehele getallen van 3 tot en met 10.
Het raadspel is een eenvoudig spelletje waarbij een speler een getal tussen de 1 en de 100 in gedachten moet nemen. De andere speler moet het getal raden. De eerste speler geeft na elke gok aan of het getal dat de tweede speler geraden heeft te hoog, te laag of precies goed is. Schrijf een versie van het raadspel, waarbij de computer een getal tussen de 1 en 100 neemt en de speler het getal moet raden.
Schrijf een versie van het raadspel, waarbij de speler een getal tussen de 1 en de 100 in gedachten neemt en de computer het getal moet raden. Bedenk daarbij een goed algoritme voor de computer om het getal te raden.
Hiernaast zie je een afbeelding van een eenvoudige rekenmachine. Deze rekenmachine kan van twee reële getallen de som, het verschil, het product en het quotiënt bepalen. Als decimaalteken wordt de punt gebruikt. Een gebruiker voert in door op de toetsen van de rekenmachine te klikken.
Charles en Ada gaan regelmatig naar het casino om roulette te spelen. Ze spreken iedere keer af hoeveel geld ze mee zullen nemen. De ene avond is dat € 10, een andere avond kan dat € 100 zijn.
Voor het werken met Strings (rijen tekens) kent Java de klasse 
Ontwerp de interface zoals hiernaast is aangegeven.
Een palindroom is een woord dat je ook van achter naar voor kunt lezen. De volgende app controleert of een woord een palindroom is. Voorbeelden van dergelijke woorden zijn kok, lepel, kayak, parterretrap. De app heeft een invoerveld waar het woord wordt ingetypt. In een label wordt aangegeven of het woord een palindroom is of niet. In de app wordt een aantal methoden uit de klasse
Ontwerp de interface voor de PalindroomApp.
In de tweede regel geeft de methode 

Wat betekent de concatenatie van strings?
Om een getal naar een string te converteren, kent de klasse
Op welke manier kan een getal naar een string worden geconverteerd?
In deze opdracht moet je een app schrijven die uit een woord de klinkers ( de letters e, a, o, i, u) haalt. De gebruiker moet eerst een woord intypen. De app loopt het woord letter voor letter langs en controleert of een letter een klinker. Als het geen klinker is dan moet de letter meegenomen worden naar het nieuwe woord.
Schrijf een app die alleen de letters op de oneven posities in een woord toont.
Je krijgt de opdracht om een codeermachine te bouwen.
De app hiernaast zet gehele getallen om in Romeinse cijfers.
In de app die gehele getallen omzet naar Romeinse cijfers moet de invoer uit cijfers bestaan. Wanneer de gebruiker van de app bijvoorbeeld vijftien in plaats van 15 zal dat tot een foutmelding leiden. Hetzelfde gebeurt als de gebruiker niets intypt. De programmeur moet dit soort fouten van de gebruiker afvangen. In Java worden deze fouten exceptions genoemd. We bekijken de volgende programmacode:
Pas de app van de Romeinse getallen aan zodat de app bestand is tegen onjuiste invoer.
Bekijk hier je voortgang

