#include #include #include #include #include #define BUFFER_SIZE 1024 int main() { system("chcp 1251 > nul"); double a, b, c, discriminant, x1, x2; char buffer[BUFFER_SIZE]; char result[BUFFER_SIZE]; DWORD lpNumberOfBytesRead; DWORD bytesWritten; // Открытие файла с коэффициентами для чтения HANDLE myFile = CreateFileA("coefficients.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (myFile == INVALID_HANDLE_VALUE) { printf("Ошибка открытия файла coefficients.txt. Ошибка: %lu\n", GetLastError()); return 1; } printf("Файл для чтения успешно открыт\n"); // Чтение данных из файла while (ReadFile(myFile, buffer, sizeof(buffer), &lpNumberOfBytesRead, NULL)) { if (lpNumberOfBytesRead == 0) break; } CloseHandle(myFile); // Считывание коэффициентов в буфер if (sscanf_s(buffer, "%lf %lf %lf", &a, &b, &c) != 3) { printf("Некорректный формат входных данных\n"); return 0; } printf("Коэффициенты: a=%.2f, b=%.2f, c=%.2f\n", a, b, c); // Проверка корректности коэффициентов if (a == 0 && b == 0) { printf("Невозможно решить уравнение, оба коэффициента a и b равны 0\n"); snprintf(result, BUFFER_SIZE, "Невозможно решить уравнение, оба коэффициента a и b равны 0\n"); HANDLE myFileResult = CreateFileA("results.txt", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (myFileResult == INVALID_HANDLE_VALUE) { printf("Ошибка создания файла results.txt. Ошибка: %lu\n", GetLastError()); return 1; } printf("Файл для записи успешно создан\n"); WriteFile(myFileResult, result, strlen(result), &bytesWritten, NULL); CloseHandle(myFileResult); printf("Результат записан в файл results.txt\n"); return 0; } // Вычисление дискриминанта discriminant = b * b - 4 * a * c; if (discriminant > 0) { x1 = (-b + sqrt(discriminant)) / (2 * a); x2 = (-b - sqrt(discriminant)) / (2 * a); snprintf(result, BUFFER_SIZE, "Дискриминант: %.2f\nКоличество корней: 2\nКорень 1: %.2f\nКорень 2: %.2f\n", discriminant, x1, x2); } else if (discriminant == 0) { x1 = -b / (2 * a); snprintf(result, BUFFER_SIZE, "Дискриминант: %.2f\nКоличество корней: 1\nКорень: %.2f\n", discriminant, x1); } else { snprintf(result, BUFFER_SIZE, "Дискриминант: %.2f\nДействительных корней нет.\n", discriminant); } // Открытие файла для записи результата HANDLE myFileResult = CreateFilЭeA("results.txt", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (myFileResult == INVALID_HANDLE_VALUE) { printf("Ошибка создания файла results.txt. Ошибка: %lu\n", GetLastError()); return 1; } printf("Файл для записи успешно создан\n"); // Запись результата в файл WriteFile(myFileResult, result, strlen(result), &bytesWritten, NULL); CloseHandle(myFileResult); printf("Результат записан в файл results.txt\n"); return 0; }