Prezentacja multimedialna
Zadanie 2. Firma
W firmie „Hexadecymalni” każdy ze pracowników ma przypisany indywidualny kod zapisany w systemie szesnastkowym, którym posługuje się na terenie przedsiębiorstwa. Identyfikator zbudowany jest w następujący sposób:
cyfra na pozycji oznacza numer stanowiska w firmie (od 1 do 5),
cyfra na pozycji określa płeć (od 2 do F; liczby pierwsze są przypisywane kobietom, a złożone mężczyznom),
cyfry na pozycjach od do to rok urodzenia.
Kody pracowników ułożone są losowo, co powoduje duży chaos w dziale księgowym. Na wniosek szefa tego działu masz za zadanie:
kody pracowników posortować rosnąco według stanowisk;
w obrębie każdego stanowiska posortować pracowników niemalejąco względem czasu pozostałego do odejścia danej osoby na emeryturę (w pełnych latach pozostałych do przepracowania).
Ważne, aby uwzględnić różny wiek emerytalny dla kobiet i mężczyzn. Kobiety zatrudnione w firmie „Hexadecymalni” odchodzą na emeryturę wraz z końcem roku poprzedzającego ich rok życia, zaś mężczyźni — wraz z końcem roku poprzedzającego ich rok życia. Przyjmij, że szef działu księgowości zlecił ci zadanie w roku.
Pracownik o numerze 167B5
jest mężczyzną (liczba 6Indeks dolny (16)(16) = 6Indeks dolny (10)(10) jest liczbą złożoną). Urodził się on w roku 7B5Indeks dolny (16)(16) = 1973Indeks dolny (10)(10), zatem 65. urodziny będzie obchodzić w roku . Oznacza to, że jego ostatnim przepracowanym rokiem będzie rok , a więc pełne przepracowane lata to lata od roku do roku . Zgodnie z treścią zadania do emerytury pozostało mu 15 pełnych lat pracy.
W pliku pracownicy.txt
zapisano kody wszystkich pracowników, każdy w osobnej linii. Każdej osobie w obrębie jednego stanowiska pozostał inny czas do uzyskania emerytury.
Napisz program, który uporządkuje identyfikatory pracowników według przedstawionych zasad. Wyniki zapisz do pliku wyniki2.txt
.
Do oceny oddajesz:
plik
wyniki2.txt
zawierający odpowiedź (kody pracowników pogrupowane rosnąco według stanowiska i posortowane rosnąco względem czasu pozostałego do emerytury w obrębie jednego stanowiska)plik(i) z komputerową realizacją zadania
Przedstaw rozwiązanie zadania w postaci programu w języku C++, Java lub Python. Zadbaj o prawidłowe wczytanie danych z pliku tekstowego do programu. Odpowiedź do zadania znajdziesz w osobnym pliku umieszczonym pod omówieniem pseudokodu.
Rozwiązanie
Zapoznaj się z rozwiązaniem zadania przedstawionym w postaci pseudokodu.
Odpowiedź do zadania dla danych zapisanych w pliku tekstowym pracownicy.txt
: