From 26a8d9330ca9d03ace361b453f71c152d8d7cf53 Mon Sep 17 00:00:00 2001 From: 4P0KER Date: Tue, 25 Feb 2025 23:55:57 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20=D0=BB?= =?UTF-8?q?=D0=B0=D1=8E=D0=BE=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=BD=D0=B0?= =?UTF-8?q?=D1=8F=20=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Quadratic Equation.sln | 31 +++++++ Quadratic Equation.vcxproj | 136 +++++++++++++++++++++++++++++ Quadratic Equation.vcxproj.filters | 22 +++++ Quadratic Equation.vcxproj.user | 4 + Solve.c | 72 +++++++++++++++ coeff.txt | 1 + solve.txt | 1 + 7 files changed, 267 insertions(+) create mode 100644 Quadratic Equation.sln create mode 100644 Quadratic Equation.vcxproj create mode 100644 Quadratic Equation.vcxproj.filters create mode 100644 Quadratic Equation.vcxproj.user create mode 100644 Solve.c create mode 100644 coeff.txt create mode 100644 solve.txt diff --git a/Quadratic Equation.sln b/Quadratic Equation.sln new file mode 100644 index 0000000..499fe18 --- /dev/null +++ b/Quadratic Equation.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.7.34031.279 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Quadratic Equation", "Quadratic Equation\Quadratic Equation.vcxproj", "{E9ED283D-3B58-48DB-B2D3-A4FC15D34B91}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E9ED283D-3B58-48DB-B2D3-A4FC15D34B91}.Debug|x64.ActiveCfg = Debug|x64 + {E9ED283D-3B58-48DB-B2D3-A4FC15D34B91}.Debug|x64.Build.0 = Debug|x64 + {E9ED283D-3B58-48DB-B2D3-A4FC15D34B91}.Debug|x86.ActiveCfg = Debug|Win32 + {E9ED283D-3B58-48DB-B2D3-A4FC15D34B91}.Debug|x86.Build.0 = Debug|Win32 + {E9ED283D-3B58-48DB-B2D3-A4FC15D34B91}.Release|x64.ActiveCfg = Release|x64 + {E9ED283D-3B58-48DB-B2D3-A4FC15D34B91}.Release|x64.Build.0 = Release|x64 + {E9ED283D-3B58-48DB-B2D3-A4FC15D34B91}.Release|x86.ActiveCfg = Release|Win32 + {E9ED283D-3B58-48DB-B2D3-A4FC15D34B91}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {E5710D74-B760-469A-9C37-5CE7CFAEFDE7} + EndGlobalSection +EndGlobal diff --git a/Quadratic Equation.vcxproj b/Quadratic Equation.vcxproj new file mode 100644 index 0000000..30da921 --- /dev/null +++ b/Quadratic Equation.vcxproj @@ -0,0 +1,136 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {e9ed283d-3b58-48db-b2d3-a4fc15d34b91} + QuadraticEquation + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + CompileAsC + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/Quadratic Equation.vcxproj.filters b/Quadratic Equation.vcxproj.filters new file mode 100644 index 0000000..1d88bc2 --- /dev/null +++ b/Quadratic Equation.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Исходные файлы + + + \ No newline at end of file diff --git a/Quadratic Equation.vcxproj.user b/Quadratic Equation.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/Quadratic Equation.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Solve.c b/Solve.c new file mode 100644 index 0000000..4b35d21 --- /dev/null +++ b/Solve.c @@ -0,0 +1,72 @@ +#pragma warning(disable:4996) +#define _CRT_SECURE_NO_WARNINGS +#define _USE_MATH_DEFINES + +#include +#include +#include + +void ReadingFromFile(const char *f, long float *a, long float *b, long float *c) { + FILE* F = fopen(f, "r"); + if (!F) { + printf("Error occured while opening file"); + exit(0); + } + if (fscanf(F, "%lf %lf %lf", a, b, c) == EOF) { + printf("Incorrect file format"); + exit(0); + } + fclose(F); +} + +int Solve(long float a, long float b, long float c, long float* root1, long float* root2) { + long float discriminant = b * b - 4 * a * c; + + if (discriminant < 0) { + return 0; + } + else if (discriminant == 0) { + *root1 = -b / (2 * a); + return 1; + } + else { + *root1 = (-b + sqrt(discriminant)) / (2 * a); + *root2 = (-b - sqrt(discriminant)) / (2 * a); + return 2; + } +} + +void WrittingToFile(const char* f, int count_roots, long float root1, long float root2) { + FILE* F = fopen(f, "w"); + if (!F) { + printf("Error occured while opening file"); + exit(0); + } + + if (count_roots == 0) { + fprintf(F, "There are no real roots.\n"); + } + else if (count_roots == 1) { + fprintf(F, "Root: %.6lf\n", root1); + } + else if (count_roots == 2) { + fprintf(F, "Roots: %.6lf, %.6lf\n", root1, root2); + } + + fclose(F); +} + + +int main() { + char* coeff = "coeff.txt"; + char* roots = "solve.txt"; + long float a, b, c; + ReadingFromFile(coeff, &a, &b, &c); + long float root1, root2; + int count_roots = Solve(a, b, c, &root1, &root2); + WrittingToFile(roots, count_roots, root1, root2); + return 1; +} + + + diff --git a/coeff.txt b/coeff.txt new file mode 100644 index 0000000..1c33abb --- /dev/null +++ b/coeff.txt @@ -0,0 +1 @@ +1 2 1 diff --git a/solve.txt b/solve.txt new file mode 100644 index 0000000..bf3e4f0 --- /dev/null +++ b/solve.txt @@ -0,0 +1 @@ +Root: -1.000000