Parsowanie numeru PESEL

0

Potrzebuje pomocy, ponieważ nie rozumiem totalnie programowania, a najczęściej się uczę z gotowego kodu i po prostu go analizując. Znalazłem na internecie takie zadanie (poniżej treść) i trochę mnie zamurowało. Więc przychodzę z prośbą i pytaniem jak takie coś powinno wyglądać.
Numer PESEL to 11-cyfrowy kod, jednoznacznie identyfikujący określoną osobę fizyczną. Dla wszystkich urodzonych przed 1.1.2000 r. skonstruowany został w następujący sposób:
• cyfry od 1 do 6 to data urodzenia (w kolejności: rok, miesiąc, dzień),
• cyfry od 7 do 9 to liczba porządkowa,
• cyfra 10-ta to płeć (cyfra parzysta dla kobiet, nieparzysta dla mężczyzn),
• cyfra 11-ta to cyfra kontrolna.
Przykład: Numer PESEL 75121968629 oznacza kobietę (bo przedostatnia cyfra w numerze jest parzysta), urodzoną 19 grudnia 1975 roku, której nadano liczbę porządkową 686. Cyfra kontrolna jest obliczana wg następującego algorytmu:

  1. Każdą cyfrę numeru PESEL (oprócz ostatniej, która jest cyfrą kontrolną) mnożymy przez odpowiadającą jej wagę. Tablica wag ma postać: 1, 3, 7, 9, 1, 3, 7, 9, 1, 3.W podanym powyżej numerze PESEL cyfrą kontrolną jest 9.
    PESEL: 7 5 1 2 1 9 6 8 6 2 9 (ostatnią cyfrę pomijamy, bo to cyfra kontrolna)
    WAGI: 1 3 7 9 1 3 7 9 1 3
    WYNIKI: 7x1=7; 5x3=15; 1x7=7; 2x9=18 ;1x1=1; 9x3=27; 6x7=42; 8x9=72; 6x1=6; 2x3=6
  2. Wyniki sumujemy: 7 + 15 + 7 + 18 + 1 + 27 + 42 + 72 + 6 + 6 = 201
  3. Wyznaczamy resztę z dzielenia sumy przez 10: 201:10 = 20 reszta = 1
  4. Jeżeli reszta = 0, to cyfra kontrolna wynosi 0. Jeżeli reszta ≠ 0, to cyfra kontrolna będzie uzupełnieniem reszty do 10, czyli w podanym przykładzie jest to cyfra 9. Plik pesel.txt zawiera numery PESEL 150 osób zatrudnionych w biurze obliczeniowym „Statystyk”. Korzystając z informacji zawartych w pliku pesel.txt oraz dostępnych narzędzi informatycznych, wykonaj poniższe polecenia. Odpowiedzi do poszczególnych podpunktów umieść w pliku odp_5.txt, poprzedzając je literą oznaczającą ten podpunkt. Uwaga: Możesz przyjąć, że nawet gdy cyfra kontrolna numeru PESEL jest niepoprawna, to dane osobowe w nim zapisane, są prawidłowe.
    a) Ile osób urodziło się w grudniu?
    b) Podaj, ile kobiet pracuje w biurze obliczeniowym.
    c) Podaj rok, w którym urodziło się najwięcej osób pracujących w biurze.
    d) Wyszukaj nieprawidłowe numery PESEL, w których nie zgadza się cyfra kontrolna.Posortuj te numery PESEL rosnąco.
    e) Sporządź zestawienie liczby osób urodzonych w kolejnych dziesięcioleciach, tzn. w latach pięćdziesiątych, sześćdziesiątych, siedemdziesiątych, osiemdziesiątych i dziewięć-dziesiątych. Utwórz wykres ilustrujący procentowy rozkład liczby osób w poszczególnych przedziałach.
    Uwaga: Do urodzonych w latach pięćdziesiątych należy zaliczyć osoby urodzone od roku 1950 do roku 1959 włącznie.
3

Powinieneś napisać parser/dekoder Peselu i na podstawie zdobytych informacji przygotować statystykę której potrzebujesz.

2
Tomasz Marciniak napisał(a):

Potrzebuje pomocy, ponieważ nie rozumiem totalnie programowania, a najczęściej się uczę z gotowego kodu i po prostu go analizując.

Jasne

Znalazłem na internecie takie zadanie (poniżej treść) i trochę mnie zamurowało. Więc przychodzę z prośbą i pytaniem jak takie coś powinno wyglądać.

To znajdź rozwiązanie w internecie i je przeanalizuj.

