Astronomie · PalmOS software · Roosteren · Informatica · Windows software · Natuurkunde · Wiskunde · Meteorologie · Fietsen · Diversen

Informatica

Algemeen
lesmateriaal 4H/4V
lesmateriaal 5V/5H
lesmateriaal 5H/6V
lesmateriaal: Verdie
PO: Programmeren
PO: Projecten
PO: Werkstukken
PO: CT
PO: Afgerond
tips: Algemeen
tips: Delphi
tips: Delphi (2)
tips: Logo
tips: NSBasic
tips: OpenOffice
links: Software
links: websites
cc: Voorlopig
cc: Voorlichting
cc: Lokaalgeboden
cc: Excursies
cc: Puzzels
Haiti
tips: Small Basic
PO: Programmeren2008
PO: Programmeren2009
PO: Programmeren2010
PO: Programmeren2011
Gamemaker

Programmeer-opdrachten

 

 

 

De bovenstaande afbeelding staat op de kaft van het boek Gaussian Processes for Machine Learning. Het boek is hier te downloaden.

 

 

 

Aantal opdrachten dit jaar: 37

 

Pentomino's

(8 december 2008)

Schrijf een programma dat telt hoeveel pentomino's er zijn. Een pentomino bestaat uit 5 vierkantjes. Er zijn twee manieren om de telling te veranderen:

- alle polyomino's 

- polyomino's die na draaiing gelijk zijn, tellen niet dubbel

- polyomino's die na draaiing of spiegeling gelijk zijn, tellen niet dubbel.

Als je slim bent kun je het programma op een eenvoudig manier zo aanpassen dat het ook van andere polyomino's kan berekenen hoeveel er zijn.

Tot nu toe is iemand gelukt om het voor een polyomino met 46 vierkantjes te berekenen.

 

Zie ook 8 mei 2008.

 

Music-World -php

(27 november 2008)

Schrijf een PHP-programma voor een website waarmee de gebruikers muziek kunnen beoordelen.

Je moet artiesten kunnen aanmaken, en per artiest nummers.

Een gebruiker moet zich kunnen aanmelden, maar ook als gast door de website kunnen lopen. De bezoekers kunnen dan nummers beoordelen met een cijfer (ook de gasten kunnen dat). Het systeem berekent dan een score, waarbij in te stellen is hoevaak de beoordelingen van bezoekers en geregistreerde gebruikers meetellen.

Bovendien is bij elke nummer een tekst in te geven (commentaar). Het systeem moet automatisch spam met bepaalde teksten weren (bijvoorbeeld als er verboden woord in voorkomt).

Ten slotte moet een gebruiker met een link kunnen doorgeven dat een bepaald bericht 'niet door de beugel kan'.

 

Ruilbeurs

(7 november 2008)

Een supermarkt deelt stickers met dierenfoto's uit die je in een album kunt plakken. Er zijn in totaal n (bijvoorbeeld 200) verschillende stickers. De stickers worden echter willekeurig uitgedeeld. Daardoor heb je na een tijd stickers dubbel, terwijl andere ontbreken. Het doel is natuurlijk dat je elke sticker minimaal 1x bezit.

 

Klanten van de supermarkt hebben het idee voor een ruilbeurs. Daarbij moet een deelnemer bij elk van de n stickers kunnen aangeven of hij deze sticker nog zoekt, of dat hij deze sticker een aantal keer dubbel heeft.

Dat zou op de volgende manier kunnen:

 

n

1

2

3

4

5

6

7

...

aantal

0

2

-1

0

1

0

-1

 


 

Een positief getal geeft aan dat de deelnemer dit aantal dubbel heeft. Een negatief getal geeft aan dat de deelnemer dit aantal nog zoekt. Een nul geeft aan dat de deelnemer deze sticker niet uit te delen heeft, maar ook niet zoekt.

 

Schrijf een programma waarmee je het aanbod en de vraag van de deelnemers kunt invoeren.

 

Ontwerp en schrijf daarna een algoritme waarmee je vraag en aanbod analyseert. Daarna moet het programma met een ruilvoorstel komen waarmee zoveel mogelijk deelnemers een complete set stickers krijgen.

 

 

Simpelschrift

(7 november 2008)

Wim Crouwel is een beroemde Nederlandse vormgever.

Hij heeft een aantal prachtig vormgegeven alfabetten ontworpen. In 1968 ontwierp hij voor een poster van het Stedelijk Museum in Amsterdam pixelachtige letters (die bij nader inzien mooi afgerond zijn), waartussen nauwelijks witruimte zit. Hier vind je nog een voorbeeld van de bijzonders fonts die Crouwel ontwierp: speciaal voor kathodestraalbuizen.

Schrijf een computerprogramma dat teksten met Crouwel's font schrijft.

 

 

Simpelschrift 2

(7 november 2008)

Maak .GIF-bestandjes van Crouwel's font uit 1968 (zie de vorige opdracht). Schrijf hierbij een programma dat een willekeurige tekst exporteert als een HTML-bestand. De letters moeten daarbij als img-tags geëxporteerd worden.

 

Vliegende Letters

(6 november 2008)

Schrijf een programma waarmee je een zelf te kiezen tekst binnen kunt laten 'vliegen' (je kunt de tekst ook laten verschijnen door de kleur van de achtergrondkleur te laten veranderen naar een contrasterende kleur). Eventueel wordt een starttekst verdrongen. Het is overbodig om te zeggen dat er heel veel manieren zijn waarop je tekst kan laten komen aanvliegen: van links naar rechts, letter voor letter, draaiend...

Hier kun je nalezen hier je een bepaal hoe je met PS een animatie maakt.

 

mogelijkheid: Je programma kan de achtereenvolgende afbeeldingen in een map kan bewaren.

 

mogelijkheid: Je programma kan een GIF-filmpje van je animatie maken.

 

Misschien dat de volgende statisch voorbeelden je inspireren.

 

 

 

 

 

 

Perfecte kwadratendans

(6 november 2008)

Emma geeft een dansfeest. Ze nodigt 17 gasten uit. Bij binnenkomst krijgt iedere gast een rugnummer opgespeld. Emma houdt nummer één voor zichzelf. De gasten gaan dansen in paren. Na een tijdje valt het Emma op dat de som van de rugnummers van elk paar een kwadraat is (hint: de kwadraten zijn 1,4,9,16,25,36 etc.).

Met welk nummer danst Emma?

 

Sterrenregelmaat

(4 november 2008)

Schrijf een programma dat het volgende doet:

- teken een regelmatig ster (bijvoorbeeld een ster met 6 of 8 stralen, maar ook elk ander getal moet kunnen).

- vul de ster op een regelmatige manier. Dat kan voor lijnen of cirkeldelen door de ster te tekenen. Als die doorsnijdingen gespiegeld worden in het middelpunt van de ster, of als ze onder een bepaald hoek gedraaid worden levert dat mooie regelmatige plaatjes.

De vlakken die dan ontstaan, kun je met een bepaalde kleur vullen (dat kan ook weer op een regelmatige manier, naast elkaar gelegen gebieden moeten natuurlijk niet dezelfde kleur krijgen).

 

 

 

 

 

 

 

 

teksten met houdbaarheid

(4 november 2008)

Schrijf een programma waarmee een tekst met een bepaald houdbaarheid gemaakt en bekeken kan worden.

De tekst zou bijvoorbeeld kunnen bestaan uit een .HTML-bestand (met bijbehorende bestanden). Bij het starten van het programma worden de bestanden uitgepakt en op het scherm getoond. Na een bepaalde datum laat het programma de bestanden niet meer zien. De gebruiker krijgt dan bijvoorbeeld een aanwijzing waar een actueel bestand te downloaden is.

 

 

 

 

 

 

 

Numbrix

(1 oktober 2008)

Als je uitgekeken bent op Sudoku's kun je op deze website elke dag een nieuwe Numbrix-puzzel vinden. Op de wiskundepagina staat er wat korte uitleg over.

 

Hier vindt je een programma waarmee je Nubrix-puzzels kunt oplossen.

 

Hoe zou je zelf een Numbrix-puzzel kunnen maken? Het begint ermee dat je de getallen 1 tot en met het aantal hokjes aaneengesloten in het rooster moet leggen. Daarna laat je getallen weg, maar de puzzel moet wel oplosbaar blijven met precies 1 oplossing.

 

N.B. Hidato is een variant van dit spel waarbij je wel diagonaal mag lopen. Het veld hoeft bovendien geen rechthoek te zijn.

 

Deelbaar

(30 september 2008)

Schrijf een programma weermee je figuren kunt maken om (ver)delingen uit te kunnen leggen.

 

Een cirkel kan in veelvouden van kwarten en zesden verdeeld worden. Een vierkant kan met horizontale, verticale of diagonale lijnen in kwarten verdeeld worden. Bovendien zijn de verdeling van de figuur rechtsonder mogelijk.

Een verdeling bestaat uit een combinatie van (een deel van) deze lijnen.

Bovendien staat er een aantal bij. Daarvoor zijn twee mogelijkheden:

- in 1 deel staat een aantal

- of het totaal staat onder de opgave

 

Ten slotte kunnen er hulplijnen gestippeld staan.

 

Je kunt deze opgave op twee manieren uitwerken:

- als programma om de tekeningen te ontwerpen. Deze moeten dan als bitmap op het klembord of in een bestand bewaard kunnen worden

- als compleet oefenprogramma

 

 

 

Balbezit

(29 september 2008)

Met dit programma moet het verloop van een 'spel' te loggen zijn. Dat kan bijvoorbeeld een voetbalwedstrijd, een potje schaken of een vergadering zijn.

Als een spel gelogd wordt, worden eerst 1 of meer teams ingelezen. Je moet dus teams kunnen aanmaken, wijzigen, bewaren, opvragen etc.

Na het openen van de teams moeten de spelers op het scherm aan te klikken zijn in een lijst.

Daarna moet het spel gestart worden (knop met het opschrift Start). Telkens als de bal van speler wisselt of een andere speler aan zet komt, wordt de naam van de nieuwe speler aangeklikt.

 

