diff --git a/Project 1.2/Makefile b/Project 1.2/Makefile deleted file mode 100644 index d22bfb7..0000000 --- a/Project 1.2/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -CC = gcc -CFLAGS = -Wall -Wextra -std=c99 - -SRCS = main.c functions.c -OBJS = $(SRCS:.c=.o) -DEPS = declare.h - -TARGET = ./out/app - -.PHONY: all clean - -all: $(TARGET) - -$(TARGET): $(OBJS) - $(CC) $(CFLAGS) $^ -o $@ - -%.o: %.c $(DEPS) - $(CC) $(CFLAGS) -c $< -o $@ - -clean: - rm -f $(TARGET) $(OBJS) \ No newline at end of file diff --git a/Project 1.2/out/app b/Project 1.2/out/app deleted file mode 100755 index e1fe845..0000000 Binary files a/Project 1.2/out/app and /dev/null differ diff --git a/Project 1.2/out/app1 b/Project 1.2/out/app1 deleted file mode 100755 index bd9370f..0000000 Binary files a/Project 1.2/out/app1 and /dev/null differ diff --git a/Project 1.2/readme b/Project 1.2/readme deleted file mode 100644 index facd312..0000000 --- a/Project 1.2/readme +++ /dev/null @@ -1,5 +0,0 @@ -Цель: разбить программу на несколько файлов и, опционально, написать makefile// - -Изменения: -1. Программа разбита на основной - main.c, где лежит функция main(). -2. \ No newline at end of file diff --git a/Project_1.2/Makefile b/Project_1.2/Makefile new file mode 100644 index 0000000..9e93f09 --- /dev/null +++ b/Project_1.2/Makefile @@ -0,0 +1,24 @@ +# Это комментарий, который говорит, что переменная CC указывает компилятор, используемый для сборки +CC= gcc +#Это еще один комментарий. Он поясняет, что в переменной CFLAGS лежат флаги, которые передаются компилятору +CFLAGS= -c -Wall + +default: build + +general: main.o functions.o + $(CC) ./out/main.o ./out/functions.o declare.h -o ./out/function_zeros_calculator -lm + + +main.o: main.c + $(CC) $(CFLAGS) main.c -o ./out/main.o + +functions.o: functions.c + $(CC) $(CFLAGS) functions.c -o ./out/functions.o + +clean: + rm -rf ./out/main.o ./out/functions.o + +build: general clean + +run: + ./out/function_zeros_calculator \ No newline at end of file diff --git a/Project_1.2/README b/Project_1.2/README new file mode 100644 index 0000000..1e087c8 --- /dev/null +++ b/Project_1.2/README @@ -0,0 +1,26 @@ +# Function Zeros Calculator + +## Описание +Эта программа предназначена для вычисления нулей функции на языке C в среде Linux. + +## Установка +1. Склонируйте репозиторий: git clone https://github.com/ada-dmitry/tmp_project.git +2. Перейдите в каталог проекта: cd /Project_1.2 + +## Использование +1. Соберите программу: make +2. Запустите программу: ./out/function_zeros_calculator +3. Введите необходимые параметры для вычисления нуля функции + + +## Обработка сигнала SIGINT +Программа обрабатывает сигнал SIGINT, что позволяет давать пользователю выбор действия при нажатии сочетания клавиш Ctrl+C. + +## Авторы +Антипенко Дмитрий Андреевич - [Ссылка на ваш профиль GitHub] +Кузнецов Даниил Евгеньевич +Никитин Михаил Андреевич +Ускова Екатерина Александровна + +## Лицензия +Этот проект лицензирован в соответствии с лицензией [указать лицензию, например, MIT]. diff --git a/Project 1.2/declare.h b/Project_1.2/declare.h similarity index 100% rename from Project 1.2/declare.h rename to Project_1.2/declare.h diff --git a/Project 1.2/functions.c b/Project_1.2/functions.c similarity index 95% rename from Project 1.2/functions.c rename to Project_1.2/functions.c index 4335aa4..7a99af2 100644 --- a/Project 1.2/functions.c +++ b/Project_1.2/functions.c @@ -4,6 +4,8 @@ #include #include #include +#include + #include "declare.h" @@ -19,12 +21,15 @@ void fork_method() do { *px = (*pa + *pb) / 2; // метод деления отрезка пополам + printf("%lf %lf\n", *pa, *pb); if (f(*pa) * f(x) <= 0) *pb = x; else if(f(*pb) * f(x) <= 0) *pa = x; + sleep(1); + } while(fabs(*pb - *pa) > eps && f(x) != 0); return; } @@ -39,18 +44,17 @@ void choose_path() tcgetattr(0, &term); // Отключение символа ECHO - term.c_lflag &= ~ECHO; + //term.c_lflag &= ~ECHO; // Применение новых настроек терминала - tcsetattr(0, TCSANOW, &term); + //tcsetattr(0, TCSANOW, &term); printf("\nПродолжить поиск корня?\n"); - + __fpurge(stdin); do { printf("\nC - продолжить, A - закончить работу программы, R - начать поиск на другом отрезке: \n"); *ch = getchar(); - *ch = getchar(); switch (*ch) { case 'C': @@ -95,6 +99,7 @@ void choose_path() default: printf("Ошибка ввода, повторная попытка..."); + } } while (*ch != 'A' || *ch != 'R' || *ch != 'C' || *ch != 'a' || *ch != 'r' || *ch != 'c'); diff --git a/Project 1.2/main.c b/Project_1.2/main.c similarity index 91% rename from Project 1.2/main.c rename to Project_1.2/main.c index f7be3fe..04eec75 100644 --- a/Project 1.2/main.c +++ b/Project_1.2/main.c @@ -15,15 +15,15 @@ int main(){ double tmp; pa = &a; pb = &b; px = &x; - struct sigaction sa; - sa.sa_handler = ctrlc_handler; - sa.sa_flags = 0; - sigemptyset(&sa.sa_mask); + struct sigaction sig; + sig.sa_handler = ctrlc_handler; + sig.sa_flags = 0; + sigemptyset(&sig.sa_mask); printf("Введите интервал [a, b] и точность eps: "); scanf("%lf %lf %lf", pa, pb, &eps); - if (sigaction(SIGINT, &sa, NULL) == -1) + if (sigaction(SIGINT, &sig, NULL) == -1) { perror("sigaction"); return 1; diff --git a/Project_1.2/out/function_zeros_calculator b/Project_1.2/out/function_zeros_calculator new file mode 100755 index 0000000..12323a5 Binary files /dev/null and b/Project_1.2/out/function_zeros_calculator differ