diff --git a/demopohjat/demo10/PuuRekursio/PuuRekursio.cs b/demopohjat/demo10/PuuRekursio/PuuRekursio.cs index 055f92aba4e24097b6619df8540c4d5dea5ada4a..6f3e6663341cacc04c93804e82119f856b2aa86d 100644 --- a/demopohjat/demo10/PuuRekursio/PuuRekursio.cs +++ b/demopohjat/demo10/PuuRekursio/PuuRekursio.cs @@ -52,7 +52,7 @@ public class PuuRekursio // Pääohjelma, jossa luodaan puun solmut ja aloitetaan tulostaminen. - public static void Main(String[] args) + public static void Main(string[] args) { Solmu s2 = new Solmu(2, new Solmu(1), new Solmu(3)); Solmu s6 = new Solmu(6, new Solmu(5), new Solmu(7)); diff --git a/demopohjat/demo11/PPTeht2d/Muuttujia.cs b/demopohjat/demo11/PPTeht2d/Muuttujia.cs index 8ee77486a4af9fbbf2653ad54bbf0a93ec02c2c2..f144898096f39596922309512f2238b20e1fe7e0 100644 --- a/demopohjat/demo11/PPTeht2d/Muuttujia.cs +++ b/demopohjat/demo11/PPTeht2d/Muuttujia.cs @@ -1,38 +1,36 @@ using System; -using System.Collections.Generic; -using System.Linq; using System.Text; -namespace PPTeht2 +namespace PPTeht2d; + +/// @author: Simo Haatainen +/// @version: 14.11.2011 +/// +/// <summary> +/// Harjoitellaan muuttujien tyyppejä +/// </summary> +public class Muuttujia { - /// @author: Simo Haatainen - /// @version: 14.11.2011 - /// - /// <summary> - /// Harjoitellaan muuttujien tyyppejä - /// </summary> - public class Muuttujia - { - public static void Main(string[] args) - { - /* - muuttuvaMerkkijono = new - muuttuvaMerkkijono.Append("Tämä on jokin merkkijono, jota pystyy muokkaamaan"); - - merkkijono = "Tämä on tavallinen merkkijono"; - - merkki = merkkijono[0]; - - kokonaisLuku = 4; - - jakoJaannos = kokonaisLuku % 2; - - osaMaara = kokonaisLuku / 3; - - kokonaisLukuTaulukko = new { kokonaisLuku, 2, 4, 6 }; - - merkkijonoTaulukko = new { "kissa", "koira", "kala" }; - */ - } - } + public static void Main(string[] args) + { + /* + muuttuvaMerkkijono = new + muuttuvaMerkkijono.Append("Tämä on jokin merkkijono, jota pystyy muokkaamaan"); + + merkkijono = "Tämä on tavallinen merkkijono"; + + merkki = merkkijono[0]; + + kokonaisLuku = 4; + + jakoJaannos = kokonaisLuku % 2; + + osaMaara = kokonaisLuku / 3; + + kokonaisLukuTaulukko = new { kokonaisLuku, 2, 4, 6 }; + + merkkijonoTaulukko = new { "kissa", "koira", "kala" }; + */ + } } + diff --git a/demopohjat/demo11/Robot/Robot.cs b/demopohjat/demo11/Robot/Robot.cs index 1cf6061b2598073c5e8c71889a12e8ffdc5b15b1..4985fd2ef2990f00c13ca17f3d250d1e4a505724 100644 --- a/demopohjat/demo11/Robot/Robot.cs +++ b/demopohjat/demo11/Robot/Robot.cs @@ -13,6 +13,7 @@ public class Robot /// </summary> public static void Main() { + // ReSharper disable once UnusedVariable RobotCommander rc = new RobotCommander(); } diff --git a/demopohjat/demo11/demo11.sln b/demopohjat/demo11/demo11.sln index ff0c90f87418b672587830f43440e14034a7de57..dd0bf9727be8b1c16b42238ef45e0c9927fca8ba 100644 --- a/demopohjat/demo11/demo11.sln +++ b/demopohjat/demo11/demo11.sln @@ -11,9 +11,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PPTeht1", "PPTeht1\PPTeht1. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PPTeht2b", "PPTeht2b\PPTeht2b.csproj", "{40C9CE62-8683-47DA-B9F9-5B575A72E194}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PPTeht2d", "PPTeht2c\PPTeht2d.csproj", "{77516ECA-8C05-4624-ABA0-3D4616E0D95B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PPTeht2Test", "PPTeht2Test\PPTeht2Test.csproj", "{CE612254-98E0-482D-B1EB-C938CC2E4ED0}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PPTeht2d", "PPTeht2d\PPTeht2d.csproj", "{77516ECA-8C05-4624-ABA0-3D4616E0D95B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -41,10 +39,6 @@ Global {77516ECA-8C05-4624-ABA0-3D4616E0D95B}.Debug|Any CPU.Build.0 = Debug|Any CPU {77516ECA-8C05-4624-ABA0-3D4616E0D95B}.Release|Any CPU.ActiveCfg = Release|Any CPU {77516ECA-8C05-4624-ABA0-3D4616E0D95B}.Release|Any CPU.Build.0 = Release|Any CPU - {CE612254-98E0-482D-B1EB-C938CC2E4ED0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CE612254-98E0-482D-B1EB-C938CC2E4ED0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CE612254-98E0-482D-B1EB-C938CC2E4ED0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CE612254-98E0-482D-B1EB-C938CC2E4ED0}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/demopohjat/demo9/Kuva/Ohjelma.cs b/demopohjat/demo9/Kuva/Ohjelma.cs index ae98e3bc9b917311d0b9ae7694f69075ba990c33..33e9e61555163f6489f2c7b4dd91d401808ea942 100644 --- a/demopohjat/demo9/Kuva/Ohjelma.cs +++ b/demopohjat/demo9/Kuva/Ohjelma.cs @@ -1,8 +1,4 @@ -#region Using Statements using System; -using System.Collections.Generic; -using System.Linq; -#endregion namespace Demo9; @@ -15,9 +11,9 @@ public static class Program /// The main entry point for the application. /// </summary> [STAThread] - static void Main() + public static void Main() { - using (var game = new Demo9.Kuva()) - game.Run(); + using var game = new Demo9.Kuva(); + game.Run(); } } diff --git a/demopohjat/demo9/Palapeli/Ohjelma.cs b/demopohjat/demo9/Palapeli/Ohjelma.cs index 608b929658b580d28cb0ff0bd500826f8d6c729a..0ef448c9b39ea51ca7241800b1e15fe9f94ba381 100644 --- a/demopohjat/demo9/Palapeli/Ohjelma.cs +++ b/demopohjat/demo9/Palapeli/Ohjelma.cs @@ -1,10 +1,4 @@ -#region Using Statements using System; -using System.Collections.Generic; -using System.Linq; -#endregion - -namespace Demo9; /// <summary> /// The main class. @@ -15,9 +9,9 @@ public static class Program /// The main entry point for the application. /// </summary> [STAThread] - static void Main() + public static void Main() { - using (var game = new Demo9.Palapeli()) - game.Run(); + using var game = new Demo9.Palapeli(); + game.Run(); } } diff --git a/demopohjat/demo9/PortaatYlos/Ohjelma.cs b/demopohjat/demo9/PortaatYlos/Ohjelma.cs index 9cb7e355f5dc848556462b323ca7bba1e1af9fa4..499a9c55cc1901eabae04232b9f3c7ad752de081 100644 --- a/demopohjat/demo9/PortaatYlos/Ohjelma.cs +++ b/demopohjat/demo9/PortaatYlos/Ohjelma.cs @@ -1,26 +1,18 @@ -#region Using Statements +using System; -using System; -using System.Collections.Generic; -using System.Linq; - -#endregion - -namespace PortaatYlos +namespace PortaatYlos; +/// <summary> +/// The main class. +/// </summary> +public static class Program { /// <summary> - /// The main class. + /// The main entry point for the application. /// </summary> - public static class Program + [STAThread] + public static void Main() { - /// <summary> - /// The main entry point for the application. - /// </summary> - [STAThread] - static void Main() - { - using var game = new PortaatYlos(); - game.Run(); - } + using var game = new PortaatYlos(); + game.Run(); } -} \ No newline at end of file +} diff --git a/demopohjat/demo9/PortaatYlosAlas/Ohjelma.cs b/demopohjat/demo9/PortaatYlosAlas/Ohjelma.cs index bae2f305a41554368686b73e08a7b7586ca38567..dbaf293328a367b93478249987b9570881edb84e 100644 --- a/demopohjat/demo9/PortaatYlosAlas/Ohjelma.cs +++ b/demopohjat/demo9/PortaatYlosAlas/Ohjelma.cs @@ -1,26 +1,18 @@ -#region Using Statements +using System; -using System; -using System.Collections.Generic; -using System.Linq; - -#endregion - -namespace PortaatYlosAlas +namespace PortaatYlosAlas; +/// <summary> +/// The main class. +/// </summary> +public static class Program { /// <summary> - /// The main class. + /// The main entry point for the application. /// </summary> - public static class Program + [STAThread] + public static void Main() { - /// <summary> - /// The main entry point for the application. - /// </summary> - [STAThread] - static void Main() - { - using var game = new PortaatYlosAlas(); - game.Run(); - } + using var game = new PortaatYlosAlas(); + game.Run(); } -} \ No newline at end of file +} diff --git a/mallit/Konsolimalleja/.idea/.idea.Konsolimalleja/.idea/.gitignore b/mallit/Konsolimalleja/.idea/.idea.Konsolimalleja/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..b65a01dcbc10f0ad67e60596002626151d77329b --- /dev/null +++ b/mallit/Konsolimalleja/.idea/.idea.Konsolimalleja/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/modules.xml +/contentModel.xml +/projectSettingsUpdater.xml +/.idea.Konsolimalleja.iml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/mallit/Konsolimalleja/.idea/.idea.Konsolimalleja/.idea/encodings.xml b/mallit/Konsolimalleja/.idea/.idea.Konsolimalleja/.idea/encodings.xml new file mode 100644 index 0000000000000000000000000000000000000000..df87cf951fb4858ab7a76b68dd479c98b2df2404 --- /dev/null +++ b/mallit/Konsolimalleja/.idea/.idea.Konsolimalleja/.idea/encodings.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" /> +</project> \ No newline at end of file diff --git a/mallit/Konsolimalleja/.idea/.idea.Konsolimalleja/.idea/indexLayout.xml b/mallit/Konsolimalleja/.idea/.idea.Konsolimalleja/.idea/indexLayout.xml new file mode 100644 index 0000000000000000000000000000000000000000..7b08163cebc50fb3e777eea4881b68fcebc10590 --- /dev/null +++ b/mallit/Konsolimalleja/.idea/.idea.Konsolimalleja/.idea/indexLayout.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="UserContentModel"> + <attachedFolders /> + <explicitIncludes /> + <explicitExcludes /> + </component> +</project> \ No newline at end of file diff --git a/mallit/Konsolimalleja/.idea/.idea.Konsolimalleja/.idea/vcs.xml b/mallit/Konsolimalleja/.idea/.idea.Konsolimalleja/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..b2bdec2d71b6a5ce4ae49efc37516809c50e4d5e --- /dev/null +++ b/mallit/Konsolimalleja/.idea/.idea.Konsolimalleja/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$/../.." vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/mallit/Konsolimalleja/KnapsackProblem/KnapsackProblem.cs b/mallit/Konsolimalleja/KnapsackProblem/KnapsackProblem.cs new file mode 100644 index 0000000000000000000000000000000000000000..eb2b3c61d297605d92c2a94c5ee06a5ce7a3e405 --- /dev/null +++ b/mallit/Konsolimalleja/KnapsackProblem/KnapsackProblem.cs @@ -0,0 +1,142 @@ +using System; +using System.Collections.Generic; + +/// @author vesal +/// @version 04.11.2023 +/// <summary> +/// Knapsack problem. See +/// - https://en.wikipedia.org/wiki/Knapsack_problem +/// - https://www.youtube.com/watch?v=hagBB17_hvg +/// - https://www.youtube.com/watch?v=cJ21moQpofY +/// TODO: Implement dynamic version +/// </summary> +public class KnapsackProblem +{ + public record struct Item(string name, int weight, int value); + + + /// <summary> + /// Try functions + /// </summary> + public static void Main() + { + Item[] items = { + new Item("micro", 8, 50), + new Item("drone", 2, 150), + new Item("monitor", 6, 210), + new Item("kettle", 1, 30) + }; + + + (long bestValue, List<Item> used) = KnapsackBruteForce(items, 10); + Console.Write($"Best value {bestValue}: "); + foreach (Item item in used) Console.Write($"{item.name} {item.weight} kg, "); + + (bestValue, used) = KnapsackDynamic(items, 10); + Console.Write($"Best value {bestValue}: "); + foreach (Item item in used) Console.Write($"{item.name} {item.weight} kg, "); + } + + + // ReSharper disable InvalidXmlDocComment + /// <summary> + /// Solve Knapsack 0/1 problem with brute force. + /// O(n 2^n)), max 64 items. + /// </summary> + /// <param name="items">Items to fit</param> + /// <param name="maxCapacity">capacity of knapsack</param> + /// <returns>(bestValue, list of used items)</returns> + /// <example> + /// <pre name="test"> + /// #EQUALSMARKER2="==>" + /// #import System.Linq + /// Item[] items = { + /// new Item("micro", 8, 50), + /// new Item("drone", 2, 150), + /// new Item("monitor", 6, 210), + /// new Item("kettle", 1, 30) + /// }; + /// + /// (long bestValue, List<Item> used) = KnapsackDynamic(items, 10); + /// bestValue === 390; + /// used.Select(item => item.name) =J= "drone, monitor, kettle"; + /// (bestValue, used) = KnapsackDynamic(items, 8); + /// bestValue === 360; + /// used.Select(item => item.name) =J= "drone, monitor"; + /// (bestValue, used) = KnapsackDynamic(items, 3); + /// bestValue === 180; + /// used.Select(item => item.name) =J= "drone, kettle"; + /// </pre> + /// </example> + public static (long, List<Item>) KnapsackDynamic(Item[] items, int maxCapacity) + { + // TODO: toteuta + List<Item> used = new List<Item>(); + return (0, used); + } + + + // ReSharper disable InvalidXmlDocComment + /// <summary> + /// Solve Knapsack 0/1 problem with brute force. + /// O(n 2^n)), max 64 items. + /// </summary> + /// <param name="items">Items to fit</param> + /// <param name="maxCapacity">capacity of knapsack</param> + /// <returns>(bestValue, list of used items)</returns> + /// <example> + /// <pre name="test"> + /// #EQUALSMARKER2="==>" + /// #import System.Linq + /// Item[] items = { + /// new Item("micro", 8, 50), + /// new Item("drone", 2, 150), + /// new Item("monitor", 6, 210), + /// new Item("kettle", 1, 30) + /// }; + /// + /// (long bestValue, List<Item> used) = KnapsackBruteForce(items, 10); + /// bestValue === 390; + /// used.Select(item => item.name) =J= "drone, monitor, kettle"; + /// (bestValue, used) = KnapsackBruteForce(items, 8); + /// bestValue === 360; + /// used.Select(item => item.name) =J= "drone, monitor"; + /// (bestValue, used) = KnapsackBruteForce(items, 3); + /// bestValue === 180; + /// used.Select(item => item.name) =J= "drone, kettle"; + /// </pre> + /// </example> + public static (long, List<Item>) KnapsackBruteForce(Item[] items, int maxCapacity) + { + int n = items.Length; + uint nMax = (uint)Math.Pow(2, n); + long bestValue = 0; + ulong bestItems = 0; + + for (ulong itemsMask = 1; itemsMask < nMax; itemsMask++) + { + ulong mask = 1; + long sumWeights = 0, sumValues = 0; + for (int i = 0; i < n && mask <= itemsMask; i++, mask <<=1) + { + if ((itemsMask & mask) == 0L) continue; + sumWeights += items[i].weight; + if (sumWeights > maxCapacity) break; + sumValues += items[i].value; + } + + if (sumWeights > maxCapacity || bestValue >= sumValues) continue; + bestValue = sumValues; + bestItems = itemsMask; + } + + List<Item> used = new List<Item>(); + ulong m = 1; + for (int i = 0; i < n; i++, m <<= 1) if ((bestItems & m) != 0) used.Add(items[i]); + + return (bestValue, used); + } + +} + + diff --git a/mallit/Konsolimalleja/KnapsackProblem/KnapsackProblem.csproj b/mallit/Konsolimalleja/KnapsackProblem/KnapsackProblem.csproj new file mode 100644 index 0000000000000000000000000000000000000000..df22a1ba07d539b07cf0adbaa6457daadeb433db --- /dev/null +++ b/mallit/Konsolimalleja/KnapsackProblem/KnapsackProblem.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>net7.0</TargetFramework> + <ExternalConsole>true</ExternalConsole> + </PropertyGroup> + +</Project> diff --git a/mallit/Konsolimalleja/KnapsackProblem/comtest.ini b/mallit/Konsolimalleja/KnapsackProblem/comtest.ini new file mode 100644 index 0000000000000000000000000000000000000000..19ec9ee75af614f94302eea940277535a421e598 --- /dev/null +++ b/mallit/Konsolimalleja/KnapsackProblem/comtest.ini @@ -0,0 +1 @@ +#EQUALSMARKER2="==>" \ No newline at end of file diff --git a/mallit/Konsolimalleja/KnapsackProblemTest/KnapsackProblemTest.cs b/mallit/Konsolimalleja/KnapsackProblemTest/KnapsackProblemTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..652af52673840341554115f6e49697787029c30f --- /dev/null +++ b/mallit/Konsolimalleja/KnapsackProblemTest/KnapsackProblemTest.cs @@ -0,0 +1,32 @@ +// ReSharper disable all +using System; +using System.Collections.Generic; +using NUnit.Framework; +using static KnapsackProblem; +using System.Linq; + + [TestFixture] + [DefaultFloatingPointTolerance(0.000001)] + public class TestKnapsackProblem + { + [Test] + public void Teststatic47() + { + Item[] items = { + new Item("micro", 8, 50), + new Item("drone", 2, 150), + new Item("monitor", 6, 210), + new Item("kettle", 1, 30) + }; + (long bestValue, List<Item> used) = KnapsackBruteForce(items, 10); + Assert.AreEqual( 390, bestValue , "in method static, line 58"); + Assert.AreEqual(( "drone, monitor, kettle").ToString(), String.Join(", ", used.Select(item => item.name) ), "in method static, line 59"); + (bestValue, used) = KnapsackBruteForce(items, 8); + Assert.AreEqual( 360, bestValue , "in method static, line 61"); + Assert.AreEqual(( "drone, monitor").ToString(), String.Join(", ", used.Select(item => item.name) ), "in method static, line 62"); + (bestValue, used) = KnapsackBruteForce(items, 3); + Assert.AreEqual( 180, bestValue , "in method static, line 64"); + Assert.AreEqual(( "drone, kettle").ToString(), String.Join(", ", used.Select(item => item.name) ), "in method static, line 65"); + } + } + diff --git a/mallit/Konsolimalleja/KnapsackProblemTest/KnapsackProblemTest.csproj b/mallit/Konsolimalleja/KnapsackProblemTest/KnapsackProblemTest.csproj new file mode 100644 index 0000000000000000000000000000000000000000..213a06aec2843b4c21b4a515e394283f97c6cc73 --- /dev/null +++ b/mallit/Konsolimalleja/KnapsackProblemTest/KnapsackProblemTest.csproj @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFramework>net7.0</TargetFramework> + <IsPackable>false</IsPackable> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="NUnit" Version="3.13.1"/> + <PackageReference Include="NUnit3TestAdapter" Version="3.17.0"/> + <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3"/> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\KnapsackProblem\KnapsackProblem.csproj"/> + </ItemGroup> +</Project> diff --git a/mallit/Konsolimalleja/Konsolimalleja.sln b/mallit/Konsolimalleja/Konsolimalleja.sln new file mode 100644 index 0000000000000000000000000000000000000000..58d68e6d8854ae8ba2b85a5589454ccce7d7d76b --- /dev/null +++ b/mallit/Konsolimalleja/Konsolimalleja.sln @@ -0,0 +1,23 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 + +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KnapsackProblem", "KnapsackProblem\KnapsackProblem.csproj", "{41029A20-BE21-4E40-AF2F-E321BEB16B68}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KnapsackProblemTest", "KnapsackProblemTest\KnapsackProblemTest.csproj", "{522FBF6A-58AD-4B3D-8E86-D5BAA27A0EE8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {41029A20-BE21-4E40-AF2F-E321BEB16B68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41029A20-BE21-4E40-AF2F-E321BEB16B68}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41029A20-BE21-4E40-AF2F-E321BEB16B68}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41029A20-BE21-4E40-AF2F-E321BEB16B68}.Release|Any CPU.Build.0 = Release|Any CPU + {522FBF6A-58AD-4B3D-8E86-D5BAA27A0EE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {522FBF6A-58AD-4B3D-8E86-D5BAA27A0EE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {522FBF6A-58AD-4B3D-8E86-D5BAA27A0EE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {522FBF6A-58AD-4B3D-8E86-D5BAA27A0EE8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/mallit/Konsolimalleja/Konsolimalleja.sln.ctbackup b/mallit/Konsolimalleja/Konsolimalleja.sln.ctbackup new file mode 100644 index 0000000000000000000000000000000000000000..c399d9d80fe62d977b41dcb27b5890773de1d66f --- /dev/null +++ b/mallit/Konsolimalleja/Konsolimalleja.sln.ctbackup @@ -0,0 +1,16 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KnapsackProblem", "KnapsackProblem\KnapsackProblem.csproj", "{41029A20-BE21-4E40-AF2F-E321BEB16B68}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {41029A20-BE21-4E40-AF2F-E321BEB16B68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41029A20-BE21-4E40-AF2F-E321BEB16B68}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41029A20-BE21-4E40-AF2F-E321BEB16B68}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41029A20-BE21-4E40-AF2F-E321BEB16B68}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal