Archived
52 lines
1.4 KiB
C++
52 lines
1.4 KiB
C++
#include <iostream>
|
|
#include <cmath>
|
|
#include <graphics.h>
|
|
|
|
using namespace std;
|
|
|
|
int main() {
|
|
// Установка графического режима
|
|
int gd = DETECT, gm;
|
|
initgraph(&gd, &gm, "");
|
|
|
|
// Параметры задачи
|
|
const double a = 11; // Меньшая сторона треугольника
|
|
const double k1 = 6, k2 = 7, k3 = 23; // Отношения дуг
|
|
|
|
// Вычисление углов треугольника
|
|
double alpha = (k1 / (k1 + k2 + k3)) * 360;
|
|
double beta = (k2 / (k1 + k2 + k3)) * 360;
|
|
double gamma = (k3 / (k1 + k2 + k3)) * 360;
|
|
|
|
// Вычисление радиуса описанной окружности
|
|
double R = a / (2 * sin(gamma * M_PI / 180));
|
|
|
|
// Вывод условия задачи в графическом виде
|
|
setcolor(WHITE);
|
|
outtextxy(10, 10, "Вершины треугольника делят описанную около него окружность");
|
|
outtextxy(10, 30, "на три дуги, длины которых относятся, как 6:7:23.");
|
|
outtextxy(10, 50, "Найти радиус окружности, если меньшая из сторон треугольника равна 11.");
|
|
|
|
// Рисование треугольника
|
|
int x0 = 200, y0 = 200;
|
|
int x1 = x0 + a / 2, y1 = y0 + a * sqrt(3) / 2;
|
|
int x2 = x0 - a / 2, y2 = y0 + a * sqrt(3) / 2;
|
|
line(x0, y0, x1, y1);
|
|
line(x1, y1, x2, y2);
|
|
line(x2, y2, x0, y0);
|
|
|
|
// Рисование описанной окружности
|
|
circle(x0, y0+6, R*1.2);
|
|
|
|
// Вывод ответа
|
|
char text[50];
|
|
sprintf(text, "Радиус окружности: %.2f", R);
|
|
outtextxy(10, 70, text);
|
|
|
|
getch();
|
|
closegraph();
|
|
|
|
return 0;
|
|
}
|
|
|