In de lijst met het spelverloop komt dan het volgende te staan:

 

tijd          duur team   speler               opmerking

12:35:00  start

12:35:12  0:05 A        Jan  Janssen      -

12:35:17  0:01 A        Karel Pietersen   -

12:35:18  ?      B        Frits Friet          -

...

12:45:00 einde

 

Zolang een speler aan zet is, kun je een opmerking bewerken.

Behalve het begin en einde van het spel moeten ook andere bijzonder situaties te loggen zijn. Bijvoorbeeld "bal uit" (voetbal) of "stilte" (vergadering).

 

Een regel in de registratie is te wijzigen door deze aan te klikken. Het tijdstip, de speler/de situatie of de opmerking is dan te wijzigen. Let erop dat het tijdstip altijd tussen de vorige en de volgende regel in moet liggen.

 

Botjes

(23 september 2008)

Schrijf een programma waarmee een leerling van de basisschool de beenderen van een mens mee kan oefenen.

Op Wikipedia vind je een complete lijst met botten. Op internet staan oefenprogramma's en invulprogramma's.

 

 

 

Snellius constructie

(24 augustus 2008)

Op de wiskundepagina staat een bijschrijving van de Snellius constructie geschreven. Een schipper kan met deze constructie de positie van het schip vinden.

Schrijf een programma waarmee je drie locaties op het land kunt aangeven en de twee hoeken tussen die locaties. Het programma moet dan de lijnen en cirkels van de constructie tekenen. Onder Windows zou het mooi zijn als je ook een (deel van) een echte kaart kunt inlezen.

 

Fotografisch geheugen -p

(11 augustus 2008)

Schrijf een programma waarmee je aan een leerling een foto (.jpg-bestand) kunt koppelen.

Je moet deze lijst op twee manieren kunnen gebruiken.

 

- Je moet door de lijst kunnen lopen. Bij de geselecteerde leerling verschijnt dan de naam en de foto.

 

- Je moet door de lijst kunnen lopen zonder dat de naam zichtbaar is. Je moet de naam dan raden. Door op een knop te drukken verschijnt de juist naam. Zo kun je snel de namen van de leerlingen van buiten leren.

 

 

 

 

Mikado

(11 augustus 2008)

Je kent waarschijnlijk wel het bekende spelletje Mikado. Schrijf een computerprogramma waarmee je een puzzel kunt maken zoals in de afbeelding. De puzzelaar moet de oplossing geven door de volgorde op te geven waarin de stokjes weggenomen moeten worden.

Je moet bij zo een puzzel eigenlijk voorkomen dat er twijfel kan ontstaan over de volgorde. Bij de onderstaande puzzel is bijvoorbeeld niet duidelijk of 4 boven 6 ligt, of omgekeerd.

 

 

On-recht rooster

(3 augustus 2008)

Een computer kan een mooi rooster tekenen door kaarsrechte lijnstukken naast en boven elkaar te tekenen.

Uit de vrije hand lukt dat niet helemaal perfect.

Schrijf een programma dat een rooster tekent waarvan de lijnstukken niet helemaal horizontaal of verticaal lopen. Bovendien zijn sommige lijnstukken niet helemaal recht. Gebruik bijvoorbeeld een deel van een parabool of een (hele grote) cirkel. Een lijnstuk kan ook in twee delen geknakt zijn.

Maar maak het niet te gek: het moet wel een rooster blijven.

 

Een glas water

(1 augustus 2008)

Schrijf een programma waarmee je de lichtbreking (1 of meer) van de volgende onderdelen van een glas water kunt modelleren:

 

- een drijvend blok ijs. Het ijs kan natuurlijk verschillende vormen hebben: een cilinder (drijvend op zijn kant of rechtop), een kubus, een balk, etc.

 

- CO2-bellen die zich vormen tegen de binnenkant van het glas. En bellen die opstijgen vanaf de bodem van het glas.

 

- condensdruppels die zich tegen de buitenkant van het glas vormen. Als ze te groot worden smelten ze samen met omliggende druppels. Te grote druppels glijden naar beneden.

 

 

 

 

Leitner

(22 juni 2008)

Op deze website kun je kaartenbakken vinden waarmee je iets kunt leren volgens de Leitner-methode. Helaas zijn de kaartenbakken niet gevuld met kaarten die jou helpen.

Schrijf een programma waarmee je kaartenbakken kunt maken, die je later kunt bestuderen volgens de Leitner-methode. Het programma moet dus bijhouden welke kaartjes op een dag bestudeerd/beantwoord moeten worden.

Op elk kaartje staat behalve een vraag en het antwoord, ook het vak, het leerjaar (bv. 2HAVO, 3VMBO) en het onderwerp.

Eventueel kun je ook het boek en het hoofdstuk vermelden.

Bij het leren moeten je onderwerp kunnen opgegeven, zodat je alleen over dat onderwerp vragen krijgt.

Bij de kaartjes moet bewaard worden op welke datum je het kaartje goed en fout beantwoordt hebt.

Als er geen kaartjes meer in doos 1 zitten, moet je de mogelijkheid hebben om toch kaartjes uit een doos met een hoger nummer te kunnen beantwoorden.

 

fotoverhaal

(21 juli 2008)

Stel je een serie foto's voor die een verhaal vertellen.

Je wilt de foto's op het web kunnen zetten en door het verhaal kunnen bladeren.

Rond de foto's moeten webpagina's gemaakt worden. Die moeten een foto laten zien, je moet opnieuw kunnen beginnen en vooruit of achteruit kunnen bladeren.

 

Schrijf een programma waarmee je een serie foto's (.jpg-bestanden) kunt selecteren. Die bestanden worden geresized en samen met de bijbehorende .HTML-bestanden in een map gezet.

 

mogelijkheid: maak het mogelijk om de bestanden meteen met ftp te uploaden.

 

N.B. Het gaat hier over foto's, maar het kunnen natuurlijk ook tekeningen zijn die een stripverhaal vormen of sheets die een presentatie tonen.

 

Boter, Kaas en uien (Kruisje-Bolletje-Punt 2)

(20 juli 2008)

Je kunt het speelveld van kruisje-bolletje-punt natuurlijk ook zien als boter-kaas-en-eieren met drie spelers. Schrijf boter-kaas-en-eieren, zodat het met 3 spelers te spelen is.

 

mogelijkheid: van die drie spelers kunnen er 1, 2 of 3 door de computer gespeeld worden. 

 

 

Kruisje-Bolletje-Punt

(18 juli 2008)

Hiernaast zie je een rechthoekig veld met daarin kruisjes, bolletjes en punten.

Erboven staat drie gebiedjes die je in het grote veld terug moet vinden.

Schrijf een programma dat een gebied van nxm cellen met kruisjes, bolletjes en punten vult. Daarnaast moeten er a gebieden weergegeven worden (van in dit voorbeeld 2x2), die maar 1x mogen voorkomen (dat is de moeilijkheid!).

 

 

 

Opgetelde uniekheid

(18 juli 2008)

Gegeven zijn 4 getallen: 25, 40, 60 en 100. Drie van deze getallen worden bij elkaar geteld (je mag een getal meer dan één keer gebruiken). Je kunt dan bijvoorbeeld de volgende getallen op één unieke manier maken: 75, 90, 125, 200, 260.

Het grootste getal dat je met deze reeks getallen kunt maken is 300.

Dat roept twee vragen op.

 

vraag 1:

Hoeveel getallen  75 <= g <= 300 kun je maken met deze reeks?

 

vraag 2:

Wat gebeurt er als je de randvoorwaarden mag veranderen:

 

Neem a verschillende getallen, waarvan je er b bij elkaar telt. Daarbij is de keuze of je getallen wel of niet dubbel mag gebruiken. Bovendien kun je al dan niet eisen dat een som uniek (=op één manier te maken) moet zijn.

 

Schrijf een programma waarmee:

- a getallen kunt opgeven,

- daaruit b getallen kiest,

- aangeeft of je getallen dubbel mag gebruiken,

- en dan het aantal mogelijke optellingen berekend,

- daarbij moet je kunnen aangeven of die optellingen uniek moeten zijn of dat ze ook op meer dan één manier te maken mogen zijn.

 

mogelijkheid:

schrijf je programma zo dat het zoekt naar een verzameling van a getallen waaruit je er b kiest, waarmee het grootst aantal (unieke) getallen te maken is.

Grootst kan in deze context verschillende betekenissen hebben: het aantal, het percentage van alle mogelijke combinaties, het percentage van b*(max-min) (waarbij min en max het kleinste en grootste getal in de verzameling zijn).

 

Hint 1:

Bij het voorbeeld hierboven mag je drie van de vier getallen eventueel meer dan één keer kiezen. Je kiest dan dus eigenlijk drie getallen uit de verzameling {25, 25, 25, 40, 40, 40, 60, 60, 60, 100, 100, 100}.

 

Hint 2:

Volgens de stelling van Goldbach zijn alle gehele getallen groter dan 5 te schrijven als som van 3 priemgetallen.

Misschien dat je die stelling (als je aanneemt dat ze waar is) kunt gebruiken bij de oplossing van dit probleem.

 

 

Anno

(8 juli 2008)

Op anno.nl kun je een mooi voorbeeld zien van een website met een vormgeving die afwijkt van de gebruikelijke horizontale en verticale lijnen. Bij deze website is dat met flash gemaakt. Maar dat kan misschien ook anders.

Schrijf een programma waarmee je zo een pagina op de gebruikelijke manier kunt opmaken (dus verticaal en horizontaal). Denk daarbij een tabel die je in cellen opdeelt. Daarna moet de pagina als afbeelding bewaard worden onder een in te stellen hoek. Bij elk cel moet daarbij een link gemaakt kunnen worden. De afbeelding wordt in een HTML-bestand gelinkt, en de links worden in HTML-maps beschreven.

 

 

 

Botsende lijnen

(28 juni 2008)

Botsingen simuleren (in een spel bijvoorbeeld) is een lastige klus. Op deze website kun je zien hoe je botsingen voor een stel lijnen berekend.

Deze vergelijkingen programmeren is best pittig, als je wilt begrijpen hoe het in elkaar steekt al helemaal.

 

 

