Obliczenie pola trójkąta - dane 2 kąty: Alfa, Beta i długośd boku c

Komentarze

Transkrypt

Obliczenie pola trójkąta - dane 2 kąty: Alfa, Beta i długośd boku c
Obliczenie pola trójkąta - dane 2 kąty: Alfa, Beta i długośd boku c
Specyfikacja problemu algorytmicznego
Dane wejściowe: 2 kąty w trójkącie i długośd boku
Dane wyjściowe: pole trójkąta, obliczenia kontrolne: boki, wysokości
Wzory:
Dane: kąty alfa[grad], beta[grad] i bok c
Obliczenia:
Ro[grad] = ROG = 200.00/M_PI;
Katy w radianach: ar=alfa/ROG; br=beta/ROG; gr=gamma/ROG;
Boki: a=c*sin(ar)/sin(gr); b=c*sin(br)/sin(gr);
Wysokości: hc1=a*sin(br); hc2=b*sin(ar);
Pola: p1=c*hc1/2.0; p2=c*hc2/2.0; p4=0.5*a*c*sin(br); p5=0.5*b*c*sin(ar); p6=0.5*a*b*sin(gr);
Pole z długości boków: p=0.500*(da+db+dc); ph=sqrt(p*(p-da)*(p-db)*(p-dc));
Algorytm w postaci listy kroków
1) Wprowadź kąty Alfa[grad] i Beta[grad]
2) Zamieo kąty na radiany: Kąt*rad]=Kąt/Ro[grad]
3) Oblicz długości boków: a=c*sin(ar)/sin(gr); b=c*sin(br)/sin(gr);
4) Oblicz wysokości: : hc1=a*sin(br); hc2=b*sin(ar);
5) Oblicz pola z boków i wysokości: p1=c*hc1/2.0; p2=c*hc2/2.0;
6) Oblicz pola z kątów I boków: p4=0.5*a*c*sin(br); p5=0.5*b*c*sin(ar); p6=0.5*a*b*sin(gr);
7) Oblicz pole ze wzoru Herona:
p=0.500*(da+db+dc); ph=sqrt(p*(p-da)*(p-db)*(p-dc));
8) Wyświetl wyniki
9) Zapisz wyniki do pliku
10) Pytanie czy dalsze obliczenia – jeśli tak to skok do 1)
Opis schematu blokowego
1) Okno startowe witaj() – opcje: obliczenia, pomoc, koniec
2) Procedura dane(); - wprowadzenie danych
3) Procedura boki(); - obliczenie boków
4) Procedura area(); - obliczenia pól
5) Funkcja area2(), zwracająca pole na podstawie boków: p3=area2(a,b,c);
6) Procedura wyniki(); - wyświetlenie wyników
7) Procedura WydrPlik(); - wydruk do pliku
8) Pytanie czy dalsze obliczenia – jeśli T to powrót do 1)
Schemat blokowy
Procedura dane()
Funkcja boki()
Procedura area() – obliczenie pól
Funkcja area2()
Procedura wyniki()
Procedura WydrPlik() – wydruk wyników do pliku
Przykład wyników obliczeo
Program PT2Kbok.cpp
Program oblicza pole trójkąta na podstawie danych 2 kątów i boku
Szkic i oznaczenia
C
o
/\
/|\
a /hc| \ b
Beta | Alfa
B o---------o A
c
Dane: Katy Alfa =<(BAC) w punkcie A, Beta=<(CBA) w punkcie B
oraz długośd boku |AB| = c
Niewiadome: Kąt Gamma =<(ACB)w punkcie C, boki a, b, pole trójkąta ABC
Dane: Alfa = 100.0000[grad] Beta=50.0000[grad] c = 100.0000
Wyniki obliczeo
Kat Gamma = 50.0000[grad]
Boki: a=141.421 b=100.000, wysokośd hc1=100.000, hc2=100.000
Pola obliczone:
Pole obliczone z wysokości hc:
P1=c*hc1/2.0= 5000.000, P2= c*hc2/2.0=5000.000
Pole z obliczone z długości boków wzorem Herona:
P3= sqrt(p*(p-a)*(p-b)*(p-c))= 5000.000
Pole na podstawie 2 boków i kąta miedzy nimi:
P4=0.5*a*c*sin(Beta) = 5000.000
P5=0.5*b*c*sin(Alfa) = 5000.000
P6=0.5*a*b*sin(Gamma)= 5000.000
Obliczył: ....