Numer PESEL to 11-cyfrowy kod, jednoznacznie identyfikujący określoną osobę fizyczną. Dla wszystkich urodzonych przed 1.1.2000 r. skonstruowany został w następujący sposób:
• cyfry od 1 do 6 to data urodzenia (w kolejności: rok, miesiąc, dzień),
• cyfry od 7 do 9 to liczba porządkowa,
• cyfra 10-ta to płeć (cyfra parzysta dla kobiet, nieparzysta dla mężczyzn),
• cyfra 11-ta to cyfra kontrolna.
Przykład: Numer PESEL 75121968629 oznacza kobietę (bo przedostatnia cyfra w numerze jest parzysta), urodzoną 19 grudnia 1975 roku, której nadano liczbę porządkową 686. Cyfra kontrolna jest obliczana wg następującego algorytmu:

  1. Każdą cyfrę numeru PESEL (oprócz ostatniej, która jest cyfrą kontrolną) mnożymy przez odpowiadającą jej wagę. Tablica wag ma postać: 1, 3, 7, 9, 1, 3, 7, 9, 1, 3.W podanym powyżej numerze PESEL cyfrą kontrolną jest 9.
    PESEL: 7 5 1 2 1 9 6 8 6 2 9 (ostatnią cyfrę pomijamy, bo to cyfra kontrolna)
    WAGI: 1 3 7 9 1 3 7 9 1 3
    WYNIKI: 7x1=7; 5x3=15; 1x7=7; 2x9=18 ;1x1=1; 9x3=27; 6x7=42; 8x9=72; 6x1=6; 2x3=6
  2. Wyniki sumujemy: 7 + 15 + 7 + 18 + 1 + 27 + 42 + 72 + 6 + 6 = 201
  3. Wyznaczamy resztę z dzielenia sumy przez 10: 201:10 = 20 reszta = 1
  4. Jeżeli reszta = 0, to cyfra kontrolna wynosi 0. Jeżeli reszta ≠ 0, to cyfra kontrolna będzie uzupełnieniem reszty do 10, czyli w podanym przykładzie jest to cyfra 9. Plik pesel.txt zawiera numery PESEL 150 osób zatrudnionych w biurze obliczeniowym „Statystyk”. Korzystając z informacji zawartych w pliku pesel.txt oraz dostępnych narzędzi informatycznych, wykonaj poniższe polecenia. Odpowiedzi do poszczególnych podpunktów umieść w pliku odp_5.txt, poprzedzając je literą oznaczającą ten podpunkt. Uwaga: Możesz przyjąć, że nawet gdy cyfra kontrolna numeru PESEL jest niepoprawna, to dane osobowe w nim zapisane, są prawidłowe.
    a) Ile osób urodziło się w grudniu?
    b) Podaj, ile kobiet pracuje w biurze obliczeniowym.
    c) Podaj rok, w którym urodziło się najwięcej osób pracujących w biurze.
    d) Wyszukaj nieprawidłowe numery PESEL, w których nie zgadza się cyfra kontrolna.Posortuj te numery PESEL rosnąco.
    e) Sporządź zestawienie liczby osób urodzonych w kolejnych dziesięcioleciach, tzn. w latach pięćdziesiątych, sześćdziesiątych, siedemdziesiątych, osiemdziesiątych i dziewięć-dziesiątych. Utwórz wykres ilustrujący procentowy rozkład liczby osób w poszczególnych przedziałach.
    Uwaga: Do urodzonych w latach pięćdziesiątych należy zaliczyć osoby urodzone od roku 1950 do roku 1959 włącznie.

pesel.txt - bez tego ani rusz. Wczytujesz dane z pliku (znajdziesz w gogole w mniej niż 5 minut) - wczytujesz dzielisz na poszczególne liczby i robisz statystykę na podstawie tego, jak jest zdefiniowany pesel. Swoją drogo ciekawe czy ktoś umieścił w pliku prawdziwe pesele :P

9

Czy tylko mi się wydaje, czy coraz gorzej z pytającymi?

Potrzebuje pomocy, ponieważ nie rozumiem totalnie programowania, a najczęściej się uczę z gotowego kodu i po prostu go analizując.

Pierwszy wynik z google, dla hasła c# pesel validation
http://programujemy.blogspot.com/2012/04/prosty-walidator-pesel-c.html

UPDATE:

@_13th_Dragon Zmobilizowałeś mnie. Celem mojego posta było to, że wkurza mnie, że młodzi ludzie nie radzą sobie z wyszukiwarką internetową. Poświęciłem całe 10 minut na to, żeby zorientować się czego dotyczy sprawa.
I teraz wiem, że to jest zadanie 5 z matury rozszerzonej z 2010 roku.
Wiem jakie powinny być prawidłowe odpowiedzi:
https://www.oke.gda.pl/plikiOKE/Egzamin_maturalny/Arkusze_Egzaminacyjne/2010_wiosna/MIN-R1_1P-102_klucz.pdf

A jakbym nie potrafił tego rozwiązać to mam nawet gotowca:

Ten brak chęci do samodzielnego wyszukania informacji i postawa, że się potrzebuje pomocy wrzucając treść zadania (i tak sukces że nie screen) budzi we mnie niesmak.

1 użytkowników online, w tym zalogowanych: 0, gości: 1