Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Zadanie 1. Ogródki działkowe

W Heksagonalni znajduje się wiele ogródków działkowych. Właścicielem jednego z nich jest pan Uniksowy.

Zadanie 1.1

Pan Uniksowy chce zadbać o trawnik na swojej działce, dlatego postanowił kupić nawóz. Preparat sprzedawany jest w opakowaniach po 5 litrów. 1 litr nawozu wystarczy na 5 mIndeks górny 2 trawy. Aby wiedzieć, ile preparatu potrzebuje, pan Uniksowy musi obliczyć powierzchnię działki.

Działka pana Uniksowego od północy graniczy z rzeką, której bieg można opisać funkcją:

f ( x ) = x 3 + 2 x 2 + x

Od zachodu działkę ogranicza prosta x = 0, od wschodu prosta x = 2, natomiast od południa prosta pomiędzy punktami (0, 0) oraz (2, 0).

ReMLerSRUayUw
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Skorzystaj z metody prostokątówmetoda prostokątówmetody prostokątów, za punkt przecięcia wykresu z podstawą prostokąta przyjmij środek podstawy prostokąta.

Przyjmij, że odległość między punktami układu współrzędnych równa 1 odpowiada 10 m na działce, czyli kwadrat ograniczony punktami (-1, -1) oraz (1, 1) reprezentuje działkę o długości boku 20 m oraz powierzchni 400 mIndeks górny 2.

W pliku precyzja.txt znajdują się liczby całkowite dodatnie oznaczające, na ile prostokątów należy podzielić działkę.

precyzja.txt

R9ujZuuWSA6Qb

Przycisk do pobrania pliku TXT z kodem źródłowym.

Plik TXT o rozmiarze 41.00 B w języku polskim
Przykład 1

Jeśli w pierwszym wierszu pliku precyzja.txt znajduje się liczba 4, to powinniśmy podzielić działkę na 4 prostokąty:

RXRSvFXenZFme
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Oblicz, ile opakowań nawozu potrzebuje pan Uniksowy, aby użyźnić trawę na całej działce w zależności od liczby prostokątów z pliku precyzja.txt.

Wyniki zapisz do pliku nawoz.txt, gdzie liczba opakowań nawozu w każdym wierszu będzie odpowiadać liczbie prostokątów przyjętej do obliczeń z danego wiersza pliku precyzja.txt

Do oceny oddajesz:

  • plik nawoz.txt zawierający odpowiedź (liczba pełnych opakowań nawozu, odpowiadająca przyjętej liczbie prostokątów z danej linii pliku precyzja.txt)

  • plik(i) z komputerową realizacją zadania (kodem programu)

Praca domowa

Przedstaw rozwiązanie zadania w postaci programu w języku C++, Java lub Python. Odpowiedź do zadania znajdziesz pod omówieniem rozwiązania zapisanego za pomocą pseudokodu.

Rozwiązanie

W rozwiązaniu skorzystamy z metody prostokątów bez niedomiaru i nadmiaru (obliczając wartość funkcji dla środka podstawy każdego prostokąta), wczytując liczbę prostokątów z pliku precyzja.txt.

Tworzymy zmienne, w których zapisujemy początek i koniec przedziału. Następnie obliczamy podstawę każdego prostokąta, czyli: (koniec - początek) / precyzja[i].

Sumujemy wysokości kolejnych prostokątów. Na koniec mnożymy sumę przez podstawę, dzięki czemu otrzymujemy wynik.

