Archived
Работы по программированию
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
#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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user