Reorder
This commit is contained in:
50
FurtherExercises/Schulaufgaben/S001_Class.cs
Normal file
50
FurtherExercises/Schulaufgaben/S001_Class.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
//WS2324 -> ITFA_2
|
||||
|
||||
namespace Exercises_C_Sharp.Schulaufgaben
|
||||
{
|
||||
class S001_Class
|
||||
{
|
||||
static List<Garbage> GarbageList = new List<Garbage>();
|
||||
|
||||
public static void Start()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
//Bauen Sie ein kleines Menü, in dem der Anwender aus den unteren drei Methoden auswählen kann
|
||||
//CODE START
|
||||
|
||||
//CODE ENDE
|
||||
}
|
||||
}
|
||||
//Sorgen Sie dafür, dass der Anwender bei dieser Methode ein neues Garbage-Element erstellen kann. Dieses soll dann der Liste hinzugefügt werden.
|
||||
public static void AddNewGarbage()
|
||||
{
|
||||
//CODE START
|
||||
|
||||
//CODE ENDE
|
||||
}
|
||||
//Sorgen Sie hier dafür, dass der Anwender bei einem beliebigen Garbage-Objekt das RemoveDate setzen kann. Sorgen Sie auch dafür, dass ein auf der Konsole falsch eingegebenes Datum nicht zu einem Prorammasturz führt, sondern dass der Benutzer es nochmal eingeben kann.
|
||||
public static void SetRemoveDate(Garbage garbage)
|
||||
{
|
||||
//CODE START
|
||||
|
||||
//CODE ENDE
|
||||
}
|
||||
//Sorgen Sie dafür, dass hier alle Garbage-Objekte angezeigt werden. Wird true übergeben, dann werden auch alle Garbage-Objekte angezeigt, bei denen das RemoveDate nicht null ist. Bei Übergabewert false werden nur Garbage-Elemente ausgegeben, bei denen das RemoveDate null ist.
|
||||
public static void ShowAllGarbage(bool removed = false)
|
||||
{
|
||||
//CODE START
|
||||
|
||||
//CODE ENDE
|
||||
}
|
||||
}
|
||||
class Garbage
|
||||
{
|
||||
public string? Name;
|
||||
public decimal Weight;
|
||||
public GarbageKind Kind;
|
||||
public DateTime? RemoveDate = null;
|
||||
}
|
||||
|
||||
enum GarbageKind { Papiermüll, Restmüll, Sondermüll, Recyclingmüll }
|
||||
}
|
||||
52
FurtherExercises/Schulaufgaben/S002_Class.cs
Normal file
52
FurtherExercises/Schulaufgaben/S002_Class.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
namespace Exercises_C_Sharp.Schulaufgaben
|
||||
{
|
||||
class S002_Class
|
||||
{
|
||||
//1. Im folgenden Code haben sich 4 Fehler eingeschlichen. Fixen Sie diese, sodass das Programm wieder problemlos funktioniert!
|
||||
//2. Ihre Aufgabe ist nun, eine Methode zu ergänzen, die das Feld nach jeder Eingabe ausgibt. Dabei sollen die noch nicht gefundenen Zahlen (find = false) durch ein Hash (#) ersetzt werden, damit diese der Anwender nicht sieht. Löschen Sie immer die vorherige Eingabe von der Konsole.
|
||||
//3. Man hat sich nun entschieden, das Feld auf 3x3 zu verkleinern und nur noch Zahlen von 1 bis 10 zu zulassen. Ändern Sie den Code so ab, dass diese implementiert wird.
|
||||
|
||||
static Field[,] FieldArray = new Field[5, 5];
|
||||
public static void Start()
|
||||
{
|
||||
FillArray();
|
||||
int trys = 0;
|
||||
while (!TestArray())
|
||||
{
|
||||
MakeUserinput();
|
||||
trys++;
|
||||
}
|
||||
Console.WriteLine("Das Spiel ist vorbei.Sie haben {0} Versuche benötigt.");
|
||||
}
|
||||
static void FillArray()
|
||||
{
|
||||
Random rand = new Random();
|
||||
for (int i = 0; i < 5; i++)
|
||||
for (int k = 0; k < 5; k++)
|
||||
FieldArray[i, i] = new Field() { i = rand.Next(0, 101) };
|
||||
}
|
||||
static void MakeUserinput()
|
||||
{
|
||||
Console.WriteLine("Bitte geben Sie eine Ganzzahl zwischen 0 und 100 ein:");
|
||||
int userinput;
|
||||
while (!int.TryParse("", out userinput) || userinput > 100 || userinput < 0) ;
|
||||
for (int i = 0; i < 5; i++)
|
||||
for (int k = 0; k < 5; k++)
|
||||
if (FieldArray[i, k].i == userinput)
|
||||
FieldArray[i, k].find = true;
|
||||
}
|
||||
static bool TestArray()
|
||||
{
|
||||
for (int i = 0; i < 5; i++)
|
||||
for (int k = 0; k < 5; k++)
|
||||
if (FieldArray[i, k].find == false)
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
class Field
|
||||
{
|
||||
public int i;
|
||||
public bool find = false;
|
||||
}
|
||||
}
|
||||
39
FurtherExercises/Schulaufgaben/S003_Tuple.cs
Normal file
39
FurtherExercises/Schulaufgaben/S003_Tuple.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
namespace Exercises_C_Sharp.Schulaufgaben
|
||||
{
|
||||
class S003_Tuple
|
||||
{
|
||||
public static void Start()
|
||||
{
|
||||
while(true)
|
||||
{
|
||||
var el = EditNumber(EditString(AskForUserinput()));
|
||||
Console.Clear();
|
||||
Console.WriteLine("Verwandelter String: " + el.Item1);
|
||||
Console.WriteLine("Verwandelter Integer: " + el.Item2);
|
||||
Console.WriteLine();
|
||||
}
|
||||
}
|
||||
|
||||
//Diese Methode soll den Integer im Tuple verdoppeln, wenn diese ungerade ist und halbieren, wenn diese gerade ist.
|
||||
public static Tuple<string,int> EditNumber(Tuple<string, int> element)
|
||||
{
|
||||
//Code START
|
||||
return element;
|
||||
//Code ENDE
|
||||
}
|
||||
//Diese Methode soll alle Leerzeichen in dem String durch einen Unterstrich ersetzen.
|
||||
public static Tuple<string, int> EditString(Tuple<string, int> element)
|
||||
{
|
||||
//Code START
|
||||
return element;
|
||||
//Code ENDE
|
||||
}
|
||||
//Diese Methode soll dem Nutzer die Möglichkeit geben, einen String und einen Integer einzugeben. Sorgen Sie dafür, dass beide Werte valide sind, also dass der String nicht null und nicht leer ist und dass der Integer wirklich so einer ist.
|
||||
public static Tuple<string, int> AskForUserinput()
|
||||
{
|
||||
//Code START
|
||||
return new Tuple<string, int>("", 0);
|
||||
//Code ENDE
|
||||
}
|
||||
}
|
||||
}
|
||||
54
FurtherExercises/Schulaufgaben/S004_Enum.cs
Normal file
54
FurtherExercises/Schulaufgaben/S004_Enum.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
namespace Exercises_C_Sharp.Schulaufgaben
|
||||
{
|
||||
class S004_Enum
|
||||
{
|
||||
//1. Ein anderer Programmierer hat den folgenden Code geschrieben. Leider haben sich in dem Code 4 Fehler eingeschlichen. Finden und fixen Sie diese!
|
||||
//2. Sie sollen nun diesen Code so erweitern, dass wieder Werte gelöscht werden können. Entscheiden Sie selbst, wie der Anwender einzelne Listenelemente löschen kann und implementieren Sie dies.
|
||||
//3. Jetzt soll der Code so erweitert werden, dass bei 10-maligen Vorkommen von dem Status "Failed" das Programm beendet wird. Implementieren Sie diese Funktion!
|
||||
static List<States> StateList = new List<States>();
|
||||
|
||||
public static void Start()
|
||||
{
|
||||
Console.WriteLine("Programmstart");
|
||||
FirstFill();
|
||||
while (!true)
|
||||
{
|
||||
#pragma warning disable CS0162
|
||||
Console.WriteLine("A -> Werte anzeigen, E -> Neuen Wert erzeugen");
|
||||
if (Console.ReadLine() == "A")
|
||||
{
|
||||
ShowValues();
|
||||
}
|
||||
else if (Console.ReadLine() == "E")
|
||||
{
|
||||
StateList.Add(GetMachineState());
|
||||
}
|
||||
}
|
||||
}
|
||||
static void FirstFill()
|
||||
{
|
||||
for(int i = 0; i < 12; i++)
|
||||
{
|
||||
StateList.Add(GetMachineState());
|
||||
}
|
||||
}
|
||||
static void ShowValues()
|
||||
{
|
||||
int[] countArray = new int[5];
|
||||
foreach (var state in StateList)
|
||||
countArray[(int)state] += 1;
|
||||
}
|
||||
|
||||
static States GetMachineState()
|
||||
{
|
||||
//Zugriff auf die Machine
|
||||
//Hier werden testweise die Werte zufällig erzeugt
|
||||
Random rand = new Random();
|
||||
return (States)rand.Next(0, 5);
|
||||
|
||||
}
|
||||
|
||||
enum States { Super, Good, Okay, Acceptable, Dreadful, Failed}
|
||||
}
|
||||
|
||||
}
|
||||
70
FurtherExercises/Schulaufgaben/S005_Tuple.cs
Normal file
70
FurtherExercises/Schulaufgaben/S005_Tuple.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
namespace Exercises_C_Sharp.Schulaufgaben
|
||||
{
|
||||
class S005_Tuple
|
||||
{
|
||||
static List<Tuple<string,Vals>> ProductList = new();
|
||||
public static void Start()
|
||||
{
|
||||
Console.WriteLine("Willkommen!");
|
||||
//Bauen Sie hier ein kleines Menü Ihrer Wahl ein, indem der User
|
||||
// - Ein neues Produkt hinzufügen kann (-> Methode AddNewProduct)
|
||||
// - Sich die Anzahl der benötigten Trucks anzeigen lassen kann (-> Methode GetAmountOfTrucks)
|
||||
// - Sich unsere Kosten anzeigen lassen kann (-> Methode GetCosts)
|
||||
// - Sich die Kosten für die Kunden anzeigen lassen kann (-> Methode GetCosts)
|
||||
// - Die Liste senden kann (-> Methode SendList)
|
||||
//Das Programm soll in einer Endlosschleife laufen.
|
||||
//Code START
|
||||
|
||||
//Code ENDE
|
||||
}
|
||||
|
||||
|
||||
//In dieser Methode soll der User ein neues Produkt zum Transport anmelden können. Dieser muss den Namen des Transports als String und die Größe als Integer angeben. Dann soll das Element in die ProductList gespeichert werden. Der Integer soll dann wie folgt umgewandelt werden:
|
||||
// <10 -> Tiny
|
||||
// 10 - 50 -> Small
|
||||
// 50 - 100 -> Medium
|
||||
//100 - 1000 -> Big
|
||||
// >1000 -> Oversize
|
||||
static void AddNewProduct()
|
||||
{
|
||||
//Code START
|
||||
|
||||
//Code ENDE
|
||||
}
|
||||
|
||||
//Geben Sie hier die Anzahl der Trucks zurück, welche für die obrige Liste an Produkten verwendet werden muss. Ein Truck kann entweder eine Oversize-Lieferung, vier Big-Lieferungen, fünfzehn Medium-Lieferungen, vierunddreißig Small-Lieferungen oder achtzig Tiny-Lieferung beinhalten. Ein Vermischen ist nicht möglich.
|
||||
static int GetAmountOfTrucks()
|
||||
{
|
||||
//Code START
|
||||
return -1;
|
||||
//Code ENDE
|
||||
}
|
||||
|
||||
//Hier sollen die Gesamtkosten für die Trucks UND die Kosten für den einzelnen Kunden zurück gegeben werden.
|
||||
//Ein Truck kostet durchschnittlich mit Fahrer, Anschaffung, Unterhalt und Benzin 3.485,23 pro Fahrt.
|
||||
//Rechnen Sie die Kosten pro Produkt aus. Es wird kein Unterschied zwischen der Größe gemacht, jedes Produkt kostet gleich viel. Addieren Sie zusätzlich 25% auf diesen Preis drauf. Dabei handelt es sich um unseren Gewinn.
|
||||
static dynamic GetCosts(int amountTrucks)
|
||||
{
|
||||
//Code START
|
||||
return -1;
|
||||
//Code ENDE
|
||||
}
|
||||
|
||||
//Hier wird die Liste geleert und die einzelnen Trucks beauftragt.
|
||||
static void SendList()
|
||||
{
|
||||
//Leeren Sie die Liste ProductList
|
||||
//Code START
|
||||
|
||||
//Code ENDE
|
||||
|
||||
//Hier wird später die Schnittstelle aufgerufen, um die Trucks los zu schicken. Hier müssen Sie nichts mehr programmieren, das übernehmen Ihre Kollegen.
|
||||
//TrucksAPI.SendTrucks();
|
||||
}
|
||||
|
||||
|
||||
//Dieses Enum bezeichnet die Größe der Ladung
|
||||
enum Vals {Tiny, Small, Medium, Big, Oversize}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
namespace Exercises_C_Sharp.Schulaufgaben
|
||||
{
|
||||
//Sie sind ITler bei einer Softwarefirma. Ihre Abteilung hat Ihnen vorgefertigten Code gegeben, den Sie vervollständigen bzw. erweitern sollen. Folgende Aufgaben sollen Sie ausführen:
|
||||
// - Schreiben Sie eine Methode "NormRow", die dafür sorgt, dass in keiner Zeile die selbe Zahl darin steht. Addieren Sie hierfür solange eine 1, bis ein nicht vorhandener Wert in dem Feld steht.
|
||||
// - Erstellen Sie ein neues 5x5 int-Array in der Start-Methode.
|
||||
// - Nutzen Sie die Methode "FillList" um Werte in das int-Array hinein zu schreiben.
|
||||
// - Vertauschen Sie zufällig zwei Werte. Machen Sie den Tausch mit der Methode "ChangeFields".
|
||||
|
||||
class S006_Multidimensionale_Arrays
|
||||
{
|
||||
public static void Start()
|
||||
{
|
||||
//Code START
|
||||
|
||||
//Code ENDE
|
||||
}
|
||||
|
||||
//Hier werden die Werte des Arrays mit den Standardwerten befüllt. Die Standardwerte sind die Multiplikation der Indezes.
|
||||
static int[,] FillList(int[,] field)
|
||||
{
|
||||
for(int i = 0; i < field.GetLength(0); i++)
|
||||
for(int k = 0; k < field.GetLength(1); k++)
|
||||
field[i,k] = i * k;
|
||||
|
||||
return field;
|
||||
}
|
||||
//Hier kann ein User zwei Werte im Array tauschen lassen. Dabei muss das Array und die beiden Koordinaten übergeben werden, die getauscht werden sollen.
|
||||
static int[,] ChangeFields(int[,] arr, (int x, int y) co1, (int x, int y) co2)
|
||||
{
|
||||
if(arr.GetLength(0) > co1.x && arr.GetLength(0) > co2.x && arr.GetLength(1) > co1.y && arr.GetLength(1) > co2.y)
|
||||
{
|
||||
var tem = arr[co1.x, co2.y];
|
||||
arr[co1.x, co1.y] = arr[co2.x, co2.y];
|
||||
arr[co2.x, co2.y] = tem;
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
|
||||
static int[,] SetField(int[,] arr, (int x, int y) field, int value)
|
||||
{
|
||||
if(arr.GetLength(0) > field.x && arr.GetLength(0) > field.y)
|
||||
arr[field.x, field.y] = value;
|
||||
return arr;
|
||||
}
|
||||
|
||||
//Code START
|
||||
|
||||
|
||||
|
||||
//Code ENDE
|
||||
}
|
||||
|
||||
}
|
||||
61
FurtherExercises/Schulaufgaben/S007_Enum.cs
Normal file
61
FurtherExercises/Schulaufgaben/S007_Enum.cs
Normal file
@@ -0,0 +1,61 @@
|
||||
namespace Exercises_C_Sharp.Schulaufgaben
|
||||
{
|
||||
//Sie sind ITler in der Finanzbranche.
|
||||
class S007_Enum
|
||||
{
|
||||
//Schreiben Sie hier eine Liste von MachineOutput. Achten Sie auf das Keyword static.
|
||||
//Code START
|
||||
static dynamic MachineOutputList = -1;
|
||||
//Code ENDE
|
||||
|
||||
public static void Start()
|
||||
{
|
||||
Console.WriteLine("Programmtestung Start");
|
||||
//Füllen der Liste mit Zufallswerten
|
||||
FillMachineListWithRandomValues(90);
|
||||
//Wie viele Fehler sind passiert?
|
||||
Console.WriteLine("Die Anzahl der Fehler lag bei " + GetPercentsOfMachineValue(MachineOutput.Error).ToString("0.00") + " %.");
|
||||
//Ausgabe der Gesamtübersicht
|
||||
ShowListData();
|
||||
}
|
||||
|
||||
//Diese Methode füllt die obere Liste mit zufälligen Maschinendaten.
|
||||
static void FillMachineListWithRandomValues(int amount)
|
||||
{
|
||||
for(int i = 0; i < amount; i++)
|
||||
MachineOutputList.Add(GetRandomMachineData());
|
||||
}
|
||||
|
||||
//Diese Methode soll zufällig Maschinendaten erzeugen. Sorgen Sie dafür, dass die Methode immer einen der zufälligen Werte vom Type MachineOutput zurück gibt.
|
||||
static MachineOutput GetRandomMachineData()
|
||||
{
|
||||
//Code START
|
||||
return MachineOutput.Error;
|
||||
//Code ENDE
|
||||
}
|
||||
|
||||
//Dieser Methode kann man ein MachineOutput-Element geben. Wenn man das gemacht hat, dann berechnet diese Methode das prozentuale Erscheinen dieses Werts in der Liste. ((Anzahl des Vorkommens / Gesamtanzahl von Elementen in der Liste) * 100) Implementieren Sie diese Funktion.
|
||||
static decimal GetPercentsOfMachineValue(MachineOutput mo)
|
||||
{
|
||||
//Code START
|
||||
return -1;
|
||||
//Code ENDE
|
||||
}
|
||||
|
||||
//Diese Methode soll das Vorkommen aller Elemente wie folgt ausgeben:
|
||||
// 3x Perfect
|
||||
// 12x Good
|
||||
// 2x Okay
|
||||
//... usw
|
||||
//Achten Sie dabei darauf, dass das x immer in der selben Zeile steht, egal ob die Zahl eine oder zwei Stellen hat. Wir gehen nicht davon aus, dass es mehr als zwei Stellen werden.
|
||||
static void ShowListData()
|
||||
{
|
||||
//Code START
|
||||
|
||||
//Code ENDE
|
||||
}
|
||||
|
||||
enum MachineOutput { Perfect, Good, Okay, Bad, Dreadfull, Error}
|
||||
}
|
||||
|
||||
}
|
||||
73
FurtherExercises/Schulaufgaben/S008_Enum.cs
Normal file
73
FurtherExercises/Schulaufgaben/S008_Enum.cs
Normal file
@@ -0,0 +1,73 @@
|
||||
namespace Exercises_C_Sharp.Schulaufgaben
|
||||
{
|
||||
//Sie sind ITler bei den Wasserwerken
|
||||
class S008_Enum
|
||||
{
|
||||
public static void Start()
|
||||
{
|
||||
Console.WriteLine("Wir testen heute die besten Wasseraufbereiter! Unser mega toller Algorithmus wurde extra von einem sehr gut ausgebildeten ITler von den Wasserwerken programmiert!");
|
||||
var listOfBestProducts = GetBestOnes();
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Hier kommen die besten drei Produkte:");
|
||||
//Geben Sie hier die Liste der besten Produkte mit deren Platzierungen aus. Benutzen Sie dafür die Methode GetBestOnes.
|
||||
//Code START
|
||||
|
||||
//Code ENDE
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Aber was heißen die Klassen eigentlich? Hier die Übersicht darüber:");
|
||||
//Geben Sie hier alle WaterQuality-Elemente aus und geben Sie mit Hilfe der Methode WaterUseful die dazugehörige Beschreibung aus:
|
||||
//Code START
|
||||
|
||||
//Code ENDE
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Vielen Dank für die Nutzung unseres tollen Vergleichtools!");
|
||||
Console.WriteLine("Wir wünschen Ihnen eine schöne Restwoche! Bleiben Sie uns treu!");
|
||||
|
||||
|
||||
}
|
||||
|
||||
//Dieser Methode kann man eine WaterQuality und ein WaterAdd übergeben. Die Methode berechnet dann die neue Wasserqualität, nachdem das Mittel hinzugefügt wurde und gibt diese zurück.
|
||||
static WaterQuality MakeBetterWater(WaterQuality wq, WaterAdd wa)
|
||||
{
|
||||
return (WaterQuality)(((int)wq * (int)wa) % 9);
|
||||
|
||||
}
|
||||
|
||||
//Diese Methode bewertet die Wasserqualität und gibt diese als String zurück.
|
||||
static string WaterUseful(WaterQuality wq)
|
||||
{
|
||||
if(wq == WaterQuality.AAA)
|
||||
return "Für jeden uneingeschränkt trinkbar und für Babynahrung geeignet";
|
||||
if(wq == WaterQuality.AA)
|
||||
return "Für jeden uneingeschränkt trinkbar";
|
||||
if(wq == WaterQuality.A)
|
||||
return "Grundlegend für jeden trinkbar, Menschen mit Vorerkrankungen sollten aufpassen";
|
||||
if(wq == WaterQuality.B)
|
||||
return "Für anfällige Menschen mit Vorerkrankungen ungeeignet, in geringen Dosen für normale Menschen geeignet";
|
||||
if(wq == WaterQuality.C)
|
||||
return "Vorsichtiger Genuss von minimalen Mengen, abgekocht (mindestens 60 Sekunden) noch genießbar";
|
||||
if(wq == WaterQuality.D)
|
||||
return "Leicht verunreinigt, nur im äußersten Notfall (Gefahr für Leib und LEben) trinken und Menge minimal halten";
|
||||
if(wq == WaterQuality.E)
|
||||
return "Nicht trinkbar, ab höheren Dosen tötlich";
|
||||
if(wq == WaterQuality.F)
|
||||
return "Nicht trinkbar, ab mittleren Dosen tötlich";
|
||||
if(wq == WaterQuality.X)
|
||||
return "Nicht trinkbar, schon in kleinen Dosen tötlich";
|
||||
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
//Sie sollen nun die Methode "GetBestOnes" schreiben. In dieser Methode sollen sie die Top 3 der besten WaterAdd-Produkte als Liste zurück geben. Dabei ist der Sieger der, der es schafft, aus der schlechtestens Qualität die beste Qualität zu machen. (Also X -> AAA, X -> AA usw.). Bei einem eventuellen Gleichstand nehmen sie die nächste Qualitätsstufe (also F -> AAA, F -> AA usw.)
|
||||
static List<WaterAdd> GetBestOnes()
|
||||
{
|
||||
//Code START
|
||||
return new List<WaterAdd>();
|
||||
//Code ENDE
|
||||
}
|
||||
|
||||
enum WaterQuality {AAA, AA, A, B, C, D, E, F, X }
|
||||
enum WaterAdd { Micropur, Reents, Yachticon, Tankline }
|
||||
}
|
||||
|
||||
}
|
||||
2
FurtherExercises/Schulaufgaben/readme.txt
Normal file
2
FurtherExercises/Schulaufgaben/readme.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Achtung!
|
||||
Hierbei handelt es sich um vorbereitende Aufgaben zur Schulaufgabe.
|
||||
Reference in New Issue
Block a user