C# :: Aufgabe #291
4 Lösungen
Angelsächsische Maße umrechnen
Anfänger - C#
von DragStar
- 23.03.2020 um 09:41 Uhr
Die angelsächsischen Maße sind ja manchmal etwas seltsam. Schreiben Sie ein Programm, welches nach einer Menüauswahl:
1: inch, 2: foot, 3: yard, 4: mile
und der nachfolgenden Eingabe eines Maßes, dieses nach folgender Tabelle in Meter umrechnet:
inch 0,0254 m
foot 0,3048 m
yard 0,9144 m
mile 1609,34 m
1: inch, 2: foot, 3: yard, 4: mile
und der nachfolgenden Eingabe eines Maßes, dieses nach folgender Tabelle in Meter umrechnet:
inch 0,0254 m
foot 0,3048 m
yard 0,9144 m
mile 1609,34 m
Lösungen:
NET Core 3.x
Lösung 1 - von angelsächsisch in Meter:
C#-Code
Lösung 1 - von angelsächsisch in Meter:
using System;
using System.Collections.Generic;
using System.Linq;
namespace CS_Aufgabe_291_Angelsaechsische_M2
{
class Program
{
public enum F_Lengths
{
inch = 1, foot, yard, mile
}
static void Main(string[] args)
{
var result = 0.0;
var length = 0.0;
var f_length = 0;
var lst = new List<(F_Lengths f, double v)>() { (F_Lengths.inch, 0.0254), (F_Lengths.foot, 0.3048), (F_Lengths.yard, 0.9144), (F_Lengths.mile, 1609.34) };
while (true)
{
Console.Write("Bitte Wert für Ausgangslänge eingeben: ");
_ = double.TryParse(Console.ReadLine(), out length);
Console.Write("\nBitte Ausgangslänge (1-Inch; 2-Foot; 3-Yard; 4-Mile) wählen: ");
_ = int.TryParse(Console.ReadLine(), out f_length);
if (length == 0 || f_length < 1 || f_length > 4)
{
Console.WriteLine("\nEingaben waren nicht korrekt:\n");
continue;
}
break;
}
result = lst.Where(x => (int)x.f == f_length).Select(x => x.v).FirstOrDefault() * length;
Console.WriteLine($"\n{result:0.0000} m");
}
}
}
NET Core 3.x
Lösung 2 - von Meter in angelsächsisch:
C#-Code
Lösung 2 - von Meter in angelsächsisch:
using System;
using System.Collections.Generic;
using System.Linq;
namespace CS_Aufgabe_291_Angelsaechsische_M
{
class Program
{
public enum F_Lengths
{
inch = 1, foot, yard, mile
}
static void Main(string[] args)
{
var result = 0.0;
var length = 0.0;
var f_length = 0;
var lst = new List<(F_Lengths f, double v)>() { (F_Lengths.inch, 0.0254), (F_Lengths.foot, 0.3048), (F_Lengths.yard, 0.9144), (F_Lengths.mile, 1609.34) };
while (true)
{
Console.Write("Bitte Länge in Meter eingeben: ");
_ = double.TryParse(Console.ReadLine(), out length);
Console.Write("\nBitte Ziellänge (1-Inch; 2-Foot; 3-Yard; 4-Mile) eingeben: ");
_ = int.TryParse(Console.ReadLine(), out f_length);
if (length == 0 || f_length < 1 || f_length > 4)
{
Console.WriteLine("\nEingaben waren nicht korrekt:\n");
continue;
}
break;
}
result = length / lst.Where(x => (int)x.f == f_length).Select(x => x.v).FirstOrDefault();
Console.WriteLine($"\n{result:0.00} {Enum.GetName(typeof(F_Lengths), f_length)}");
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Übungsaufgaben_SCA___Aufgabe_9
{
class Program
{ /*Die angelsächsischen Maße sind ja manchmal etwas seltsam. Schreiben Sie ein Programm, welches nach einer Menüauswahl:
1: inch, 2: foot, 3: yard, 4: mile
und der nachfolgenden Eingabe eines Maßes, dieses nach folgender Tabelle in Meter umrechnet:
inch 0,0254 m
foot 0,3048 m
yard 0,9144 m
mile 1609,34 m*/
static void Main(string[] args)
{
double inch = 0.0254, foot = 0.3048, yard = 0.9144, mile = 1609.34, auswahl, eingabe, meter;
Console.WriteLine("1 - inch");
Console.WriteLine("2 - foot");
Console.WriteLine("3 - yard");
Console.WriteLine("4 - mile");
Console.Write("\nBitte wählen Sie eine Maßeinheit, die Sie in Meter umrechnen wollen: ");
auswahl = Convert.ToDouble(Console.ReadLine());
switch (auswahl)
{
case 1:
Console.Write("\nWieviele inches wollen Sie in Meter umrechnen: ");
eingabe = Convert.ToDouble(Console.ReadLine());
meter = Math.Round((eingabe * inch), 3);
Console.WriteLine("\n" + eingabe + " inches sind " + meter + " Meter.");
break;
case 2:
Console.Write("\nWieviele foot wollen Sie in Meter umrechnen: ");
eingabe = Convert.ToDouble(Console.ReadLine());
meter = Math.Round((eingabe * foot), 3);
Console.WriteLine("\n" + eingabe + " foot sind " + meter + " Meter.");
break;
case 3:
Console.Write("\nWieviele yards wollen Sie in Meter umrechnen: ");
eingabe = Convert.ToDouble(Console.ReadLine());
meter = Math.Round((eingabe * yard), 3);
Console.WriteLine("\n" + eingabe + " yards sind " + meter + " Meter.");
break;
case 4:
Console.Write("\nWieviele miles wollen Sie in Meter umrechnen: ");
eingabe = Convert.ToDouble(Console.ReadLine());
meter = Math.Round((eingabe * mile), 3);
Console.WriteLine("\n" + eingabe + "miles sind " + meter + " Meter.");
break;
String.Format("#,0.##");
default:
break;
}
Console.ReadKey();
}
}
}
using System;
namespace Maße
{
class Program
{
static void Main(string[] args)
{
double inch = 0.0254, foot = 0.3048, yard = 0.9144, mile = 1609.34;
Console.WriteLine("Wählen Sie bitte aus: 1: inch, 2: foot, 3: yard, 4: mile");
string input = Console.ReadLine();
Console.WriteLine("Geben Sie die Meter Anzahl ein welche Sie umrechnen möchten: ");
string meter = Console.ReadLine();
switch (input)
{
case "1":
Console.WriteLine(double.Parse(meter) / inch + " inch");
break;
case "2":
Console.WriteLine(double.Parse(meter) / foot + " foot");
break;
case "3":
Console.WriteLine(double.Parse(meter) / yard + " yard");
break;
case "4":
Console.WriteLine(double.Parse(meter) / mile+" miles");
break;
}
}
}
}
