from
PESEL number validation
by Michal Bok
Checking PESEL number, and creating 11. digit of PESEL based on first 10 digits.
|
| findp(pesel_num)
|
function pesel_tab = findp(pesel_num)
%FINDP funkcja generuje 11. cyfre numeru PESEL
% na podstawie pierwszych 10 cyfr
% jako wynik zwraca poprawny numer PESEL
%
% FINDP(pesel_num)
% pesel_num - 10 pierwszych cyfr numeru PESEL
%
% Copyright 2008 Micha Bok, 156589
%
% algorytm: http://pl.wikipedia.org/wiki/PESEL
pesel_str = num2str(pesel_num);
pesel_len = length(pesel_str);
pesel_tab = 0;
if pesel_len~=10
return
end
for char=1:pesel_len;
pesel_tab(char) = str2num(pesel_str(char));
end;
pesel_sum_1 = pesel_tab(1)*1 + pesel_tab(2)*3 + pesel_tab(3)*7 + pesel_tab(4)*9 + pesel_tab(5)*1;
pesel_sum_2 = pesel_tab(6)*3 + pesel_tab(7)*7 + pesel_tab(8)*9 + pesel_tab(9)*1 + pesel_tab(10)*3;
pesel_sum = pesel_sum_1 + pesel_sum_2;
for i=0:9
wynik = mod(pesel_sum+i,10);
if wynik==0
pesel_tab(11) = i;
return
end
end
|
|
Contact us at files@mathworks.com