Om het millennium-probleem op te lossen schrijven we een C++-programma dat bij gegeven datum tussen 1 januari 1900 en 31 december 2100 de bijbehorende dag uitrekent. Zo valt 14 december 2000 op een donderdag. Allereerst moet de gebruiker het jaar invoeren, en daarna de maand: de eerste letter van de maand, en zonodig een tweede en zelfs een derde (juni/juli). Vervolgens voert hij/zij de dag in: een getal tussen 1 en 31. Het programma drukt op het beeldscherm de betreffende dag van de week (zondag/maandag/.../zaterdag) af. Als de gebruiker een niet bestaande maand invoert, bijvoorbeeld x, stopt het programma met de mededeling dat dit niet kan. Evenzo voor een niet bestaande dag, bijvoorbeeld 31 april of 42 december. We nemen aan dat de gebruiker zo vriendelijk is verder geen fouten te maken bij het invoeren van gegevens. Hij/zij voert cijfers of letters in als het moet, etcetera. Vanzelfsprekend worden hem/haar wel duidelijke vragen gepresenteerd.
Denk aan het gebruik van lege regels, commentaar, constanten, enzovoorts. Bovenaan het programma dient ook commentaar over het programma te staan, speciaal bestemd voor andere programmeurs, bijvoorbeeld welke compiler gebruikt is: gebruikers van het programma vinden dat niet interessant. Het infoblokje moet tijdens het "runnen" van het programma op het scherm komen, en is bestemd voor gebruikers van het programma. Er hoeft geen gebruik van functies, arrays en het while-statement gemaakt te worden. Alleen de headerfile iostream.h mag gebruikt worden. Ruwe indicatie voor de lengte van het C++-programma: ruim 100 regels.
Uiterste inleverdatum: voor voltijdstudenten: vrijdag 24 september 1999, 17.00 uur; voor deeltijdstudenten: dinsdag 28 september 1999. In te leveren: schijfje met het programma (of het programma per email aan de nakijker (dagstudenten: hoen@liacs.nl; avondstudenten: kosters@liacs.nl) sturen) en listing op papier; beide in de bak in de metalen boekenkast achterin de gang bij de Indyzaal. Overal duidelijk de datum en de namen van de makers vermelden. Te gebruiken compiler: als het maar C++ is. Normering: (consequente) layout 2; commentaar 2; infoblokje 2; werking 4. Eventuele aanvullingen en verbeteringen: lees deze WWW-bladzijde.
Vragen en/of opmerkingen kunnen worden gestuurd naar: kosters@liacs.nl.
7 september 1999 - http://www.liacs.nl/home/kosters/pm/op1pm99.html