Personnummer
Gör ett program som räknar ut sista siffran i personnumret.
Den är en kontrollsiffra som används för att kontrollera
att det är rätt skrivet eller till exempel rätt inmatat
i en databas. Siffran kan enkelt (!?) räknas ut och det är
en utmärkt uppgift för en dator. Algoritmen (beräkningssättet)
används också för till exempel postgironummer.
Som exempel tar jag personnumret 610813-1076 där alltså sista
siffran är 6. Här kommer sättet den räknas ut på
(jämför med tabellen).
- Skriv upp siffrorna
- Multiplicera den första siffran med 2, den andra med 1, den tredje
med 2, den fjärde med 1 och så vidare
- Räkna ut produkten
- Summera resultatet av multiplikationen på ett ”specialsätt”:
addera tiotalssiffran med entalssiffran
Till exempel så blir 6 * 2 = 12 vilket ger
”specialsumman” 1 + 2 = 3.
- Addera alla ”specialsummor”
- Dra bort resultatet från punkt 5 från närmast högre
tio-tal och du har fått den sista siffran
Får du resultatet 10 ska sista siffran vara 0 (noll).
1 |
Siffror |
6 |
1 |
0 |
8 |
1 |
3 |
- |
1 |
0 |
7 |
2 |
Multiplikator |
2 |
1 |
2 |
1 |
2 |
1 |
- |
2 |
1 |
2 |
3 |
Produkt |
12 |
1 |
0 |
8 |
2 |
3 |
- |
2 |
0 |
14 |
4 |
Specialsummering |
3 |
1 |
0 |
8 |
2 |
3 |
- |
2 |
0 |
5 |
5 |
Summan från rad 4 |
3+1+0+8+2+3+2+0+5=24 |
6 |
Skillnad |
30-24=6 |
Prova ditt eget personnummer här:
1 |
Siffror |
|
|
|
|
|
|
- |
|
|
|
2 |
Multiplikator |
2 |
1 |
2 |
1 |
2 |
1 |
- |
2 |
1 |
2 |
3 |
Produkt |
|
|
|
|
|
|
- |
|
|
|
4 |
Specialsummering |
|
|
|
|
|
|
|
|
|
|
5 |
Summan från rad 4 |
|
6 |
Skillnad |
|
Dubblettkoll
- Gör så att inte dubbletter kommer fram i listan
Tipset här är att innan ett nummer läggs till i listan
jämförs det med de tidigare. Finns det inte måste du slumpa
ett nytt nummer och testa det igen och så vidare
Så här kan formulär och kontroller se ut:
Lösning
Lab 16
|