Загрузка данных


nano src/main_executable_module/main_executable_module.c



#include "../data_libs/data_io.h"
#include "../data_libs/data_stat.h"
#include "../data_libs/data_process.h"
#include "../data_libs/decision.h"

int main() {
    int n;
    double *data;
    int decision = 0;
    
    printf("Enter number of elements: ");
    scanf("%d", &n);
    
    data = (double*)malloc(n * sizeof(double));
    if (data == NULL) {
        printf("n/a\n");
        return 1;
    }
    
    input(data, n);
    
    if (normalization(data, n)) {
        printf("Normalized data: ");
        output(data, n);
        
        decision = make_decision(data, n);
        if (decision == 1) {
            printf("Decision: YES\n");
        } else {
            printf("Decision: NO\n");
        }
    } else {
        printf("Normalization failed\n");
    }
    
    free(data);
    return 0;
}






nano src/main_executable_module/Makefile

CC = gcc
CFLAGS = -Wall -Werror -Wextra -std=c11
SRC_DIR = .
BUILD_DIR = ../../build
DATA_LIBS_DIR = ../data_libs

SOURCES = $(SRC_DIR)/main_executable_module.c \
          $(DATA_LIBS_DIR)/data_io.c \
          $(DATA_LIBS_DIR)/data_stat.c \
          $(DATA_LIBS_DIR)/data_process.c \
          $(DATA_LIBS_DIR)/decision.c

OBJECTS = $(BUILD_DIR)/main_executable_module.o \
          $(BUILD_DIR)/data_io.o \
          $(BUILD_DIR)/data_stat.o \
          $(BUILD_DIR)/data_process.o \
          $(BUILD_DIR)/decision.o

TARGET = $(BUILD_DIR)/Quest_3

all: $(TARGET)

$(TARGET): $(OBJECTS)
	$(CC) $(CFLAGS) -o $@ $^ -lm

$(BUILD_DIR)/%.o: $(DATA_LIBS_DIR)/%.c
	mkdir -p $(BUILD_DIR)
	$(CC) $(CFLAGS) -c $< -o $@

$(BUILD_DIR)/main_executable_module.o: $(SRC_DIR)/main_executable_module.c
	mkdir -p $(BUILD_DIR)
	$(CC) $(CFLAGS) -c $< -o $@

clean:
	rm -f $(BUILD_DIR)/*.o $(TARGET)

rebuild: clean all

.PHONY: all clean rebuild



cd src/main_executable_module
make all
cd ../..
./build/Quest_3

# ВВОДИМ:
4
1 2 3 4

# ДОЛЖНЫ УВИДЕТЬ:
# Normalized data: 0.00 0.33 0.67 1.00
# Decision: YES





cd src/main_executable_module

# Проверяем clean
make clean
ls ../../build/  # Должны увидеть, что .o файлы удалены

# Проверяем rebuild
make rebuild
cd ../..
./build/Quest_3  # Должен работать