proefwerkmaker -w

(12 juni 2008)

Het is met een moderne tekstverwerker als Word natuurlijk goed mogelijk om proefwerken te schrijven, maar kan nog veel gemakkelijker. Hier vind je een voorbeeld van een proefwerk.

 

Een proefwerk bestaat uit een kop met daarin klas, datum, vak, lesstof en daaronder eventueel een instructie.

Dan komen er opgaven die eventueel een kopje hebben (in het voorbeeld opgave A, opgave B).

In een opgave staan opgaveID, tekstfragmenten en opgaveonderdelen.

Een opgave heeft voor de kantlijn een opgavenummer en eventueel een maximale score. De opgavenummers kunnen doorgenummerd worden (elk opgaveonderdeel heeft dan een nummer) of per opgave opnieuw beginnen (de onderdelen hebben dan een letter).

Stukken wordt soms cursief, vet of onderstreept geschreven.

Bij de tekst of in de tekst wordt soms een afbeelding (bijvoorbeeld een formule) ingevoegd.

 

Schrijf een programma waarmee je gemakkelijk proefwerken kunt schrijven. Een proefwerk moet als HTML-bestand te exporteren zijn.

 

(9 december 2010) Soms moet er een bepaalde volgorde in opgaven zitten. Ook is er wel eens een instructie of bijlage nodig. Dat is op te lossen met verwijzingen als:

- direct gevolgd door

- ooit gevolgd door

- direct voorafgegaan door

- ooit voorafgegaan door

- heeft inleiding

- heeft bijlage

 

Deze items worden indien nodig gevolgd door een opgaveID. Het programma kan dan de benodigde fragmenten automatisch invoegen of waarschuwen als ze ontbreken.

 

Slaap kindje slaap -p wm

(26 oktober 2006)

Schrijf een programma waarmee je voor verschillende mensen kunt bijhouden hoe lang ze slapen op een dag. In plaats van te onthouden wanneer iemand slaapt kun je ook opschrijven wanneer iemand wakker is:

 

14 mei 2008 07:00 22:00

15 mei 2008 08:00 23:00

 

Daaruit volgt dat de persoon sliep van 14 mei 2008 22:00 uur tot 15 mei 2008 8:00 uur.

 

Op deze manier kun je ook hazenslaapjes overdag op een duidelijke manier opschrijven:

 

16 mei 2008 08:00 14:00 14:40 23:40

17 mei 2008 08:00 23:00

 

Het hazenslaapje was op 16 mei 2008 van 14:00 tot 14:40 uur.

Als iemand laat naar bed gaat (na 23:59:59), kun je dat op twee manieren oplossen:

 

 

18 mei 2008 08:00 1:00

19 mei 2008 08:00 23:00

 

of

 

18 mei 2008 08:00

19 mei 2008 1:00 08:00 23:00

 

Als het tijdstip waarop je gaat slapen, kleiner is dan de tijd waarop je opstaat, moet deze tijd op de volgende dag liggen.

In het tweede voorbeeld is dat duidelijker.

 

Het voordeel van de eerste methode is dat je altijd een even aantal tijdstippen op een dag hebt staan (opstaan+slapen).

 

Je kunt de tijdnotatie nog iets korter maken door de dubbele punten weg te laten. Data kun je als ddmmjjjj noteren:

 

18052008 800 100

19052008 800 2300

 

 

Je moet van een vrij te kiezen periode een diagram kunnen tekenen met de slaaptijd per dag/week/maand of de hele periode.

Bovendien moet voor die perioden de minimale, maximale en gemiddelde slaapduur berekend worden.

 

mogelijkheid: exporteren van de tabel naar een geheugenkaartje (vfs: zie de help voor uitleg).

 

 

mobile webdesigner -p -wm  -groot

(15 mei 2008)

Schrijf een programma waarmee je op je smartphone websites kunt maken en onderhouden.

De pagina's worden in HTML geprogrammeerd. Daarbij krijgt de gebruiker wat hulp van wizards. Bijvoorbeeld om een link naar een andere bestaande pagina van de website te maken, of om een afbeelding of tabel in te voegen.

De website moet via ftp te uploaden zijn. Het zou handig zijn als het programma dan alleen de aangepaste bestanden verstuurd.

 

Spaans-Nederlands woordenboek

(30 april 2008)

Schrijf mobiele applicaties voor Palm en Windows Mobile waarin woorden en zinnen in het Spaans en Nederlands op te zoeken zijn (bestond al bij de opdrachten hieronder). De gebruiken moeten de lijst kunnen bewerken (wijzigen, toevoegen). De bestanden moet uitwisselbaar zijn tussen apparaten, eventueel via een export-functie.

 

 

opengps  -groot

(30 april 2008)

Dit project bestaat uit minimaal drie programma's en eventueel een website.

Het programma moet (via een website) gps-tracks verzamelen en omzetten naar een kaart. Dat gebeurt door te kijken of er dichtbij (bv. < 10m) een punt uit een track al een punt op de kaart stond. In dat geval wordt een nieuwe gemiddelde positie van dat punt bepaald. Als er geen punt bestond wordt een nieuw punt aangemaakt.

Deze kaart moet op mobiele apparaten (en eventueel Windows) te gebruiken zijn. De mobiele programma's moeten ook een track op kunnen nemen.

Zo een track moet kunnen worden 'vertaald' naar de punten van de kaart.

Via een Windows programma moet een track bij elkaar geklikt kunnen worden, die dan op een mobiel apparaat meegenomen kan worden.

 

home theatre  -groot

(30 april 2008)

Maak een multimedia Windows-programma waarmee je gemakkelijk audio, foto's en video kunt opslaan en afspelen.

Gebruikers moeten bestanden met anderen kunnen delen.

Maak een export-functie waarmee delen van de collectie op een website gezet kunnen worden, zodat andere de bestanden kunnen inzien.

 

webdata -w -groot

(22 april 2008)

Maak een programma dat periodiek de gegevens uit een grote tabel met gegevens (bijvoorbeeld weerdata) inleest en aan de hand daarvan automatisch een website opbouwt.

Er moeten (in het geval van weergegevens) van verschillende grootheden (temperatuur, luchtdruk, luchtvochtigheid, windsterkte, windrichting) tabellen en grafieken gemaakt worden voor verschillende periodes (dag, week, maand, jaar, gehele meetperiode).

 

Ketting -w -p -wm

(20 april 2008)

Een ketting bestaat uit kralen en rechte verbindingstukken.

Programmeer een ketting zó, dat deze zich willekeurig kronkelend beweegt. De ketting mag daarbij niet met zichzelf in de knoop raken.

Er zijn verschillende manieren waarop je dat kunt doen. Bijvoorbeeld:

