Przeczytaj
Zadanie 1. Podróż pociągiem
Pani Bitowa jedzie pociągiem z Chełma do Zamościa.
Jeśli założymy, że trasa z jednego miasta do drugiego leży na linii prostej będącej osią OX
, to bieg torów na mapie można opisać funkcją .
Przyjmij, że funkcja jest ciągła w przedziale .
Zadanie 1.1
Pani Bitowa chce się dowiedzieć, jaka jest odległość między Chełmem a Zamościem na mapie w linii prostej. Wiadomo, że dla podanych założeń Chełm jest w punkcie , natomiast Zamość znajduje w przedziale .
Załóż, że funkcja na końcach przedziału przyjmuje różne znaki oraz że w podanym przedziale jest określona i ciągła.
Napisz program, który obliczy odległość od Chełma do Zamościa na mapie w linii prostej według podanych powyżej założeń, z przybliżeniem równym:
Długość odcinka ograniczonego punktami A
oraz B
można obliczyć ze wzoru: .
Do oceny oddajesz:
plik
odleglosc.txt
zawierający odpowiedź (odległość między Chełmem a Zamościem w linii prostej; wynik podany z przybliżeniem równym: ),plik(i) z komputerową realizacją zadania.
Przedstaw rozwiązanie zadania w postaci programu w języku C++, Java lub Python.
Rozwiązanie
Rozwiązanie przedstawimy w postaci pseudokodu, ponieważ na egzaminie maturalnym można korzystać z samodzielnie wybranego języka programowania: C++, Java lub Python.
Zauważmy, że skoro zarówno Chełm, jak i Zamość leżą na osi OX
, to są miejscami zerowymi funkcji opisującej tory. W związku z tym wzór na odległość między obydwoma miastami upraszcza się do następującej postaci:
Wystarczy zatem znaleźć położenie drugiego miejsca zerowego, czyli Zamościa, i obliczyć wartość bezwzględną (inaczej moduł) z różnicy obu miejsc zerowych.
W celu znalezienia położenia Zamościa skorzystamy z metody bisekcji. Przystąpmy do zapisania programu:
W głównej części kodu zapisujemy dane potrzebne do obliczenia drugiego miejsca zerowego funkcji oraz długości odcinka ograniczonego przez miejsca zerowe podanej funkcji. [linie kodu od 1 do 4]
Następnie wypisujemy wynik, czyli długość odcinka między dwoma punktami. Oba punkty są miejscami zerowymi, zatem wypisujemy wartość bezwzględną ich różnicy jako odległość na osi
OX
. [linia kodu 5]
Definiujemy funkcję, która dla podanych ograniczeń przedziału, dokładności oraz szukanej wartości funkcji zwróci wartość argumentu (w tym przypadku miejsca zerowego). [linia kodu 1]
Wykonujemy algorytm bisekcji:
Algorytm wykonujemy, dopóki odległość między wartościami funkcji dla punktów skrajnych przedziału jest większa niż dokładność. [linia kodu 2]
Ustalamy środek przedziału. Jeżeli jego wartość różni się od 0 o mniej niż epsilon, to znaczy, że znaleźliśmy miejsce zerowe z zadaną dokładnością i możemy przerwać pętlę. W przeciwnym wypadku, w zależności od iloczynu wartości funkcji w środku i na brzegach, aktualizujemy jeden z brzegów przedziału, zawężając go. [linie kodu od 3 do 9]
Na koniec zwracamy przybliżoną wartość znalezionego miejsca zerowego. [linia kodu 10]
Definiujemy funkcję, która dla wartości
x
zwraca wartość funkcji podanej w zadaniu.
Definiujemy funkcję, która zwróci wartość bezwzględną podanej zmiennej. [linia kodu 1]
Jeżeli wartość zmiennej jest większa lub równa 0, zwracamy pierwotną wartość zmiennej. [linie kodu 2, 3]
Jeżeli jednak wartość zmiennej jest mniejsza od 0, zwracamy wartość przeciwną do wartości zmiennej. [linie kodu od 4 do 5]
Odpowiedź do zadania
Uwaga: Ze względu na niedokładność odpowiedź może się różnić o 0.01.
Zadanie 1.2
W celu odwiedzenia rezerwatu przyrody położonego między Chełmem a Zamościem, pani Bitowa postanowiła zmienić trasę przejazdu. Rezerwat znajduje się w przedziale oraz przyjmuje wartość funkcji równą 1. Załóżmy, że w danym przedziale nie istnieje inny punkt o wartości równej 1.
Napisz program obliczający obwód trójkąta. Wierzchołki tego trójkąta znajdują się na wykresie w punktach zawierających: Chełm, Zamość oraz rezerwat przyrody według podanych w zadaniu założeń, z przybliżeniem równym .
Odpowiedź podaj w zaokrągleniu do dwóch miejsc po przecinku.
Załóż, że funkcja na końcach przedziału przyjmuje różne znaki oraz że w podanym przedziale jest określona i ciągła.
Do przygotowania rozwiązania w pseudokodzie użyj następujących funkcji:
moduł(x)
– która dla wartości x
zwraca jej wartość bezwzględną
oraz:
zaokrąglij(x)
– która zaokrągla wartość x do dwóch miejsc po przecinku.
Do oceny oddajesz:
plik
obwod.txt
zawierający odpowiedź (obwód trójkąta, którego wierzchołki na wykresie odpowiadają punktom oznaczającym: Chełm, Zamość oraz rezerwat przyrody; wynik podany z przybliżeniem równym ),plik(i) z komputerową realizacją zadania.
Przedstaw rozwiązanie zadania w postaci programu w języku C++, Java lub Python. Odpowiedź do zadania znajdziesz pod omówieniem pseudokodu.
Rozwiązanie
Rozwiązanie przedstawimy w postaci pseudokodu, ponieważ na egzaminie maturalnym można korzystać z samodzielnie wybranego języka programowania: C++, Java lub Python.
W głównej części kodu korzystamy z położenia Chełma (
x1
), przybliżenia () oraz punktówpoczątekZ,
koniecZ, poczatekR
orazkoniecR
, oznaczających zakresy przedziałówprzedziałów, w których znajdują się Zamość oraz rezerwat. [linie kodu od 1 do 6]Następnie za pomocą metody bisekcji obliczamy położenie Zamościa oraz rezerwatu na osi
OX
. [linie kodu 7 do 8]Mając wszystkie trzy punkty i znając ich wartości funkcji (0 dla Chełma i Zamościa oraz 1 dla rezerwatu), wyliczamy obwód trójkąta za pomocą funkcji
obwód()
.
Funkcja analogiczna do funkcji
bisekcja()
opisanej w zadaniu 1.1.
Definiujemy funkcję, która dla podanych punktów zwróci obwód trójkąta, którego wierzchołki znajdują się w tych punktach. [linia kodu 1]
Obliczenie długości odcinka
xy
będzie przebiegało tak, jak w zadaniu 1.1 – czyli dzięki temu, że oba punkty są pierwiastkami funkcji, możemy pominąć wartościy
we wzorze na odległość. [linia kodu 2]Przy obliczaniu długości
xz
orazyz
należy skorzystać z pełnego wzoru na odległości punktów. [linie kodu 3, 4]Na koniec zwracamy zaokrąglony odpowiednio obwód trójkąta. [linia kodu 5]
Funkcja analogiczna do funkcji
f()
opisanej w zadaniu 1.1.
Funkcja analogiczna do funkcji
moduł()
opisanej w zadaniu 1.1.
Odpowiedź do zadania
Uwaga: Ze względu na niedokładność odpowiedź może się różnić o 0.03.
Słownik
funkcja, której wykres da się narysować bez odrywania długopisu od papieru
zbiór elementów zbioru zawartych między dwoma ustalonymi elementami tego zbioru, nazywanymi początkiem i końcem przedziału; pewien obszar na wykresie funkcji, znajdujący się między dwoma punktami; obszar ten oznacza spójny podzbiór liczb rzeczywistych