Prezentacja multimedialna
Zadanie 2. Owocowa przekąska
Do szkoły sportowej aktualnie uczęszcza 36 uczniów. Codziennie po treningu dzieci dostają na deser zdrową przekąskę. Niestety, jedna z dostaw jest niekompletna i jabłek nie wystarczy dla wszystkich dzieci. Dyrektorka szkoły musi zdecydować, jak w tej sytuacji rozdzielić jabłka między uczniów. Postanowiła ustawić dzieci zgodnie ze strukturą trójkąta Pascala – tak, aby każde dziecko odpowiadało dokładnie jednej liczbie tworzącej trójkąt. Wykorzystała w tym celu numery uczniów. Jabłka mają zostać rozdane tylko uczniom stojącym w miejscach, gdzie w trójkącie Pascala znajdują się liczby parzyste. Dyrektorka chciałaby sprawdzić, kto otrzyma owoc.
Dyrektorka ustawiła uczniów zgodnie z budową trójkąta Pascala: najpierw uczniowie zajmowali miejsca w wierszach od góry, od lewej do prawej strony. Wiadomo, że dzieci było tyle, że utworzyły trójkąt składający się z 8 wierszy.
Trójkąt Pascala to trójkątna tablica liczb. W pierwszym wierszu znajduje się liczba 1, w następnym – dwie jedynki. W kolejnych wierszach jedynki umieszczone są na początku i końcu każdego wiersza. Każda liczba „środkowa” jest sumą dwóch liczb bezpośrednio znajdujących się nad nią. Więcej na temat tego zagadnienia znajdziesz w e‑materiale z matematyki Trójkąt PascalaTrójkąt Pascala.
W pliku dzieci.txt
znajduje się 36 unikalnych liczb naturalnych z przedziału [1, 36]. Każda liczba odpowiada numerowi jednego ucznia i jest zapisana w osobnym wierszu.
Poniżej przedstawione się wyniki dla numerów sześciu uczniów, które zapisane są w pierwszych sześciu liniach pliku dzieci.txt
:
Zgodnie z przyjętą zasadą dzieci zostaną ustawione w następujący sposób:
Dziecko z numerem 27 stoi na miejscu, w którym w trójkącie Pascala jest liczba 1. Nie otrzyma ono jabłka.
Dziecko z numerem 32 stoi na miejscu, w którym w trójkącie Pascala jest liczba 1. Nie otrzyma ono jabłka.
Dziecko z numerem 35 stoi na miejscu, w którym w trójkącie Pascala jest liczba 1. Nie otrzyma ono jabłka.
Dziecko z numerem 23 stoi na miejscu, w którym w trójkącie Pascala jest liczba 1. Nie otrzyma ono jabłka.
Dziecko z numerem 10 stoi na miejscu, w którym w trójkącie Pascala jest liczba 2. Otrzyma ono jabłko, ponieważ liczba 2 jest parzysta.
Dziecko z numerem 1 stoi na miejscu, w którym w trójkącie Pascala jest liczba 1. Nie otrzyma ono jabłka.
Napisz program, który wypisze numery uczniów zajmujących w ustawieniu dyrektorki takie miejsca, w których w trójkącie Pascala znajdowałyby się liczby parzyste. Zapisz wyniki do pliku wynik.txt
.
Do oceny oddajesz:
plik
wynik.txt
zawierający odpowiedź do zadania (liczby całkowite – numery dzieci, które powinny dostać jabłka),plik(i) z komputerową realizacją zadania (kodem programu).
Przedstaw rozwiązanie zadania w postaci programu napisanego w wybranym 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 prezentacją przedstawiającą rozwiązanie w formie pseudokodu.
W pseudokodzie wykorzystaliśmy operator mod
(obliczanie reszty z dzielenia).
Odpowiedź
Odpowiedź do zadania dla danych z pliku dzieci.txt
:
Dodaj do swojego programu komentarze tak, żeby był zrozumiały dla osoby, która nie potrafi programować.