Add project files.
This commit is contained in:
parent
38faf4fa1c
commit
23bc0aaee9
175
soustavy.cpp
Normal file
175
soustavy.cpp
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
// soustavy.cpp : This file contains the 'main' function. Program execution begins and ends there.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
static HANDLE s_console;
|
||||||
|
|
||||||
|
#define COLOR_TEXT 0b0111
|
||||||
|
#define COLOR_ZERO 0b1000
|
||||||
|
#define COLOR_PIVOT_OK 0b1010
|
||||||
|
#define COLOR_PIVOT_BAD 0b1100
|
||||||
|
#define COLOR_OTHER 0b1111
|
||||||
|
#define COLOR_BVEC 0b0111
|
||||||
|
|
||||||
|
void Color(WORD color) {
|
||||||
|
SetConsoleTextAttribute(s_console, color);
|
||||||
|
}
|
||||||
|
|
||||||
|
class Matrix {
|
||||||
|
size_t m_m;
|
||||||
|
size_t m_n;
|
||||||
|
std::vector<float> m_data;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Matrix(size_t m, size_t n) : m_m(m), m_n(n), m_data(m* n) {}
|
||||||
|
float& At(size_t i, size_t j) { return m_data[i * m_n + j]; }
|
||||||
|
void Print(const char* format) {
|
||||||
|
size_t min_pivot = 0;
|
||||||
|
for (size_t i = 0; i < m_m; ++i) {
|
||||||
|
size_t pivot = 0;
|
||||||
|
for (size_t j = 0; j < m_n; ++j) {
|
||||||
|
auto val = At(i, j);
|
||||||
|
WORD color = COLOR_OTHER;
|
||||||
|
|
||||||
|
if (j == m_n - 1) {
|
||||||
|
color = COLOR_BVEC;
|
||||||
|
}
|
||||||
|
else if (std::abs(val) < 0.00001f) {
|
||||||
|
if (pivot == j) ++pivot;
|
||||||
|
color = COLOR_ZERO;
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (pivot == j) {
|
||||||
|
color = pivot >= min_pivot ? COLOR_PIVOT_OK : COLOR_PIVOT_BAD;
|
||||||
|
min_pivot = pivot + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (j == m_n - 1) {
|
||||||
|
Color(COLOR_TEXT);
|
||||||
|
printf(" |");
|
||||||
|
}
|
||||||
|
|
||||||
|
Color(color);
|
||||||
|
printf(format, val);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
Color(COLOR_TEXT);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
T Input(const char* prompt) {
|
||||||
|
std::cout << prompt << " = ";
|
||||||
|
T a;
|
||||||
|
std::cin >> a;
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
s_console = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||||
|
Color(COLOR_TEXT);
|
||||||
|
|
||||||
|
auto m = Input<size_t>("m");
|
||||||
|
auto n = Input<size_t>("n");
|
||||||
|
|
||||||
|
std::vector<Matrix> history;
|
||||||
|
|
||||||
|
{
|
||||||
|
Matrix mat(m, n);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < m; ++i) {
|
||||||
|
for (size_t j = 0; j < n; ++j) {
|
||||||
|
//mat.At(i, j) = 0.0f;
|
||||||
|
std::cin >> mat.At(i, j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
history.push_back(mat);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
printf("\nupravy:\n s <i1> <i2> ....... prohodit radky i1 a i2\n m <i> <k> ......... vynasobit radek i konstantou k\n a <k> <i1> <i2> ... pricist k-nasobek i1 k i2\n f <format> ........ zmenit format vystupu\n u ................. undo\n");
|
||||||
|
|
||||||
|
std::string fmt("%4.0f");
|
||||||
|
while (true) {
|
||||||
|
history.push_back(history.back());
|
||||||
|
auto& mat = history.back();
|
||||||
|
|
||||||
|
printf("\n");
|
||||||
|
mat.Print(fmt.c_str());
|
||||||
|
printf("\n? ");
|
||||||
|
|
||||||
|
char op;
|
||||||
|
size_t i1, i2;
|
||||||
|
float k, temp;
|
||||||
|
|
||||||
|
|
||||||
|
std::cin >> op;
|
||||||
|
switch (op) {
|
||||||
|
case 's': {
|
||||||
|
std::cin >> i1 >> i2;
|
||||||
|
--i1; --i2;
|
||||||
|
for (size_t j = 0; j < n; ++j) {
|
||||||
|
temp = mat.At(i1, j);
|
||||||
|
mat.At(i1, j) = mat.At(i2, j);
|
||||||
|
mat.At(i2, j) = temp;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'm': {
|
||||||
|
std::cin >> i1 >> k;
|
||||||
|
--i1;
|
||||||
|
for (size_t j = 0; j < n; ++j)
|
||||||
|
mat.At(i1, j) *= k;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'a': {
|
||||||
|
std::cin >> k >> i1 >> i2;
|
||||||
|
--i1; --i2;
|
||||||
|
for (size_t j = 0; j < n; ++j)
|
||||||
|
mat.At(i2, j) += mat.At(i1, j) * k;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'f':
|
||||||
|
std::cin >> fmt;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'u':
|
||||||
|
if (history.size() > 2) {
|
||||||
|
history.pop_back();
|
||||||
|
history.pop_back();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//printf("m(%u) n(%u)\n", m, n);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
std::cout << "Hello World!\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
|
||||||
|
// Debug program: F5 or Debug > Start Debugging menu
|
||||||
|
|
||||||
|
// Tips for Getting Started:
|
||||||
|
// 1. Use the Solution Explorer window to add/manage files
|
||||||
|
// 2. Use the Team Explorer window to connect to source control
|
||||||
|
// 3. Use the Output window to see build output and other messages
|
||||||
|
// 4. Use the Error List window to view errors
|
||||||
|
// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
|
||||||
|
// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
|
||||||
31
soustavy.sln
Normal file
31
soustavy.sln
Normal file
@ -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}") = "soustavy", "soustavy.vcxproj", "{00AD13BE-EEF1-47A4-96ED-EBF98C966EB3}"
|
||||||
|
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
|
||||||
|
{00AD13BE-EEF1-47A4-96ED-EBF98C966EB3}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{00AD13BE-EEF1-47A4-96ED-EBF98C966EB3}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{00AD13BE-EEF1-47A4-96ED-EBF98C966EB3}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{00AD13BE-EEF1-47A4-96ED-EBF98C966EB3}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{00AD13BE-EEF1-47A4-96ED-EBF98C966EB3}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{00AD13BE-EEF1-47A4-96ED-EBF98C966EB3}.Release|x64.Build.0 = Release|x64
|
||||||
|
{00AD13BE-EEF1-47A4-96ED-EBF98C966EB3}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{00AD13BE-EEF1-47A4-96ED-EBF98C966EB3}.Release|x86.Build.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {5161ABFE-D95A-41AA-AF42-33EBF8D1224E}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
135
soustavy.vcxproj
Normal file
135
soustavy.vcxproj
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<VCProjectVersion>17.0</VCProjectVersion>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<ProjectGuid>{00ad13be-eef1-47a4-96ed-ebf98c966eb3}</ProjectGuid>
|
||||||
|
<RootNamespace>soustavy</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v143</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v143</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v143</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v143</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="Shared">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="soustavy.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
22
soustavy.vcxproj.filters
Normal file
22
soustavy.vcxproj.filters
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<Filter Include="Source Files">
|
||||||
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
|
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Header Files">
|
||||||
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
|
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Resource Files">
|
||||||
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="soustavy.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
Loading…
x
Reference in New Issue
Block a user