Linia 1. funkcja funkcja otwórz nawias okrągły x zamknij nawias okrągły. Linia 2. zwróć moduł otwórz nawias okrągły otwórz nawias okrągły minus 1 zamknij nawias okrągły asterysk potęga otwórz nawias okrągły x przecinek 3 zamknij nawias okrągły plus 2 asterysk potęga otwórz nawias okrągły x przecinek 2 zamknij nawias okrągły plus x zamknij nawias okrągły. Linia 4. funkcja moduł otwórz nawias okrągły x zamknij nawias okrągły. Linia 5. jeżeli x zamknij nawias ostrokątny znak równości 0 zwróć x. Linia 6. w przeciwnym wypadku zwróć minus x. Linia 8. funkcja potęga otwórz nawias okrągły x przecinek y zamknij nawias okrągły. Linia 9. wynik ← 1. Linia 10. dopóki y zamknij nawias ostrokątny 0 wykonuj dwukropek. Linia 11. wynik ← wynik asterysk x. Linia 12. y ← y minus 1. Linia 13. zwróć wynik. Linia 15. precyzja otwórz nawias kwadratowy 1 kropka kropka 10 zamknij nawias kwadratowy ← wczytaj dane z pliku cudzysłów precyzja kropka txt cudzysłów. Linia 16. poczatekX ← 0. Linia 17. koniecX ← 2. Linia 18. opakowanie ← 25. Linia 19. przelicznik ← 10. Linia 21. dla i znak równości 1 przecinek 2 przecinek kropka kropka kropka przecinek 10 wykonuj dwukropek. Linia 22. podstawa ← otwórz nawias okrągły koniecX minus poczatekX zamknij nawias okrągły prawy ukośnik precyzja otwórz nawias kwadratowy i zamknij nawias kwadratowy. Linia 23. pole ← 0. Linia 24. dla j znak równości 1 przecinek 2 przecinek 3 kropka kropka kropka przecinek precyzja otwórz nawias kwadratowy i zamknij nawias kwadratowy wykonuj dwukropek. Linia 25. pole ← pole plus funkcja otwórz nawias okrągły poczatekX plus otwórz nawias okrągły j minus 0 kropka 5 zamknij nawias okrągły asterysk podstawa zamknij nawias okrągły. Linia 27. pole ← otwórz nawias okrągły pole asterysk przelicznik zamknij nawias okrągły asterysk otwórz nawias okrągły podstawa asterysk przelicznik zamknij nawias okrągły. Linia 29. jeżeli pole mod opakowanie znak równości 0 wykonaj dwukropek. Linia 30. ile ← pole prawy ukośnik opakowanie. Linia 31. w przeciwnym razie wykonaj dwukropek. Linia 32. ile ← otwórz nawias okrągły pole div opakowanie zamknij nawias okrągły plus 1. Linia 34. dopisz ile do pliku cudzysłów nawoz kropka txt cudzysłów.
Ważne!

W pseudokodzie wykorzystaliśmy operatory div oraz mod:

  • div – operator dzielenia całkowitego;

  • mod – operator modulo (oblicza resztę z dzielenia).

  • Definiujemy funkcję, która dla wybranej odciętej zwraca wartość bezwzględną rzędnej dla podanej w poleceniu funkcji, korzystając z funkcji potęgi oraz funkcji modułu. [linie kodu od 1 do 13]

  • Wczytujemy dane z pliku precyzja.txt. [linia kodu 15]

  • Zapisujemy wartości początkowe zmiennych. [linie kodu od 16 do 17]

  • Zapisujemy dane do odpowiednich zmiennych (jeden litr nawozu starcza na 5 mIndeks górny 2 działki, zatem jedno 5‑litrowe opakowanie starczy na 25 mIndeks górny 2). [linie kodu od 18 do 19]

  • Na podstawie wzoru na pole prostokąta (podstawa razy wysokość), obliczamy pole powierzchni w następujący sposób:

  1. Korzystając z zależności:

    p o l e = w y s o k o s c n p o d s t a w a + w y s o k o s c n 1 p o d s t a w a + . . . + w y s o k o s c 1 p o d s t a w a

    możemy wyłączyć przed nawias wspólny czynnik (podstawę) i przekształcić wzór w następujący sposób:

    p o l e = ( w y s o k o s c n + w y s o k o s c n 1 + . . . + w y s o k o s c 1 ) p o d s t a w a
  2. Obliczamy sumę kolejnych wysokości (punkt () * podstawa wyznacza środek podstawy -tego prostokąta; jego wysokość jest wartością funkcji w tym punkcie).

  3. Na koniec mnożymy otrzymaną sumę przez podstawę, a wcześniej oba czynniki przez 10 (ponieważ zarówno podstawa, jak i suma wysokości są wyrażone w jednostce odległości układu współrzędnych, która odpowiada odległości 10 m na działce), otrzymując przybliżone pole powierzchni obszaru ograniczonego wykresem funkcji. [linie kodu od 22 do 27]

  • Obliczamy liczbę pełnych opakowań preparatu. Jeśli obliczone pole działki jest podzielne przez 25, za liczbę pełnych opakowań bierzemy wynik dzielenia przez 25. Możemy skorzystać z funkcji mod, która zwraca resztę z dzielenia. Jeżeli reszta jest niezerowa, kupujemy jedno opakowanie więcej. Skorzystamy wtedy z funkcji div, zwracającej część całkowitą dzielenia pierwszego argumentu przez drugi. Otrzymaną liczbę pełnych opakowań preparatu zapisujemy do pliku. [linie kodu od 29 do 32]

  • Dopisujemy wynik do pliku nawoz.txt[linia kodu 34]

  • Powtarzamy obliczenia dla różnych liczb prostokątów.

