Programmeermethoden
Werkcollege 2: Eerste opgave I

Het tweede werkcollege van het vak Programmeermethoden vindt plaats in zaal 302/304, zaal 303, zaal 306/308 en zalen 307 en 309 (de PC-zalen), op donderdag 14 september 2017, van 13:30 tot 15:15 uur voor de Informatica-studenten en op vrijdag 15 september 2017, van 13:30 tot 15:15 uur voor de Wiskunde-studenten. Anderen mogen kiezen. Het wordt verzorgd door de vaste staf.

Spreek/Vragenuur in zalen 302 ... 309: woensdag 13 september 2017, van circa 13:30 tot 15:15 uur; en donderdag 14 september 2017, van circa 15:15 tot 17:00 uur.

Voorbereiding

Als voorkennis wordt bekend verondersteld:

Het eigenlijke werkcollege

  1. Maak de eerste programmeeropgave (af). Denk hierbij aan de huisregels, dit in het licht van de smoezen. Lees ook de richtlijnen bij programmeeropgaven eens door.
    Tijdens het derde werkcollege kan overigens ook weer aan de eerste programmeeropgave gewerkt worden.
  2. Tip voor gedit-gebruikers: zet bij "Edit-Preferences" "Display line numbers" en "Enable automatic indentation" aan, en zet de "Tab width" op 3. En accolades "matchen". En rechter kantlijn laten zien (op bijvoorbeeld 80 posities).
  3. Bedenk een goed plan. Welke vragen moet je aan de gebruiker stellen? En in welke volgorde? Welke variabelen zijn nodig om de antwoorden, oftewel de invoer van de gebruiker in op te slaan? Welke variabelen zijn nodig om het rekenwerk te doen? Welke "formule" berekent de leeftijd? (Hint: een variabele leeftijd?) Hoe zou je uit je hoofd de geboortedag bepalen? Wat zijn schrikkeljaren? Denk je aan const's?
  4. Doe eerst het gedeelte met de datum, daarna de rekenvraag en de rest.
  5. Tip: Het UNIX-commando cal levert een kalender, bijvoorbeeld cal 2017 geeft de kalender van 2017. Probeer voor de aardigheid eens cal 1752 (He, september!? En cal 1582).
  6. Maak het programma stapsgewijs. Maak het eerst zo dat de "gewone" gevallen goed gaan, en daarna dat ook niet bestaande maanden en dagen goed worden afgewikkeld (het programma moet dan meteen, via een return 1;, stoppen). Dat is bijvoorbeeld het geval als iemand meteen een kansloos jaartal ingeeft.
  7. Veel gestelde vragen:
    • Mag je strings/arrays gebruiken?
      Eigenlijk niet. Maar voor diegenen die al weten hoe dat werkt, mag het — mits netjes.
    • En functies?
      Idem. Hoeft niet.
    • En while-loops?
      Idem.
  8. Zorg ervoor dat je het verschil tussen het infoblokje en commentaar binnen de C++-code snapt. Euuuh ... wat is een infoblokje?

Huiswerk

De antwoorden op de opgaven worden tevens via WWW verspreid. Als er vragen over de opgaven zijn, stel deze dan (ook) op het college.