Prezentowane materiały są przeznaczone dla uczniów szkół ponadgimnazjalnych. Autor artykułu: mgr Jerzy Wałaszek, wersja1.0 |
©2013 mgr
Jerzy Wałaszek
|
Heron z Aleksandrii był greckim matematykiem, fizykiem, mechanikiem, wynalazcą oraz konstruktorem. Jednym z jego licznych osiągnięć jest tzw. wzór Herona, który pozwala obliczyć pole dowolnego trójkąta, jeśli znamy długości jego boków.
Mamy dany dowolny trójkąt o bokach równych a, b i c:
Obliczamy parametr p równy połowie obwodu tego trójkąta:
Aby obliczyć pole tego trójkąta, stosujemy wzór Herona:
Poniższy program oblicza pole trójkąta o znanych długościach boków:
Przykładowe dane dla programu:
a = 1
b = 1
c = 1.4142 (wpisując c, zwróć uwagę na wpisanie
kropki po 1, a nie przecinka!)
S = 0.5000
Program będzie napisany na lekcji |
Często trójkąt będzie zadany współrzędnymi wierzchołków A, B i C.
Danymi wejściowymi będą współrzędne wierzchołków:
dla wierzchołka A: xA, yA
dla wierzchołka B: xB, yB
dla wierzchołka C: xC, yC
Aby rozwiązać to zadanie, policzymy odległość pomiędzy dwoma punktami na płaszczyźnie kartezjańskiej:
Poprowadźmy prostą równoległą do osi OX, aby przechodziła przez punkt A, oraz prostą równoległą do osi OY, aby przechodziła przez punkt B:
Proste te wyznaczą nam trójkąt prostokątny:
W trójkącie prostokątnym obowiązuje twierdzenie Pitagorasa:
Zatem poszukiwany bok c możemy wyliczyć ze wzoru:
Aby rozwiązać ten nowy problem, wyznaczymy długości odcinków a i b. W tym celu rzutujemy prostopadle punkty A i B na osie OX i OY:
Na osiach otrzymamy współrzędne tych punktów: A (xA,yA) i B (xB,yB). Poszukiwane długości są długościami przedziałów a: (xA,xB) i b (yA,yB). Długość przedziału obliczamy, odejmując od jego końca początek. Zatem:
Odległości te wstawiamy do wzoru na długość odcinka c, otrzymując ostatecznie:
W przypadku naszego trójkąta należy obliczyć odległości pomiędzy wierzchołkami:
Obliczenia te będą wymagały trzykrotnego zastosowania wzoru na odległość pomiędzy dwoma punktami. Powtarzające się obliczenia lepiej umieścić w funkcji. Znamy już jedną funkcję - main(). Programista może tworzyć w programie swoje własne funkcje. Funkcja jest fragmentem programu, który można wielokrotnie wykorzystywać. Definicja funkcji w języku C++ wygląda następująco:
typ_wyniku nazwa(argumenty)
{
treść_funkcji
return wartość_zwracana;
}
typ_wyniku | – | określa rodzaj informacji, którą funkcja zwraca. Może to być jeden ze znanych nam typów int, unsigned lub double. |
nazwa | – | dowolna nazwa wymyślana przez programistę. Zasady tworzenia nazw funkcji są identyczne jak dla zmiennych. Nazwa umożliwia odwołanie się do funkcji w programie. |
argumenty | – | informacja przekazywana do funkcji.
Argumenty mają postać listy: typ nazwa, typ nazwa, ... |
treść_funkcji | – | tutaj umieszczamy instrukcje C++, które są niezbędne do wykonania zadania realizowanego przez funkcję. |
return wartość_zwracana | – | tutaj określamy, co funkcja zwraca jako swój wynik. Wartość zwracana jest dowolnym wyrażeniem. Komputer oblicza jego wartość i zwraca jako wynik działania funkcji. |
Poniższy program odczytuje współrzędne trzech wierzchołków, oblicza odległości pomiędzy nimi i na tej podstawie wylicza pole trójkąta zdefiniowanego przez te wierzchołki.
Dane wejściowe dla programu:
xa = 1
ya = 1
xb = 2
yb = 1
xc = 1
yc = 2
S = 0.5000
Program będzie napisany na lekcji |
Na koniec dodamy do programu test na trójkąt prostokątny. Jeśli trójkąt jest trójkątem prostokątnym, to powinien spełniać jeden z warunków:
Dlaczego jeden z trzech, a nie pierwszy? Otóż nie wiemy, które z boków a, b i c są przyprostokątnymi i przeciwprostokątną. Dlatego musimy przetestować wszystkie trzy możliwości. Wystarczy, że jedna z nich będzie spełniona, aby trójkąt był prostokątny. Pamiętamy jednakże, iż liczb zmiennoprzecinkowych NIE WOLNO przyrównywać do siebie. Dlatego będziemy badać ich różnice:
Program będzie napisany na lekcji |
Zadanie nr 1
Przykładowe dane:
A(1,4) B(2,5) C(4,7)
Napisz program, który odczyta współrzędne trzech punktów A, B i C, a następnie sprawdzi, czy są one współliniowe. Jeśli tak, to program powinien wypisywać tekst "PUNKTY W LINII". Jeśli nie, program powinien wypisywać tekst "PUNKTY NIE W JEDNEJ LINII".
Zadanie nr 2
Przykładowe dane:
A(0,0) B(3,1) C(2,2)
Napisz program, który odczyta współrzędne trzech punktów A, B i C, a następnie sprawdzi, czy tworzą one trójkąt różnoboczny. Jeśli tak, to program powinien wypisywać tekst "TROJKAT ROZNOBOCZNY: TAK". Jeśli nie, program powinien wypisywać tekst "TROJKAT ROZNOBOCZNY: NIE".
Zadanie nr 3
Przykładowe dane:
A(0,1) B(1,0) C(2,1)
Napisz program, który odczyta współrzędne trzech punktów A, B i C, a następnie sprawdzi, czy są one trzema wierzchołkami kwadratu. Jeśli tak, to program powinien wypisywać tekst "KWADRAT". Jeśli nie, program powinien wypisywać tekst "PUNKTY NIE TWORZA KWADRATU".
Zadanie nr 4
Przykładowe dane:
A(1,4) B(2,3)
Napisz program, który odczyta współrzędne dwóch punktów A i B, a następnie obliczy ich odległość od prostej o równaniu y=x + 5 i wyświetli te wyniki.
Zadanie nr 5
Przykładowe dane:
A(1,4) B(2,1) C(3,5)
Napisz program, który odczyta współrzędne trzech punktów A, B i C, potraktuje je jako współrzędne wierzchołków trójkąta i obliczy wszystkie trzy wysokości tego trójkąta, wyświetlając je.
I Liceum Ogólnokształcące |
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe