Procházet zdrojové kódy

severo_zapad_s_maks_chiclom

Dima Sorokin před 2 roky
rodič
revize
dd776b35c1

binární
.vs/ConsoleApp1/FileContentIndex/d04b73f5-b318-48f7-8a3c-8e8a3e6a6998.vsidx


+ 0 - 0
.vs/ConsoleApp1/FileContentIndex/read.lock


+ 11 - 0
.vs/ConsoleApp1/project-colors.json

@@ -0,0 +1,11 @@
+{
+  "Version": 1,
+  "ProjectMap": {
+    "f1d030a3-618f-4ef2-86f3-904b09e20540": {
+      "ProjectGuid": "f1d030a3-618f-4ef2-86f3-904b09e20540",
+      "DisplayName": "ConsoleApp1",
+      "ColorIndex": 0
+    }
+  },
+  "NextColorIndex": 1
+}

binární
.vs/ConsoleApp1/v17/.suo


+ 25 - 0
ConsoleApp1.sln

@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.32112.339
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp1", "ConsoleApp1\ConsoleApp1.csproj", "{F1D030A3-618F-4EF2-86F3-904B09E20540}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{F1D030A3-618F-4EF2-86F3-904B09E20540}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F1D030A3-618F-4EF2-86F3-904B09E20540}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F1D030A3-618F-4EF2-86F3-904B09E20540}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F1D030A3-618F-4EF2-86F3-904B09E20540}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {E914B1AA-8C29-40DD-BF95-115B0CC736C2}
+	EndGlobalSection
+EndGlobal

+ 6 - 0
ConsoleApp1/App.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
+    </startup>
+</configuration>

+ 53 - 0
ConsoleApp1/ConsoleApp1.csproj

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{F1D030A3-618F-4EF2-86F3-904B09E20540}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>ConsoleApp1</RootNamespace>
+    <AssemblyName>ConsoleApp1</AssemblyName>
+    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+    <Deterministic>true</Deterministic>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>

+ 178 - 0
ConsoleApp1/Program.cs