Poprawne rozwiązanie

Liczba prostokątów

Liczba opakowań nawozu

10

14

20

14

50

14

100

14

200

14

500

14

1000

14

2000

14

5000

14

10000

14

Zadanie 1.2

Co roku po drugiej stronie rzeki pan Uniksowy – za zgodą właściciela nieużywanej działki – kosi trawę dla swoich zwierząt.

W miesiącu, w którym koszona jest trawa, zwierzęta karmione są wyłącznie nią, natomiast pozostałości są suszone oraz magazynowane w szopie.

Obszar działki znajdującej się za rzeką od południa ogranicza funkcja:

g ( x ) = x 3 + 2 x 2 + x + 1

Od zachodu działkę ogranicza prosta x = 0, od wschodu prosta x = 2, natomiast od północy prosta pomiędzy punktami (0, 4) oraz (2, 4).

Obszar przeznaczony do koszenia zaznaczony jest fioletowym kolorem:

RQzOFOcdbe4Db
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Skorzystaj z metody trapezówmetoda trapezówmetody trapezów.

Przyjmij, że odległość między punktami układu współrzędnych równa 1 odpowiada
10 m na działce, czyli kwadrat ograniczony punktami (-1, -1) oraz (1, 1) reprezentuje działkę o długości boku 20 m oraz powierzchni 400 mIndeks górny 2.

W wyniku skoszenia metra kwadratowego działki uzyskiwane jest 1,43 kg trawy.

Pan Uniksowy kosi działkę przez 10 dni, każdego dnia kosząc 10% powierzchni działki. W tym okresie zwierzęta zjadają 15 kg trawy każdego dnia.

Codziennie trawa niezjedzona przez zwierzęta magazynowana jest w szopie, tracąc przez noc swojej masy w wyniku parowania.

W pliku precyzja.txt znajdują się liczby całkowite dodatnie oznaczające, na ile trapezów należy podzielić działkę.

precyzja.txt

RMI497RkfSajW

Przycisk do pobrania pliku TXT z kodem źródłowym.

Plik TXT o rozmiarze 41.00 B w języku polskim
Przykład 2

Jeśli w pierwszym wierszu pliku precyzja.txt znajduje się liczba 8, to powinniśmy podzielić pole pod działką sąsiada na 8 trapezów:

RHTjhWMHIJNPR
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Oblicz, ile trawy, zaokrąglonej do pełnych kilogramów w dół, będzie w szopie 11 dnia rano (czyli po nocnym odparowaniu wody – ale przed posiłkiem zwierząt), w zależności od ilości trapezów z pliku precyzja.txt.

Wyniki zapisz do pliku trawa.txt, gdzie ilość trawy w każdym wierszu będzie odpowiadać liczbie trapezów przyjętej do obliczeń z danego wiersza pliku precyzja.txt

Do oceny oddajesz:

  • plik trawa.txt zawierający odpowiedź (liczba kilogramów zmagazynowanej trawy zaokrąglona do pełnych kilogramów w dół, która będzie zmagazynowana w szopie 11. dnia rano, odpowiadająca przyjętej liczbie trapezów z danej linii pliku precyzja.txt)

  • plik(i) z komputerową realizacją zadania (kodem programu)

Praca domowa

Przedstaw rozwiązanie zadania w postaci programu w języku C++, Java lub Python. Odpowiedź do zadania znajdziesz pod omówieniem pseudokodu.

Rozwiązanie

Aby porównać obie metody, rozwiązując zadanie 1.2, skorzystamy z metody trapezów, wczytując, na ile trapezów należy podzielić działkę z pliku precyzja.txt.

Metoda trapezów charakteryzuje się większą precyzją niż metoda prostokątów.

Pola kolejnych trapezów możemy obliczyć, korzystając ze wzoru:

