Files
tmp_project/test/ver1.4/main.c
T
2023-12-07 14:36:52 +03:00

63 lines
1.5 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
#include <stdio_ext.h>
#include "declare.h"
double a, b, eps, x, *pa, *pb, *px;
short method, *mth, sig_flag;
int main()
{
sig_flag = 0;
method = 0;
mth = &method;
pa = &a;
pb = &b;
px = &x;
struct sigaction sig; // Инициализация структуры, отвечающей за обработку сигнала.
// Замена стандартного алгоритма на необходимый для вызова меню действий.
sig.sa_handler = ctrlc_handler;
sig.sa_flags = 0; // Очистка флагов "на всякий случай".
sigemptyset(&sig.sa_mask); // Очистка маски "на всякий случай".
if (sigaction(SIGINT, &sig, NULL) == -1) // Обработчик ошибок и инициализация сигнала SIGINT.
{
perror("sigaction");
return 1;
}
show_grapgh();
input_diap();
if (*mth == 0)
{
printf("Fork\n");
fork_method();
}
else if (*mth == 1)
{
printf("Chord\n");
chord_method();
}
else if (*mth == 2)
{
printf("Newton\n");
newton_method();
}
else
{
printf("Fork\n");
fork_method();
}
printf("\nКорень уравнения: %lf\n", *px);
printf("Работа программы завершена.\n");
return 0;
}
// MEEEEEEEOW