Een bank wil controleren of een ingevoerd Belgisch rekeningnummer (IBAN) geldig is voordat een overschrijving wordt uitgevoerd.
Schrijf een functie IsGeldigRekeningnummer(rekeningnummer) die controleert of een Belgisch rekeningnummer geldig is.
De functie ontvangt het rekeningnummer als parameter en geeft een booleaanse waarde terug:
true als het rekeningnummer geldig is;
false als het rekeningnummer ongeldig is.
Gebruik deze functie vervolgens in een hoofdprogramma. Lees een rekeningnummer in en toon:
Geldig als de functie true teruggeeft;
Ongeldig als de functie false teruggeeft.
De volgende controles moeten worden uitgevoerd:
Het rekeningnummer moet voldoen aan de volgende vorm:
BExx xxxx xxxx xxxx
waarbij BE staat voor Belgiƫ en elke x een cijfer is. Tussen de
verschillende groepjes cijfers moet een spatie staan.
Maak een getal van het derde cijfer tot en met het twaalfde cijfer, en een getal van de twee laatste cijfers. Dat tweede getal (het controlegetal) moet gelijk zijn aan de rest van de deling van het eerste getal door 97. Is die rest 0, dan moeten de twee laatste cijfers gelijk zijn aan 97.
Een voorbeeld met rekeningnummer BE61 1234 5678 9002. De vorm is correct. We
berekenen de rest van 1234567890 gedeeld door 97. Dat levert 2 op. Dit komt
overeen met de twee laatste cijfers (02), dus dit rekeningnummer is geldig.
Toon geldig als de functie true teruggeeft, en ongeldig als ze false
teruggeeft.
Invoer:
BE61 1234 5678 9002
Uitvoer:
geldig
Invoer:
BE61 1234 5678 9003
Uitvoer:
ongeldig
Het getal van het derde tot en met het twaalfde cijfer is tien cijfers lang en past niet altijd in een
int. Gebruik daarom eenlongom dat getal te bewaren.