Visual Basic - Lab 16

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).

  1. Skriv upp siffrorna

  2. Multiplicera den första siffran med 2, den andra med 1, den tredje med 2, den fjärde med 1 och så vidare

  3. Räkna ut produkten

  4. 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.

  1. Addera alla ”specialsummor”

  2. 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

  1. 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