Archived
Работы по программированию
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
#include <graphics.h>
|
||||
#include <conio.h>
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
|
||||
// Функция для вычисления левой части уравнения: 4√3 * cos^3(x)
|
||||
double left_side(double x) {
|
||||
return 4 * sqrt(3) * pow(cos(x), 3);
|
||||
}
|
||||
|
||||
// Функция для вычисления правой части уравнения: cos(2x + π/2)
|
||||
double right_side(double x) {
|
||||
return cos(2 * x + M_PI / 2);
|
||||
}
|
||||
|
||||
int main() {
|
||||
// Инициализация графического режима
|
||||
int gd = DETECT, gm;
|
||||
initgraph(&gd, &gm, "");
|
||||
|
||||
// Заданный отрезок [-4π; -5π/2]
|
||||
double x_start = -4 * M_PI;
|
||||
double x_end = -5 * M_PI / 2;
|
||||
|
||||
// Массив для хранения корней
|
||||
double roots[10];
|
||||
int root_count = 0;
|
||||
|
||||
// Поиск корней уравнения на заданном отрезке с шагом 0.01
|
||||
for (double x = x_start; x <= x_end; x += 0.01) {
|
||||
double left = left_side(x);
|
||||
double right = right_side(x);
|
||||
|
||||
// Проверяем условие совпадения левой и правой частей уравнения с некоторой погрешностью
|
||||
if (fabs(left - right) < 0.01) {
|
||||
roots[root_count] = x;
|
||||
root_count++;
|
||||
}
|
||||
}
|
||||
|
||||
// Координаты для рисования графиков
|
||||
int x_center = getmaxx() / 2;
|
||||
int y_center = getmaxy() / 2;
|
||||
|
||||
// Рисуем оси
|
||||
line(0, y_center, getmaxx(), y_center); // Ось X
|
||||
line(x_center, 0, x_center, getmaxy()); // Ось Y
|
||||
|
||||
// Подписи для осей
|
||||
outtextxy(x_center + 5, 5, "Y");
|
||||
outtextxy(getmaxx() - 10, y_center + 5, "X");
|
||||
|
||||
// Рисуем графики левой и правой частей уравнения
|
||||
for (double x = x_start; x <= x_end; x += 0.01) {
|
||||
double left = left_side(x);
|
||||
double right = right_side(x);
|
||||
|
||||
// Левую часть уравнения рисуем белым
|
||||
putpixel(x_center + (int)(x * 100), y_center - (int)(left * 100), WHITE);
|
||||
|
||||
// Правую часть уравнения рисуем желтым
|
||||
putpixel(x_center + (int)(x * 100), y_center - (int)(right * 100), YELLOW);
|
||||
}
|
||||
|
||||
// Вывод текста с найденными корнями
|
||||
setcolor(WHITE);
|
||||
char root_text[100];
|
||||
sprintf(root_text, "Найдено %d корней", root_count);
|
||||
outtextxy(10, 10, root_text);
|
||||
|
||||
// Запись корней в файл
|
||||
FILE *file = fopen("answer.txt", "w");
|
||||
if (file == NULL) {
|
||||
printf("Ошибка при открытии файла!\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Запись найденных корней в файл
|
||||
fprintf(file, "Ответ задачи:\n");
|
||||
fprintf(file, "Найдено %d корней:\n", root_count);
|
||||
for (int i = 0; i < root_count; i++) {
|
||||
fprintf(file, "x = %.5f\n", roots[i]);
|
||||
}
|
||||
|
||||
// Закрытие файла
|
||||
fclose(file);
|
||||
|
||||
printf("Ответ записан в файл 'answer.txt'.\n");
|
||||
|
||||
// Ожидание завершения
|
||||
getch();
|
||||
closegraph();
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user