![]() |
Autor artykułu: mgr Jerzy Wałaszek |
©2017 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:
a = 1
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
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ć. Funkcja musi być zdefiniowana przed jej pierwszym użyciem w programie. Definicja funkcji w języku C++ wygląda następująco:
typ_wyniku nazwa(argumenty)
Funkcję wywołujemy w programie poprzez jej nazwę, za którą w nawiasach umieszczamy listę argumentów:
nazwa(argumenty);
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
S = 0.5000
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:
|
|||||||||||||||||||
Zadania do ćwiczeń w programowaniuZadanie nr 1Napisz program w języku C++, 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 "W LINII: TAK". Jeśli nie, program powinien wypisywać tekst "W LINII: NIE". Dane: A(1,4) B(2,5) C(4,7)
Zadanie nr 2Napisz program w języku C++, 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 "TRÓJKĄT RÓŻNOBOCZNY: TAK". Jeśli nie, program powinien wypisywać tekst "TRÓJKĄT RÓŻNOBOCZNY: NIE". Dane: A(0,0) B(3,1) C(2,2)
Zadanie nr 3Napisz program w języku C++, 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: TAK". Jeśli nie, program powinien wypisywać tekst "KWADRAT: NIE". Dane: A(0,1) B(1,0) C(2,1)
Zadanie nr 4Napisz program w języku C++, który odczyta współrzędne dwóch punktów A i B, a następnie obliczy i wyświetli z dokładnością do 3 cyfr po przecinku ich odległość od prostej o równaniu y=x + 5. Dane: A(1,4) B(2,3)
Zadanie nr 5Napisz program w języku C++, 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, obliczy i wyświetli z dokładnością do 5 cyfr po przecinku wysokość tego trójkąta przy podstawie a.. Dane: A(1,4) B(2,1) C(3,5)
Zadanie nr 6Napisz program w języku C++, który odczyta współrzędne dwóch punktów A i B, a następnie sprawdzi, czy leżą one w równej odległości od prostej o równaniu y = x + 2. Jeśli tak, to program powinien wypisać słowo TAK, inaczej powinien wypisać słowo NIE. Dane dla TAK: A(2,0), B(2,8) Dane dla NIE: A(2,0), B(6,3)
Zadanie nr 7Napisz program w języku C++, który odczyta współrzędne trzech punktów A, B i C, a następnie sprawdzi, czy mogą one być wierzchołkami prostokąta, o bokach a i 2a (dłuższy bok jest dwukrotnie dłuższy od boku krótszego). Jeśli tak, to program powinien wypisać słowo TAK, inaczej powinien wypisać słowo NIE. Dane dla TAK: A(-2,-1), B(4,1), C(0,-3) Dane dla NIE: A(-1,-1), B(4,1), C(1,-3)
Zadanie nr 8Napisz program w języku C++, który odczyta długości 3 boków trójkąta a,b,c, a następnie wyliczy i wyświetli z dokładnością do 2 cyfr po przecinku pole trójkąta równobocznego o boku równym wysokości trójkąta abc, gdy podstawą będzie bok a. Dane: a = 4, b = 6, c = 5
|
![]() | 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