@@ -0,0 +1,178 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConsoleApplication11
+{
+    class Program
+    {
+        struct Element
+        {
+
+            public int Delivery { get; set; }
+            public int Value { get; set; }
+            public static int FindMinElement(int a, int b)
+            {
+                if (a > b) return b;
+                if (a == b) { return a; }
+                else return a;
+            }
+
+        }
+
+        static void Main(string[] args)
+        {
+            int i = 0;
+            int j = 0; // переменные
+            int n;
+            int max = 0;
+            int sumM = 0;
+            int sumN = 0;
+            string vixod = "y";
+            Console.WriteLine("Сделать первоначальное распределение по методу северо-западного угла в транспортной задаче \nс учетом преобразования исходной матрицы А в матрицу В по правилу: В = { mахл + 1}-А\n");
+            do
+            {
+                try
+                {
+                    Console.ForegroundColor = ConsoleColor.Green;
+                    Console.WriteLine("Введите количество столбцов"); // ввод значений в переменные
+                    n = Convert.ToInt32(Console.ReadLine());
+                    int[] a = new int[n];
+                    Console.ForegroundColor = ConsoleColor.Green;
+                    Console.WriteLine("Введите количество строк");
+                    int m = Convert.ToInt32(Console.ReadLine());
+                    int[] b = new int[m];
+                    Element[,] C = new Element[n, m];
+                    Console.ForegroundColor = ConsoleColor.Yellow;
+                    Console.WriteLine("Введите M");
+                    for (i = 0; i < a.Length; i++)
+                    {
+                        a[i] = Convert.ToInt32(Console.ReadLine());
+                    }
+                    Console.WriteLine("Введите N");
+                    for (j = 0; j < b.Length; j++)
+                    {
+                        b[j] = Convert.ToInt32(Console.ReadLine());
+                    }
+                    Console.ForegroundColor = ConsoleColor.White;
+                    for (i = 0; i < a.Length; i++)
+                    {
+                        sumM += a[i];
+                    }
+                    for (j = 0; j < b.Length; j++)
+                    {
+                        sumN += b[j];
+                    }
+                    if (sumM == sumN)
+                    {
+                        Console.WriteLine("\nВведите числа в матрицу\n");
+                        for (i = 0; i < n; i++)
+                        {
+                            for (j = 0; j < m; j++)
+                            {
+                                Console.Write("a[{0},{1}] = ", i, j);
+                                Console.ForegroundColor = ConsoleColor.Cyan;
+                                C[i, j].Value = Convert.ToInt32(Console.ReadLine());   // ввод значений в матрицу
+                                Console.ResetColor();
+
+                            }
+                        }
+                        for (i = 0; i < n; i++)
+                        {
+                            for (j = 0; j < m; j++)
+                            {
+                                if (max <= C[i, j].Value)    // поиск максимального числа
+                                {
+                                    max = C[i, j].Value;
+                                }
+                            }
+                        }
+                        max += 1; // прибавление 1 к максимальному числу
+                        for (i = 0; i < n; i++)
+                        {
+                            for (j = 0; j < m; j++)
+                            {
+                                if (C[i, j].Value != 0)
+                                {
+                                    C[i, j].Value = max - C[i, j].Value;
+                                }
+                            }
+                        }
+                        i = j = 0;
+                        while (i < n && j < m)  // цикл для северозападного метода
+                        {
+                            try
+                            {
+                                if (a[i] == 0) { i++; }
+                                if (b[j] == 0) { j++; }
+                                if (a[i] == 0 && b[j] == 0) { i++; j++; }
+                                C[i, j].Delivery = Element.FindMinElement(a[i], b[j]);
+                                a[i] -= C[i, j].Delivery;
+                                b[j] -= C[i, j].Delivery;
+                            }
+                            catch { }
+                        }
+                        //выводим массив на экран
+                        Console.WriteLine("\nКонечная матрица\n");
+                        for (i = 0; i < n; i++)
+                        {
+                            for (j = 0; j < m; j++)
+                            {
+                                if (C[i, j].Delivery != 0)
+                                {
+                                    if (j == 0)
+                                    {
+                                        Console.Write("|");
+                                    }
+                                    Console.ForegroundColor = ConsoleColor.DarkCyan;
+                                    Console.Write(" {0}", C[i, j].Value);
+                                    Console.ForegroundColor = ConsoleColor.DarkGreen;
+                                    Console.Write("({0})", C[i, j].Delivery); Console.ResetColor();
+                                    Console.Write(" |");
+                                }
+                                else
+                                {
+                                    if (j == 0)
+                                    {
+                                        Console.Write("|");
+                                    }
+                                    Console.Write(" {0}({1})", C[i, j].Value, C[i, j].Delivery);
+                                    Console.Write(" |");
+                                }
+                            }
+                            Console.WriteLine();
+                        }
+                        int ResultFunction = 0;
+                        //считаем целевую функцию
+                        for (i = 0; i < n; i++)
+                        {
+                            for (j = 0; j < m; j++) { ResultFunction += (C[i, j].Value * C[i, j].Delivery); }
+                        }
+                        Console.ForegroundColor = ConsoleColor.Green;
+                        Console.WriteLine(" \nОтвет = {0} у.д.е", ResultFunction);
+                        Console.ResetColor();
+                        i = 0;
+                        j = 0;
+                        int[] u = new int[n];
+                        int[] v = new int[m];
+                    }
+                    else
+                    {
+                        Console.ForegroundColor = ConsoleColor.Red;
+                        Console.WriteLine("M не равно N");
+                    }
+                    Console.WriteLine("\nВведите y для продолжения или любой другой символ для выхода");
+                    vixod = Console.ReadLine();
+                }
+                catch (Exception)
+                {
+                    Console.ForegroundColor = ConsoleColor.Red;
+                    Console.WriteLine("\nПроверьте введенные данные\n");
+                }
+            }
+            while (vixod == "y");
+        }
+    }
+}

