Aici un exemplu de cod pentru prima problema:
% Script extragere campuri din CNP
%% initializare
clear all
n = 1;
obs='';
raspuns = 'D';
cnp = 0;
%% citire date
while strcmpi(raspuns, 'D')
while cnp <= 10^12 % similar 1e12
cnp = input(['Introduceti codul numeric personal al persoanei ',...
num2str(n), ': ']);
end
cnp=num2str(cnp);
s = cnp(1);
switch s
case '1'
sex = 'masculin';
secol = 20;
case '2'
sex = 'feminin';
secol = 20;
case '3'
sex = 'masculin';
secol = 19;
case '4'
sex = 'feminin';
secol = 19;
case '5'
sex = 'masculin';
secol = 21;
case '6'
sex = 'feminin';
secol = 21;
case '7'
sex = 'masculin';
secol = 20;
obs = 'Persoana straina rezidenta in Romania';
case '8'
sex = 'feminin';
secol = 20;
obs = 'Persoana straina rezidenta in Romania';
case '9'
sex = 'necunoscut';
secol = 20;
obs = 'Persoana straina';
end
aa = cnp(2:3);
if secol == 20
an = str2num(['19',aa]);
elseif secol == 21
an = str2num(['20',aa]);
else
an = str2num(['18',aa]);
end
jj = str2num(cnp(8:9));
if jj == 12
jud = 'Cluj';
elseif jj >= 40 && jj <= 46
jud = 'Bucuresti';
else
jud = 'Judet necunoscut';
end
%% creare structura
pers(n).cnp = cnp;
pers(n).s = sex;
pers(n).an = an;
pers(n).luna = str2num(cnp(4:5));
pers(n).zi = str2num(cnp(6:7));
pers(n).jud = jud;
pers(n).obs = obs;
raspuns = input('Continuati ? (D/N): ','s');
n = n+1;
end
%% afisare
for index = 1:n-1
disp(['Persoana ',num2str(index)]);
disp(pers(index));
end