- Laat de kralen over de (onzichtbare) lijnen van een rooster bewegen (de verbindingsstukken rekken daarbij dus uit.

- Varieer de hoek waaronder de verbindingsstukken aan een kraal bevestigd zitten geleidelijk.

 

(11 juni 2009)

Maak een optie om een gesloten ketting te maken. De ketting mag zichzelf niet snijden/raken.

 

 

Buisreflector -w -wm

(23 april 2008)

Als je door een buis kijkt zie je een stukje van de wereld aan de andere kant van de buis. Maar als de binnenkant van de buis reflecteert zie je tegen de binnenkant ook een deel. Dat geeft mooie plaatjes die je kunt berekenen!

 

In de tekening rechts stel de rechthoek de buis voor. Midden boven de buis is het oog.

 

Onder de buis is het oppervlak waar je naar kijkt. Er zijn vier lichtstralen in de richting van het oog getekend.

Die lichtstralen snijden het blauw getekende projectievlak.

De dikke lichtstraal gaat net langs de rand van de buisopening. Lichtstalen die hier binnen lopen komen rechtsstreeks bij het oog terecht. Lichtstralen die hier buiten lopen reflecteren eerst tegen de binnenkant van de buis.

 

Hieronder zie je een foto door een echte buis genomen. In het midden zie je de cirkel waar je rechtstreeks de buis uitkijkt. Eromheen is de cirkel met de reflectie te zien. Met wat moeitje herken je misschien een basketbal-net.

 

 

 

BuddyBar -w

(22 april 2008)

Gearbits heeft het leuke idee van een buddyBar.

Concentreer je op het idee om een balk met photo's/avatars op het scherm te laten zweven. Als je een bestand op de avatar dropt wordt bestand naar de betreffende persoon gemaild.

 

Vermenigvuldigen -w -p -wm

(21 april 2008)

Schrijf een programma dat stap voor stap voordoet hoe je een vermenigvuldiging maakt door de getallen onder elkaar te schrijven.

 

Bij de vermenigvuldiging van 23x45 zijn dat al heel wat stappen:

 

23

45

--x

 

3x5=15, 5 opschrijven 1 onthouden

2x5=10, plus 1 onthouden is 11, 1 opschrijven, 1 onthouden

2 was het laatste cijfer, dus ook de onthouden 1 opschrijven

 

het volgende cijfer is de 4. we schrijven dit op de volgende regel.

Omdat de 4 het tweede getal is schrijven we 2-1=1 nul op.

 

3x4=12, 2 opschrijven, 1 onthouden

2x4=8, plus 1 onthouden is 9, 9 opschrijven, niets onthouden.

 

 23

 45

 --x

115

920

---+

 

Nu gaan we 115+920 optellen.

 

5+0=5, 5 opschrijven, niets onthouden

1+2=3, 3 opschrijven, niets onthouden

9+1=10, 0 opschrijven, 1 onthouden

dit was de laatste optelling, dus schijven we de 1 die we onthielden nu ook op

 

  23

  45

  --x

 115

 920

 ---+

1035

 

Je ziet dat je programma ook de stappen voor het optellen moet kunnen maken.

 

Aan de hand van twee voorbeeld kun je hieronder bekijken hoe je de stappen naast de berekening zou kunnen vermelden.

 

 

 

 

 

Cyclus -p -wm

(12 april 2008)

Een docent wil in een klas een leerling kiezen voor een overhoring. Dat moet echter niet helemaal willekeurig gebeuren. De kans moet afhangen van:

- hoe lang het geleden is dat de leerling aan de beurt was (hoe langer, des te groter de kans)

- of hoe vaak de leerling aan de beurt is geweest (hoe vaker, des te lager de kans).

 

In dit NS-basic-programma zie je een voorbeeld van een algoritme dat je kunt gebruiken om de volgende leerling te kiezen.

In dit voorbeeld wordt niet met een echte datum gewerkt, maar een een integer.

 

In jouw programma moet je klassen kunnen aanmaken en aan die klas leerlingen kunnen toevoegen. Per leerling moet de laatste datum en het aantal overhoring bewaard worden.

 

Er zijn wat bijzondere gevallen waarvoor je en oplossing moet zoeken. Als bijvoorbeeld iedereen vandaag aan de beurt is geweest, wie kies je dan?

 

mogelijkheid: Een leuke toevoeging is om de kans afhankelijk van het actuele cijfer te maken. Je moet het cijfer dan natuurlijk wel kunnen veranderen.

 

 

CirkelWereld -w -p -Nwm

(1 april 2008)

Het is geen grapje. Zeker niet.

Wel is het grappig. Om te zien.

Zeker op 1 april. De cirkelwereld bestaat uit cirkels die elkaar raken.

De cirkelwereld kan uit even grote cirkels bestaan die in een regelmatig patroon liggen en elkaar raken. De cirkelwereld kan ook uit rakende cirkels van verschillende groottes bestaan.

 

Over de rand van de cirkels beweegt een punt. Telkens als het punt bij het raakpunt van twee cirkels komt kiest het punt welke cirkel het verder volgt.

 

In de cirkelwereld kan ook meer dan 1 punt bewegen.

Het is ook mooi om alleen de punten te zien. De cirkels zijn er wel, maar je ziet ze alleen door de bewegende punten.

Om duizelig van te worden.

 

Je programma moet regelmatige en willekeurige cirkelwerelden kunnen maken en daar dan 1 of meer punten door laten bewegen.

 

AgendaVuller -p -wm

(27 maart 2008)

Een item in een agenda bestaat uit de volgende gegevens:

 

- id

- duur

- tekst

- datum_ingevoerd

- prioriteit

- categorie (werk, prive, sport, ...)

- volgt_op

- kleur (op scherm)

- fixeren (kan niet verdreven worden)

- aaneengesloten (1/0 of ja/nee)

- afgehandeld (1/0 of ja/nee)

 

Als de gebruiker zo een item invoert, gaat het programma aan de hand van de bestaande lijst met agenda-items zoeken naar een geschikt moment. Het begin en einde van de activiteit kan dan worden ingevuld.

 

- datum_start

- datum_eind

- tijd_start

 

Om dat te kunnen doen met de agenda ook weten wanneer een items geplaatst kan worden. Per week kan de gebruiker voor elke categorie aangeven wanneer er items van een categorie geplaatst kunnen worden. Zie het voorbeeld hiernaast.

 

Als het programma zoekt naar geschikt moment begint het bij de actuele tijd. Als het een item met een hogere prioriteit binnen dezelfde categorie tegenkomt, zoekt het verder na dat item. Als de prioriteit lager is neemt het programma aan dat dit item verplaatst dan worden, het is immers een minder belangrijk item.

Zo probeert het een periode te vinden waarin nog niets staat of waar alleen alleen items met een lagere prioriteit staan.

Die periode biedt het programma de gebruiker aan. Tevens laat het alle items zien die verplaatst moeten worden.

Als de gebruiker de voorgestelde tijd/periode accepteert moeten de verdreven items op dezelfde manier herplaatst worden! 

 

Dit hele procedé is al erg interessant, maar het kan nog mooier.

 

Je kunt items fixeren. Deze items kunnen dus niet verdreven worden. Een verjaardag verschuiven naar een andere dag is namelijk niet handig.

 

Verder kun je met het veld 'aaneengesloten' bepalen of de tijd voor deze activiteit onderbroken mag worden door andere activiteiten.

Dat is maakt de indeling veel flexibeler, maar je moet ook veel bijhouden.

 

De activiteit 'huis schilderen' duurt bijvoorbeeld 35 uur. Het is dan onmogelijk om een aaneengesloten periode te vinden. Als het programma deze activiteit mag opsplitsen, wordt het wel mogelijk. Het programma zoekt vrije blokken en gaat daarmee door tot 35 uur verzameld is. Tegelijkertijd verdrijft het eventueel andere activiteiten.

Een probleem wat je dan ook nog moet oplossen is wat er gebeurd als 1 van die blokken verdreven wordt door een activiteit met een hogere prioriteit.

 

 

Ten slotte kun je het de gebruiker nog gemakkelijk maken door hem aan te bieden om bij elke verplaatsing de prioriteit te verhogen of verlagen. Zo kan hij er voor zorgen dat de actitiviteit niet te lang blijft liggen en juist dat hij niet voortdurend onbelangrijke items aan het verplaatsen is.

Dat laatste is nog te verbeteren met een optie: automatisch verplaatsen. Het programma verplaatst zo een item automatisch naar de eerst volgende mogelijkheid.

 

De velden ingevoerd_op en afgehandeld zijn er natuurlijk om speciale controles mogelijk te maken. Zijn er geen items zie al jaren wachten om afgehandeld te worden? Zijn er geen items die in het verleden liggen maar niet afgevindt zijn?

 

En ten slotte (2)... Bij gefixeerde items kun je herhalingen overwegen.

 

 

Levende wolken -w -p -wm

(27 maart 2008)

Hieronder al vond je de opdracht om het programma life te maken.

Bob de Vries heeft me laten zien hoe je life met GameMaker kunt maken. Bovendien maakt hij er een mooie versie van die wolken lijkt te maken.

Maak zo'n levende wolken in een andere programmeertaal!

 

 

onscherpe Kronkellijnen -w -p -wm

(27 maart 2008)

Dit programma moet mooie kronkellijnen kunnen tekenen.

Een kronkellijn kronkelt mooi glad, er zitten geen scherpe hoeken in. Toch is ze niet zo regelmatig als de golfgrafiek van een sinus.

Een kronkellijn die tussen twee andere kronkellijnen in loopt kan een buur wel raken, maar nooit snijden.

Bedenk een manier waarop je mooie elkaar niet-snijdende kronkellijnen kunt laten tekenen door een computer.

(De kleur op de achtergrond in het voorbeeld moet je maar negeren. Het gaat om zwarte kronkels op een witte achtergrond).

 

 

Dagboek (-w) -p -wm

(26 maart 2008)

Schrijf een dagboek dat door jonge kinderen gebruikt moet kunnen worden. In de database hoeft per item alleen de datum en een tekst bewaard te worden. Maar de bediening van het programma moet juist heel erg eenvoudig zijn.

 

Hiernaast staat een voorbeeld. In de tabel kun je horizontaal naar een ander jaar lopen en verticaal naar een andere dag.

 

Rood staat voor niet bestaande schrikkeldagen. Donkergroen is vandaag, lichtgroen is deze week.

 

Met de knop 'vandaag' spring je meteen naar vandaag. Bovenin kun je een zoekterm opgeven, die je daarna met de twee knoppen kunt zoeken (vooruit en achteruit zoeken).

Misschien dat een knop 'jaar' nog handig is. Als je er op klikt kun je uit bv. 50 jaartallen kiezen.

 

Dat zoeken is trouwens best boeiend. Wat is vooruit zoeken in een tabel die twee richtingen heeft? Misschien dat je het tijdverschil met de huidige dag in een willekeurige jaar kunt gebruiken?

Als de tekst in een cel te lang is moet alleen het eerste deel getoond worden. De rest wordt zichtbaar als...

 

 

 

Kubusdraaier -w -p -wm

Het is wat met de kubus. Na de kubusbreker en -bouwer nu de -draaier. Schrijf een programma waarmee je Rubic´s Cube kunt oplossen. Er zijn veel website waar je iets kunt leren over de oplossingsmethode (bijvoorbeeld hier of hier).

Het is ook altijd leuk om te zien hoe snel een mens het kan. Een computer moet het dan ook snel kunnen.

Lukt het je om een lego-robot deze taak te laten uitvoeren (zie deze of deze)?

 

 

Gebuisd -w -p -wm

Verwerk deze wetenschappelijke programma's voor kinderen tot een programma. In een Windows programma kun je de filmpjes ook opnemen.

 

 

FotoHemel -w

Schrijf het ultieme foto-blader-programma.

Ga er vanuit dat de foto's op een geordende manier op een harddisk staan, bijvoorbeeld de map d:\fotos.

 

Voor elk jaar een map, met daarbinnen voor elke dag een map van de vorm ddmmjjjj of als dd_mm_jjjj (dus telkens weer het jaar!).

 

Je moet gemakkelijk door de tijd kunnen bladeren.

 

Grab-a-Snap -w

Je vindt een mooie foto en wilt weten of je die ook digitaal hebt. Hoe doe je dat?

Schrijf een programma dat het volgende kan:

- via een webcam maak je een opname van die foto.

- vergelijk die opname met de foto's die je al hebt.

 

Dat is eenvoudig gezegd, maar:

- hoe 'snijd' je de feitelijke foto uit de opname met de webcam?

- hoe vergelijk je twee foto's met elkaar?

- en hoe kun je rekening houden met gedraaide of zelfs gespiegelde foto's of opnamen?

 

 

Zeedraak -w

Kies een element uit de demo van Seadragon en probeer het na te maken. Zoek eventueel op TED naar PhotoSyth of Seadragon.

 

 

YouLink -w (-p -wm)

De video's in je YouTube account kunt je delen door een bepaalde (lange) link door te geven.

Maak een programma waarmee een database voor YouTube afbeeldingen kunt onderhouden.

Bij een link moet je een keyword (zoekterm) kunnen opgeven.

Als je in de database zoekt doe je dat ook door keywords op te geven. Filmpjes die aan de gegeven keywords voldoen blijven over. Als je een filmpje selecteert, kun je de link door een interne of extern browser laten zien.

Je maakt dan een HTML-pagina waar die links in staan en opent die pagina met de browser.

 

 

FotoData -w

Schrijf een programma waarmee je door mappen kunt bladeren. Bij elke foto/filmpje moet je gegevens kunnen bewaren in een .ini-bestand.

- type (foto/film)

- door wie genomen

- met welke camera

- waar genomen (geografische coördinaten)

- scherpte (op schaal 1..5)

- beoordeling (per gebruiker op schaal 1..5)

- wie staat er op de foto? Je kunt dit bijvoorbeeld weergeven met een cirkeltje rond het gezicht (naam, van de cirkel dan de coördinaten van het middelpunt en de straal).

 

mogelijkheid: per gebruiker (alleen als er een afdruk gemaakt is), de datum/data waarop de foto voor het laatst afgedrukt is.

 

 

Cijferspel -w -p -wm

Bij die spel krijg je kaartje met de volgende opdruk: 1, 2, 3, 4, +, -, x.

 

Bij elke opgave krijg een een getal te zien, bijvoorbeeld 8. Je moet dan met de kaartjes een som leggen die 8 als uitkomst heeft. Je zou nog een moeilijke mode kunnen maken waarbij de nog de haakjes ( en ) als extra kaart krijgt.

 

mogelijkheid: je kunt de volgende instellingen voor het spel maken: - hoogste getal op de kaartjes (standaard 4, maar kan eventueel op lager of hoger zijn).

- Het aantal kaartjes van elke soort (1, 2, onbeperkt).

 

Bommenman -p -wm

Schrijf dit spelletje voor een mobiel apparaat.

 

Aardbeving -p -wm

Schrijf een programma waarin de data uit deze tabel kunt importeren uit het tekstbestand. De gegevens moeten in een tabel na te slaan zijn. Je moet zelf kunnen kiezen welke kolommen zichtbaar zijn. Bovendien moeten de locaties op een kaart van Nederland te bekijken zijn. Daarbij moet je kunnen in- en uitzoomen.

 

Kubusbouwer -w

Een kubus van 3x3x3 kun je maken met de 7 puzzelstukjes die hieronder afgebeeld staan. Elke puzzelstukje bestaat uit 3 tot 4 blokjes.

Schrijf een computerprogramma waarmee je een set puzzelstukje kunt opgeven, waarna de computer ze voor je in elkaar zet tot een kubus (het is een kleinigheid om er vanaf het begin rekening mee te houden dat de vorm geen kubus maar een balk met afmetingen axbxc moet zijn).

In deze zip-file staat (Duitstalige) uitleg over een computerprogramma dat een gelijksoortige puzzel kan oplossen.

 

  

 

Kubusbreker -w

Schrijf een computerprogramma dat een 3x3x3 kubus (of beter: een axbxc balk!) in puzzelstukje opbreekt. Een puzzelstukje bestaat uit blokjes die met een vlak aan elkaar zitten (dus niet alleen met een ribbe).

 

Er moeten een aantal randvoorwaarden op te geven zijn:

 

- het minimaal en maximaal aantal blokjes in een puzzelstukje.

- of de puzzelstukje ook 3D mogen zijn (hoe je ze ook op tafel legt, het stukje bestaat dan altijd uit meer dan 1 laag).

- een of alle (verschillende) oplossingen. Oplossingen zijn gelijk als ze uit dezelfde set puzzelstukjes bestaan. Puzzelstukjes zijn gelijk als je ze na draaiing/spiegeling aan elkaar gelijk zijn.

 

 

Chimpy -w -p -wm

Schrijf het programma dat in deze test gebruikt wordt om te laten zien dat een chimpansee sneller getallen kan onthouden dan een mens.

 

mogelijkheid: gebruik je programma om de snelheid van mensen echt te meten.

 

 

Toepen -w -p

Schrijf een programma waartegen je (omgekeerd) kunt toepen.

 

mogelijkheid: het programma moet je adviseren welke kaart je nu het beste kunt spelen (kansberekening!)

 

 

Lorem Ipsum -w

Met dit programma moet je kunnen onderzoeken hoe de leesbaarheid van een tekst afhangt van de vormgeving.

 

Het biedt de gebruiker twee gelijke teksten aan die op een verschillende manier vormgegeven zijn.

 

De vormgeving wordt door het programma willekeurige gemaakt door een groot aantal factoren te variëren:

 

- lettertype, -grootte, -kleur en -stijl van het kopje en de tekst (dat zijn al 8 factoren!)

- De achtergrondkleur van kopje en de tekst.

- Het aantal kolommen van de tekst.

- De regelafstand tussen het kopje en de tekst.

 

De gebruiker kan kiezen welke vormgeving het beste leesbaar is: de eerste, beide evengoed leesbaar, de tweede of .

Deze 'score' wordt bewaard als 1,0 of -1.

 

Het onderzoek heeft pas zin als je achteraf de gegevens ook kunt beoordelen.

De onderzoeker moet de resultaten kunnen bekijken door een vormgeving op te roepen en daarnaast de alternatieven te zien krijgen die beter, even goed of slechter beoordeeld werden. Bij de eerste toont het programma in absolute aantalen en percentueel hoe vaak de gebruikers deze als beter, even goed of slechter beoordeelden.

 

Een veel gebruikte willekeurige tekst kun je op deze website vinden.

 

Een mogelijke manier om de vormgevingen gemakkelijk te kunnen genereren is door een webpagina te maken waarin je op de juiste plek variaties aanbrengt.

 

Update 5 oktober 2010: Op deze website kun je nalezen hoe je de contrastratio berekend (volgens WCAG 2.0) voor twee kleuren.

 

Enquette -p -wm

Schrijf en programma waarmee je een enquete kunt opzetten en afnemen. Er zijn natuurlijk verschillende vragen/antwoordmodellen mogelijk. Je heb bijvoorbeeld twee-, drie- of vierkeuzevragen. Open vragen. In dit voorbeeld zie je een vraag waar je x punten over y antwoorden moet verdelen.

 

Stroop -w

De volgende tekst kun je waarschijnlijk wel snel lezen: blauw groen zwart. Als je echter de opdracht krijgt om de kleur van de volgende woorden op te lezen gaat het wat moeilijker: blauw groen zwart.

Dit is de zogenaamde stroop-test.

Schrijf een computerprogramma waarmee je beide soorten rijtjes op het scherm kunt schrijven en kunt meten hoe lang de gebruiker er over doet om ze (correct) op te lezen.

Een mooi voorbeeld van zo een programma staat hier.

 

mogelijkheid: maak ook de mogelijkheid om beide teksten als HTML-code te exporteren.

 

 

Lopend -w

De bewegingen in moderne spellen zijn zo natuurlijk omdat men eerst onderzocht heeft hoe een mens (maar ook andere levensvormen) bewegen.

Dat kan op de volgende manier:

- de proefpersoon draagt donkere kleding

- op de gewrichten plak je een reflector.

- de proefpersoon beweegt een verduisterde ruimte terwijl de reflectors beschenen worden.

- die bewegingen neem je op en verwerk je d.m.v. een computerprogramma.

 

Schrijf een computerprogramma waarmee je zo een opname kunt verwerken. Op elk frame moet je de positie van de reflectoren kunnen markeren. Elke reflector is gekoppeld aan 1 van de punten in het mensmodel hieronder (dit model is overigens niet prefect: een draaiing van het hoofd of de positie van de handen is er niet mee te modelleren).

 

Deze coördinaten moet je samen het gegevens over de reflector en het tijdstip kunnen bewaren in een bestand.

 

 

 

 

 

Overheerlijk -p -wm

Bij del.icio.us kun je op een handige manier je links online bewaren. Je kunt deze links ook exporteren voor offline gebruik. Je krijgt dan een HTML-bestand zoals deze.

Schrijf een programma waarmee je deze exportbestanden kunt inlezen op een mobiel apparaat. Je moet de links kunnen doorzoeken. Het is een pre als je de link ook kunt openen in een browser.

 

favoriet -w

Schrijf een programma waarmee je de foto's in een map kunt bekijken. Voor een aantal gebruikers moet je de favoriete foto in deze map kunnen bewaren in 1 bestand.

Per gebruiker is er maximaal 1 foto favoriet. Als de gebruiker geen favoriet heeft komt hij niet in de lijst voor.

 

Bijvoorbeeld zo:

 

inhoud van het bestand favoriet.ini:

[init]

Jan=dsc01293.jpg

Mien=dsc01294.jpg

 

Ten tweede moet het programma de favorieten uit verschillende mappen naar 1 map kunnen kopiëren.

Daarbij wordt de foto naar een in te stellen maximale hoogte of breedte (afhankelijk van het formaat van de oorspronkelijke foto) geschaald. Bovendien wordt kan de gebruiker er voor kiezen dat de datum van de oorspronkelijke foto linksboven in de kopie geschreven worden.

 

kralenketting  -w -p -wm

Hieronder zie je een 'kralenketting'. Op elke kraal staat een getal (1 t/m 9). De kralen zijn allemaal even groot.

Bij zo een kralenketting horen vragen als Marijn gaat naar Emma en komt 2 keer op 5. Teken de weg die Marijn loopt (in de tekening hieronder staan de getallen nog niet ingevuld).

Schrijf een programma waarmee zulke kralenkettingen te maken, bewerken en bewaren zijn.

 

mogelijkheid 1:

Breid het programma zo uit dat je het programma zelf de weg(en) kan laten zoeken die aan de gestelde voorwaarde voldoet.

Een gevonden weg kun je laten zien door deze met zwarte knikkers (met witte letters) te tekenen.

 

 

 

 

knikkerbaan -w -p -wm

Hieronder zie je grote en kleine knikkers. Op elke knikkers staat een getal (1 t/m 9).

Bij deze knikkerbaan hoort een opgave als: ga van 2, naar 5, naar 7, naar 9 en van 9 ga je naar 2, 5, 7 enzovoorts.

Van Start na Einde liggen knikkers met een aantal keer de reeks 2,5,7,9. Daaromheen liggen andere knikkers om het moeilijk te maken.

Schrijf een programma waarmee je zulke knikkerbanen kunt maken, bewerken en bewaren.

Het is wellicht het gemakkelijkste om het ontwerpen van een knikkerbaan in drie stappen te doen:

- leg de knikkers

- leg de oplossing

- vul de ruimte er om heen (lege knikkers) met extra knikkers

 

 

Wolfram -p -wm

Werk 1 van de demonstratie op de website van Wolfram uit voor een smartphone.

 

In Limburg woont een Graaf -w -p -wm

Schrijf een programma waarmee je een graaf punt tekenen, bewerken en bewaren. Onder Windows is het een pre als je de afbeelding naar het klembord kunt kopiëren.

Als je niet (meer) weet wat een graaf is kun je dat hier lezen.

In het onderstaande voorbeeld kun je een aantal problemen zien die je tegenkomt:

 

- de vorm van de punten

- als een weg geknikt is moet er een verborgen punt te maken zijn

- er moeten labels bij de punten kunnen worden opgegeven

- de labels moeten zo verplaatst kunnen worden dat ze niet op een weg liggen

 

mogelijkheid: Maak ook gebogen wegen mogelijk.

 

 

 

Stratego  -p -wm

Schrijf een mobiele versie van dit spel waarmee twee menselijke spelers tegen elkaar kunnen spelen.

Je vindt hier al een bitmap voor het speelveld en het intro-scherm.

 

 

FirstLight -w

Schrijf een programma waarmee je thumbnails kunt maken van alle afbeeldingen en filmpjes in een map.

Het eerste frame van een video kun je in Delphi uitlezen met deze dll.

 

(Mobile-) webdesigner -p -wm (-w)

Schrijf een programma waarmee je een eenvoudige website (op een mobiel apparaat) kun maken/onderhouden.

 

Het menu van de website bestaat uit twee delen. Bovenin het scherm staat het hoofdmenu met de items naast elkaar. Per item is er een submenu, die items komen links in het deel onder het hoofdmenu te staan.

 

 

De menu's kun je eenvoudig onderhouden door middel van een tabel:

 

 

In de kopregel staat het hoofdmenu. In de regels eronder staat het submenu.

Bij elk item in de tabel kun je een pagina aanmaken en bewerken.

 

Voor de kopregel moet er voor het home item een pagina zijn, maar voor de andere items hoeft dat niet perse. Als de pagina over schilderen ontbreekt wordt het eerst subitem geopend als de pagina over schilderen ontbreekt.

 

mogelijkheid: je kunt mogelijkheden inbouwen om de achtergrond- en tekstkleur van de menu-items in te kunnen stellen.

 

 

Somblokken

Bekijk de onderstaande blokkentoren eens. Het getal in een blok is steeds de som van de getallen in de twee onderliggendende blokken.

 

 

 

 

Door getallen weg te laten kun je hier een rekenopgave van maken. Dat kan natuurlijk op heel veel manieren, maar je mag ook niet te veel getallen weg laten!

 

 

Schrijf een programma dat een toren van somblokken maakt met precies genoeg getallen er in vermeld.

De waarde van het hoogste getal dat in de toren voorkomt moet vrij te kiezen zijn.

 

p.s. 2 maart 2009: Als de toren 4 lagen hoog is (en het laagste getal 1 is) staat in de top minimaal 8 (in de onderste laag staan enen. In de tweede laag tweeën 1+1=2. En in de derde laag vieren).

 

mogelijkheid 1: maak je programma interactief: een kind moet de getallen in kunnen vullen. Het programma moet tips geven: welk vak kan nu berekent worden en welke invoer is juist of onjuist.

 

mogelijkheid 2: maak je programma zo dat er ook torens met meer of minder dan 4 lagen gemaakt kunnen worden.

 

p.s. 17 juli 2009: je kunt deze blokken ook met andere rekenkundige bewerkingen maken: vermenigvuldigen, delen, aftrekken. Ik kwam in een tijdschrift zelfs de volgende variant tegen: Als in twee naast elkaar gelegen blokjes a en b staan, is het blokje erboven te berekenen met c=a+b+1 of c=a+b-2. Dat is een leuke variant.

 

 

BackupReminder -p -wm

Schrijf een programma dat je er aan herinnnert dat je bepaalde backup's moet maken (of een andere taak die je moet doen).

De backup die het langst geleden is moet boven in de lijst staan. Door het item aan te klikken verhuisd het item naar beneden. Van elk item wordt bijgehouden hoe vaak het uitgevoerd is.

 

Verjaardagen -p -wm

Schrijf een programma waarmee je verjaardagen kunt bijhouden.

Het programma geeft een bepaald aantal dagen/maanden/jaren na de geboorte een alarm (en eventueel ook een paar dagen eerder).

Bekijk hier de voorbeeld-code voor NS-Basic.

 

BatteryAlarm -0 (-wm)

Schrijf een programma regelmatig meet hoe vol de accu nog is.

Het zet een alarm, zodat het programma na een tijd weer start. De tijd tot het volgende alarm moet het programma afleiden uit de verbruikte energie tussen de vorige twee metingen.

 

Ontleden -w -p -wm

Schrijf een programma waarmee je onder een zin de juiste tekens kunt zetten zoals je dat bij het vak Nederlands leert.

 

AutoGPS -p -wm

Een PDA kan d.m.v. een GPS de positie bepalen. Als je de PDA permanent aan staat is de accu echter snel leeg.

Schrijf een programma dat probeert in te schatten of er op een bepaald moment van de dag/week beweging zal zijn en alleen dan de positie meet

Je kunt daarbij bewegingen op dag, week, maand of jaar niveau onderscheiden (zijn dit logische periodes of kun je het programma beter zelf laten bepalen wat een logische periode is?).

Als er te lang geen beweging is moet de PDA weer uitschakelen.

Bekijk hier de voorbeeld-code voor nsBasic.

 

Modelmens -w -p -wm

Op deze website kun je zien hoe je een model van een mens kunt maken.

Schrijf een programma waar je net als in het voorbeeld in het voor-, zij- of bovenaanzicht een modelmens kunt aanpassen.

Zorg er voor dat je opeenvolgende houdingen kunt opslaan in een bestand.

Maak ook de mogelijkheid om zo een bestand af te kunnen spelen, zodat er een soort animatie ontstaat.

Kun je lopen, rennen, traplopen, hinkelen en springen of 'rennen en en dan omdraaien' modeleren?

 

mogelijkheid: modeleer ook de hand, zodat je ook 'iets pakken' kunt laten zien.

 

abc -p -wm

Schrijf een programma waarmee je diverse bewerkingen met kwadratische formules of vergelijkingen (weet je het verschil?) kunt uitvoeren. Bijvoorbeeld een aantal van de volgende:

- tekenen van de parabool

- ontbinden in factoren

- bereken snijpunten met x-as d.m.v. ontbinden in factoren

- berekenen snijpunten d.m.v. abc-methode

- berekenen snijpunten met de y-as

- berekenen coördinaten top

- berekenen coördinaten top d.m.v. kwadraat-afsplitsen

- tabel met 5 (of meer) x- en y-waarden

- vergelijking van de raaklijn in een punt (bijvoorbeeld door een x-waarde te geven of door een punt op de grafiek aan te geven).

- snijpunten van een parabool met een lijn of met een tweede parabool

- vergelijking van de lijn door twee punten op de parabool

- oefenen met het ontbinden in factoren

 

Espanol -w -mp

Maak een Spaans-Nederlands woordenboek.

 

GramCheck -w (-p -wm)

Schrijf een programma die van een in het Nederlands geschreven zin kan zeggen of die grammaticaal correct is.

Er is heel wat taalkundige kennis die je een programma moet leren, bijvoorbeeld:

 

- als welke woordsoorten kan een woord gebruikt worden (zelfstandignaamwoord, werkwoord, lidwoord)? Je hebt dus een lijst nodig waarin staat welke woorden een woord kan hebben in een zin.

- in welke volgorde kunnen woordsoort in een zin voorkomen, zodat het geheel een correcte zin is? Dus heb je een lijst met kloppende zinsconstructies nodig.

- In welke volgorde kunnen woorden in een zin voorkomen? Daarvoor wordt vaak een lijst drie opeenvolgende woorden gebruikt. In die lijst staat bijvoorbeeld 'in, die, lijst' en 'die lijst staat'.

 

 

Strikdiploma -p -wm

Schrijf een programma voor een PDA waarmee je kunt opzoeken hoe je een aantal bekende knopen legt.

Zowel bij Nederlandse en de Engelstalige Wikipedia vind je voor sommige knopen afbeeldingen waaruit blijkt hoe je de knoop legt (bij sommige knopen wordt meer dan 1 afbeelding voor de uitleg gebruikt).

De maten van deze afbeeldingen zijn waarschijnlijk niet meteen goed om op een klein scherm te gebruiken, je zult dus moeten nagaan om ze in orde te krijgen zijn door te schalen. Anders moet je naar een andere bron op zoek...

 

Zie ook deze website en deze.

 

Toevoeging: bekijk ook deze geweldige website met stap voor stap animaties!

 

Wereldwijzer -w

Schrijf een programma waarin een kaart van (een deel van) de wereld getoond wordt.

Je moet het programma op twee manieren kunnen gebruiken.

Je moet door de kaart kunnen klikken om de landen te weet te komen.

Het programma moet ook de landen kunnen afvragen. Dat kan op verschillende manieren, bijvoorbeeld:

- door de naam van een land naar een plek op de kaart te slepen

- door een deel van de kaart te tonen en dan voor een land de keuze uit een aantal landen te geven (een soort meerkeuze toets dus).

 

Er zijn databases beschikbaar waar de landsgrenzen, de loop van rivieren (World Data bank II) en de kustlijn (zit ook al in de landsgrenzen) met coördinaten beschreven staan.

 

Overloop -w

Schrijf een programma dat twee foto's in elkaar laat overlopen door eerst foto1 helemaal naar een bepaald kleur te laten 'vollopen', en daarna vanuit die kleur naar foto2 overvloeit.

 

mogelijkheid: bedenk een manier waarop je de 'tussenkleur' kan berekenen uit de twee foto's.

 

LocationFree -w

Stel je voor: een radiostation dat zich aan de luisteraars aanpast. Ergens op een computer in een netwerk staan muziekbestanden. De administrator kan users aanmelden. Als je inlogt kun je op twee manieren je voorliefde voor een liedje opgeven: per artiest of per nummer. Je kunt een score opgeven van -5 tot +5

Als je per artiest werkt krijgen alle leidjes van die artiest die score. Zo kun je snel en grof je muziekstijl instellen.

In de tweede mode kun je je stijl per nummer instellen.

 

De server speelt nummers willekeurig af. Hij bepaalt daarbij de voorliefde voor een nummer op grond van de ingelogde gebruikers. Je moet een manier bedenken hoe je de stijl van de ingelogde gebruikers omrekent naar een score per liedje.

 

Uit deze voorliefde kiest de server een liedje, waarbij een populair liedje een grotere kans maakt om gekozen te worden.

 

mogelijkheid: weeg ook de tijd mee die voor de ingelogde gebruikers verstreken is sinds ze het liedje voor de laatste keer gehoord hebben.

 

 

Wie is wie -w

Schrijf een programma waarmee je op een foto gezichten kunt omcirkelen. Aan de cirkels is een naam te koppelen.

Door deze informatie in een apart bestand te bewaren kun je later bijvoorbeeld een programma maken waarmee alle foto te zoeken zijn waar Piet op afgebeeld staat.

Geef de bestanden de extensie .wie. Elke regel bevat het middelpunt en de straal van de cirkel, gevolgd door de naam. Bijvoorbeeld:

 

100,150,75,Piet

 

podobnoi  -w (-p -wm)

Zoek een versie van dit spelletje op internet en maak het na.

 

Artiest -w

De bestanden van liedje hebben van een naam die er zo uit ziet <artiest> - <album> - <titel>. Soms ook staat er ook een ander item (bv. het nummer op het album), of staan de items in een andere volgorde.

Schrijf een programma dat alle muziekbestanden in een bepaalde map probeert te sorteren in submappen die de naam van de artiest hebben. Voor elke kopieeropdracht moet het programma even na vragen of het de juiste keuze gemaakt heeft (en eventueel andere opties aanbieden).

 

hint: Wellicht kun je je programma slimmer maken door gebruik te maken van de mappen (=namen van artiesten) die al bestaan!

 

Onderschrift -w

Schrijf een programma waarmee je bij een video een ondertitel kunt maken/bewerken.

De bestanden moeten de extensie .ond hebben.

De inhoud van het bestand moet het volgende formaat hebben: op elke regel staat een tijdstip in seconde (gemeten vanaf het begin van de video), daarna een TAB en de tekst. Bv.

 

00:00 Hallo!

00:02 Dit is een ondertiteling...

00:04 ...van weinig waarde.

 

Bij -w

Schrijf een programma waarmee je door mappen kun bladeren en bij foto-bestanden (jpeg) een tekstbestand met een bijschrift kunt maken/bewerken. De bestanden moeten de extensie .bij (van bijschrift) hebben.

 

Verschuiver -w (-p -wm)

Schrijf een programma waarmee je een patroon kunt invoeren zoals op deze website. Het patroon moet net als in het voorbeeld in de onderste helft te verschuiven, zodat het samen met de origineel een nieuw patroon vormt.

 

Inversions en Spiegelteksten -w -p -wm

Inversions zijn teksten die zo geschreven zijn dat er hetzelfde staat als je de tekst omdraaid (180 graden draait). Schrijf een programma waarmee je een tekening kunt maken terwijl de inversion meteen ook getoond wordt.

 

mogelijkheid: als je de (programmeer-)truc begrepen hebt is het een kleine moeite om ook spiegelingen te maken.

 

 

kidZWrite -w -p -wm

Schrijf een programma waarmee kleine kinderen verhalen kunnen schrijven. Omdat het (voor anderen, en later voor hen zelf) leuk is om te zien hoe het verhaal ontstaan is (en om per ongeluk gewiste tekst terug te kunnen krijgen). Daarom moet het hele typeproces bewaard worden. Je bewaart dus niet alleen de tekst ("Jan gaat vissen"), maar ook de tijdstippen en de positie in de tekst waarop de letters getypt werden:

 

datum tijd actie positie asciicode

24-09-2007 13:50:01 i 1 74

24-09-2007 13:50:01 i 2 61

24-09-2007 13:50:02 i 3 110

24-09-2007 13:50:03 i 4  67

24-09-2007 13:50:04 i 4  32

24-09-2007 13:50:04 i 6 97

24-09-2007 13:50:05 i 7 99

24-09-2007 13:50:07 p 6

24-09-2007 13:50:08 d 6 97

 

De betekenis van de codes bij actie zijn:

i=invoer

p=positie van van de cursor verplaatsen

d=wissen van het teken op die positie (d van delete)

Eventueel kun je nog de code b voor backspace toevoegen

 

(Bekijk goed in welke volgorde de letters hier werden ingevoerd) 

 

Kinderen mogen dus niet teksten kunnen wissen door (per ongeluk) de tekst te selecteren (bv. met de muis) en daarna op delete te drukken.

 

Een volgende extra code zou de u (van undelete) kunnen zijn. Daarmee kunnen ouders gemakkelijk per ongeluk gewiste tekst terughalen.

Teken voor teken undeleten kan soms lastig zijn, misschien dat een slider (waarmee je door de tijd kunt surfen) handig is.

 

Het bewaren en weer inlezen moet heel eenvoudig zijn. Dus niet door een OpenDialoog van Windows te openen en daarin een bestandsnaam in te voeren.

Denk bijvoorbeeld aan een plaatje van een boekkast. Door op een boek te klikken wordt dat boek geopend en kun je er aan verder werken. Als je een ander boek opent wordt het actuele boek gewoon gesloten (zonder dat je het apart moet bewaren).

 

 

 

kidZdraw -w -p -wm

Dit is een klassieker... Schrijf een programma waarmee kleine kinderen kunnen tekenen. Er moet geen verschil zijn tussen de linker en rechter muisknop.

Er moet een nieuwe kleur te kiezen zijn door met de muis over een gekleurd vakje te bewegen. Tekeningen zitten in een 'plakboek'. Door met de muis over een tekening te bewegen wordt de tekening geladen.

Met als bij kidZwrite moet van een tekening de tekenhistorie bewaard worden.

 

 

MultiMul -w

Vermenigvuldigen, hoe gaat dat? Als je relatief kleine getallen vermenigvuldigt hoef je er weinig moeite voor te doen. Iets als

 

dim a as integer, b as integer, c as integer

c = a*b

 

doet de klus.

Als je grote getallen wilt vermenigvuldigen moet je zelf een manier bedenken om de grote getallen op te slaan en te vermenigvuldigen.

In een array kun je een lange rij getallen opslaan en dan vermenigvuldigen. Stel dat je in een integer maximaal 999 wilt opslaan dan komt bij de tussenresultaten 999x999 voor: dat moet dus ook in een tijdelijke variabele passen.

In het onderstaande voorbeeld nemen we voor alle variabelen een integer.

 

dim a(100) as integer, b(100) as integer, c(100) as integer.

dim i as integer, j as integer, carry as integer, som as integer

dim max as integer

 

max=1000

for i=1 to 100

  for j=1 to 100

     som=a(i)*b(j)

     carry=0

     if som>max then

        carry=int(som/max)

        som=mod(som,max)

        c(i+j)=c(i+j)+som

        c(i+j+1)=c(i+j+1)+carry

     else

        c(i+j)=c(i+j)+som

        endif

   next

next  

 

Bovendien kost het vermenigvuldigen van grote getallen veel tijd.

 

deel 1

Schrijf een programma dat met grote getallen kan rekenen.

 

deel 2

Schrijf een programma dat grote berekeningen over een netwerk verdeeld over meerdere computers.

 

 

Beng! -w

Je wilt dat een gebruiker niet te veel aan de PC zit. Schijf een programma dat een groot venster op het scherm toont dat alle programma's afdekt, als de tijd verstreken is.

Een administrator moet gebruikers aan kunnen maken en per gebruiker de maximale gebruikstijd per dag kunnen instellen.

 

mogelijkheid 1: Wellicht is het beter om ook een maximum per week in te stellen. Dus bv. Maximaal 30 min per dag en maximaal 120 min per week.

Bedenk een geschikte vormgeving voor het inlogscherm!

 

mogelijkheid 2: Misschien is het handig als er een escape mogelijk is, m.a.w. de administrator kan een gebruiker wat extra tijd geven als zij dat nodig vindt.

 

(april 2008) Pieter-Paul heeft zich met deze opdracht bezig gehouden. Zijn code staat hier.

 

Tekstvak -p -w -wm

Tekst neemt een hoeveelheid ruimte in. Die ruimte is o.a. afhankelijk van het de hoeveelheid tekst, het lettertype en de fontgrootte.

In veel operating systems is er een mogelijkheid om de breedte die een tekst op het scherm (of op papier) in neemt te berekenen.

 

Een probleem daarbij is dat je ook rekening moet houden bij het afbreken van woorden. Ga er vanuit dat er een functie BreekAf bestaat die een woord kan afbreken.

In jouw programma mag de functie heel eenvoudig zijn (tenzij je de opdracht destructor ook gemaakt hebt).

 

function BreekAf(woord as string) as integer

  BreekAf=0

end function

 

Het antwoord =0  moet er in je programma voor zorgen dat het woord helemaal naar de volgende regel opschuift.

 

Schrijf een functie (en het bijbehorende testprogramma) om een tekst in een blok van w bij h pixels op het scherm te zetten. De linkerbovenhoek van het blok ligt bij (x,y). De functie geeft de index van het eerste teken dat niet past terug.

 

function WriteText(x as integer, y as integer, w as integer, h as integer, t as string) as integer

 

 

hint:

Onder NSBASIC/PalmOS kun je deze functies gebruiken:

width = NSBSystemLib.FontCharsWidth(charString, optionalLen)

of

 

length = NSBSystemLib.FontCharsInWidth(charString, optionalLen, width)

Destructor -w -p -wm

Nee, je hoeft bij deze opdracht niets te vernielen. Je moet wel iets afbreken. Woorden in dit geval.

 

Als je woorden op een regel schrijft, is de regel na een aantal woorden vol. Je kunt het woord meteen naar de volgende regel verplaatsten, maar je kunt ook als laatste redmiddel proberen om een deel van het woord op de actuele regel erbij te zetten.

 

lus

 

//Voeg een woord aan een regel toe

//als het niet past proberen we een deel van het woord toe ter voegen (d.m.v. afbreken)

 

   herhaal

 

deel 1

Onderzoek welke informatie je op internet over woordafbreken tegenkomt. Schijf hierover een kort verslag met verwijzingen naar de websites.

 

deel 2

Maak een database met een redelijk aantal woorden en schrijf een programma dat een woord probeert af te breken Pijnboompit wordt dus bijvoorbeeld pijnboom-pit.

 

 

Roger 't Konijn -p -wm

Maak van dit bekende java-spel een kloon voor Palm of Windows Mobile.

 

Railwaymaker -w (-p -wm)

Leg met een gegeven aantal railstukken een gesloten parcours.

 

 

Bladeren -w -wm (-p)

Schrijf een programma waarmee je echt kunt bladeren door een bladzijde bij een hoekpunt op te pakken met de muis.

voorbeeld 1 | voorbeeld 2 | website Dotje

 

Griepmeting -p -wm

Op internet wordt jaren al jaren de ontwikkeling van griepepidemieen bijgehouden.

Schrijf een programma voor PalmOS of Windows Mobile waarmee een gebruiker dezelfde gegevens kan invullen.

afb 1 | afb 2 | afb 3

 

Ezel -w

Een programma bewaard de actuele downloads in een bestand downloads.txt. Als de download klaar is wordt het bestand opgeschoond.

Schrijf een programma dat regelmatig de inhoud van downloads.txt controleert en nieuwe download naar een bestand archief.txt kopieert, zodat altijd terug te zoeken is welke downloads er waren.

 

Disect -w

Schrijf een programma dat een gescande kaart in kleinere rechthoekige stukken snijdt. De stukken moeten als .jpg-bestand bewaard worden.

Als je daarbij de gegevens uit een .map-bestand kunt inlezen hoe je de hoekpunten en coördinaten van de oorspronkelijke kaart gebruiken om de coördinaten van de hoekpunten van de kleinere stukken te berekenen.

Bouw de mogelijkheid in om het origineel eerst nx kleiner te maken

Download hier een voorbeeldbestand

 

randomBrowser -w

Dit programma moet willekeurig een website laten zien (in een interne of een externe browser). De gebruiker kan zelf website toevoegen.

Het programma kiest de website aan de hand van een van de volgende criteria.

 

  • Langst niet/meest recent bekeken
  • Meest/minst bekeken
  • (ongeveer) een maand/jaar niet bekeken

 

Van elke URL wordt bijgehouden op welke datum de website werd toegevoegd en op welke data ze daarna bekeken is:

 

  • URL (string)
  • ListOfDates (String?)

 

Huffman -w

Schrijf een programma dat een tekst(-bestand) volgens het algoritme van Huffman (de-)comprimeert.

 

Luchtwegen -p -wm

Bij deze opdracht maak je een compleet programma.

Je werkt met databases of bestanden om je gegevens in op te slaan.

 

SleepMemo -p -wm

Maak een programma dat op een bepaald tijdstip een boodschap laat zien.

 

Spin -w -p -wm

Maak een programma om eenvoudige mindmaps mee te maken en bewerken.

 

 

Kleurmuziek -w -p -wm

Maak een programma om eenvoudige muziekstukken in kleurcodes te tonen.

 

Een noot kun je alsvolgt op eenPaintbox tekenen (Delphi).

De positie is (x,y) en w duur van de noot (kwart =4, half =2, hele=1).

 

function TForm2.TekenNoot(x,y,w:integer):integer;
const cirkelstraal = 4;
var breedte:integer;
begin
//

  with paintbox1.Canvas do begin

    breedte:=160;
    ellipse(x-cirkelstraal,y-cirkelstraal,x+cirkelstraal,y+cirkelstraal);

    if w>1 then begin
      moveto(x+cirkelstraal-1,y);
      lineto(x+cirkelstraal-1,y-40);
      brush.Color:=clWhite;

      FloodFill(x,y,clBlack,fsBorder);
      breedte:=80;
      end;

    if w>2 then begin
      brush.Color:=clBlack;
      FloodFill(x,y,clBlack,fsBorder);
      breedte:=40;
      end;

    if w>4 then begin
      moveto(x+cirkelstraal-1,y);
      moveto(x+cirkelstraal-1,y-40);
      lineto(x+cirkelstraal-1+10,y-40+10);
      breedte:=20;
      end;


    if w>8 then begin
      moveto(x+cirkelstraal-1,y);
      moveto(x+cirkelstraal-1,y-30);
      lineto(x+cirkelstraal-1+10,y-40+20);
      breedte:=10;
      end;

    TekenNoot:=x+breedte;
   end;
end;

 

 

 

Gallerij

Schrijf een programma waarmee je een eenvoudige fotogallerij kunt maken.

 

E-mailcollector

Met dit programma (of deze website) moet je eenvoudig lijsten van e-mailadressen kunnen maken.

 

Hoogtemeters

Lees een GPS-track in en bereken hoeveel je klimmend afgelegd hebt.

 

Vermenigvuldigen

Schrijf een programma waarmee kinderen vermenigvuldigen kunnen oefenen.

 

Spelling

Maak een programma waarmee een kind kan oefenen met de spelling van woorden.

 

Vlinderhand

Maak een programma waarmee je vlindersoorten kunt opzoeken.

Op de natuurkalender kun je informatie en afbeeldingen vinden.

 

mogelijkheid 1: breid je programma uit met andere soorten.

mogelijkheid 2: breid je programma uit, zodat je kunt bijhouden waar en wanneer je wat gezien hebt.

 

Je kunt dit programma ook maken voor roofvogels, voetafdrukken van dieren of overleg over een andere natuur-gerelateerd onderwerp.

 

 

Kloklezen

Schrijf een programma waarmee kinderen kunnen leren kloklezen.

 

 

Blokkentoren

Met dit programma moet je een blokkentoren kunnen maken en laten zien.

 

Sterrenbeelden

Maak een programma dat kan laten zien waar op aarde een sterrenbeeld zichtbaar is.

Of maak een programma waarmee je een sterrenbeeld kunt laten zien door de coördinaten van de sterren te plotten.

 

AutoTimer

Maak een programma dat een andere programma opent, maar alleen als het quotum voor die dag nog niet verstreken is.

 

FolderCopy

Maak een programma om bestanden op datum te sorteren in mappen.

 

Boodschappen

Maak een programma om de uitgaven in bij te houden.

 

AEX

Schrijf een programma waarmee de actuele stand van de AEX bijgehouden wordt.

 

AutoFTP (-w)

Dit programma moet op een vast tijdstip alle bestanden uit een folder naar een folder op een FTP-server kopiëren.

 

Overige

Klik op de link voor nog wat andere ideeen.

 

Functies en subroutines

 

Gamma

(30 april 2008)

Schrijf een functie in Delphi waarmee je een gamma-correctie op een bitmap kun uitvoeren. Per kleur moet dan de volgende berekening gemaakt worden:

 

Corrected intensity = 100% * (uncorrected intensity / 100%) ^ 2.2

 

De nieuwe waarde moet natuurlijk in het bereik 0..255 liggen. Zie ook deze website.

 

In de Roos (subroutine met testprogramma)

Deze opdracht is een oefening met meetkundige berekeningen.

 

TimeDiff (functie met testprogramma)

Schrijf een functie die een relatief tijdstip in de toekomst kan berekenen.

 

YearView (subroutine met testprogramma)

Schrijf een routine die een kalender laat zien door de jaren naast elkaar te schrijven.

 

Extract (subroutine met testprogramma)

Schrijf een subroutine die uit een string alle woorden haalt.

De woorden moeten in een database bewaard worden.

 

Case (functie met testprogramma)

Schrijf een functie die de letters van een string willekeurige in kleine en hoofdletters veranderd.

Om het resultaat enigszins te kunnen sturen moet je gebruiker de kans op een hoofdletter kunnen aangeven met een getal tussen 0 en 100.

 

function RandomCase(s as string) as string

 

Rot^2

In het boek van John Meada kom je een mooie afbeelding tegen van geroteerde parabolen die de top binnen een zeker gebied hebben liggen.

Onderzoek/begrijp hoe je de grafiek van een functie kunt roteren en maakt een programma die afbeeldingen zoals die in het boek kan maken.

 

FollowTheLeader

Bekijk de animatie op deze website. Elke keer als je de pagina ververst verschijnt er een nieuwe animatie. Het idee is dat elke pijl een andere pijl volgt (FollowTheLeader). Als een pijl dicht achter een andere pijl komt gaat hij hem volgen. Je ziet de vorm van het patroon ook langzaam veranderen.

Probeer zo'n animatie zelf te maken!

 

MovingAverage

In een array of een tabel staat een lange reeks meetwaarden, voor elke dag maximaal 1.

Met de functie getValue(d as date) as Float kunt je de waarde voor een bepaalde dag opvragen.

Schrijf een functie waarmee je het gewogen gemiddelde (moving average) kunt berekenen rond een bepaalde datum. Je moet het begin en einde van de periode t.o.v. de datum zelf kunnen opgeven:

 

function MovingAVG(d as date, beginPeriod as integer, endPeriod as integer) as float

 

Als je bijvoorbeeld het gewogen gemiddelde van twee dagen voor tot en met twee dagen na de datum d wilt weten dan doe je dat met de aanroep:

 

MovingAVG(d,-2,2)

 

Let op 1: Als de datum d in de periode valt telt ze ook mee.

Let op 2: Als er voor een bepaalde dag geen meetwaarde is moet je dat oplossen! (dat begint al met de functie getDate)

 

 

 

Oud

Meer voorbeelden vind je in dit bestand.