Jeroen Heuvelman | Jan 2, 2023

Romeinse getallen

Voorkennis

Een programmeertaal (bijv: PHP of JS) naar keuze
Basiskennis HTML- en CSS

Doelen

  • Verschillende programmeervaardigheden leren en uitbreiden in complexere uitdagingen
  • Een gebruikerservaring coderen door verschillende functionaliteiten en processen te combineren
  • Meer HTML- en CSS- mogelijkheden toepassen binnen een grotere opdracht
advanced

Opdracht

Maak een programma dat decimale getallen kan omzetten naar Romeinse getallen en omgekeerd.

  • Het programma zet hele positieve getallen om naar Romeinse cijfers
  • Het programma zet Romeinse cijfers om naar positieve getallen
  • Het grootste getal dat omgezet moet worden is 4999 (MMMMCMXCIX)

Techniek
De Romeinen gebruikten andere cijfers en een andere manier van tellen dan wij nu doen.
Eigenlijk is ieder Romeins getal een optelsom.
De Romeinen maakten gebruik van zeven hoofdletters die allemaal voor een bepaalde hoeveelheid staan.

  • M = 1000
  • D = 500
  • C = 100
  • L = 50
  • X = 10
  • V = 5
  • I = 1

Je maakt een getal door een aantal van deze letters naast elkaar te zetten.
De grootste waarde staat links en de kleinste waarde staat rechts.

  • III = 1 + 1 + 1 = 3
  • VII = 5 + 1 + 1 = 7
  • XX = 10 + 10 = 20
  • MDCLXXXVIII = 1000 + 500 + 100 + 50 + 10 + 10 + 10 + 5 + 1 + 1 + 1 = 1688

Alleen bij de 4 en de 9 doen de Romeinen het anders.
Dan staat een kleinere waarde links van een grotere waarde bijvoorbeeld IV.
Als dat zo is dan moet de kleinere waarde van de grotere waarde afgetrokken worden;

  • IV wordt dan 5(V) – 1(I) = 4
  • IX = 10-1 = 9
  • CD = 500 – 100 = 400
  • CM = 1000 - 100 = 900
  • CMXC = (1000 -100)(CM) + (100 – 10)(XC) = 990

Let op! De volgende regels moeten hierbij gehanteerd worden.

  1. Alleen de ‘C’, de ‘X’ en de ‘I’ mogen worden afgetrokken,
  2. Steeds alleen van de 2 waarden die daar direct boven liggen en
  3. Steeds maar 1 keer!

Op te leveren

  • een Webpage die met behulp van code functioneert zoals beschreven in de opdracht

Evaluatie

Vraag om een code-review om feedback op jouw aanpak en tips voor best-practices te krijgen.
Dit is een rubrics of checklist waaraan je kunt zien of de opdracht juist is uitgevoerd