PESEL - wszystko, co o nim możesz wiedzieć
Jak wiemy, PESEL to numer identyfikacyjny każdego z nas, który widnieje w dowodzie osobistym. Większość z nas wie o tym, co z niego można wyciągnąć. Wiemy na pewno (większość z nas), że pierwsze cyfry to data urodzenia właściciela numeru identyfikacyjnego (PESEL), która wygląda tak, że pierwsze dwie cyfry to rok, dwie następne to miesiąc, zaś dwie kolejne to dzień. Np. 771001 będzie znaczyło, że osoba urodziła się 1977 roku, 1 października.
Teraz przejdźmy do czegoś ciekawszego. Z numeru identyfikacyjnego możemy dowiedzieć się o płci osoby, jaką reprezentuje PESEL. Wystarczy spojrzeć na przedostatnią cyfrę, jeśli jest parzysta - kobieta; nieparzysta - mężczyzna.
I tak dla przykładu zbadajmy taki PESEL: 49040501580. Przedostatnia cyfra (parzysta) oznacza, że jest to kobieta urodzona 5 kwietnia, 1949 roku (pięćdziesiątka na karku). I to by mogło być na tyle, ale jak sprawdzić czy w ogóle dany PESEL jest oryginalny? Wystarczy znać pewien algorytm, który poprzez odpowiednie kalkulowanie cyfr numeru identyfikacyjnego musi odpowiadać cyfrze kontrolnej, jaką jest ostatni znak PESELA (na przykładzie to 0). Dokładnie polega to na tym, że każdą cyfrę numeru identyfikacyjnego od pierwszej do przedostatniej (ostatnia to wspomniana suma kontrolna) musi być przemnożona przez odpowiednią cyfrę, która wchodzi w skład odpowiedniej tablicy dziesięciocyfrowej, której cyfry nazywamy wagi. Po pomnożeniu następuje sumowanie tych cyfr i wynik należy podzielić modulo przez 10, z kolei rezultat trzeba zróżnicować z 10 a wynik musi zgadzać się z ostatnią cyfrą.
Przykład:
Naszym numerem identyfikacyjnym niech będzie już wspomniany ciąg: 49040501580.
Wspomniane wagi to cyfry reprezentujące tablicę, które wyglądają tak: 1, 3, 7, 9, 1, 3, 7, 9, 1, 3
1. Teraz każdą cyfrę PESELA (prócz ostatniej) mnożymy zgodnie z cyfrą wagi:
PESEL: 4 9 0 4 0 5 0 1 5 8 0 <== suma kontrolna, którą na tym etapie nie bierzemy pod uwagę;
WAGI: 1 3 7 9 1 3 7 9 1 3
---------------------------------------
WYNIK: 4x1=4 ;9x3=27 ;0x7=0 ;4x9=36 ;0x1=0 ;5x3=15 ;0x7=0 ;1x9=9 ;5x1=5 ;8x3=24
2. Teraz wyniki sumujemy: 4 + 27 + 0 + 36 + 0 + 15 + 0 + 9 + 5 + 24 = 120;
3. Następnie dzielimy module przez 10: 120 mod 10 = 0
4. 10 odejmujemy od wyniku: 10 - 0 = 0;
5. Wynik porównujemy z sumą kontrolną: 0 = 0.
//Mała korekta:
W tym przypadku 10-0 nie jest 0 tylko 10. Ale patrzymy na ostatnią cyfrę tej liczby. Chociaż jak sprawdzałem na oryginalnych PESELACH to najczęściej wynikiem była liczba jedno cyfrowa
I to by było na tyle. Już niedługo opowiem o numerze: REGON i NIP.
Teraz przejdźmy do czegoś ciekawszego. Z numeru identyfikacyjnego możemy dowiedzieć się o płci osoby, jaką reprezentuje PESEL. Wystarczy spojrzeć na przedostatnią cyfrę, jeśli jest parzysta - kobieta; nieparzysta - mężczyzna.
I tak dla przykładu zbadajmy taki PESEL: 49040501580. Przedostatnia cyfra (parzysta) oznacza, że jest to kobieta urodzona 5 kwietnia, 1949 roku (pięćdziesiątka na karku). I to by mogło być na tyle, ale jak sprawdzić czy w ogóle dany PESEL jest oryginalny? Wystarczy znać pewien algorytm, który poprzez odpowiednie kalkulowanie cyfr numeru identyfikacyjnego musi odpowiadać cyfrze kontrolnej, jaką jest ostatni znak PESELA (na przykładzie to 0). Dokładnie polega to na tym, że każdą cyfrę numeru identyfikacyjnego od pierwszej do przedostatniej (ostatnia to wspomniana suma kontrolna) musi być przemnożona przez odpowiednią cyfrę, która wchodzi w skład odpowiedniej tablicy dziesięciocyfrowej, której cyfry nazywamy wagi. Po pomnożeniu następuje sumowanie tych cyfr i wynik należy podzielić modulo przez 10, z kolei rezultat trzeba zróżnicować z 10 a wynik musi zgadzać się z ostatnią cyfrą.
Przykład:
Naszym numerem identyfikacyjnym niech będzie już wspomniany ciąg: 49040501580.
Wspomniane wagi to cyfry reprezentujące tablicę, które wyglądają tak: 1, 3, 7, 9, 1, 3, 7, 9, 1, 3
1. Teraz każdą cyfrę PESELA (prócz ostatniej) mnożymy zgodnie z cyfrą wagi:
PESEL: 4 9 0 4 0 5 0 1 5 8 0 <== suma kontrolna, którą na tym etapie nie bierzemy pod uwagę;
WAGI: 1 3 7 9 1 3 7 9 1 3
---------------------------------------
WYNIK: 4x1=4 ;9x3=27 ;0x7=0 ;4x9=36 ;0x1=0 ;5x3=15 ;0x7=0 ;1x9=9 ;5x1=5 ;8x3=24
2. Teraz wyniki sumujemy: 4 + 27 + 0 + 36 + 0 + 15 + 0 + 9 + 5 + 24 = 120;
3. Następnie dzielimy module przez 10: 120 mod 10 = 0
4. 10 odejmujemy od wyniku: 10 - 0 = 0;
5. Wynik porównujemy z sumą kontrolną: 0 = 0.
//Mała korekta:
W tym przypadku 10-0 nie jest 0 tylko 10. Ale patrzymy na ostatnią cyfrę tej liczby. Chociaż jak sprawdzałem na oryginalnych PESELACH to najczęściej wynikiem była liczba jedno cyfrowa
I to by było na tyle. Już niedługo opowiem o numerze: REGON i NIP.



