added 1.6

This commit is contained in:
ada-dmitry
2023-12-21 11:44:34 +03:00
parent 5bbe9fdf26
commit e405b960a7
16 changed files with 568 additions and 22 deletions
-1
View File
@@ -6,7 +6,6 @@ CFLAGS= -c -Wall
default: build
general: main.o functions.o
killall -9 function_zeros_calculator
$(CC) ./out/main.o ./out/functions.o -o ./out/function_zeros_calculator -lm
main.o: main.c
+12 -7
View File
@@ -1,35 +1,40 @@
# Function Zeros Calculator
## Описание
Эта программа предназначена для вычисления нулей функции на языке C в среде Linux.
## Установка
1. Склонируйте репозиторий: git clone https://github.com/ada-dmitry/tmp_project.git
2. Перейдите в каталог проекта: cd /Project_1.2
## Использование
0. Для нормальной работы программы необходимо установить программу GNU PLot
(sudo apt install gnuplot)
0. Для нормальной работы программы необходимо установить программу GNU PLot
(sudo apt install gnuplot)
1. Соберите программу: make
2. Запустите программу: ./out/function_zeros_calculator
3. Введите необходимые параметры для вычисления нуля функции: a - ЛЕВАЯ граница отрезка
b - ПРАВАЯ граница отрезка, eps > 0 - точность вычисления корня(до 10^-6).
b - ПРАВАЯ граница отрезка, eps > 0 - точность вычисления корня(до 10^-6).
## Замечания
1. Для корректной работы программы, необходимо вводить отрезок, на котором есть лишь один корень
(это можно проверить благодаря графику).
(это можно проверить благодаря графику).
2. После вызова меню выбора действий (Ctrl+C) можно использовать как верхний регистр, так и нижний.
3. Не рекомендуется бесконечно вызывать Ctrl+C без выбора действия, это может повлечь ошибки
вследствие переполнения памяти.
вследствие переполнения памяти.
## Обработка сигнала SIGINT
Программа обрабатывает сигнал SIGINT, что позволяет давать пользователю выбор действия
при нажатии сочетания клавиш Ctrl+C.
## Авторы
Антипенко Дмитрий Андреевич [C22-712] - https://github.com/ada-dmitry/
Кузнецов Даниил Евгеньевич [C22-712]
Никитин Михаил Андреевич [C22-712]
Ускова Екатерина Александровна [C22-712]
+10 -1
View File
@@ -2,7 +2,6 @@
#include <stdlib.h>
#include <unistd.h>
#include <math.h>
// #include <signal.h>
#include <termios.h>
#include <stdio_ext.h>
@@ -114,6 +113,7 @@ void choose_path() // Функция выбора действия после в
sig_flag = 1;
char choice;
double tmp;
struct termios default_term, modif_term; // Задание структуры, определяющей терминал Linux.
@@ -140,6 +140,7 @@ R - начать поиск на другом отрезке: \n");
case 'C': // Выбор вида "Продолжить вычисление".
case 'c':
sig_flag = 0;
tcsetattr(0, TCSANOW, &default_term);
return; // Выход из функции без каких-либо изменений.
case 'A': // Выбор вида "Завершить вычисление".
@@ -157,6 +158,14 @@ R - начать поиск на другом отрезке: \n");
scanf("%lf%lf", pa, pb);
if (*pa > *pb) // Если пользователь перепутал границы
{
printf("Границы указаны неверно, запуск задачи с исправленным условием\n");
tmp = *pa;
*pa = *pb;
*pb = tmp;
}
if (f(*pa) * f(*pb) > 0)
{
printf("\nВ указанных границах нуля функции не существует.\n");
Binary file not shown.