mirror of
https://github.com/ada-dmitry/tmp_project.git
synced 2026-09-24 01:10:31 +00:00
added 1.6
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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.
Reference in New Issue
Block a user