Sprawdź się
Zadanie 2. Konkurs historyczny
Pani Binarna chce przeprowadzić konkurs ze znajomości wydarzeń historycznych. Zadaniem uczestników będzie podanie jednego wydarzenia historycznego, jakie miało miejsce w danym dniu. Do konkursu zgłosiło się dziewięciu chętnych. Pani Binarna przygotowała plik dane.txt
, który zawiera 158 dat, zapisanych w standardzie ISO 8601, ułożonych w losowej kolejności.
Standard ISO 8601 jest normą opisującą sposób zapisu daty i czasu. W standardzie ISO 8601 data kalendarzowa ma format RRRRMMDD
, czyli np. 5 kwietnia 2022 roku zapisywany jest jako 20220405
.
Plik dane.txt
zawiera 158 liczb naturalnych z przedziału [3030118, 20000222] zapisanych w losowej kolejności, każda w osobnym wierszu.
Proces wyboru pytań wygląda następująco: z zestawu dat, uporządkowanych w kolejności od najwcześniejszej do najpóźniejszej, komputer przydziela kolejno każdemu uczestnikowi datę. Procedura jest powtarzana po tym, gdy każda osoba biorąca udział w konkursie poda odpowiedź. Uczestnicy otrzymują kolejne daty bez względu na poprawność wcześniejszej odpowiedzi.
Gdyby w konkursie brało udział trzech uczestników, każdy z nich odpowiadałby na co trzecie pytanie.
Przykładowy nieposortowany zestaw danych:
10770122, 11031122, 11600723, 11800918, 10381108, 10410503, 11030715, 11770510, 10990122, 14100715
po posortowaniu będzie wyglądał następująco:
10381108, 10410503, 10770122, 10990122, 11030715, 11031122, 11600723, 11770510, 11800918, 14100715
Pierwsza osoba otrzyma daty zaznaczone pogrubioną czcionką:
10381108, 10410503, 10770122, 10990122, 11030715, 11031122, 11600723, 11770510, 11800918, 14100715
Drugiej osobie przydzielone zostaną daty:
10381108, 10410503, 10770122, 10990122, 11030715, 11031122, 11600723, 11770510, 11800918, 14100715
A trzecia otrzyma następujące daty:
10381108, 10410503, 10770122, 10990122, 11030715, 11031122, 11600723, 11770510, 11800918, 14100715
Program powinien więc zwrócić następujący wynik:
Zwróć uwagę, że jedno z pytań nie zostało nikomu przydzielone, gdyż wtedy ich liczba nie byłaby identyczna dla każdego uczestnika.
Napisz program, który wypisze wszystkie zestawy dat z pliku dane.txt
, z jakich będą odpytani uczestnicy konkursu. Zestawy mają zostać wypisane jeden pod drugim, a na ich początku powinien się znaleźć numer określający, dla której osoby dany zestaw został przygotowany. W swoich obliczeniach przyjmij, że liczba uczestników wynosi 9. Wyniki zapisz w pliku wyniki.txt
.
Do oceny oddajesz:
plik
wyniki.txt
z odpowiedzią (9 wierszy; na początku każdego powinien znaleźć się numer uczestnika, a po znaku kropki i spacji kolejno daty oddzielone spacjami),plik(i) z komputerową realizacją zadania (kodem programu).
Pamiętaj, że rozwiązując zadania maturalne, musisz zadbać o prawidłowe wczytanie danych z pliku tekstowego do swojego programu. Dlatego pobierz plik i rozwiąż zadanie również lokalnie na swoim komputerze, w wybranym języku programowania.
Poprawną odpowiedź dla pliku z danymi znajdziesz pod sekcją ćwiczeń.
Przetestuj działanie programu dla dziewięciu uczestników oraz następującego zestawu dziesięciu dat:
JĘZYK C++
JĘZYK JAVA
JĘZYK PYTHON
Odpowiedź zawarta w pliku wynik.txt
: