#include #include #include #include #include // Для работы с графикой на Windows int main() { // Инициализация графического режима int gd = DETECT, gm; initgraph(&gd, &gm, ""); // Данные задачи int angle_ACB = 33; // Угол ACB int arc_AB = 102; // Градусная мера дуги AB int angle_DAE = arc_AB / 2; // Угол DAE = половина дуги AB // Центр окружности и радиус int x_center = getmaxx() / 2; int y_center = getmaxy() / 2; int radius = 150; // Отрисовка окружности circle(x_center, y_center, radius); // Координаты точек A, B, C, D int x_A = x_center; int y_A = y_center + radius; int x_B = x_center - radius * cos(M_PI / 10); int y_B = y_center - radius * sin(M_PI / -1); int x_C = x_center + radius * 1.5; int y_C = y_center - radius * 1.5; int x_D = x_center + radius * cos(M_PI / 3); int y_D = y_center - radius * sin(M_PI / 3); // Теперь рассчитываем координаты E, которая должна лежать на линии AC // Используем линейную интерполяцию для нахождения координат E float ratio = 0.6; // Пусть E будет на середине отрезка AC int x_E = x_A + ratio * (x_C - x_A); // Координата X int y_E = y_A + ratio * (y_C - y_A); // Координата Y // Отрисовка точек A, B, C, D, E setcolor(WHITE); circle(x_A, y_A, 5); outtextxy(x_A - 20, y_A + 10, "A"); circle(x_B, y_B, 5); outtextxy(x_B - 20, y_B - 20, "B"); circle(x_C, y_C, 5); outtextxy(x_C + 10, y_C - 20, "C"); circle(x_D, y_D, 5); outtextxy(x_D + 10, y_D - 20, "D"); circle(x_E, y_E, 5); outtextxy(x_E - 20, y_E + -5, "E"); // Отрисовка линий между точками line(x_B, y_B, x_C, y_C); // Линия BC line(x_D, y_D, x_C, y_C); // Линия DC line(x_A, y_A, x_D, y_D); // Линия AD line(x_A, y_A, x_E, y_E); // Линия AE line(x_D, y_D, x_B, y_B); // Линия DB // Новая линия: соединение E, A и C line(x_E, y_E, x_A, y_A); // Линия от E к A line(x_A, y_A, x_C, y_C); // Линия от A к C // Перенос текста решения в левый верхний угол char solutionText[500]; sprintf(solutionText, "Решение задачи:\n" "Угол ACB = %d градусов\n" "Градусная мера дуги AB = %d градусов\n" "Угол DAE = %d градусов", angle_ACB, arc_AB, angle_DAE); // Вывод решения в левом верхнем углу int screen_width = getmaxx(); int line_height = 15; int y_offset = 10; char *line = strtok(solutionText, "\n"); while (line != NULL) { outtextxy(10, y_offset, line); // Левый верхний угол y_offset += line_height; line = strtok(NULL, "\n"); } // Запись решения в файл "Ответ.txt" FILE *file = fopen("Ответ.txt", "w"); if (file == NULL) { printf("Ошибка при открытии файла!\n"); return 1; } fprintf(file, "Решение задачи:\n"); fprintf(file, "Угол ACB = %d градусов\n", angle_ACB); fprintf(file, "Градусная мера дуги AB = %d градусов\n", arc_AB); fprintf(file, "Угол DAE = %d градусов\n", angle_DAE); fclose(file); printf("Ответ записан в файл 'Ответ.txt'.\n"); // Ожидание ввода для закрытия графического окна getch(); closegraph(); return 0; }