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
C#-Code
Sehr gute Aufgabe um Tupel auszuprobieren.
Schöne Grüsse
Pasal
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);
}
}
}
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
C#-Code
Neuerung in C# 9.x: Top-Level-Anweisung
https://docs.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-9
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);
}