p o l e = ( w y s o k o s c 1 + w y s o k o s c 2 ) 2 p o d s t a w a

Możemy zauważyć, że wszystkie trapezy – oprócz brzegowych – dzielą obie swoje wysokości ze swoimi sąsiadami, więc zsumujemy je dwukrotnie. Dodatkowo wszystkie trapezy mają taką samą podstawę. Analogicznie do metody prostokątów możemy przekształcić wzór, wyłączając podstawę poza nawias. Aby obliczyć całkowite pole, sumujemy wszystkie wysokości trapezów (wysokości brzegowe, ponieważ nie są liczone podwójne, dzielimy przez 2), a następnie mnożymy przez podstawę:

p o l e = w y s o k o s c 1 + w y s o k o s c 2 + . . . + w y s o k o s c n 1
p o l e = ( p o l e + ( w y s o k o s c 0 + w y s o k o s c n ) 2 ) p o d s t a w a

W analizowanym przykładzie obliczamy pole obszaru ograniczonego od dołu wykresem funkcji i od góry prostą . Możemy zatem je wyznaczyć, obliczając pole obszaru ograniczonego wykresem funkcji i prostą , a następnie odjąć tę wartość od pola powierzchni obu działek, czyli prostokąta wyznaczonego w układzie współrzędnych punktami (0,0) oraz (2,4). Nie zapominamy o przeliczeniu otrzymanego pola na mIndeks górny 2 według podanego w zadaniu przelicznika (1 jednostka długości w układzie współrzędnych odpowiada 10 m długości na działce).

