uses crt;
var
pesel: array [0..10] of integer;
peselstr:string;
poprawna:boolean;
function rokUrodzenia(): integer;
var
rok : integer;
miesiac : integer;
begin
rok := 10 * pesel[0];
rok := rok + pesel[1];
miesiac := 10 * pesel[2];
miesiac := miesiac + pesel[3];
if (miesiac > 80) and (miesiac < 93) then
rok := rok + 1800
else if (miesiac > 0) and (miesiac < 13) then
rok := rok + 1900
else if (miesiac > 20) and (miesiac < 33) then
rok := rok + 2000
else if (miesiac > 40) and (miesiac < 53) then
rok := rok + 2100
else if (miesiac > 60) and (miesiac < 73) then
rok := rok + 2200;
rokUrodzenia := rok;
end;
function miesiacUrodzenia(): integer;
var
miesiac : integer;
begin
miesiac := 10 * pesel[2];
miesiac := miesiac + pesel[3];
if (miesiac > 80) and (miesiac < 93) then
miesiac := miesiac -80
else if (miesiac > 20) and (miesiac < 33) then
miesiac := miesiac - 20
else if (miesiac > 40) and (miesiac < 53) then
miesiac := miesiac - 40
else if (miesiac > 60) and (miesiac < 73) then
miesiac := miesiac - 60;
miesiacUrodzenia := miesiac;
end;
function dzienUrodzin(): integer;
var
dzien : integer;
begin
dzien := 10 * pesel[4];
dzien := dzien + pesel[5];
dzienUrodzin := dzien;
end;
function plec(): string;
begin
if (poprawna) then
if (pesel[9] mod 2 = 1) then
plec := 'Mezczyzna'
else
plec := 'Kobieta'
else
plec := '---'
end;
function kontrolna(): boolean;
var
suma : integer;
begin
suma := 1 * pesel[0] +
3 * pesel[1] +
7 * pesel[2] +
9 * pesel[3] +
1 * pesel[4] +
3 * pesel[5] +
7 * pesel[6] +
9 * pesel[7] +
1 * pesel[8] +
3 * pesel[9];
suma := suma mod 10;
suma := 10 - suma;
suma := suma mod 10;
if (suma = pesel[10]) then
kontrolna := true
else
kontrolna:= false;
end;
function sprawdzPesel(numer:string):boolean;
var
i:integer;
begin
if (length(numer) <> 11) then
poprawna = false
else
for i := 0 to 10 do
pesel[i]:=StrtoInt(peselstr[i+1]);
end;
begin
repeat
write('Podaj numer Pesel: ');readln(peselstr);
poprawny := sprawdzPesel(numer);
until poprawny = false ;
writeln('Numer PESEL jest prawidlowy');
writeln('Rok urodzenia: ',StrtoInt(rokUrodzenia));
writeln('Miesiac urodzenia: ',StrtoInt(miesiacUrodzenia));
writeln('Dzien urodzenia: ',StrtoInt(dzienUrodzin));
writeln('Plec: ',plec);
end.
Czemu to nie chce działać? Pomocy