(Джерело: http://www.olymp.vinnica.ua/index_ua.php?lng=ua&cid=111)
Приклад вхідних і вихідних даних.
Введення: 23.000 34.000 43.000
Виведення: 33.813 22.873 18.086 21.619 7.777
Задача. Дано сторони трикутника а, b, с. Знайти висоти трикутника, радіуси вписаного та описаного кіл.
Вхідні дані. Ви вводите з клавіатури три дійсних числа а, b, с.
Вихідні дані. Ви виводите на екран п’ять дійсних чисел з трьома знаками після коми (без округлення).
Приклад вхідних і вихідних даних.
Введення: 23.000 34.000 43.000
Виведення: 33.813 22.873 18.086 21.619 7.777
Розв'язання.
Запишемо алгоритми мовами програмування.
Free Pascal:
Var a, b, c, p,
Ha, Hb, Hc,
S, r0, R : Real;
Begin
Read (a, b, c);
p := (a+b+c)/2;
S := Sqrt (p*(p-a)*(p-b)*(p-c));
Ha := 2*S/a;
Hb := 2*S/b;
Hc := 2*S/c;
r0 := S/p;
R := 0.25*a*b*c/S;
Write (Ha:0:3, ' ', Hb:0:3, ' ', Hc:0:3, ' ', R:0:3, ' ', r0:0:3);
End.
C++:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main(){
double a, b, c;
cin >>a >>b >>c;
double p=(a+b+c)/2;
double s=sqrt(p*(p-a)*(p-b)*(p-c));
double ha=2*s/a, hb=2*s/b, hc=2*s/c;
double R=0.25*a*b*c/s, r=s/p;
cout.setf(ios::fixed);
cout <<setprecision(3) <<ha <<' ' <<hb <<' ' <<hc <<' ' <<R <<' ' <<r;
}
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main(){
double a, b, c;
cin >>a >>b >>c;
double p=(a+b+c)/2;
double s=sqrt(p*(p-a)*(p-b)*(p-c));
double ha=2*s/a, hb=2*s/b, hc=2*s/c;
double R=0.25*a*b*c/s, r=s/p;
cout.setf(ios::fixed);
cout <<setprecision(3) <<ha <<' ' <<hb <<' ' <<hc <<' ' <<R <<' ' <<r;
}
Немає коментарів:
Дописати коментар