From b94d1fa552469eb87f5a0569484e89d13b19bd70 Mon Sep 17 00:00:00 2001 From: Edgar Runnman Date: Fri, 28 Aug 2020 10:11:33 +0200 Subject: [PATCH 1/6] v1 skapad --- Session01/Session01.sln | 6 +++++ .../Session03/Session03Excercise02/Program.cs | 22 +++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/Session01/Session01.sln b/Session01/Session01.sln index 13f9652..b14edb7 100644 --- a/Session01/Session01.sln +++ b/Session01/Session01.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 16.0.30406.217 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Session01-Example", "Session01-Example\Session01-Example.csproj", "{2E6C3DA5-47A0-4EE6-86E9-EC9977AA7EDC}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Session03Excercise02", "..\Session03\Session03\Session03Excercise02\Session03Excercise02.csproj", "{37E89230-3D50-4984-8580-29DD96390236}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,6 +17,10 @@ Global {2E6C3DA5-47A0-4EE6-86E9-EC9977AA7EDC}.Debug|Any CPU.Build.0 = Debug|Any CPU {2E6C3DA5-47A0-4EE6-86E9-EC9977AA7EDC}.Release|Any CPU.ActiveCfg = Release|Any CPU {2E6C3DA5-47A0-4EE6-86E9-EC9977AA7EDC}.Release|Any CPU.Build.0 = Release|Any CPU + {37E89230-3D50-4984-8580-29DD96390236}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37E89230-3D50-4984-8580-29DD96390236}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37E89230-3D50-4984-8580-29DD96390236}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37E89230-3D50-4984-8580-29DD96390236}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Session03/Session03/Session03Excercise02/Program.cs b/Session03/Session03/Session03Excercise02/Program.cs index 50a66f8..7614899 100644 --- a/Session03/Session03/Session03Excercise02/Program.cs +++ b/Session03/Session03/Session03Excercise02/Program.cs @@ -8,13 +8,27 @@ static void Main(string[] args) { Console.WriteLine("Ange ett antal siffror, separerat med kommatecken."); var input = Console.ReadLine(); - var inputArray = input.Split(new [] { ',' }, StringSplitOptions.RemoveEmptyEntries); - + var inputArray = input.Split(",", StringSplitOptions.RemoveEmptyEntries); + var sum = 0m; + int highestValue = Convert.ToInt32(inputArray[0]); + int lowestValue = Convert.ToInt32(inputArray[0]); foreach (var number in inputArray) { - Console.WriteLine("Värdet är " + number); - } + int numberInteger = Convert.ToInt32(number); + sum += numberInteger; + foreach (var number2 in inputArray) + { + int numberInteger2 = Convert.ToInt32(number2); + if ((numberInteger > numberInteger2) & (numberInteger > highestValue)) highestValue = numberInteger; + if ((numberInteger < numberInteger2) & (numberInteger < lowestValue)) lowestValue = numberInteger; + } + } + var average = sum / inputArray.Length; + Console.WriteLine("medelvärde är: " + average); + Console.WriteLine("högsta värde är: " + highestValue); + Console.WriteLine("lägsta värde är: " + lowestValue); + Console.ReadKey(); } } } From df9edeaaaa97c842788575bad1fa53ae75aa3540 Mon Sep 17 00:00:00 2001 From: Edgar Runnman Date: Fri, 28 Aug 2020 10:46:12 +0200 Subject: [PATCH 2/6] version2 --- .../Session03/Session03Excercise02/Program.cs | 38 ++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/Session03/Session03/Session03Excercise02/Program.cs b/Session03/Session03/Session03Excercise02/Program.cs index 7614899..a2600b7 100644 --- a/Session03/Session03/Session03Excercise02/Program.cs +++ b/Session03/Session03/Session03Excercise02/Program.cs @@ -7,24 +7,36 @@ class Program static void Main(string[] args) { Console.WriteLine("Ange ett antal siffror, separerat med kommatecken."); - var input = Console.ReadLine(); - var inputArray = input.Split(",", StringSplitOptions.RemoveEmptyEntries); - var sum = 0m; - int highestValue = Convert.ToInt32(inputArray[0]); - int lowestValue = Convert.ToInt32(inputArray[0]); - foreach (var number in inputArray) + string input = Console.ReadLine(); + string[] inputArray = input.Split(",", StringSplitOptions.RemoveEmptyEntries); + double sum = 0; + + double[] numberArray = new double[inputArray.Length]; + for (int i = 0; i < inputArray.Length; i++) { - int numberInteger = Convert.ToInt32(number); - sum += numberInteger; + try + { + numberArray[i] = Convert.ToDouble(inputArray[i]); + } + catch (Exception) + { + numberArray[i] = 0; + } + } - foreach (var number2 in inputArray) + double highestValue = numberArray[0]; + double lowestValue = numberArray[0]; + + foreach (var number in numberArray) + { + sum += number; + foreach(var number2 in numberArray) { - int numberInteger2 = Convert.ToInt32(number2); - if ((numberInteger > numberInteger2) & (numberInteger > highestValue)) highestValue = numberInteger; - if ((numberInteger < numberInteger2) & (numberInteger < lowestValue)) lowestValue = numberInteger; + if ((number > number2) & (number > highestValue)) highestValue = number; + if ((number < number2) & (number < lowestValue)) lowestValue = number; } } - var average = sum / inputArray.Length; + double average = sum / inputArray.Length; Console.WriteLine("medelvärde är: " + average); Console.WriteLine("högsta värde är: " + highestValue); Console.WriteLine("lägsta värde är: " + lowestValue); From 728aad60ecbc223f420a984d18854e33a32cfd16 Mon Sep 17 00:00:00 2001 From: Edgar Runnman Date: Fri, 28 Aug 2020 13:06:35 +0200 Subject: [PATCH 3/6] v3 --- .../Session03/Session03Excercise02/Program.cs | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/Session03/Session03/Session03Excercise02/Program.cs b/Session03/Session03/Session03Excercise02/Program.cs index a2600b7..0e8481b 100644 --- a/Session03/Session03/Session03Excercise02/Program.cs +++ b/Session03/Session03/Session03Excercise02/Program.cs @@ -11,29 +11,28 @@ static void Main(string[] args) string[] inputArray = input.Split(",", StringSplitOptions.RemoveEmptyEntries); double sum = 0; - double[] numberArray = new double[inputArray.Length]; + double?[] numberArray = new double?[inputArray.Length]; for (int i = 0; i < inputArray.Length; i++) { - try - { - numberArray[i] = Convert.ToDouble(inputArray[i]); - } - catch (Exception) - { - numberArray[i] = 0; - } + bool parsed = double.TryParse(inputArray[i], out double parsedValue); + if (parsed) numberArray[i] = parsedValue; + else numberArray[i] = null; + } + double highestValue = (double)numberArray[0]; + double lowestValue = (double)numberArray[0]; - double highestValue = numberArray[0]; - double lowestValue = numberArray[0]; foreach (var number in numberArray) { - sum += number; - foreach(var number2 in numberArray) + if (number != null) { - if ((number > number2) & (number > highestValue)) highestValue = number; - if ((number < number2) & (number < lowestValue)) lowestValue = number; + sum += (double)number; + foreach (var number2 in numberArray) + { + if ((number > number2) & (number > highestValue)) highestValue = (double)number; + if ((number < number2) & (number < lowestValue)) lowestValue = (double)number; + } } } double average = sum / inputArray.Length; From 3b97a76af4eb3e998de18acd2a7d1bad793a8b35 Mon Sep 17 00:00:00 2001 From: Sven-Erik Jonsson Date: Fri, 28 Aug 2020 13:08:23 +0200 Subject: [PATCH 4/6] Progress on number app. --- .../Session03/Session03Excercise02/Program.cs | 87 ++++++++++++++++++- 1 file changed, 84 insertions(+), 3 deletions(-) diff --git a/Session03/Session03/Session03Excercise02/Program.cs b/Session03/Session03/Session03Excercise02/Program.cs index 50a66f8..091b827 100644 --- a/Session03/Session03/Session03Excercise02/Program.cs +++ b/Session03/Session03/Session03Excercise02/Program.cs @@ -1,4 +1,6 @@ using System; +using System.Diagnostics; +using System.Globalization; namespace Session03Excercise02 { @@ -8,13 +10,92 @@ static void Main(string[] args) { Console.WriteLine("Ange ett antal siffror, separerat med kommatecken."); var input = Console.ReadLine(); - var inputArray = input.Split(new [] { ',' }, StringSplitOptions.RemoveEmptyEntries); + var inputArray = input.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + double?[] numberArray = new double?[inputArray.Length]; - foreach (var number in inputArray) + //for (int i = 0; i < inputArray.Length; i++) + //{ + // try + // { + // numberArray[i] = Convert.ToDouble(inputArray[i]); + // } + // catch (Exception) + // { + // numberArray[i] = 0; + // } + //} + + for (int i = 0; i < inputArray.Length; i++) + { + NumberStyles numberStyle = NumberStyles.Integer | NumberStyles.Float; + IFormatProvider formatProvider = CultureInfo.InvariantCulture; + + bool parsed = double.TryParse(inputArray[i], numberStyle, formatProvider, out double parsedValue); + + if (parsed == true) + { + numberArray[i] = parsedValue; + } + else + { + numberArray[i] = null; + } + + //numberArray[i] = GetDoubleValue(inputArray[i]); + } + + //foreach (var number in numberArray) + //{ + // Console.WriteLine("Värde: " + number.ToString()); + //} + + //int exceptionStatus = GetExceptionStatus(); + + } + + // Metod som returnerar en siffra baserat på en sträng + static double GetDoubleValue(string input) + { + try + { + var result = int.Parse(input); + + return result; + } + catch (FormatException ex) when (ex.Message.Contains("Input string")) + { + return double.MinValue; + } + catch (Exception ex) + { + return 0; + } + + } + + // Metod som returnerar ett heltal, saknar inparameter + static int GetExceptionStatus() + { + int exceptionResult; + + try { - Console.WriteLine("Värdet är " + number); + exceptionResult = -1; + + throw new Exception("Provocerat fel"); + + return exceptionResult; } + catch (Exception ex) + { + exceptionResult = ex.HResult; + return exceptionResult; + } + finally + { + exceptionResult = int.MaxValue; + } } } } From 0498c063edb21fed74e8dcff704a9371629d5646 Mon Sep 17 00:00:00 2001 From: Edgar Runnman Date: Fri, 28 Aug 2020 13:22:43 +0200 Subject: [PATCH 5/6] v4 --- .../Session03/Session03Excercise02/Program.cs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Session03/Session03/Session03Excercise02/Program.cs b/Session03/Session03/Session03Excercise02/Program.cs index 0e8481b..774c853 100644 --- a/Session03/Session03/Session03Excercise02/Program.cs +++ b/Session03/Session03/Session03Excercise02/Program.cs @@ -8,20 +8,25 @@ static void Main(string[] args) { Console.WriteLine("Ange ett antal siffror, separerat med kommatecken."); string input = Console.ReadLine(); - string[] inputArray = input.Split(",", StringSplitOptions.RemoveEmptyEntries); + string[] inputArray = input.Split(".", StringSplitOptions.RemoveEmptyEntries); double sum = 0; - + double highestValue = 0; + double lowestValue = 0; double?[] numberArray = new double?[inputArray.Length]; for (int i = 0; i < inputArray.Length; i++) { bool parsed = double.TryParse(inputArray[i], out double parsedValue); - if (parsed) numberArray[i] = parsedValue; + + if (parsed) + { + Console.WriteLine(parsedValue); + highestValue = parsedValue; + lowestValue = parsedValue; + numberArray[i] = parsedValue; + } else numberArray[i] = null; } - double highestValue = (double)numberArray[0]; - double lowestValue = (double)numberArray[0]; - foreach (var number in numberArray) { From 52962727041e1d7de5b83735534460bd8209f9e8 Mon Sep 17 00:00:00 2001 From: Edgar Runnman Date: Tue, 1 Sep 2020 11:29:09 +0200 Subject: [PATCH 6/6] progess on NumbersApp --- .../Session03/Session03Excercise02/Program.cs | 75 +++++++++++-------- Session04/Session04/Session04.sln | 55 ++++++++++++++ 2 files changed, 97 insertions(+), 33 deletions(-) create mode 100644 Session04/Session04/Session04.sln diff --git a/Session03/Session03/Session03Excercise02/Program.cs b/Session03/Session03/Session03Excercise02/Program.cs index 7abcdcb..8306bc9 100644 --- a/Session03/Session03/Session03Excercise02/Program.cs +++ b/Session03/Session03/Session03Excercise02/Program.cs @@ -8,48 +8,57 @@ class Program { static void Main(string[] args) { - Console.WriteLine("Ange ett antal siffror, separerat med kommatecken."); - string input = Console.ReadLine(); - string[] inputArray = input.Split(".", StringSplitOptions.RemoveEmptyEntries); - double sum = 0; - double highestValue = 0; - double lowestValue = 0; - double?[] numberArray = new double?[inputArray.Length]; - for (int i = 0; i < inputArray.Length; i++) + // Konvertera det inmatade värdena från strängar till siffror + // Resultatet skall presentera: + // Lägsta värdet + // Högsta värdet + // Medelvärde (snitt) + // Programmet skall vara felhanterat + // Felaktiga värden får inte påverka medelvärde, lägsta eller högsta. + + while (true) { - bool parsed = double.TryParse(inputArray[i], out double parsedValue); + Console.WriteLine("Ange ett antal siffror, separerat med mellanslag."); + string input = Console.ReadLine(); + string[] inputArray = input.Split(" ", StringSplitOptions.RemoveEmptyEntries); + double sum = 0; + double highestValue = 0; + double lowestValue = 0; + int countOfNumbers = 0; + double?[] numberArray = new double?[inputArray.Length]; - if (parsed) - { - Console.WriteLine(parsedValue); - highestValue = parsedValue; - lowestValue = parsedValue; - numberArray[i] = parsedValue; - } - else numberArray[i] = null; + for (int i = 0; i < inputArray.Length; i++) + { + bool parsed = double.TryParse(inputArray[i], out double parsedValue); - } - catch (Exception ex) - { - exceptionResult = ex.HResult; + if (parsed) + { + highestValue = parsedValue; + lowestValue = parsedValue; + numberArray[i] = parsedValue; + countOfNumbers++; + } + else numberArray[i] = null; - foreach (var number in numberArray) - { - if (number != null) + } + + foreach (var number in numberArray) { - sum += (double)number; - foreach (var number2 in numberArray) + if (number != null) { - if ((number > number2) & (number > highestValue)) highestValue = (double)number; - if ((number < number2) & (number < lowestValue)) lowestValue = (double)number; + sum += (double)number; + foreach (var number2 in numberArray) + { + if ((number > number2) && (number > highestValue)) highestValue = (double)number; + if ((number < number2) && (number < lowestValue)) lowestValue = (double)number; + } } } + double average = sum / countOfNumbers; + Console.WriteLine("medelvärde är: " + average); + Console.WriteLine("högsta värde är: " + highestValue); + Console.WriteLine("lägsta värde är: " + lowestValue); } - double average = sum / inputArray.Length; - Console.WriteLine("medelvärde är: " + average); - Console.WriteLine("högsta värde är: " + highestValue); - Console.WriteLine("lägsta värde är: " + lowestValue); - Console.ReadKey(); } } } diff --git a/Session04/Session04/Session04.sln b/Session04/Session04/Session04.sln new file mode 100644 index 0000000..1a08f88 --- /dev/null +++ b/Session04/Session04/Session04.sln @@ -0,0 +1,55 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30406.217 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Session04Example", "Session04Example\Session04Example.csproj", "{1FFA0433-A8DD-4A58-9C7D-9AB66B2DA6DE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Session04Example02Errors", "Session04Example02Errors\Session04Example02Errors.csproj", "{49964154-D027-42B6-82CD-15CD1A0E0D10}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Session04Example03Nullable", "Session04Example03Nullable\Session04Example03Nullable.csproj", "{20610575-7925-4528-B7CB-F4ECA5378418}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Session04Example04", "Session04Example04\Session04Example04.csproj", "{BCC55225-BD2F-4552-9DF5-3409E807B98A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Session04Example05", "Session04Example05\Session04Example05.csproj", "{8031DBA2-9DDF-412C-AC7A-DF61697677D3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Session04Example06", "Session04Example06\Session04Example06.csproj", "{EA07DF5C-4E8F-45E7-A999-3C359F88A961}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1FFA0433-A8DD-4A58-9C7D-9AB66B2DA6DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FFA0433-A8DD-4A58-9C7D-9AB66B2DA6DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FFA0433-A8DD-4A58-9C7D-9AB66B2DA6DE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FFA0433-A8DD-4A58-9C7D-9AB66B2DA6DE}.Release|Any CPU.Build.0 = Release|Any CPU + {49964154-D027-42B6-82CD-15CD1A0E0D10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {49964154-D027-42B6-82CD-15CD1A0E0D10}.Debug|Any CPU.Build.0 = Debug|Any CPU + {49964154-D027-42B6-82CD-15CD1A0E0D10}.Release|Any CPU.ActiveCfg = Release|Any CPU + {49964154-D027-42B6-82CD-15CD1A0E0D10}.Release|Any CPU.Build.0 = Release|Any CPU + {20610575-7925-4528-B7CB-F4ECA5378418}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20610575-7925-4528-B7CB-F4ECA5378418}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20610575-7925-4528-B7CB-F4ECA5378418}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20610575-7925-4528-B7CB-F4ECA5378418}.Release|Any CPU.Build.0 = Release|Any CPU + {BCC55225-BD2F-4552-9DF5-3409E807B98A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BCC55225-BD2F-4552-9DF5-3409E807B98A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCC55225-BD2F-4552-9DF5-3409E807B98A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BCC55225-BD2F-4552-9DF5-3409E807B98A}.Release|Any CPU.Build.0 = Release|Any CPU + {8031DBA2-9DDF-412C-AC7A-DF61697677D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8031DBA2-9DDF-412C-AC7A-DF61697677D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8031DBA2-9DDF-412C-AC7A-DF61697677D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8031DBA2-9DDF-412C-AC7A-DF61697677D3}.Release|Any CPU.Build.0 = Release|Any CPU + {EA07DF5C-4E8F-45E7-A999-3C359F88A961}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA07DF5C-4E8F-45E7-A999-3C359F88A961}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA07DF5C-4E8F-45E7-A999-3C359F88A961}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA07DF5C-4E8F-45E7-A999-3C359F88A961}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {585CA636-84BF-420C-A80D-2091EB2C292F} + EndGlobalSection +EndGlobal