Dobre i przydatne to jest to w powyższym linku. Na samym dole mamy więcej informacji, min o NIP REGON, etc
- Algorytm sprawdzający MUSI uwzględniać datę urodzenia. Dzięki temu unikasz błędu "44"
- Algorytm POWINIEN sprawdzać płeć
Popularne błędy:
- Data urodzenia nie taka jak w numerze
- zła suma kontrolna
- data poza zasięgiem np. 31 listopada
- płeć inna niż w numerze
- powtórzenie numeru
Osobiście to polecam stronę http://pesel.php64.pl - Wszystko i na temat numeru PESEL
Po przeczytaniu strony nie można tego już nie rozumieć. Na prawdę kawał dobrej roboty.
Pozdrawiam
Pozdrawiam dfa51
A po co to?
var i:Integer;
begin
result:=false;
for i:=1 to length(s) do
if s[i] in ['0'..'9'] then result:=true else begin
result:=false;
break;
end;
end;
const tab:array [1..10] of byte = (1, 3, 7, 9, 1, 3, 7, 9, 1, 3);
var s:string;
res,x:integer;
code:integer;
b:byte;
begin
writeln('Podaj PESEL:');
readln(s);
if (length(S)<>11) or (not Is_numeric(s)) then begin
WriteLn('Błąd składni numeru identyfikacyjnego');
readln;
exit;
end;
res:=0;
For x:=1 to 10 do begin
val(s[x],B,code);
res:=res+ B * Tab[x];
end;
val(s[11],B,code);
res:=10 - res mod 10;
If res=10 then res:=0;
if res=B then writeln('OK') else writeln('false');
readln;
end.
// trza wziac prawym i Zapisz element docelowy....
Jakbys uznal, ze to bledny numer i nie wiedzial jak to rozszyfrowac to rozwiazanie jest tutaj:
Opis PESEL na stronach MSWiA