From 54e7270fb8cc05d6aa84b1a68b872f67a40350f1 Mon Sep 17 00:00:00 2001 From: ada-dmitry Date: Tue, 21 Nov 2023 22:11:29 +0300 Subject: [PATCH] mod1 --- PROJECT/func.c | 37 ++++++++++++++++++++++++------------- PROJECT/main.c | 18 +++++++++--------- PROJECT/out_p/prog1 | Bin 0 -> 16272 bytes 3 files changed, 33 insertions(+), 22 deletions(-) create mode 100755 PROJECT/out_p/prog1 diff --git a/PROJECT/func.c b/PROJECT/func.c index 2a735b5..bd525f6 100644 --- a/PROJECT/func.c +++ b/PROJECT/func.c @@ -1,25 +1,36 @@ #include #include #include +#include + +static wait = 1; double f(double x) { return x + x - 16; } -void find_zero(double *pa, double *pb, double eps) +void find_zero(double *pa, double *pb, double eps, double *px) { - double x; - do - { - x = (*pa + *pb) / 2; // метод деления отрезка пополам - if (f(*pa) * f(x) < 0) - *pb = x; - else - *pa = x; - } while (fabs(*pb - *pa) > eps); + *px = (*pa + *pb) / 2; // метод деления отрезка пополам + if (f(*pa) * f(*px) < 0) + *pb = *px; + else + *pa = *px; + printf("Текущее приближение: %lf\n", *px); } -void ctrlc_handler(int signum); -void choose_path(char *choice); -void new_row(double *pa, double *pb); \ No newline at end of file +void ctrlc_handler(int signum) +{ + + printf("\nПолучен сигнал Ctrl+C\n"); + printf("Продолжить поиск корня? (C - продолжить, A - закончить работу программы, R - начать поиск на другом отрезке): "); + while (getchar() != '\n') + { + printf("listener: stop"); + wait = 0; + _getch(); + } +} +// void choose_path(char *choice); +// void new_row(double *pa, double *pb); \ No newline at end of file diff --git a/PROJECT/main.c b/PROJECT/main.c index b812e81..66416cc 100644 --- a/PROJECT/main.c +++ b/PROJECT/main.c @@ -1,25 +1,25 @@ #include #include -double f(double x); // function x -void find_zero(double *pa, double *pb, double eps); // +double f(double x); // function x +void find_zero(double *pa, double *pb, double eps, double *px); // void ctrlc_handler(int signum); -void choose_path(char *choice); -void new_row(double *pa, double *pb); +// void choose_path(char *choice); +// void new_row(double *pa, double *pb); int main() { - double a, b, eps, *pa, *pb; - char choice; - - signal(SIGINT, ctrlc_handler); + double a, b, eps, x, *pa = &a, *pb = &b, *px = &x; + char choice = ' ', *ch = &choice; printf("Введите интервал [a, b] и точность eps: "); scanf("%lf %lf %lf", pa, pb, &eps); // if (a > b || ) + find_zero(pa, pb, eps, px); - find_zero(pa, pb, eps); + printf("Корень уравнения: %lf\n", *px); + printf("Работа программы завершена.\n"); return 0; } diff --git a/PROJECT/out_p/prog1 b/PROJECT/out_p/prog1 new file mode 100755 index 0000000000000000000000000000000000000000..51abbdbeec329e2eadae264ad8ec15fe04330773 GIT binary patch literal 16272 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 literal 0 HcmV?d00001