Linia 1. funkcja funkcja otwórz nawias okrągły x zamknij nawias okrągły. Linia 2. zwróć moduł otwórz nawias okrągły otwórz nawias okrągły minus 1 zamknij nawias okrągły asterysk potęga otwórz nawias okrągły x przecinek 3 zamknij nawias okrągły plus 2 asterysk potęga otwórz nawias okrągły x przecinek 2 zamknij nawias okrągły plus x plus 1 zamknij nawias okrągły. Linia 4. funkcja moduł otwórz nawias okrągły x zamknij nawias okrągły. Linia 5. jeżeli x zamknij nawias ostrokątny znak równości 0 zwróć x. Linia 6. w przeciwnym wypadku zwróć minus x. Linia 8. funkcja potęga otwórz nawias okrągły x przecinek y zamknij nawias okrągły. Linia 9. wynik ← 1. Linia 10. dopóki y zamknij nawias ostrokątny 0 wykonuj dwukropek. Linia 11. wynik ← wynik asterysk x. Linia 12. y ← y minus 1. Linia 13. zwróć wynik. Linia 15. precyzja otwórz nawias kwadratowy 1 kropka kropka 10 zamknij nawias kwadratowy ← wczytaj dane z pliku cudzysłów precyzja kropka txt cudzysłów. Linia 16. poczatekX ← 0. Linia 17. poczatekY ← funkcja otwórz nawias okrągły poczatekX zamknij nawias okrągły. Linia 18. koniecX ← 2. Linia 19. koniecY ← funkcja otwórz nawias okrągły koniecX zamknij nawias okrągły. Linia 20. obie podkreślnik działki ← 4 asterysk 2. Linia 21. przelicznik ← 10. Linia 22. liczba podkreślnik dni ← 10. Linia 23. trawa podkreślnik na podkreślnik kg ← 1 przecinek 43. Linia 24. trawa podkreślnik zjadana ← 15. Linia 25. współczynnik podkreślnik parowania ← 0 przecinek 1. Linia 27. dla i znak równości 1 przecinek 2 przecinek kropka kropka kropka przecinek 10 wykonuj dwukropek. Linia 28. podstawa ← otwórz nawias okrągły koniecX minus poczatekX zamknij nawias okrągły prawy ukośnik precyzja otwórz nawias kwadratowy i zamknij nawias kwadratowy. Linia 29. pole ← 0. Linia 31. dla j znak równości 1 przecinek 2 przecinek 3 przecinek kropka kropka kropka przecinek precyzja otwórz nawias kwadratowy i zamknij nawias kwadratowy minus 1 wykonuj dwukropek. Linia 32. pole ← pole plus funkcja otwórz nawias okrągły poczatekX plus j asterysk podstawa zamknij nawias okrągły. Linia 34. pole ← otwórz nawias okrągły pole plus otwórz nawias okrągły poczatekY plus koniecY zamknij nawias okrągły prawy ukośnik 2 zamknij nawias okrągły asterysk podstawa. Linia 35. pole ← otwórz nawias okrągły obie podkreślnik działki minus pole zamknij nawias okrągły asterysk przelicznik asterysk przelicznik. Linia 37. ilosc ← 0. Linia 38. dla i znak równości 1 przecinek 2 przecinek 3 przecinek kropka kropka kropka przecinek 10 wykonuj dwukropek. Linia 39. ilosc ← ilosc plus otwórz nawias okrągły pole prawy ukośnik liczba podkreślnik dni zamknij nawias okrągły asterysk trawa podkreślnik na podkreślnik kg. Linia 40. ilosc ← ilosc minus trawa podkreślnik zjadana. Linia 41. ilosc ← ilosc asterysk otwórz nawias okrągły 1 minus współczynnik podkreślnik parowania zamknij nawias okrągły. Linia 43. jeżeli ilosc div 1 wykrzyknik znak równości ilosc dwukropek. Linia 44. ilosc ← ilosc div 1. Linia 46. dopisz ilosc do pliku cudzysłów trawa kropka txt cudzysłów.
  • Definiujemy funkcję, która dla wybranej odciętej zwraca wartość bezwzględną rzędnej dla podanej w poleceniu funkcji, korzystając z funkcji potęgi oraz funkcji modułu. [linie kodu od 1 do 13]

  • Wczytujemy dane z pliku precyzja.txt[linia kodu 15]

  • Zapisujemy początkowe wartości zmiennych. [linie kodu od 16 do 19]

  • Zapisujemy do zmiennych dane z zadania. [linie kodu od 20 do 25]

  • Obliczamy pole powierzchni obszaru nad wykresem funkcji tak, jak jest to opisane w rozwiązaniu. [linie kodu od 28 do 35]

  • Aby obliczyć liczbę kilogramów trawy dla każdego dnia, do masy posiadanych zapasów należy dodać liczbę kilogramów skoszonej w danym dniu trawy, odjąć masę trawy zjadanej przez zwierzęta oraz odjąć masy trawy (skutek parowania).

  1. Dodajemy masę skoszonej trawy przez pana Uniksowego (pole działki dzielimy przez liczbę dni, przez które pan Uniskowy kosi trawę).

  2. Odejmujemy masę trawy, jaką zjadają zwierzęta.

  3. Odejmujemy nocny ubytek trawy magazynowanej w szopie.
    [linie kodu od 37 do 41]

  • Jeżeli wynik nie jest liczbą całkowitą, to zaokrąglamy go w dół za pomocą operacji dzielenia całkowitoliczbowego przez jeden. [linie kodu od 43 do 44]

  • Zapisujemy wynik do pliku trawa.txt[linia kodu 46]

  • Powtarzamy obliczenia dla różnych liczb trapezów.

Poprawne rozwiązanie

Liczba trapezów

Liczba kilogramów zmagazynowanej trawy

10

136

20

135

50

135

100

135

200

135

500

135

1000

135

2000

135

5000

135

10000

135

Odpowiedzi

Zadanie 1.1

R1eR7LjRML24t

Przycisk do pobrania pliku TXT z kodem źródłowym.

Plik TXT o rozmiarze 29.00 B w języku polskim

Zadanie 1.2

R1Ffq1kOHry9m

Przycisk do pobrania pliku TXT z kodem źródłowym.

Plik TXT o rozmiarze 39.00 B w języku polskim

Słownik

metoda prostokątów
metoda prostokątów

metoda szacowania wartości pola powierzchni pod wykresem funkcji za pomocą sumy pól prostokątów, będących przybliżeniem obszaru ograniczonego wykresem funkcji i osią OX

metoda trapezów
metoda trapezów

metoda szacowania wartości pola powierzchni pod wykresem funkcji za pomocą sumy pól trapezów, będących przybliżeniem obszaru ograniczonego wykresem funkcji i osią OX

wykres funkcji
wykres funkcji

zbiór wszystkich punktów płaszczyzny o współrzędnych
w prostokątnym układzie współrzędnych, gdzie  należy do dziedziny tej funkcji, natomiast jest wartością funkcji  dla argumentu