+ 36 - 0
ConsoleApp1/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Общие сведения об этой сборке предоставляются следующим набором
+// набора атрибутов. Измените значения этих атрибутов для изменения сведений,
+// связанные с этой сборкой.
+[assembly: AssemblyTitle("ConsoleApp1")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ConsoleApp1")]
+[assembly: AssemblyCopyright("Copyright ©  2022")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
+// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
+// из модели COM задайте для атрибута ComVisible этого типа значение true.
+[assembly: ComVisible(false)]
+
+// Следующий GUID представляет идентификатор typelib, если этот проект доступен из модели COM
+[assembly: Guid("f1d030a3-618f-4ef2-86f3-904b09e20540")]
+
+// Сведения о версии сборки состоят из указанных ниже четырех значений:
+//
+//      Основной номер версии
+//      Дополнительный номер версии
+//      Номер сборки
+//      Номер редакции
+//
+// Можно задать все значения или принять номера сборки и редакции по умолчанию 
+// используя "*", как показано ниже:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

binární
ConsoleApp1/bin/Debug/ConsoleApp1.exe


+ 6 - 0
ConsoleApp1/bin/Debug/ConsoleApp1.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
+    </startup>
+</configuration>

binární
ConsoleApp1/bin/Debug/ConsoleApp1.pdb


+ 4 - 0
ConsoleApp1/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs

@@ -0,0 +1,4 @@
+// <autogenerated />
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]

binární
ConsoleApp1/obj/Debug/ConsoleApp1.csproj.AssemblyReference.cache


+ 1 - 0
ConsoleApp1/obj/Debug/ConsoleApp1.csproj.CoreCompileInputs.cache

@@ -0,0 +1 @@
+7f4b213b428f4c013f19137338418ee1f5525793

+ 16 - 0
ConsoleApp1/obj/Debug/ConsoleApp1.csproj.FileListAbsolute.txt

@@ -0,0 +1,16 @@
+C:\Users\Dima\Desktop\Новая папка\ConsoleApp1\ConsoleApp1\bin\Debug\ConsoleApp1.exe.config
+C:\Users\Dima\Desktop\Новая папка\ConsoleApp1\ConsoleApp1\bin\Debug\ConsoleApp1.exe
+C:\Users\Dima\Desktop\Новая папка\ConsoleApp1\ConsoleApp1\bin\Debug\ConsoleApp1.pdb
+C:\Users\Dima\Desktop\Новая папка\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.csproj.AssemblyReference.cache
+C:\Users\Dima\Desktop\Новая папка\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.csproj.SuggestedBindingRedirects.cache
+C:\Users\Dima\Desktop\Новая папка\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.csproj.CoreCompileInputs.cache
+C:\Users\Dima\Desktop\Новая папка\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe
+C:\Users\Dima\Desktop\Новая папка\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb
+C:\Users\Dima\OneDrive\Рабочий стол\1\ConsoleApp1\bin\Debug\ConsoleApp1.exe.config
+C:\Users\Dima\OneDrive\Рабочий стол\1\ConsoleApp1\bin\Debug\ConsoleApp1.exe
+C:\Users\Dima\OneDrive\Рабочий стол\1\ConsoleApp1\bin\Debug\ConsoleApp1.pdb
+C:\Users\Dima\OneDrive\Рабочий стол\1\ConsoleApp1\obj\Debug\ConsoleApp1.csproj.AssemblyReference.cache
+C:\Users\Dima\OneDrive\Рабочий стол\1\ConsoleApp1\obj\Debug\ConsoleApp1.csproj.SuggestedBindingRedirects.cache
+C:\Users\Dima\OneDrive\Рабочий стол\1\ConsoleApp1\obj\Debug\ConsoleApp1.csproj.CoreCompileInputs.cache
+C:\Users\Dima\OneDrive\Рабочий стол\1\ConsoleApp1\obj\Debug\ConsoleApp1.exe
+C:\Users\Dima\OneDrive\Рабочий стол\1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb

+ 0 - 0
ConsoleApp1/obj/Debug/ConsoleApp1.csproj.SuggestedBindingRedirects.cache


binární
ConsoleApp1/obj/Debug/ConsoleApp1.exe


binární
ConsoleApp1/obj/Debug/ConsoleApp1.pdb


binární
ConsoleApp1/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache