C# :: Aufgabe #328
3 Lösungen
Differenz(en) von Eingabewerten
Fortgeschrittener - C#
von JKooP
- 04.10.2020 um 12:26 Uhr
Schreibe eine Methode/Funktion, die die maximale bzw. minimale Differenz von Eingabewerten ermittelt.
z.B. f(3, -2, 18, -1, 50)
Min: 1, da Absolut(-2 - -1) = 1
Max: 52, da Absolut(50 - -2) = 52
Viel Spaß
z.B. f(3, -2, 18, -1, 50)
Min: 1, da Absolut(-2 - -1) = 1
Max: 52, da Absolut(50 - -2) = 52
Viel Spaß
Lösungen:
Hallo JKooP
Sehr gute Aufgabe um Tupel auszuprobieren.
Schöne Grüsse
Pasal
Sehr gute Aufgabe um Tupel auszuprobieren.
Schöne Grüsse
Pasal
C#-Code
using System; using System.Collections.Generic; using System.Linq; namespace DifferenzVonZahlen { class Program { static void Main(string[] args) { Console.WriteLine("Differenz(en) von Eingabewerten"); var exampleNumbers = new List<int> {3, -2, 18, -1, 50}; Console.WriteLine(MinMaxDifference(exampleNumbers)); } private static (int min, int max) MinMaxDifference(List<int> exampleNumbers) { var differenceList = ( from number1 in exampleNumbers from number2 in exampleNumbers where number1 != number2 select Math.Abs(number1 - number2)).ToList(); var min = differenceList.Min(difference => difference); var max = differenceList.Max(difference => difference); return (min, max); } } }
C#-Code
using System; using System.Collections.Generic; namespace Aufgabe_328_Differenzieren_von_Eingabewerten { internal class Program { private static void Main(string[] args) { //globale Variablen List<int> meineListe = new List<int>(); int länge; int min; int max; Console.WriteLine("Dieses Programm ermittelt die minimale und maximale Differenz von eingegebenen Zahlen!\n\n"); Eingabe(); Verarbeiten(); Ausgabe(länge); //Methoden void Eingabe() { int Eingabe; string weiter = "ja"; do { Console.Write("Bitte geben Sie eine Zahl ein: "); try { Eingabe = Convert.ToInt32(Console.ReadLine()); meineListe.Add(Eingabe); } catch { weiter = "nein"; } } while (weiter != "nein"); } void Verarbeiten() { meineListe.Sort(); min = meineListe[1] - meineListe[0]; länge = meineListe.Count; max = meineListe[länge - 1] - meineListe[0]; } void Ausgabe(int n) { Console.WriteLine("\n"); Console.WriteLine("Ihre eingegebenen Zahlen waren:"); for (int i = 0; i < n; i++) { Console.WriteLine("Zahl: " + meineListe[i]); } Console.WriteLine("\n"); Console.WriteLine("Minimum beträgt: " + min); Console.WriteLine("Maximum beträgt: " + max); } } } }
NET 5.x; C# 9.x
Neuerung in C# 9.x: Top-Level-Anweisung
https://docs.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-9
Neuerung in C# 9.x: Top-Level-Anweisung
https://docs.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-9
C#-Code
using System; using System.Linq; using static System.Math; var (max, min) = Difference(4, -2.1, 22.4, -1, 55); Console.WriteLine($"Max: {max:F2} - Min: {min:F2}"); static (double max, double min) Difference(params double[] p) { Array.Sort(p); double min = 0, max = 0; if (p.Length > 1) max = Abs(p.Max() - p.Min()); if (p.Length > 2) min = Abs(p[1] - p.Min()); return (max, min); }