Prezentowane materiały są przeznaczone dla uczniów szkół ponadgimnazjalnych. Autor artykułu: mgr Jerzy Wałaszek, wersja 1.0 |
©2008 mgr
Jerzy Wałaszek |
Mamy dany dowolny trójkąt płaski:
Oznaczmy: a, b, c - boki trójkąta A, B, C - wierzchołki (xA,yA) - współrzędne wierzchołka A (xB,yB) - współrzędne wierzchołka B (xC,yC) - współrzędne wierzchołka C |
Pole S trójkąta wyliczamy wg wzoru Herona:
gdzie:
p - połowa obwodu trójkąta
S - pole trójkąta
Trójkąt będzie zdefiniowany przez współrzędne kolejnych wierzchołków. Wzór na długość odcinka o podanych współrzędnych końców wyprowadzamy w prosty sposób z twierdzenia Pitagorasa:
// Obliczanie pola trójkąta wzorem Herona // Data: 5-02-2009 // I LO w Tarnowie //--------------------------------------- #include <cmath> #include <iostream> #include <iomanip> using namespace std; // Funkcja odczytuje współrzędne danego wierzchołka // i umieszcza je w zmiennych przekazanych jej przez // referencję na liście parametrów //-------------------------------------------------- void czytaj_xy(char w,double &x, double &y) { cout << "Podaj wspolrzedne dla wierzcholka " << w << endl; cout << "x" << w << " = "; cin >> x; cout << "y" << w << " = "; cin >> y; cout << endl; } // Funkcja oblicza długość odcinka o podanych // współrzędnych jego końców. //------------------------------------------- double dlugosc(double x1,double y1,double x2,double y2) { double dx = x2 - x1; double dy = y2 - y1; return sqrt(dx * dx + dy * dy); } // Program główny //--------------- main() { double xa,ya,xb,yb,xc,yc,a,b,c,p,s; cout << "Pole trojkata - metoda Herona\n" "-----------------------------\n\n"; // odczytujemy współrzędne kolejnych wierzchołków trójkąta czytaj_xy('A',xa,ya); czytaj_xy('B',xb,yb); czytaj_xy('C',xc,yc); // obliczamy długość boków trójkąta a = dlugosc(xa,ya,xb,yb); b = dlugosc(xb,yb,xc,yc); c = dlugosc(xc,yc,xa,ya); // obliczamy połowę obwodu trójkąta p = (a + b + c) / 2; // wzorem Herona obliczamy pole trójkąta s = sqrt(p * (p - a) * (p - b) * (p - c)); // wyświetlamy wyniki obliczeń cout << setprecision(4) << fixed << "a = " << setw(10) << a << endl << "b = " << setw(10) << b << endl << "c = " << setw(10) << c << endl << endl << "obwod = " << setw(10) << p + p << endl << "pole = " << setw(10) << s << endl << endl; system("PAUSE"); } |
Pole trojkata - metoda Herona ----------------------------- Podaj wspolrzedne dla wierzcholka A xA = 1 yA = 1 Podaj wspolrzedne dla wierzcholka B xB = 2 yB = 1 Podaj wspolrzedne dla wierzcholka C xC = 2 yC = 2 a = 1.0000 b = 1.0000 c = 1.4142 obwod = 3.4142 pole = 0.5000 Aby kontynuować, naciśnij dowolny klawisz . . . |
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