From 82c8b563bffe44c3e9240f2d325852db1f838236 Mon Sep 17 00:00:00 2001 From: sebi Date: Tue, 22 Aug 2023 22:16:12 +0200 Subject: [PATCH] Initial --- E01_Einleitung/Exercise_1.cs | 17 + E01_Einleitung/Exercise_2.cs | 23 + E01_Einleitung/Exercise_3.cs | 29 + E01_Einleitung/Exercise_4.cs | 23 + E01_Einleitung/Exercise_5.cs | 29 + E02_Variablen/Exercise_1.cs | 28 + E02_Variablen/Exercise_2.cs | 26 + E02_Variablen/Exercise_3.cs | 24 + E02_Variablen/Exercise_4.cs | 25 + E02_Variablen/Exercise_5.cs | 24 + E02_Variablen/Exercise_6.cs | 43 ++ E02_Variablen/Exercise_7.cs | 23 + E02_Variablen/Exercise_8.cs | 29 + E02_Variablen/Exercise_9.cs | 32 + E03_Strings/Exercise_1.cs | 19 + E03_Strings/Exercise_10.cs | 28 + E03_Strings/Exercise_11.cs | 22 + E03_Strings/Exercise_12.cs | 29 + E03_Strings/Exercise_2.cs | 27 + E03_Strings/Exercise_3.cs | 22 + E03_Strings/Exercise_4.cs | 20 + E03_Strings/Exercise_5.cs | 24 + E03_Strings/Exercise_6.cs | 28 + E03_Strings/Exercise_7.cs | 23 + E03_Strings/Exercise_8.cs | 25 + E03_Strings/Exercise_9.cs | 31 + E04_Konsole/Exercise_1.cs | 21 + E04_Konsole/Exercise_2.cs | 31 + E04_Konsole/Exercise_3.cs | 21 + E04_Konsole/Exercise_4.cs | 35 ++ E04_Konsole/Exercise_5.cs | 19 + E04_Konsole/Exercise_6.cs | 35 ++ E05_Arrays/Exercise_1.cs | 18 + E05_Arrays/Exercise_10.cs | 14 + E05_Arrays/Exercise_11.cs | 14 + E05_Arrays/Exercise_12.cs | 14 + E05_Arrays/Exercise_2.cs | 23 + E05_Arrays/Exercise_3.cs | 19 + E05_Arrays/Exercise_4.cs | 22 + E05_Arrays/Exercise_5.cs | 23 + E05_Arrays/Exercise_6.cs | 25 + E05_Arrays/Exercise_7.cs | 14 + E05_Arrays/Exercise_8.cs | 14 + E05_Arrays/Exercise_9.cs | 14 + Entwicklungsaufgaben/Minispiele/Step_1.cs | 17 + Entwicklungsaufgaben/Minispiele/Step_1.txt | 7 + Exercises_C_Sharp_Lections.csproj | 10 + MenuElements/ExerciseElement.cs | 17 + MenuElements/ExerciseGroup.cs | 13 + MenuElements/OpenLinkToVideo.cs | 134 ++++ MenuElements/VideoElement.cs | 13 + Program.cs | 573 ++++++++++++++++++ README.md | 11 +- Schulaufgaben/SS23/dummy | 0 Schulaufgaben/WS2324/dummy | 0 Sonderaufgaben/Exercise_1.cs | 27 + Sonderaufgaben/Exercise_1.png | Bin 0 -> 7164 bytes Sonderaufgaben/Exercise_2.cs | 50 ++ Sonderaufgaben/Exercise_2.png | Bin 0 -> 13817 bytes Sonderaufgaben/Exercise_3.cs | 17 + Sonderaufgaben/ReadMe.txt | 4 + Use_Case_Diagramm/Exercise_1.txt | 1 + Use_Case_Diagramm/Exercise_2.txt | 2 + Use_Case_Diagramm/Exercise_3.txt | 2 + XX_Classes/Exercise_1.cs | 27 + XX_Classes/Exercise_2.cs | 61 ++ XX_Classes/Exercise_3.cs | 51 ++ XX_Classes/Exercise_4.cs | 49 ++ XX_Classes/Exercise_5.cs | 35 ++ XX_Classes/Exercise_6.cs | 78 +++ XX_Classes/Exercise_7.cs | 84 +++ XX_Dateizugriffe/Ex8/Inventar.cs | 29 + XX_Dateizugriffe/Ex8/Thing.cs | 13 + XX_Dateizugriffe/Exercise_1.cs | 17 + XX_Dateizugriffe/Exercise_2.cs | 16 + XX_Dateizugriffe/Exercise_3.cs | 16 + XX_Dateizugriffe/Exercise_4.cs | 30 + XX_Dateizugriffe/Exercise_5.cs | 21 + XX_Dateizugriffe/Exercise_6.cs | 17 + XX_Dateizugriffe/Exercise_7.cs | 59 ++ XX_Dateizugriffe/Exercise_8.cs | 32 + XX_Dateizugriffe/Exercise_8b.cs | 31 + .../FileSystem/FirstFile/FileFour/empty.txt | 1 + .../FileSystem/FirstFile/FileOne/empty.txt | 1 + .../FileSystem/FirstFile/FileThree/empty.txt | 1 + .../FileSystem/FirstFile/FileTwo/empty.txt | 1 + .../SecondFile/FileOne/FileA/empty.txt | 1 + .../SecondFile/FileOne/FileB/empty.txt | 1 + .../SecondFile/FileOne/FileC/empty.txt | 1 + .../SecondFile/FileOne/FileD/empty.txt | 1 + .../SecondFile/FileOne/FileE/empty.txt | 1 + .../FileSystem/SecondFile/FileTwo/empty.txt | 1 + .../FileSystem/ThirdFile/FileFive/empty.txt | 1 + .../ThirdFile/FileFour/FileA/empty.txt | 1 + .../ThirdFile/FileFour/FileB/empty.txt | 1 + .../FileSystem/ThirdFile/FileOne/empty.txt | 1 + .../ThirdFile/FileThree/FileA/empty.txt | 1 + .../ThirdFile/FileThree/FileB/empty.txt | 1 + .../ThirdFile/FileThree/FileC/empty.txt | 1 + .../FileSystem/ThirdFile/FileTwo/empty.txt | 1 + XX_Dateizugriffe/Files/Animal.txt | 10 + XX_Dateizugriffe/Files/ex1.ttdx | 4 + XX_Dateizugriffe/Files/ex3.num | 42 ++ XX_Enums/Exercise_1.cs | 23 + XX_Enums/Exercise_10.cs | 25 + XX_Enums/Exercise_11.cs | 35 ++ XX_Enums/Exercise_12.cs | 43 ++ XX_Enums/Exercise_13.cs | 97 +++ XX_Enums/Exercise_14.cs | 15 + XX_Enums/Exercise_2.cs | 33 + XX_Enums/Exercise_3.cs | 26 + XX_Enums/Exercise_4.cs | 33 + XX_Enums/Exercise_5.cs | 20 + XX_Enums/Exercise_6.cs | 37 ++ XX_Enums/Exercise_7.cs | 31 + XX_Enums/Exercise_8.cs | 27 + XX_Enums/Exercise_9.cs | 30 + XX_Exceptions/Exercise_1.cs | 20 + XX_Exceptions/Exercise_2.cs | 22 + XX_Exceptions/Exercise_3.cs | 36 ++ XX_Exceptions/Exercise_4.cs | 37 ++ XX_Exceptions/Exercise_5.cs | 37 ++ XX_Exceptions/Exercise_6.cs | 41 ++ XX_Exceptions/Exercise_7.cs | 49 ++ XX_Exceptions/Exercise_8.cs | 39 ++ XX_Exceptions/Exercise_9.cs | 28 + XX_Jagged_Arrays/Exercise_1.cs | 21 + XX_Jagged_Arrays/Exercise_2.cs | 24 + XX_Jagged_Arrays/Exercise_3.cs | 19 + XX_Jagged_Arrays/Exercise_4.cs | 26 + XX_Klassendiagramm/Exercise_1.cs | 41 ++ XX_Klassendiagramm/Exercise_2/Exercise_2.txt | 16 + XX_Klassendiagramm/Exercise_2/Exercise_3.txt | 4 + XX_Klassendiagramm/Exercise_2/Exercise_4.txt | 4 + XX_Konstruktoren/Exercise_1.cs | 23 + XX_Konstruktoren/Exercise_2.cs | 21 + XX_Konstruktoren/Exercise_3.cs | 25 + XX_Konstruktoren/Exercise_4.cs | 21 + XX_Konstruktoren/Exercise_5.cs | 42 ++ XX_Konstruktoren/Exercise_6.cs | 24 + XX_Konstruktoren/Exercise_7.cs | 32 + XX_Lists/Exercise_1.cs | 27 + XX_Lists/Exercise_10.cs | 26 + XX_Lists/Exercise_11.cs | 26 + XX_Lists/Exercise_12.cs | 33 + XX_Lists/Exercise_13.cs | 28 + XX_Lists/Exercise_2.cs | 27 + XX_Lists/Exercise_3.cs | 28 + XX_Lists/Exercise_4.cs | 25 + XX_Lists/Exercise_5.cs | 21 + XX_Lists/Exercise_6.cs | 21 + XX_Lists/Exercise_7.cs | 39 ++ XX_Lists/Exercise_8.cs | 29 + XX_Lists/Exercise_9.cs | 27 + XX_Mehrdimensionale_Arrays/Exercise_1.cs | 21 + XX_Mehrdimensionale_Arrays/Exercise_2.cs | 26 + XX_Mehrdimensionale_Arrays/Exercise_3.cs | 26 + XX_Mehrdimensionale_Arrays/Exercise_4.cs | 37 ++ XX_Mehrdimensionale_Arrays/Exercise_5.cs | 40 ++ XX_Mehrdimensionale_Arrays/Exercise_6.cs | 25 + XX_Mehrdimensionale_Arrays/Exercise_7.cs | 62 ++ XX_MySQL/Exercise_1.cs | 70 +++ XX_MySQL/Exercise_2.cs | 58 ++ XX_Serialisierung/Exercise_1.cs | 16 + XX_Serialisierung/Exercise_2.cs | 16 + XX_Tuple/Exercise_1.cs | 23 + XX_Tuple/Exercise_2.cs | 25 + XX_Tuple/Exercise_3.cs | 23 + XX_Tuple/Exercise_4.cs | 31 + XX_Tuple/Exercise_5.cs | 44 ++ XX_Tuple/Exercise_6.cs | 29 + XX_Tuple/Exercise_7.cs | 57 ++ XX_Tuple/Exercise_8.cs | 38 ++ XX_Tuple/Exercise_9.cs | 39 ++ XX_Überladung/Exercise_1.cs | 22 + XX_Überladung/Exercise_2.cs | 33 + XX_Überladung/Exercise_3.cs | 34 ++ XX_Überladung/Exercise_4.cs | 25 + XX_Überladung/Exercise_5.cs | 35 ++ 179 files changed, 5023 insertions(+), 3 deletions(-) create mode 100644 E01_Einleitung/Exercise_1.cs create mode 100644 E01_Einleitung/Exercise_2.cs create mode 100644 E01_Einleitung/Exercise_3.cs create mode 100644 E01_Einleitung/Exercise_4.cs create mode 100644 E01_Einleitung/Exercise_5.cs create mode 100644 E02_Variablen/Exercise_1.cs create mode 100644 E02_Variablen/Exercise_2.cs create mode 100644 E02_Variablen/Exercise_3.cs create mode 100644 E02_Variablen/Exercise_4.cs create mode 100644 E02_Variablen/Exercise_5.cs create mode 100644 E02_Variablen/Exercise_6.cs create mode 100644 E02_Variablen/Exercise_7.cs create mode 100644 E02_Variablen/Exercise_8.cs create mode 100644 E02_Variablen/Exercise_9.cs create mode 100644 E03_Strings/Exercise_1.cs create mode 100644 E03_Strings/Exercise_10.cs create mode 100644 E03_Strings/Exercise_11.cs create mode 100644 E03_Strings/Exercise_12.cs create mode 100644 E03_Strings/Exercise_2.cs create mode 100644 E03_Strings/Exercise_3.cs create mode 100644 E03_Strings/Exercise_4.cs create mode 100644 E03_Strings/Exercise_5.cs create mode 100644 E03_Strings/Exercise_6.cs create mode 100644 E03_Strings/Exercise_7.cs create mode 100644 E03_Strings/Exercise_8.cs create mode 100644 E03_Strings/Exercise_9.cs create mode 100644 E04_Konsole/Exercise_1.cs create mode 100644 E04_Konsole/Exercise_2.cs create mode 100644 E04_Konsole/Exercise_3.cs create mode 100644 E04_Konsole/Exercise_4.cs create mode 100644 E04_Konsole/Exercise_5.cs create mode 100644 E04_Konsole/Exercise_6.cs create mode 100644 E05_Arrays/Exercise_1.cs create mode 100644 E05_Arrays/Exercise_10.cs create mode 100644 E05_Arrays/Exercise_11.cs create mode 100644 E05_Arrays/Exercise_12.cs create mode 100644 E05_Arrays/Exercise_2.cs create mode 100644 E05_Arrays/Exercise_3.cs create mode 100644 E05_Arrays/Exercise_4.cs create mode 100644 E05_Arrays/Exercise_5.cs create mode 100644 E05_Arrays/Exercise_6.cs create mode 100644 E05_Arrays/Exercise_7.cs create mode 100644 E05_Arrays/Exercise_8.cs create mode 100644 E05_Arrays/Exercise_9.cs create mode 100644 Entwicklungsaufgaben/Minispiele/Step_1.cs create mode 100644 Entwicklungsaufgaben/Minispiele/Step_1.txt create mode 100644 Exercises_C_Sharp_Lections.csproj create mode 100644 MenuElements/ExerciseElement.cs create mode 100644 MenuElements/ExerciseGroup.cs create mode 100644 MenuElements/OpenLinkToVideo.cs create mode 100644 MenuElements/VideoElement.cs create mode 100644 Program.cs create mode 100644 Schulaufgaben/SS23/dummy create mode 100644 Schulaufgaben/WS2324/dummy create mode 100644 Sonderaufgaben/Exercise_1.cs create mode 100644 Sonderaufgaben/Exercise_1.png create mode 100644 Sonderaufgaben/Exercise_2.cs create mode 100644 Sonderaufgaben/Exercise_2.png create mode 100644 Sonderaufgaben/Exercise_3.cs create mode 100644 Sonderaufgaben/ReadMe.txt create mode 100644 Use_Case_Diagramm/Exercise_1.txt create mode 100644 Use_Case_Diagramm/Exercise_2.txt create mode 100644 Use_Case_Diagramm/Exercise_3.txt create mode 100644 XX_Classes/Exercise_1.cs create mode 100644 XX_Classes/Exercise_2.cs create mode 100644 XX_Classes/Exercise_3.cs create mode 100644 XX_Classes/Exercise_4.cs create mode 100644 XX_Classes/Exercise_5.cs create mode 100644 XX_Classes/Exercise_6.cs create mode 100644 XX_Classes/Exercise_7.cs create mode 100644 XX_Dateizugriffe/Ex8/Inventar.cs create mode 100644 XX_Dateizugriffe/Ex8/Thing.cs create mode 100644 XX_Dateizugriffe/Exercise_1.cs create mode 100644 XX_Dateizugriffe/Exercise_2.cs create mode 100644 XX_Dateizugriffe/Exercise_3.cs create mode 100644 XX_Dateizugriffe/Exercise_4.cs create mode 100644 XX_Dateizugriffe/Exercise_5.cs create mode 100644 XX_Dateizugriffe/Exercise_6.cs create mode 100644 XX_Dateizugriffe/Exercise_7.cs create mode 100644 XX_Dateizugriffe/Exercise_8.cs create mode 100644 XX_Dateizugriffe/Exercise_8b.cs create mode 100644 XX_Dateizugriffe/FileSystem/FirstFile/FileFour/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/FirstFile/FileOne/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/FirstFile/FileThree/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/FirstFile/FileTwo/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileA/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileB/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileC/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileD/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileE/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/SecondFile/FileTwo/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/ThirdFile/FileFive/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/ThirdFile/FileFour/FileA/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/ThirdFile/FileFour/FileB/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/ThirdFile/FileOne/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/ThirdFile/FileThree/FileA/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/ThirdFile/FileThree/FileB/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/ThirdFile/FileThree/FileC/empty.txt create mode 100644 XX_Dateizugriffe/FileSystem/ThirdFile/FileTwo/empty.txt create mode 100644 XX_Dateizugriffe/Files/Animal.txt create mode 100644 XX_Dateizugriffe/Files/ex1.ttdx create mode 100644 XX_Dateizugriffe/Files/ex3.num create mode 100644 XX_Enums/Exercise_1.cs create mode 100644 XX_Enums/Exercise_10.cs create mode 100644 XX_Enums/Exercise_11.cs create mode 100644 XX_Enums/Exercise_12.cs create mode 100644 XX_Enums/Exercise_13.cs create mode 100644 XX_Enums/Exercise_14.cs create mode 100644 XX_Enums/Exercise_2.cs create mode 100644 XX_Enums/Exercise_3.cs create mode 100644 XX_Enums/Exercise_4.cs create mode 100644 XX_Enums/Exercise_5.cs create mode 100644 XX_Enums/Exercise_6.cs create mode 100644 XX_Enums/Exercise_7.cs create mode 100644 XX_Enums/Exercise_8.cs create mode 100644 XX_Enums/Exercise_9.cs create mode 100644 XX_Exceptions/Exercise_1.cs create mode 100644 XX_Exceptions/Exercise_2.cs create mode 100644 XX_Exceptions/Exercise_3.cs create mode 100644 XX_Exceptions/Exercise_4.cs create mode 100644 XX_Exceptions/Exercise_5.cs create mode 100644 XX_Exceptions/Exercise_6.cs create mode 100644 XX_Exceptions/Exercise_7.cs create mode 100644 XX_Exceptions/Exercise_8.cs create mode 100644 XX_Exceptions/Exercise_9.cs create mode 100644 XX_Jagged_Arrays/Exercise_1.cs create mode 100644 XX_Jagged_Arrays/Exercise_2.cs create mode 100644 XX_Jagged_Arrays/Exercise_3.cs create mode 100644 XX_Jagged_Arrays/Exercise_4.cs create mode 100644 XX_Klassendiagramm/Exercise_1.cs create mode 100644 XX_Klassendiagramm/Exercise_2/Exercise_2.txt create mode 100644 XX_Klassendiagramm/Exercise_2/Exercise_3.txt create mode 100644 XX_Klassendiagramm/Exercise_2/Exercise_4.txt create mode 100644 XX_Konstruktoren/Exercise_1.cs create mode 100644 XX_Konstruktoren/Exercise_2.cs create mode 100644 XX_Konstruktoren/Exercise_3.cs create mode 100644 XX_Konstruktoren/Exercise_4.cs create mode 100644 XX_Konstruktoren/Exercise_5.cs create mode 100644 XX_Konstruktoren/Exercise_6.cs create mode 100644 XX_Konstruktoren/Exercise_7.cs create mode 100644 XX_Lists/Exercise_1.cs create mode 100644 XX_Lists/Exercise_10.cs create mode 100644 XX_Lists/Exercise_11.cs create mode 100644 XX_Lists/Exercise_12.cs create mode 100644 XX_Lists/Exercise_13.cs create mode 100644 XX_Lists/Exercise_2.cs create mode 100644 XX_Lists/Exercise_3.cs create mode 100644 XX_Lists/Exercise_4.cs create mode 100644 XX_Lists/Exercise_5.cs create mode 100644 XX_Lists/Exercise_6.cs create mode 100644 XX_Lists/Exercise_7.cs create mode 100644 XX_Lists/Exercise_8.cs create mode 100644 XX_Lists/Exercise_9.cs create mode 100644 XX_Mehrdimensionale_Arrays/Exercise_1.cs create mode 100644 XX_Mehrdimensionale_Arrays/Exercise_2.cs create mode 100644 XX_Mehrdimensionale_Arrays/Exercise_3.cs create mode 100644 XX_Mehrdimensionale_Arrays/Exercise_4.cs create mode 100644 XX_Mehrdimensionale_Arrays/Exercise_5.cs create mode 100644 XX_Mehrdimensionale_Arrays/Exercise_6.cs create mode 100644 XX_Mehrdimensionale_Arrays/Exercise_7.cs create mode 100644 XX_MySQL/Exercise_1.cs create mode 100644 XX_MySQL/Exercise_2.cs create mode 100644 XX_Serialisierung/Exercise_1.cs create mode 100644 XX_Serialisierung/Exercise_2.cs create mode 100644 XX_Tuple/Exercise_1.cs create mode 100644 XX_Tuple/Exercise_2.cs create mode 100644 XX_Tuple/Exercise_3.cs create mode 100644 XX_Tuple/Exercise_4.cs create mode 100644 XX_Tuple/Exercise_5.cs create mode 100644 XX_Tuple/Exercise_6.cs create mode 100644 XX_Tuple/Exercise_7.cs create mode 100644 XX_Tuple/Exercise_8.cs create mode 100644 XX_Tuple/Exercise_9.cs create mode 100644 XX_Überladung/Exercise_1.cs create mode 100644 XX_Überladung/Exercise_2.cs create mode 100644 XX_Überladung/Exercise_3.cs create mode 100644 XX_Überladung/Exercise_4.cs create mode 100644 XX_Überladung/Exercise_5.cs diff --git a/E01_Einleitung/Exercise_1.cs b/E01_Einleitung/Exercise_1.cs new file mode 100644 index 0000000..ff8ec36 --- /dev/null +++ b/E01_Einleitung/Exercise_1.cs @@ -0,0 +1,17 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E01_Einleitung +{ + class Exercise_1 + { + public static void Start() + { + //Sorgen Sie dafür, dass in der Konsole nicht das englische ‚Hello World!‘, sondern die deutsche Übersetzung ‚Hallo Welt!‘ ausgegeben wird. + //Code START + Console.WriteLine("Hello World!"); + //Code ENDE + } + } +} \ No newline at end of file diff --git a/E01_Einleitung/Exercise_2.cs b/E01_Einleitung/Exercise_2.cs new file mode 100644 index 0000000..11fcc8b --- /dev/null +++ b/E01_Einleitung/Exercise_2.cs @@ -0,0 +1,23 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E01_Einleitung +{ + class Exercise_2 + { + public static void Start() + { + //Geben Sie diese nacheinander die Lösungen folgender Gleichungen jeweils in eigener Zeile in der Konsole aus: + //24 + 14 – 34 / 12 * 2 % 4 + //23847 + 3333 / 34 * 22 – 12 + 2343234 % 6 + //123.34 / 2344.3 – 12035.55 / 4.9 * 123.2 + //948475.23423 * 7 – 23433.833 % 22.66 + 34.3 * 4 + //2343 – 3434.2 * 333.33 – 3333.88 / 77777.1 + 12.33 % 0.3336 + + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/E01_Einleitung/Exercise_3.cs b/E01_Einleitung/Exercise_3.cs new file mode 100644 index 0000000..4cba894 --- /dev/null +++ b/E01_Einleitung/Exercise_3.cs @@ -0,0 +1,29 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E01_Einleitung +{ + class Exercise_3 + { + public static void Start() + { + //Programmieren Sie folgende Anweisungen aus: + + //Teilen Sie dreimal die Zahl 459 durch und geben Sie das Ergebnis aus: + //Code START + + //Code ENDE + + //Nehmen Sie die Zahl 10 mal 4, addieren Sie dann die Zahl 17 darauf, teilen Sie dann das Ergebnis durch 3. Ziehen Sie zum Schluss noch 2 ab und geben Sie das Ergebnis aus: + //Code START + + //Code ENDE + + //Teilen Sie die Zahl 343 zweimal durch 7 und nehmen Sie die erhaltene Zahl Modulo 3. Geben Sie das Ergebnis aus: + //Code Start + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/E01_Einleitung/Exercise_4.cs b/E01_Einleitung/Exercise_4.cs new file mode 100644 index 0000000..d3ec55b --- /dev/null +++ b/E01_Einleitung/Exercise_4.cs @@ -0,0 +1,23 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E01_Einleitung +{ + class Exercise_4 + { + public static void Start() + { + //Geben Sie die Ergebnise der booleschen Werte nacheinander in eigener Zeile in der Konsole aus: + //8374 + 1234 > 10522 - 2256 + //123 * 123 != 100 + 12523 + //756.055 / 299.25 >= 25 * 22 + //123 + 2562 / 4 <= 3874 + 56856 + //1234 % 4 * 526 / 25685 == 9374 + 85 * 36369 / 40252 % 256 + + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/E01_Einleitung/Exercise_5.cs b/E01_Einleitung/Exercise_5.cs new file mode 100644 index 0000000..46e4fe6 --- /dev/null +++ b/E01_Einleitung/Exercise_5.cs @@ -0,0 +1,29 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E01_Einleitung +{ + class Exercise_5 + { + public static void Start() + { + //Programmieren Sie folgende Anweisungen aus: + + //Ist das Ergebnis von 100 / 3 größer als 3 mal 11? Lassen Sie diese Frage den Computer beantworten und geben das Ergebnis in einer extra Zeile aus: + //Code START + + //Code ENDE + + //Ist 1526 Modulo 12 kleiner als 1526 Modulo 16? Lassen Sie diese Frage den Computer beantworten und geben das Ergebnis in einer extra Zeile aus: + //Code START + + //Code ENDE + + //Kommt dasselbe Ergebnis heraus, wenn man 2152 durch acht teilt und wenn man von 500 231 subtrahiert? Lassen Sie diese Frage den Computer beantworten und geben das Ergebnis in einer extra Zeile aus: + //Code Start + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/E02_Variablen/Exercise_1.cs b/E02_Variablen/Exercise_1.cs new file mode 100644 index 0000000..1f4ddee --- /dev/null +++ b/E02_Variablen/Exercise_1.cs @@ -0,0 +1,28 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E02_Variablen +{ + class Exercise_1 + { + public static void Start() + { + //Um welche Variablentypen handelt es sich hier? Tauschen Sie den Wert dynamic durch den richtigen Typ aus: + dynamic var1 = 343; + dynamic var2 = -231; + dynamic var3 = 'T'; + dynamic var4 = "T"; + dynamic var5 = "Hallo"; + dynamic var6 = " "; + dynamic var7 = 123.34; + dynamic var8 = 335.27364; + dynamic var9 = 7483.291M; + dynamic var10 = true; + dynamic var11 = 3847M; + dynamic var12 = 38493.28F; + dynamic var13 = 8349.23; + dynamic var14 = '\\'; + } + } +} \ No newline at end of file diff --git a/E02_Variablen/Exercise_2.cs b/E02_Variablen/Exercise_2.cs new file mode 100644 index 0000000..756f41e --- /dev/null +++ b/E02_Variablen/Exercise_2.cs @@ -0,0 +1,26 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E02_Variablen +{ + class Exercise_2 + { + public static void Start() + { + string val1 = "Hallo, "; + string val2 = ""; + string val3 = "geht's?"; + + //Sorgen Sie dafür, dass unten auf der Konsole "Hallo, wie geht's?" ausgegeben wird. + //Code Start + + //Code Ende + + Console.Write(val1); + Console.Write(val2); + Console.Write(val3); + + } + } +} \ No newline at end of file diff --git a/E02_Variablen/Exercise_3.cs b/E02_Variablen/Exercise_3.cs new file mode 100644 index 0000000..45b2731 --- /dev/null +++ b/E02_Variablen/Exercise_3.cs @@ -0,0 +1,24 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E02_Variablen +{ + class Exercise_3 + { + public static void Start() + { + int val1 = 156; + int val2 = 7; + int val3 = -12; + + //Sorgen Sie dafür, dass unten auf der Konsole 101 ausgegeben wird. + //Code Start + + //Code Ende + + Console.Write(val1 + val2 + val3); + + } + } +} \ No newline at end of file diff --git a/E02_Variablen/Exercise_4.cs b/E02_Variablen/Exercise_4.cs new file mode 100644 index 0000000..71b2d29 --- /dev/null +++ b/E02_Variablen/Exercise_4.cs @@ -0,0 +1,25 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E02_Variablen +{ + class Exercise_4 + { + public static void Start() + { + string val1 = "Das "; + string val2 = " cool!"; + string val3 = "ist "; + + //Geben Sie den Satz "Das ist cool!" auf der Konsole aus. Verwenden Sie ausschließlich Variablen: + //Code Start + val2 = val1; + val3 = val2; + val1 = val3; + //Code Ende + + + } + } +} \ No newline at end of file diff --git a/E02_Variablen/Exercise_5.cs b/E02_Variablen/Exercise_5.cs new file mode 100644 index 0000000..861a6ce --- /dev/null +++ b/E02_Variablen/Exercise_5.cs @@ -0,0 +1,24 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E02_Variablen +{ + class Exercise_5 + { + public static void Start() + { + double val1 = 123.456; + double val2 = 789.101112; + + //Geben Sie die Addition, die Subtraktion, die Division und die Multiplikation der beiden oeben Zahlen auf der Konsole aus: + //Code Start + val2 = val1; + //Code Ende + + + + + } + } +} \ No newline at end of file diff --git a/E02_Variablen/Exercise_6.cs b/E02_Variablen/Exercise_6.cs new file mode 100644 index 0000000..40f651c --- /dev/null +++ b/E02_Variablen/Exercise_6.cs @@ -0,0 +1,43 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E02_Variablen +{ + class Exercise_6 + { + public static void Start() + { + int var1 = 160; + int var2 = 20; + string hello = "Hallo und herzlich Willkommen!"; + string end = "Hier kommt das Ergebnis:"; + + + //Geben Sie zuerst beide String-Variablen in der richtigen Reihenfolge aus: + //Code Start + var1 = var2; + hello = end; + //Code Ende + + //Geben Sie nun das Ergebnis folgender Operation aus: var1 soll durch var2 geteilt werden. Das Ergebnis soll dann durch zwei geteilt werden und mal var2 genommen werden. Dann soll davon var1 abgezogen werden und das dreifache von var2 addiert werden. Nehmen Sie das Ergebnis dann Modulo 27. Nutzen Sie dabei ausschließlich die Variablen! + //Code Start + + //Code Ende + + //Ändern Sie nun die beiden Werte oben auf 3600 und 360: + //Code Start + + //Code Ende + + //Machen Sie nun dieselben Operationen wie oben und geben Sie dann wiederum das Ergebnis aus: + //Code START + + //Code ENDE + + + + + } + } +} \ No newline at end of file diff --git a/E02_Variablen/Exercise_7.cs b/E02_Variablen/Exercise_7.cs new file mode 100644 index 0000000..192ed09 --- /dev/null +++ b/E02_Variablen/Exercise_7.cs @@ -0,0 +1,23 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E02_Variablen +{ + class Exercise_7 + { + public static void Start() + { + //Erstellen Sie zwei Variablen, sodass unten auf der Konsole "Dies ist Ihre Zahl: 123" ausgegeben wird. + //Code START + dynamic a = 1; + dynamic b = 2; + dynamic c = 3; + //Code ENDE + + Console.Write(a); + Console.WriteLine(c); + + } + } +} \ No newline at end of file diff --git a/E02_Variablen/Exercise_8.cs b/E02_Variablen/Exercise_8.cs new file mode 100644 index 0000000..358bdd6 --- /dev/null +++ b/E02_Variablen/Exercise_8.cs @@ -0,0 +1,29 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E02_Variablen +{ + class Exercise_8 + { + public static void Start() + { + + //Erstellen Sie unten die drei Variablen richtig: + //Code START + dynamic firstValue; + dynamic secondValue; + dynamic thirdValue; + //Code ENDE + + firstValue = "Hier kommen die Zahlen:"; + secondValue = 456; + thirdValue = 789.4585; + + Console.WriteLine(firstValue); + Console.WriteLine(secondValue); + Console.WriteLine(thirdValue); + + } + } +} \ No newline at end of file diff --git a/E02_Variablen/Exercise_9.cs b/E02_Variablen/Exercise_9.cs new file mode 100644 index 0000000..8e70787 --- /dev/null +++ b/E02_Variablen/Exercise_9.cs @@ -0,0 +1,32 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E02_Variablen +{ + class Exercise_9 + { + public static void Start() + { + //Sorgen Sie dafür, dass die Zahl 2736.938 unten auf der Konsole ausgegeben wird. + + //Code START + double d1 = 2634.37263; + double d2 = 237384.2832; + double d3 = 663782.39283; + //Code ENDE + + d1 = d2 -d3; + d2 = d3 / d1; + d3 = d1 * d3; + d1 = d3 / d2; + d2 = d3 + d2; + double d4 = d1 + d2 + d3; + + //Code Start + double d5 = 0; + //Code Ende + Console.WriteLine(d5 + d4 + d3 + d2 + d1); + } + } +} \ No newline at end of file diff --git a/E03_Strings/Exercise_1.cs b/E03_Strings/Exercise_1.cs new file mode 100644 index 0000000..fcefaa4 --- /dev/null +++ b/E03_Strings/Exercise_1.cs @@ -0,0 +1,19 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E03_Strings +{ + class Exercise_1 + { + public static void Start() + { + //Sorgen Sie dafür, dass "Hallo, wie geht's?" unten auf der Konsole ausgegeben wird. + //Code START + dynamic s = -1; + //Code ENDE + + Console.WriteLine(s); + } + } +} \ No newline at end of file diff --git a/E03_Strings/Exercise_10.cs b/E03_Strings/Exercise_10.cs new file mode 100644 index 0000000..632937e --- /dev/null +++ b/E03_Strings/Exercise_10.cs @@ -0,0 +1,28 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E03_Strings +{ + class Exercise_10 + { + public static void Start() + { + //Sorgen Sie dafür, dass auf der Konsole + //"Das Erste kommt zuerst... + //...und das Zweite kommt zuletzt." + //ausgegeben wird + + + //Code START + string s1 = ""; + string s2 = ""; + string s3 = ""; + string s4 = ""; + //Code ENDE + string s = string.Format("{0} Erste kommt zu{1}{2}das Zweite{3}zuletzt.", s2, s1, s4, s3); + + Console.WriteLine(s); + } + } +} \ No newline at end of file diff --git a/E03_Strings/Exercise_11.cs b/E03_Strings/Exercise_11.cs new file mode 100644 index 0000000..685fa69 --- /dev/null +++ b/E03_Strings/Exercise_11.cs @@ -0,0 +1,22 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E03_Strings +{ + class Exercise_11 + { + public static void Start() + { + //Sorgen Sie dafür, dass auf der Konsole ein richtiger Satz ausgegeben wird. + string s1 = "Piratenschiff"; + + //Code START + string s2 = ""; + int i1 = -1; + //Code ENDE + + Console.WriteLine($"Das Wort {s1} hat genau so viele Zeichen wie {s2}, nämlich {i1}."); + } + } +} \ No newline at end of file diff --git a/E03_Strings/Exercise_12.cs b/E03_Strings/Exercise_12.cs new file mode 100644 index 0000000..7e9c7d1 --- /dev/null +++ b/E03_Strings/Exercise_12.cs @@ -0,0 +1,29 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E03_Strings +{ + class Exercise_12 + { + public static void Start() + { + //Sorgen Sie dafür, dass nach der Eingabe ausgegeben wird, ob der eingegebene String ein A bzw. a besitzt, oder nicht. + string s = Console.ReadLine() ?? "Irgendwas"; + bool b = false; + + //CODE START + + //CODE ENDE + + if(b) + { + Console.WriteLine("Das Wort enthält den Buchstaben A."); + } + else + { + Console.WriteLine("Das Wort enthält nicht den Buchstaben A."); + } + } + } +} \ No newline at end of file diff --git a/E03_Strings/Exercise_2.cs b/E03_Strings/Exercise_2.cs new file mode 100644 index 0000000..f126457 --- /dev/null +++ b/E03_Strings/Exercise_2.cs @@ -0,0 +1,27 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E03_Strings +{ + class Exercise_2 + { + public static void Start() + { + //Fügen Sie die Strings so zusammen, dass der Satz "Wie gut es ist, oder?" ausgegeben wird. Nutzen Sie wo es geht die folgenden Variablen: + string s1 = "gut"; + string s2 = "wie"; + string s3 = "oder"; + string s4 = "Wie"; + string s5 = "es"; + string s6 = "ist"; + + + //Code START + s2 = s3 = s4 = s5 = s6; + //Code ENDE + + Console.WriteLine(s1); + } + } +} \ No newline at end of file diff --git a/E03_Strings/Exercise_3.cs b/E03_Strings/Exercise_3.cs new file mode 100644 index 0000000..fef3261 --- /dev/null +++ b/E03_Strings/Exercise_3.cs @@ -0,0 +1,22 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E03_Strings +{ + class Exercise_3 + { + public static void Start() + { + //Fügen Sie die Variable DasWarGemeint in den String ausgabeString anstatt der Stelle {0} ein: + string DasWarGemeint = "Elefanten"; + string ausgabeString = "{0} sind die größten Landtiere."; + + //Code START + DasWarGemeint = ausgabeString; + //Code ENDE + + Console.WriteLine(ausgabeString); + } + } +} \ No newline at end of file diff --git a/E03_Strings/Exercise_4.cs b/E03_Strings/Exercise_4.cs new file mode 100644 index 0000000..ba38c8b --- /dev/null +++ b/E03_Strings/Exercise_4.cs @@ -0,0 +1,20 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E03_Strings +{ + class Exercise_4 + { + public static void Start() + { + //Sorgen Sie dafür, dass der String userinput ohne führende und endende Leerzeichen ausgegeben wird: + string userinput = " WERT "; + //Code START + + //Code ENDE + + Console.WriteLine(userinput); + } + } +} \ No newline at end of file diff --git a/E03_Strings/Exercise_5.cs b/E03_Strings/Exercise_5.cs new file mode 100644 index 0000000..1f0f33c --- /dev/null +++ b/E03_Strings/Exercise_5.cs @@ -0,0 +1,24 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E03_Strings +{ + class Exercise_5 + { + public static void Start() + { + //Geben Sie von folgenden Werten den vierten Buchstaben aus: + string firstValue = "Brauerei"; + string secondValue = "Überbau"; + string thirdValue = "keinerlei"; + string fourthValue = "Fairness"; + + + //Code START + firstValue = secondValue = thirdValue = fourthValue; + //Code ENDE + + } + } +} \ No newline at end of file diff --git a/E03_Strings/Exercise_6.cs b/E03_Strings/Exercise_6.cs new file mode 100644 index 0000000..c4ebbd6 --- /dev/null +++ b/E03_Strings/Exercise_6.cs @@ -0,0 +1,28 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E03_Strings +{ + class Exercise_6 + { + public static void Start() + { + //Sorgen Sie dafür, dass das erste Wort in Großbuchen und in Kleinbuchstaben ausgegeben wird. + string val = "hAllIHaLlo"; + string small; + string big; + + + //Code START + small = val; + big = val; + //Code ENDE + + Console.WriteLine("Kleinbuchstaben:"); + Console.WriteLine(small); + Console.WriteLine("Großbuchstaben:"); + Console.WriteLine(big); + } + } +} \ No newline at end of file diff --git a/E03_Strings/Exercise_7.cs b/E03_Strings/Exercise_7.cs new file mode 100644 index 0000000..2de2f7e --- /dev/null +++ b/E03_Strings/Exercise_7.cs @@ -0,0 +1,23 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E03_Strings +{ + class Exercise_7 + { + public static void Start() + { + //Extrahieren Sie aus dem folgenden String das Wort Polizei + string val = " difjPolizei jidf das dielsaö"; + + + //Code START + + + //Code ENDE + + Console.WriteLine(val); + } + } +} \ No newline at end of file diff --git a/E03_Strings/Exercise_8.cs b/E03_Strings/Exercise_8.cs new file mode 100644 index 0000000..0edb3a8 --- /dev/null +++ b/E03_Strings/Exercise_8.cs @@ -0,0 +1,25 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E03_Strings +{ + class Exercise_8 + { + public static void Start() + { + //Sorgen Sie dafür, dass alle drei Strings in einer extra Zeile ausgegeben werden. + string val = "Zeile 1"; + string val2 = "Zeile 2"; + string val3 = "Zeile 3"; + + + //Code START + + + //Code ENDE + + Console.WriteLine(val + val2 + val3); + } + } +} \ No newline at end of file diff --git a/E03_Strings/Exercise_9.cs b/E03_Strings/Exercise_9.cs new file mode 100644 index 0000000..fa2cae4 --- /dev/null +++ b/E03_Strings/Exercise_9.cs @@ -0,0 +1,31 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E03_Strings +{ + class Exercise_9 + { + public static void Start() + { + //Lassen Sie folgende Zeichen(folgen) auf der Konsole ausgeben: + // - \ + // - \n + // - \t + // - " + + + //Code START + string val = "Element 1"; + string val2 = "Element 2"; + string val3 = "Element 3"; + string val4 = "Element 4"; + //Code ENDE + + Console.WriteLine(val); + Console.WriteLine(val2); + Console.WriteLine(val3); + Console.WriteLine(val4); + } + } +} \ No newline at end of file diff --git a/E04_Konsole/Exercise_1.cs b/E04_Konsole/Exercise_1.cs new file mode 100644 index 0000000..f828627 --- /dev/null +++ b/E04_Konsole/Exercise_1.cs @@ -0,0 +1,21 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E04_Konsole +{ + class Exercise_1 + { + public static void Start() + { + //Geben Sie auf der Konsole "Hallo, wie geht es Ihnen?" aus. + string s = "irgendwas?"; + + //Code START + + //Code ENDE + + Console.WriteLine(s); + } + } +} \ No newline at end of file diff --git a/E04_Konsole/Exercise_2.cs b/E04_Konsole/Exercise_2.cs new file mode 100644 index 0000000..ada4d9a --- /dev/null +++ b/E04_Konsole/Exercise_2.cs @@ -0,0 +1,31 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E04_Konsole +{ + class Exercise_2 + { + public static void Start() + { + //Sorgen Sie dafür, dass nach jedem Mal "Eingabe" drücken, der Text und der Hintergrund eine neue Farbe bekommt: + Console.WriteLine("Hallo und herzlich Willkommen zum bunten Farbenspiel!"); + Console.WriteLine(); + //Code START + + //Code ENDE + Console.WriteLine(); + //Code START + + //Code ENDE + Console.WriteLine(); + //Code START + + //Code ENDE + Console.WriteLine("Danke für die Nutzung!"); + Console.WriteLine(); + + + } + } +} \ No newline at end of file diff --git a/E04_Konsole/Exercise_3.cs b/E04_Konsole/Exercise_3.cs new file mode 100644 index 0000000..3d036c2 --- /dev/null +++ b/E04_Konsole/Exercise_3.cs @@ -0,0 +1,21 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E04_Konsole +{ + class Exercise_3 + { + public static void Start() + { + //Auf der Konsole soll das ausgegeben werden, was der Anwender eingibt. + + Console.WriteLine("Bitte geben Sie was ein:"); + //Code START + string s = "irgendwas?"; + //Code ENDE + + Console.WriteLine("Ihre Eingabe war:\n" + s); + } + } +} \ No newline at end of file diff --git a/E04_Konsole/Exercise_4.cs b/E04_Konsole/Exercise_4.cs new file mode 100644 index 0000000..b43c0d8 --- /dev/null +++ b/E04_Konsole/Exercise_4.cs @@ -0,0 +1,35 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E04_Konsole +{ + class Exercise_4 + { + public static void Start() + { + //Der Anwender soll auf der Konsole zwei Zahlen eingeben. Dann soll die Addition, die Subtraktion, die Division, die Multiplikation und das Modulo Ergebnis ausgegeben werden. + double result = 0; + //Code START + + //Code ENDE + Console.WriteLine("Die Addition der Zahlen ist: {0}", result); + //Code START + + //Code ENDE + Console.WriteLine("Die Subtraktion der Zahlen ist: {0}", result); + //Code START + + //Code ENDE + Console.WriteLine("Die Division der Zahlen ist: {0}", result); + //Code START + + //Code ENDE + Console.WriteLine("Die Multiplikation der Zahlen ist: {0}", result); + //Code START + + //Code ENDE + Console.WriteLine("Das Modulo der Zahlen ist: {0}", result); + } + } +} \ No newline at end of file diff --git a/E04_Konsole/Exercise_5.cs b/E04_Konsole/Exercise_5.cs new file mode 100644 index 0000000..04b1079 --- /dev/null +++ b/E04_Konsole/Exercise_5.cs @@ -0,0 +1,19 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E04_Konsole +{ + class Exercise_5 + { + public static void Start() + { + string terminalName = string.Empty; + //Code START + + //Code ENDE + Console.WriteLine("Der Name der Konsole wurde auf '{0}' geändert!", terminalName); + Console.ReadLine(); + } + } +} \ No newline at end of file diff --git a/E04_Konsole/Exercise_6.cs b/E04_Konsole/Exercise_6.cs new file mode 100644 index 0000000..8712911 --- /dev/null +++ b/E04_Konsole/Exercise_6.cs @@ -0,0 +1,35 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E04_Konsole +{ + class Exercise_6 + { + public static void Start() + { + //Sie sollen dafür sorgen, dass der Anwender zu Beginn eine Zahl eingibt. Danach soll diese Zahl bei jedem Tastendruck verdoppelt werden. Sorgen Sie dafür, dass dies 5 mal funktioniert. + int userinput = 0; + //Code START + + //Code ENDE + Console.WriteLine("Die 1. Verdopplung ist {0}.", userinput); + //Code START + + //Code ENDE + Console.WriteLine("Die 2. Verdopplung ist {0}.", userinput); + //Code START + + //Code ENDE + Console.WriteLine("Die 3. Verdopplung ist {0}.", userinput); + //Code START + + //Code ENDE + Console.WriteLine("Die 4. Verdopplung ist {0}.", userinput); + //Code START + + //Code ENDE + Console.WriteLine("Die 5. Verdopplung ist {0}.", userinput); + } + } +} \ No newline at end of file diff --git a/E05_Arrays/Exercise_1.cs b/E05_Arrays/Exercise_1.cs new file mode 100644 index 0000000..3f8ea94 --- /dev/null +++ b/E05_Arrays/Exercise_1.cs @@ -0,0 +1,18 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E05_Arrays +{ + class Exercise_1 + { + public static void Start() + { + //Geben Sie alle Werte aus dem Array aus. Was fällt Ihnen auf? + int[] intArray = new int[3]; + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/E05_Arrays/Exercise_10.cs b/E05_Arrays/Exercise_10.cs new file mode 100644 index 0000000..a7b5516 --- /dev/null +++ b/E05_Arrays/Exercise_10.cs @@ -0,0 +1,14 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E05_Arrays +{ + class Exercise_10 + { + public static void Start() + { + + } + } +} \ No newline at end of file diff --git a/E05_Arrays/Exercise_11.cs b/E05_Arrays/Exercise_11.cs new file mode 100644 index 0000000..1a35710 --- /dev/null +++ b/E05_Arrays/Exercise_11.cs @@ -0,0 +1,14 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E05_Arrays +{ + class Exercise_11 + { + public static void Start() + { + + } + } +} \ No newline at end of file diff --git a/E05_Arrays/Exercise_12.cs b/E05_Arrays/Exercise_12.cs new file mode 100644 index 0000000..0a274af --- /dev/null +++ b/E05_Arrays/Exercise_12.cs @@ -0,0 +1,14 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E05_Arrays +{ + class Exercise_12 + { + public static void Start() + { + + } + } +} \ No newline at end of file diff --git a/E05_Arrays/Exercise_2.cs b/E05_Arrays/Exercise_2.cs new file mode 100644 index 0000000..993d00b --- /dev/null +++ b/E05_Arrays/Exercise_2.cs @@ -0,0 +1,23 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E05_Arrays +{ + class Exercise_2 + { + public static void Start() + { + //Lassen Sie den Anwender fünf Strings eingeben und speichern Sie diese in diesem Array: + string[] stringArray = new string[5]; + //Code START + + //Code ENDE + + //Geben Sie nun alle fünf String in dem Array mit Leerzeichen getrennt aus: + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/E05_Arrays/Exercise_3.cs b/E05_Arrays/Exercise_3.cs new file mode 100644 index 0000000..c3c2295 --- /dev/null +++ b/E05_Arrays/Exercise_3.cs @@ -0,0 +1,19 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E05_Arrays +{ + class Exercise_3 + { + public static void Start() + { + //Geben Sie alle Zeichen in alphabetischer Reihenfolge auf der Konsole aus: + char[] charArray = new char[]{ 'k', 'a', 'o', 'w', 'l', 'x', 't', 's'}; + + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/E05_Arrays/Exercise_4.cs b/E05_Arrays/Exercise_4.cs new file mode 100644 index 0000000..97e6a50 --- /dev/null +++ b/E05_Arrays/Exercise_4.cs @@ -0,0 +1,22 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E05_Arrays +{ + class Exercise_4 + { + public static void Start() + { + //Auf der Konsole soll ausgegen werden, wie viele Elemente sich in dem Array befinden: + int[] intArray = new int[] + {123,23,43,123,4,122,43235,46,45645,756,7,58,56,74,5,634,56456,4,56,3457,4,57,56,75,6,856,85,67,45,74564356,45,645,6756876,98,98,978,97,80,790789,78,978,96,7,865786,57546,74,67,45,64,56,45,645,6,45,65,67567,567,4567,45,656,64565,64,56465,766,7,56,8,5678,7,8,67,9,678678,56,7,567,6,75,674565645,6,45,46,7,56,867,8,67,8,67,867,8,678,67,86786,78,98879,67,8,768,56,756,74,56,54,6,45,645,7,56,756,87,56,876,8,56,74,5,645,6,3,632,4,5,435,34,53,45,34,5,34,5,4,6745,67,34567,5,45,74,56,45,6,54,6,45,7,65,7,56,8,56,85,674567,56745,6,4,56,456,45645,6,3,45,3,4,5345345,34654,56,987,546,756,8,756,87,5,67,5467,45,6,354,64,57,45,7,4,6,45,6,45,6,34,6,4,65,34,6,457,45,7,658,67,9,2345,89,879780,87,0,80987,9,78,97,89,78,97,8,79,89789,78,9789,78,97897,89}; + + //Code START + dynamic i = 0; + //Code ENDE + + Console.WriteLine("Das Array hat {0} Elemente.", i); + } + } +} \ No newline at end of file diff --git a/E05_Arrays/Exercise_5.cs b/E05_Arrays/Exercise_5.cs new file mode 100644 index 0000000..a49a085 --- /dev/null +++ b/E05_Arrays/Exercise_5.cs @@ -0,0 +1,23 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E05_Arrays +{ + class Exercise_5 + { + public static void Start() + { + //Lassen Sie den Anwender fünf Decimal-Zahlen eingeben. Speichern Sie diese in das Array: + decimal[] decimalArray = new decimal[5]; + //Code START + + //Code ENDE + + //Geben Sie nun die Summe aller Zahlen auf der Konsole aus: + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/E05_Arrays/Exercise_6.cs b/E05_Arrays/Exercise_6.cs new file mode 100644 index 0000000..75bf65b --- /dev/null +++ b/E05_Arrays/Exercise_6.cs @@ -0,0 +1,25 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E05_Arrays +{ + class Exercise_6 + { + public static void Start() + { + //Erstellen Sie ein Array, sodass unten eine wahre Aussage steht: + //Code START + dynamic arr = -1; + //Code ENDE + + arr[2] = 12; + arr[0] = 32; + + int i = arr[0] + arr[1] + arr[2]; + + Console.WriteLine("Teilt man Zahl {0} durch 57 kommt 1 heraus.", i); + + } + } +} \ No newline at end of file diff --git a/E05_Arrays/Exercise_7.cs b/E05_Arrays/Exercise_7.cs new file mode 100644 index 0000000..e1171b9 --- /dev/null +++ b/E05_Arrays/Exercise_7.cs @@ -0,0 +1,14 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E05_Arrays +{ + class Exercise_7 + { + public static void Start() + { + + } + } +} \ No newline at end of file diff --git a/E05_Arrays/Exercise_8.cs b/E05_Arrays/Exercise_8.cs new file mode 100644 index 0000000..2e58a97 --- /dev/null +++ b/E05_Arrays/Exercise_8.cs @@ -0,0 +1,14 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E05_Arrays +{ + class Exercise_8 + { + public static void Start() + { + + } + } +} \ No newline at end of file diff --git a/E05_Arrays/Exercise_9.cs b/E05_Arrays/Exercise_9.cs new file mode 100644 index 0000000..ed30617 --- /dev/null +++ b/E05_Arrays/Exercise_9.cs @@ -0,0 +1,14 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E05_Arrays +{ + class Exercise_9 + { + public static void Start() + { + + } + } +} \ No newline at end of file diff --git a/Entwicklungsaufgaben/Minispiele/Step_1.cs b/Entwicklungsaufgaben/Minispiele/Step_1.cs new file mode 100644 index 0000000..85782c4 --- /dev/null +++ b/Entwicklungsaufgaben/Minispiele/Step_1.cs @@ -0,0 +1,17 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.Entwicklungsaufgaben.Minispiele +{ + class Step_1 + { + + + public static void Start() + { + + } + + } +} \ No newline at end of file diff --git a/Entwicklungsaufgaben/Minispiele/Step_1.txt b/Entwicklungsaufgaben/Minispiele/Step_1.txt new file mode 100644 index 0000000..a18d2d9 --- /dev/null +++ b/Entwicklungsaufgaben/Minispiele/Step_1.txt @@ -0,0 +1,7 @@ +Im ersten Schritt sollen Sie sich mit dynamischen Eingaben in Echtzeit auseinandersetzen. Die Grundvoraussetzung dafür ist eine Umgebung, in der beispielsweise ein Männchen (repräsentiert durch einen Char, also beispielsweise einem X), die als Spielfigur agiert, vom Nutzer gesteuert werden kann. Dies wollen wir mit Hilfe der Pfeiltasten realisieren. Dafür kann man sehr gut die Methode Console.ReadKey() verwenden. Dieser gibt (bis auf ein paar ausnahmen) bei jedem Tastendruck die jeweilige Taste mit dem Wert eines Enums zurück. Sie können den Wert dann mit .Key abfragen. + + +Im Kern sind also Ihre Aufgaben folgende: + - Erstellen Sie ein zweidimensionales Array. + - Implementieren Sie ein Objekt, dass der Nutzer mit Hilfe der Pfeiltasten steuern kann. + - Zeigen Sie das 'Spielfeld' an und aktualisieren Sie es bei jeder Änderung. \ No newline at end of file diff --git a/Exercises_C_Sharp_Lections.csproj b/Exercises_C_Sharp_Lections.csproj new file mode 100644 index 0000000..f02677b --- /dev/null +++ b/Exercises_C_Sharp_Lections.csproj @@ -0,0 +1,10 @@ + + + + Exe + net7.0 + enable + enable + + + diff --git a/MenuElements/ExerciseElement.cs b/MenuElements/ExerciseElement.cs new file mode 100644 index 0000000..b5e2f6e --- /dev/null +++ b/MenuElements/ExerciseElement.cs @@ -0,0 +1,17 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp +{ + class ExerciseElement + { + public string Name = string.Empty; + public Action Method = blind; + public bool IsMarked = false; + public bool? FinishState = null; + public int VideoID = -1; + + static void blind(){} + } +} \ No newline at end of file diff --git a/MenuElements/ExerciseGroup.cs b/MenuElements/ExerciseGroup.cs new file mode 100644 index 0000000..2b35904 --- /dev/null +++ b/MenuElements/ExerciseGroup.cs @@ -0,0 +1,13 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp +{ + class ExerciseGroup + { + public string Name = string.Empty; + public List ElementList = new List(); + public int VideoID = -1; + } +} \ No newline at end of file diff --git a/MenuElements/OpenLinkToVideo.cs b/MenuElements/OpenLinkToVideo.cs new file mode 100644 index 0000000..2dbee0f --- /dev/null +++ b/MenuElements/OpenLinkToVideo.cs @@ -0,0 +1,134 @@ +using System; +using System.Text; +using System.Diagnostics; +using System.IO; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Exercises_C_Sharp +{ + class OpenLinkToVideo + { + static List VideoLectionLinks = new List() + { + new VideoElement(){ ID = 4, Name = "Mathematische Operationen"}, + new VideoElement(){ ID = 5, Name = "Bool'sche Operationen"}, + new VideoElement(){ ID = 6, Name = "Variablen"}, + new VideoElement(){ ID = 7, Name = "Arbeiten mit Strings"}, + new VideoElement(){ ID = 8, Name = "Debuggen"}, + new VideoElement(){ ID = 9, Name = "Ein- und Ausgabe mit der Konsole"}, + new VideoElement(){ ID = 10, Name = "Arrays"}, + new VideoElement(){ ID = 11, Name = "Kurzschreibweise Mathematische Operationen"}, + new VideoElement(){ ID = 12, Name = "Kontrollstruktur IF"}, + new VideoElement(){ ID = 13, Name = "Überprüfen von Eingaben (TryParse)"}, + new VideoElement(){ ID = 14, Name = "Short IFs"}, + new VideoElement(){ ID = 15, Name = "Switch Case"}, + new VideoElement(){ ID = 16, Name = "Flowcharts / PAP (Programm Ablauf Plan)"}, + new VideoElement(){ ID = 17, Name = "FOR-Schleife"}, + new VideoElement(){ ID = 18, Name = "Arrays variabler machen"}, + new VideoElement(){ ID = 19, Name = "FOREACH-Schleife"} + }; + + + public static void ShowVideoMenu(ExerciseGroup eg, ExerciseElement ee) + { + Console.Clear(); + var loginData = LoadAccount(); + if(loginData == null) + { + Console.WriteLine("Um Videos zu den einzelnen Übungen und Lektionen anzusehen, benötigt man einen Alumnee-Account. Bitte geben Sie Ihren vollen Namen (Vor- und Nachname) ein:"); + + string name; + do{ + name = Console.ReadLine() ?? ""; + name = name.Trim(); + } while(string.IsNullOrEmpty(name) || !name.Contains(" ") || name.Length < 7); + Console.WriteLine(); + Console.WriteLine("Bitte geben Sie jetzt Ihre Wibizu-E-Mailadresse ein:"); + string mail; + do{ + mail = Console.ReadLine() ?? ""; + mail = mail.Trim(); + } while(string.IsNullOrEmpty(mail) || mail.Contains(" ") || mail.Length < 16); + Console.WriteLine(); + Console.WriteLine("Die Anmeldedaten werden nun gesetzt und gespeichert!"); + loginData = new Tuple(name, mail); + SaveAccount(loginData); + } + + int num = 0; + while(true) + { + Console.Clear(); + Console.WriteLine("Welches Video soll gezeigt werden?"); + Console.WriteLine("[{0}] Video zu dieser Lektion bzw. zu der Unterrichtsstunde, wo das aktuelle Kapitel nochmal erläutert wird.", num == 0 ? "X" : " "); + Console.WriteLine("[{0}] Video zu der Lösung dieser Aufgabe", num == 0 ? "X" : " "); + var el = Console.ReadKey(); + if(el.Key == ConsoleKey.DownArrow || el.Key == ConsoleKey.UpArrow) + { + if(num == 0) num = 1; + else num = 0; + } + if(el.Key == ConsoleKey.Enter) + { + if(num == 0) + Open(loginData.Item1, loginData.Item2, eg.VideoID, "lection"); + else if(num == 1) + Open(loginData.Item1, loginData.Item2, ee.VideoID, "exercise"); + return; + } + + } + + } + static Tuple? LoadAccount() + { + if(!File.Exists("saveFolder/accountData")) + return null; + var lines = File.ReadAllLines("saveFolder/accountData"); + if(lines.Length < 2) + return null; + + return new Tuple(lines[0], lines[1]); + } + static void SaveAccount(Tuple values) + { + if(File.Exists("saveFolder/accountData")) + File.Delete("saveFolder/accountData"); + + List stringList = new List(){values.Item1, values.Item2}; + File.WriteAllLines("saveFolder/accountData", stringList); + } + + static void Open(string name, string mail, int videoID, string videoKind) + { + string tempHTMLLocation = "saveFolder/temp.html"; + string url = @"https://alumnee.de/videoapi.php"; + + // create the temporary html file + using (FileStream fs = new FileStream(tempHTMLLocation, FileMode.Create)) { + using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8)) { + w.WriteLine(""); + w.WriteLine("
"); + w.WriteLine(""); + w.WriteLine(""); + w.WriteLine(""); + w.WriteLine(""); + w.WriteLine("
"); + w.WriteLine(""); + w.WriteLine(""); + } + } + + // launch the temp html file + var launchProcess = new ProcessStartInfo { + FileName = tempHTMLLocation, + UseShellExecute = true + }; + Process.Start(launchProcess); + + // delete temp file but add delay so that Process has time to open file + Task.Delay(1500).ContinueWith(t=> File.Delete(tempHTMLLocation)); + } + } +} \ No newline at end of file diff --git a/MenuElements/VideoElement.cs b/MenuElements/VideoElement.cs new file mode 100644 index 0000000..57e3b07 --- /dev/null +++ b/MenuElements/VideoElement.cs @@ -0,0 +1,13 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp +{ + class VideoElement + { + public string Name = string.Empty; + public int ID = -1; + public string Kind = "lection"; + } +} \ No newline at end of file diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..bd9354c --- /dev/null +++ b/Program.cs @@ -0,0 +1,573 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp +{ + class Program + { + static List OptionList = new List(); + + public static void Main() + { + //Zuerst schauen, ob der Speicherordner existiert + if(!Directory.Exists("saveFolder")) + Directory.CreateDirectory("saveFolder"); + + + //************************ + //*******Einleitung******* + //************************ + ExerciseGroup beginnerElements = new ExerciseGroup() + { + Name = "1. Einleitung", + ElementList = new List() + { + new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.E01_Einleitung.Exercise_1.Start}, + new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.E01_Einleitung.Exercise_2.Start}, + new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.E01_Einleitung.Exercise_3.Start}, + new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.E01_Einleitung.Exercise_4.Start}, + new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.E01_Einleitung.Exercise_5.Start} + } + }; + //************************ + //*******Variablen******** + //************************ + ExerciseGroup variableElements = new ExerciseGroup() + { + Name = "2. Variablen", + ElementList = new List() + { + new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.E02_Variablen.Exercise_1.Start}, + new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.E02_Variablen.Exercise_2.Start}, + new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.E02_Variablen.Exercise_3.Start}, + new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.E02_Variablen.Exercise_4.Start}, + new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.E02_Variablen.Exercise_5.Start}, + new ExerciseElement(){Name = "Übung 6", Method = Exercises_C_Sharp.E02_Variablen.Exercise_6.Start}, + new ExerciseElement(){Name = "Übung 7", Method = Exercises_C_Sharp.E02_Variablen.Exercise_7.Start}, + new ExerciseElement(){Name = "Übung 8", Method = Exercises_C_Sharp.E02_Variablen.Exercise_8.Start}, + new ExerciseElement(){Name = "Übung 9", Method = Exercises_C_Sharp.E02_Variablen.Exercise_9.Start} + } + }; + //************************ + //********Strings********* + //************************ + ExerciseGroup stringElements = new ExerciseGroup() + { + Name = "3. Strings", + ElementList = new List() + { + new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.E03_Strings.Exercise_1.Start}, + new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.E03_Strings.Exercise_2.Start}, + new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.E03_Strings.Exercise_3.Start}, + new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.E03_Strings.Exercise_4.Start}, + new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.E03_Strings.Exercise_5.Start}, + new ExerciseElement(){Name = "Übung 6", Method = Exercises_C_Sharp.E03_Strings.Exercise_6.Start}, + new ExerciseElement(){Name = "Übung 7", Method = Exercises_C_Sharp.E03_Strings.Exercise_7.Start}, + new ExerciseElement(){Name = "Übung 8", Method = Exercises_C_Sharp.E03_Strings.Exercise_8.Start}, + new ExerciseElement(){Name = "Übung 9", Method = Exercises_C_Sharp.E03_Strings.Exercise_9.Start}, + new ExerciseElement(){Name = "Übung 10", Method = Exercises_C_Sharp.E03_Strings.Exercise_10.Start}, + new ExerciseElement(){Name = "Übung 11", Method = Exercises_C_Sharp.E03_Strings.Exercise_11.Start} + } + }; + //************************ + //********Konsole********* + //************************ + ExerciseGroup terminalElements = new ExerciseGroup() + { + Name = "4. Konsole", + ElementList = new List() + { + new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.E04_Konsole.Exercise_1.Start}, + new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.E04_Konsole.Exercise_2.Start}, + new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.E04_Konsole.Exercise_3.Start}, + new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.E04_Konsole.Exercise_4.Start}, + new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.E04_Konsole.Exercise_5.Start}, + new ExerciseElement(){Name = "Übung 6", Method = Exercises_C_Sharp.E04_Konsole.Exercise_6.Start} + } + }; + //************************ + //********Arrays********* + //************************ + ExerciseGroup arrayElements = new ExerciseGroup() + { + Name = "5. Arrays", + ElementList = new List() + { + new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.E05_Arrays.Exercise_1.Start}, + new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.E05_Arrays.Exercise_2.Start}, + new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.E05_Arrays.Exercise_3.Start}, + new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.E05_Arrays.Exercise_4.Start}, + new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.E05_Arrays.Exercise_5.Start}, + new ExerciseElement(){Name = "Übung 6", Method = Exercises_C_Sharp.E05_Arrays.Exercise_6.Start}, + new ExerciseElement(){Name = "Übung 7", Method = Exercises_C_Sharp.E05_Arrays.Exercise_7.Start}, + new ExerciseElement(){Name = "Übung 8", Method = Exercises_C_Sharp.E05_Arrays.Exercise_8.Start}, + new ExerciseElement(){Name = "Übung 9", Method = Exercises_C_Sharp.E05_Arrays.Exercise_9.Start}, + new ExerciseElement(){Name = "Übung 10", Method = Exercises_C_Sharp.E05_Arrays.Exercise_10.Start}, + new ExerciseElement(){Name = "Übung 11", Method = Exercises_C_Sharp.E05_Arrays.Exercise_11.Start}, + new ExerciseElement(){Name = "Übung 12", Method = Exercises_C_Sharp.E05_Arrays.Exercise_12.Start} + } + }; + + + + //************************ + //*******Überladung******* + //************************ + ExerciseGroup ueberladungElements = new ExerciseGroup() + { + Name = "Überladung", + ElementList = new List() + { + new ExerciseElement(){Name = "Übung 1", Method = XX_Überladung.Exercise_1.Start}, + new ExerciseElement(){Name = "Übung 2", Method = XX_Überladung.Exercise_2.Start}, + new ExerciseElement(){Name = "Übung 3", Method = XX_Überladung.Exercise_3.Start}, + new ExerciseElement(){Name = "Übung 4", Method = XX_Überladung.Exercise_4.Start}, + new ExerciseElement(){Name = "Übung 5", Method = XX_Überladung.Exercise_5.Start} + } + }; + + + //************************ + //********LISTEN********** + //************************ + ExerciseGroup listElements = new ExerciseGroup() + { + Name = "Listen", + ElementList = new List() + { + new ExerciseElement(){Name = "Übung 1", Method = XX_Lists.Exercise_1.Start}, + new ExerciseElement(){Name = "Übung 2", Method = XX_Lists.Exercise_2.Start}, + new ExerciseElement(){Name = "Übung 3", Method = XX_Lists.Exercise_3.Start}, + new ExerciseElement(){Name = "Übung 4", Method = XX_Lists.Exercise_4.Start}, + new ExerciseElement(){Name = "Übung 5", Method = XX_Lists.Exercise_5.Start}, + new ExerciseElement(){Name = "Übung 6", Method = XX_Lists.Exercise_6.Start}, + new ExerciseElement(){Name = "Übung 7", Method = XX_Lists.Exercise_7.Start}, + new ExerciseElement(){Name = "Übung 8", Method = XX_Lists.Exercise_8.Start}, + new ExerciseElement(){Name = "Übung 9", Method = XX_Lists.Exercise_9.Start}, + new ExerciseElement(){Name = "Übung 10", Method = XX_Lists.Exercise_10.Start}, + new ExerciseElement(){Name = "Übung 11", Method = XX_Lists.Exercise_11.Start}, + new ExerciseElement(){Name = "Übung 12", Method = XX_Lists.Exercise_12.Start}, + new ExerciseElement(){Name = "Übung 13", Method = XX_Lists.Exercise_13.Start} + } + }; + + + //************************ + //*********Enums********** + //************************ + ExerciseGroup enumElements = new ExerciseGroup() + { + Name = "Enums", + ElementList = new List() + { + new ExerciseElement(){Name = "Übung 1", Method = XX_Enumns.Exercise_1.Start}, + new ExerciseElement(){Name = "Übung 2", Method = XX_Enumns.Exercise_2.Start}, + new ExerciseElement(){Name = "Übung 3", Method = XX_Enumns.Exercise_3.Start}, + new ExerciseElement(){Name = "Übung 4", Method = XX_Enumns.Exercise_4.Start}, + new ExerciseElement(){Name = "Übung 5", Method = XX_Enumns.Exercise_5.Start}, + new ExerciseElement(){Name = "Übung 6", Method = XX_Enumns.Exercise_6.Start}, + new ExerciseElement(){Name = "Übung 7", Method = XX_Enumns.Exercise_7.Start}, + new ExerciseElement(){Name = "Übung 8", Method = XX_Enumns.Exercise_8.Start}, + new ExerciseElement(){Name = "Übung 9", Method = XX_Enumns.Exercise_9.Start}, + new ExerciseElement(){Name = "Übung 10", Method = XX_Enumns.Exercise_10.Start}, + new ExerciseElement(){Name = "Übung 11", Method = XX_Enumns.Exercise_11.Start}, + new ExerciseElement(){Name = "Übung 12", Method = XX_Enumns.Exercise_12.Start}, + new ExerciseElement(){Name = "Übung 13", Method = XX_Enumns.Exercise_13.Start} + } + }; + + //************************ + //*********Tuple********** + //************************ + ExerciseGroup tupleElements = new ExerciseGroup() + { + Name = "Tuple", + ElementList = new List() + { + new ExerciseElement(){Name = "Übung 1", Method = XX_Tuple.Exercise_1.Start}, + new ExerciseElement(){Name = "Übung 2", Method = XX_Tuple.Exercise_2.Start}, + new ExerciseElement(){Name = "Übung 3", Method = XX_Tuple.Exercise_3.Start}, + new ExerciseElement(){Name = "Übung 4", Method = XX_Tuple.Exercise_4.Start}, + new ExerciseElement(){Name = "Übung 5", Method = XX_Tuple.Exercise_5.Start}, + new ExerciseElement(){Name = "Übung 6", Method = XX_Tuple.Exercise_6.Start}, + new ExerciseElement(){Name = "Übung 7", Method = XX_Tuple.Exercise_7.Start}, + new ExerciseElement(){Name = "Übung 8", Method = XX_Tuple.Exercise_8.Start}, + new ExerciseElement(){Name = "Übung 9", Method = XX_Tuple.Exercise_9.Start} + } + }; + + //************************ + //*Mehrdimensinale Arrays* + //************************ + ExerciseGroup moredimensionalArrayElements = new ExerciseGroup() + { + Name = "Mehrdimensinale Arrays", + ElementList = new List() + { + new ExerciseElement(){Name = "Übung 1", Method = XX_Mehrdimensionale_Arrays.Exercise_1.Start}, + new ExerciseElement(){Name = "Übung 2", Method = XX_Mehrdimensionale_Arrays.Exercise_2.Start}, + new ExerciseElement(){Name = "Übung 3", Method = XX_Mehrdimensionale_Arrays.Exercise_3.Start}, + new ExerciseElement(){Name = "Übung 4", Method = XX_Mehrdimensionale_Arrays.Exercise_4.Start}, + new ExerciseElement(){Name = "Übung 5", Method = XX_Mehrdimensionale_Arrays.Exercise_5.Start}, + new ExerciseElement(){Name = "Übung 6", Method = XX_Mehrdimensionale_Arrays.Exercise_6.Start}, + new ExerciseElement(){Name = "Übung 7", Method = XX_Mehrdimensionale_Arrays.Exercise_7.Start} + } + }; + + //************************ + //******Jagged Arrays***** + //************************ + ExerciseGroup jaggedArrayElements = new ExerciseGroup() + { + Name = "Jagged Arrays", + ElementList = new List() + { + new ExerciseElement(){Name = "Übung 1", Method = XX_Jagged_Arrays.Exercise_1.Start}, + new ExerciseElement(){Name = "Übung 2", Method = XX_Jagged_Arrays.Exercise_2.Start}, + new ExerciseElement(){Name = "Übung 3", Method = XX_Jagged_Arrays.Exercise_3.Start}, + new ExerciseElement(){Name = "Übung 4", Method = XX_Jagged_Arrays.Exercise_4.Start} + } + }; + + //************************ + //********Klassen********* + //************************ + ExerciseGroup classElements = new ExerciseGroup() + { + Name = "Klassen", + ElementList = new List() + { + new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.XX_Classes.Exercise_1.Start}, + new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.XX_Classes.Exercise_2.Start}, + new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.XX_Classes.Exercise_3.Start}, + new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.XX_Classes.Exercise_4.Start}, + new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.XX_Classes.Exercise_5.Start}, + new ExerciseElement(){Name = "Übung 6", Method = Exercises_C_Sharp.XX_Classes.Exercise_6.Start}, + new ExerciseElement(){Name = "Übung 7", Method = Exercises_C_Sharp.XX_Classes.Exercise_7.Start} + } + }; + + //************************ + //****Konstruktoren******* + //************************ + ExerciseGroup constructorElements = new ExerciseGroup() + { + Name = "Konstruktoren", + ElementList = new List() + { + new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.XX_Konstruktoren.Exercise_1.Start}, + new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.XX_Konstruktoren.Exercise_2.Start}, + new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.XX_Konstruktoren.Exercise_3.Start}, + new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.XX_Konstruktoren.Exercise_4.Start}, + new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.XX_Konstruktoren.Exercise_5.Start}, + new ExerciseElement(){Name = "Übung 6", Method = Exercises_C_Sharp.XX_Konstruktoren.Exercise_6.Start}, + new ExerciseElement(){Name = "Übung 7", Method = Exercises_C_Sharp.XX_Konstruktoren.Exercise_7.Start} + } + }; + + //************************ + //******Exceptions******** + //************************ + ExerciseGroup exceptionElements = new ExerciseGroup() + { + Name = "Exceptions", + ElementList = new List() + { + new ExerciseElement(){Name = "Übung 1", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_1.Start}, + new ExerciseElement(){Name = "Übung 2", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_2.Start}, + new ExerciseElement(){Name = "Übung 3", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_3.Start}, + new ExerciseElement(){Name = "Übung 4", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_4.Start}, + new ExerciseElement(){Name = "Übung 5", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_5.Start}, + new ExerciseElement(){Name = "Übung 6", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_6.Start}, + new ExerciseElement(){Name = "Übung 7", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_7.Start}, + new ExerciseElement(){Name = "Übung 8", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_8.Start}, + new ExerciseElement(){Name = "Übung 9", Method = Exercises_C_Sharp.XX_Exceptions.Exercise_9.Start} + } + }; + + + //************************ + //****Sonderaufgaben****** + //************************ + ExerciseGroup specialElements = new ExerciseGroup() + { + Name = "Sonderaufgaben", + ElementList = new List() + { + new ExerciseElement(){Name = "Schere Stein Papier Echse Spock", Method = Exercises_C_Sharp.Sonderaufgaben.Exercise_1.Start}, + new ExerciseElement(){Name = "Schiffe versenken", Method = Exercises_C_Sharp.Sonderaufgaben.Exercise_2.Start}, + new ExerciseElement(){Name = "Memory", Method = Exercises_C_Sharp.Sonderaufgaben.Exercise_3.Start} + } + }; + + //************************ + //*Entwicklungsaufgaben*** + //************************ + ExerciseGroup developElements = new ExerciseGroup() + { + Name = "Entwicklungsaufgaben", + ElementList = new List() + { + new ExerciseElement(){Name = "Dynamische Eingaben in Echtzeit", Method = Exercises_C_Sharp.Entwicklungsaufgaben.Minispiele.Step_1.Start} + } + }; + + //************************ + //***Dateizugriffe******** + //************************ + ExerciseGroup filesystemElements = new ExerciseGroup() + { + Name = "Dateizugriffe", + ElementList = new List() + { + new ExerciseElement(){Name = "Aufgabe 1", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_1.Start}, + new ExerciseElement(){Name = "Aufgabe 2", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_2.Start}, + new ExerciseElement(){Name = "Aufgabe 3", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_3.Start}, + new ExerciseElement(){Name = "Aufgabe 4", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_4.Start}, + new ExerciseElement(){Name = "Aufgabe 5", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_5.Start}, + new ExerciseElement(){Name = "Aufgabe 6", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_6.Start}, + new ExerciseElement(){Name = "Aufgabe 7", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_7.Start}, + new ExerciseElement(){Name = "Aufgabe 8", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_8.Start}, + new ExerciseElement(){Name = "Aufgabe 8b", Method = Exercises_C_Sharp.XX_Dateizugriffe.Exercise_8b.Start} + } + }; + + //************************ + //***********MySQL******** + //************************ + ExerciseGroup mysqlElements = new ExerciseGroup() + { + Name = "MySQL", + ElementList = new List() + { + new ExerciseElement(){Name = "Aufgabe 1", Method = Exercises_C_Sharp.XX_MySQL.Exercise_1.Start}, + new ExerciseElement(){Name = "Aufgabe 2", Method = Exercises_C_Sharp.XX_MySQL.Exercise_2.Start} + } + }; + + //************************ + //*****Serialisierung***** + //************************ + ExerciseGroup serializeElements = new ExerciseGroup() + { + Name = "Serialisierung", + ElementList = new List() + { + new ExerciseElement(){Name = "Aufgabe 1", Method = Exercises_C_Sharp.XX_Serialisierung.Exercise_1.Start}, + new ExerciseElement(){Name = "Aufgabe 2", Method = Exercises_C_Sharp.XX_Serialisierung.Exercise_2.Start} + } + }; + + //Zusammenführung + OptionList = new List(){ + beginnerElements, + variableElements, + stringElements, + terminalElements, + arrayElements, + listElements, + enumElements, + ueberladungElements, + moredimensionalArrayElements, + jaggedArrayElements, + tupleElements, + specialElements, + developElements, + classElements, + constructorElements, + exceptionElements, + filesystemElements, + mysqlElements + }; + + Menu(); + } + + //ToDo: Einzelne Lektionen nebeneinander anzeigen + //ToDo: Senden, um zu überprüfen, ob alles richtig ist + //ToDo: Element als erledigt markieren + static void Menu() + { + Console.Clear(); + LoadMarkedExercises(); + var pos = LoadCurrentElementAndCurrentList(); + int currentElement = pos.Item1; + int currentList = pos.Item2; + + while(true) + { + for(int k = 0; k < OptionList.Count; k++) + { + var element = OptionList[k]; + Console.WriteLine("**********************"); + Console.WriteLine(element.Name); + Console.WriteLine("**********************"); + if(currentList == k) + { + for(int i = 0; i < element.ElementList.Count; i++) + { + //Der erste Wert vorne ist dafür gedacht, dass markiert wird, wenn die Aufgabe abgegeben und korregiert wurde --> ToDo + Console.WriteLine("{2}{1}[{0}] " + element.ElementList[i].Name, currentElement == i && currentList == k ? "X" : " ", !element.ElementList[i].IsMarked ? " " : "#", element.ElementList[i].FinishState == false ? "NO" : element.ElementList[i].FinishState == false == true ? "OK" : " "); + } + } + } + var key = Console.ReadKey(); + if(key.Key == ConsoleKey.UpArrow) + { + if(currentElement == 0 && currentList == 0) + { + currentList = OptionList.Count -1; + currentElement = OptionList[OptionList.Count -1].ElementList.Count -1; + } + else if(currentElement == 0 && currentList > 0) + { + currentList--; + currentElement = OptionList[currentList].ElementList.Count -1; + } + else + currentElement--; + } + else if(key.Key == ConsoleKey.DownArrow) + { + if(currentElement == OptionList[currentList].ElementList.Count - 1 && currentList == OptionList.Count -1) + { + currentList = 0; + currentElement = 0; + } + else if(currentElement == OptionList[currentList].ElementList.Count - 1 && currentList < OptionList.Count -1) + { + currentList++; + currentElement = 0; + } + else + { + currentElement++; + } + } + else if(key.Key == ConsoleKey.Enter) + { + Console.Clear(); + try + { + SaveCurrentElementAndCurrentList(currentElement, currentList); + OptionList[currentList].ElementList[currentElement].Method(); + } + catch(Exception ex) + { + Console.WriteLine("******************"); + Console.WriteLine("***** Fehler *****"); + Console.WriteLine("******************"); + Console.WriteLine("Bei der Aufgabe ist folgender Fehler aufgetreten:"); + Console.WriteLine(ex.ToString()); + } + Console.WriteLine(); + Console.WriteLine(); + Console.WriteLine("Aufgabe beendet. Zum Weitermachen Taste drücken..."); + Console.ReadKey(); + } + else if(key.Key == ConsoleKey.X) + { + var el = OptionList[currentList].ElementList[currentElement]; + if(el.IsMarked == false) + OptionList[currentList].ElementList[currentElement].IsMarked = true; + else + OptionList[currentList].ElementList[currentElement].IsMarked = false; + + SaveMarkedExercises(); + } + else if(key.Key == ConsoleKey.RightArrow) + { + //ToDo: Absenden und überprüfen + + } + else if(key.Key == ConsoleKey.V) + { + //Zum Videomenu + OpenLinkToVideo.ShowVideoMenu(OptionList[currentList], OptionList[currentList].ElementList[currentElement]); + } + Console.Clear(); + } + } + + + + //Speichert das zuletzt ausgewählte Element + static void SaveCurrentElementAndCurrentList(int currentElement, int currentList) + { + try + { + if(File.Exists("lastPoint")) + File.Delete("lastPoint"); + + File.WriteAllLines("lastPoint", new List(){currentElement.ToString(), currentList.ToString()}); + } + catch(Exception ex) + { + Console.WriteLine("Sorry, habe anscheindend einen Fehler reinprogrammiert. Ihre Aufgabe ist nun, den Fehler in der Program.cs zu finden und zu fixen. Hierfür bekommen Sie folgenden Hinweis:"); + Console.WriteLine(ex.ToString()); + } + } + static Tuple LoadCurrentElementAndCurrentList() + { + try + { + if(!File.Exists("lastPoint")) + return new Tuple(0,0); + + var el = File.ReadAllLines("lastPoint"); + return new Tuple(Convert.ToInt32(el[0]), Convert.ToInt32(el[1])); + } + catch(Exception ex) + { + Console.WriteLine("Sorry, habe anscheindend einen Fehler reinprogrammiert. Ihre Aufgabe ist nun, den Fehler in der Program.cs zu finden und zu fixen. Hierfür bekommen Sie folgenden Hinweis:"); + Console.WriteLine(ex.ToString()); + } + return new Tuple(0,0); + } + + //ToDo: Richtiges Abspeichern implementieren!!! + //Speichert die markierten Aufgaben ab + static void SaveMarkedExercises() + { + List saveList = new List(); + foreach(var element in OptionList) + { + foreach(var item in element.ElementList) + { + if(item.IsMarked == true) + { + saveList.Add(string.Format("{0}{1} {2}", element.Name, item.Name, item.IsMarked.ToString())); + } + } + } + File.WriteAllLines("markingSave", saveList); + } + static void LoadMarkedExercises() + { + if(!File.Exists("markingSave")) + return; + var el = File.ReadAllLines("markingSave"); + Dictionary dic = new Dictionary(); + foreach(var element in el) + { + string str = element.Substring(0, element.LastIndexOf(" ")); + bool b = Convert.ToBoolean(element.Substring(element.LastIndexOf(" ") + 1)); + dic.Add(str, b); + } + + + foreach(var element in OptionList) + { + for(int i = 0; i < element.ElementList.Count; i++) + { + var key = string.Format("{0}{1}", element.Name, element.ElementList[i].Name); + if(dic.ContainsKey(key)) + { + element.ElementList[i].IsMarked = dic[key]; + } + } + } + } + } +} diff --git a/README.md b/README.md index 5475736..7879059 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,9 @@ # Exercises_C_Sharp - -Hier finden Sie die Übungsaufgaben aus dem Unterricht. -Bitte geben Sie die Daten hier nicht weiter. Sollten Sie Fehler finden, melden Sie diese bitte direkt an mich. \ No newline at end of file +Hinweise: +- Wichtig: Hierbei handelt es sich um Übungsaufgaben, die oftmals in der Praxis nicht so verwendet werden sollten. Es geht um die konkrete Übung eines spezifischen Sachverhalts. +- Die Aufgaben befinden sich sortiert zu dem jeweiligen Gebiet in den Ordnern. +- Lesen Sie die oben stehende Aufgaben genau durch und fügen Sie Ihre Lösung zwischen 'Code START' und 'Code ENDE' ein. Sollte es keinen Start und kein Ende geben, sollen Sie die Datei wie in der Aufgabenstellung beschrieben bearbeiten. +- Sie können zwischen START und ENDE beliebig viele Zeilen einfügen oder herauslöschen. Beim Löschen könnte es Bedingungen durch die Aufgabenstellung geben. +- Aufgaben sind teilweise so angepasst, dass der gesamte Code kompilierbar bleibt. Löschen Sie unpassende Dinge, oder ändern Sie diese ab, wenn diese zwischen 'Code START' und 'Code ENDE' stehen. Jeglicher anderer Code MUSS so stehen bleiben und darf nicht verändert werden. +- Ausnahmen dafür sind dynamic-Typen. Diese müssen Sie immer durch den korrekten Typen ersetzen, egal ob diese zwischen Start und Ende stehen, oder nicht. +- Auch die Preprocessordirectives können Sie herauslöschen. Dadurch werden Ihnen Warnungen angezeigt. diff --git a/Schulaufgaben/SS23/dummy b/Schulaufgaben/SS23/dummy new file mode 100644 index 0000000..e69de29 diff --git a/Schulaufgaben/WS2324/dummy b/Schulaufgaben/WS2324/dummy new file mode 100644 index 0000000..e69de29 diff --git a/Sonderaufgaben/Exercise_1.cs b/Sonderaufgaben/Exercise_1.cs new file mode 100644 index 0000000..59496ef --- /dev/null +++ b/Sonderaufgaben/Exercise_1.cs @@ -0,0 +1,27 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.Sonderaufgaben +{ + class Exercise_1 + { + //Schreiben Sie ein Spiel, in dem man gegen den Computer Schere, Stein, Papier, Echse, Spock spielen kann. Die Regeln sind wie folgt: + // - Schere schneidet Papier          + // - Papier bedeckt Stein                 + // - Stein zerquetscht Echse + // - Echse vergiftet Spock + // - Spock zertrümmert Schere + // - Schere köpft Echse + // - Echse frisst Papier + // - Papier widerlegt Spock + // - Spock verdampft Stein + // - Stein schleift Schere + + public static void Start() + { + + } + + } +} \ No newline at end of file diff --git a/Sonderaufgaben/Exercise_1.png b/Sonderaufgaben/Exercise_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0df21614483d451b8a2823a82623157704faa44c GIT binary patch literal 7164 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 yhLW^uiA5uW4?CbP=1tLcLYLwH`SU7)y literal 0 HcmV?d00001 diff --git a/Sonderaufgaben/Exercise_2.cs b/Sonderaufgaben/Exercise_2.cs new file mode 100644 index 0000000..0d2f47d --- /dev/null +++ b/Sonderaufgaben/Exercise_2.cs @@ -0,0 +1,50 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.Sonderaufgaben +{ + class Exercise_2 + { + //Schreiben Sie ein Programm, in dem man gegen den PC Schiffe versenken spielen kann. Dabei soll der Anwender immer eine Koordinate (z.B. A7) eingeben und dann wird überprüft, ob sich dort ein Treffer befindet. Dabei hat nur der Computer ein 10x10 Feld, auf dem er Zufällig die Schiffe (Schlachtschiff[5 Felder], Kreuzer [4 Felder], Fregatte [3 Felder], Schnellboot[2 Felder]) platziert. Überlegen Sie sich, wie man das Feld auf der Konsole anzeigen könnte. + + //Gedankengang zu dieser Aufgabe: + //0 -> Wasser -> Ausgabe: O + //1 -> Schiff -> Ausgabe: O (Tipp: Kann auch zum Debuggen geändert werden) + //2 -> Getroffenes Wasser -> Ausgabe: $ + //3 -> Getroffenes Schiff -> Ausgabe: X + + //Hierbei handelt es sich um das Spielfeld (Standardmäßig sind alle Werte 0) + static int[,] GameField = new int[10,10]; + + public static void Start() + { + + } + + //Diese Methode setzt die Schiffe in das Spielfeld + static void SetShips() + { + + } + + //Diese Methode frägt, prüft und wandelt die Eingabe des Nutzers um. Dabei wird die konkrete Koordinate zurück gegeben. + static Tuple GetUserinput() + { + return new Tuple(-1,-1); + } + + //Diese Methode verarbeitet die Eingabe des Nutzers. + static void HandleUserInput(Tuple userinput) + { + + } + + + //Diese Methode zeigt das Spielfeld mit allen weiteren Anzeigeelementen an. + static void ShowField() + { + + } + } +} \ No newline at end of file diff --git a/Sonderaufgaben/Exercise_2.png b/Sonderaufgaben/Exercise_2.png new file mode 100644 index 0000000000000000000000000000000000000000..bc21d95bf4c7f0892ee9dd030e1d6cbdb78334ff GIT binary patch literal 13817 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 literal 0 HcmV?d00001 diff --git a/Sonderaufgaben/Exercise_3.cs b/Sonderaufgaben/Exercise_3.cs new file mode 100644 index 0000000..4f9fc76 --- /dev/null +++ b/Sonderaufgaben/Exercise_3.cs @@ -0,0 +1,17 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.Sonderaufgaben +{ + class Exercise_3 + { + //Schreiben Sie ein eigenes Memory-Spiel! Bei Memory haben Sie eine gerade Anzahl an Karten, die für den Nutzer nicht einsehbar (verdeckt) liegen. Nun darf der Anwender immer zwei Karten nacheinander aufdecken. Besitzen beide Karten dasselbe Symbol, verschwinden diese vom Spielfeld. Sind es zwei unterschiedliche Symbole, so werden diese wieder "umgedreht", also für den Spieler unsichtbar gemacht. Gewonnen hat der Spieler dann, wenn keine Karten mehr übrig sind. Zählen Sie die Versuche mit, die der Spieler bis zum Gewinn gebraucht hat. + + public static void Start() + { + + } + + } +} \ No newline at end of file diff --git a/Sonderaufgaben/ReadMe.txt b/Sonderaufgaben/ReadMe.txt new file mode 100644 index 0000000..ee417d1 --- /dev/null +++ b/Sonderaufgaben/ReadMe.txt @@ -0,0 +1,4 @@ +Hinweise zu den Sonderaufgaben: + +In diesen Aufgaben sind Sie komplett frei, was Sie programmieren. Oftmals gibt es auch vorgefertigte Strukturen, diese können Sie nutzen, oder auch komplett verändern. Die Aufgaben sind meistens etwas freier beschrieben, schließen Sie die Aufgabenlücken mit Ihrer eigenen Meinung zum Thema, wie das Programm am besten arbeiten und aussehen sollte. +Sie finden auch (teilweise) Beispielbilder vom Programm. Diese besitzen den selben Namen wie die Aufgabe. \ No newline at end of file diff --git a/Use_Case_Diagramm/Exercise_1.txt b/Use_Case_Diagramm/Exercise_1.txt new file mode 100644 index 0000000..93b507c --- /dev/null +++ b/Use_Case_Diagramm/Exercise_1.txt @@ -0,0 +1 @@ +Sie sollen für Ihre nächste Party ein Use Case-Diagramm erzeugen. Dabei sollen sie die Interaktionen von dem Gast, dem Gastgeber und der Polizei implementieren. Achten Sie darauf, dass die Gäst (wie auch der Gastgeber) Tanzen, Essen, Trinken und sich unterhalten können. Achten Sie dabei darauf, dass immer genug Nachschub an Essen und Trinken da ist. Sie als Gastgeber können natürlich die Feier beenden und auch Gäste herausgeleiten. Natürlich kann aber die Polizei auch die Party abrupt beenden. \ No newline at end of file diff --git a/Use_Case_Diagramm/Exercise_2.txt b/Use_Case_Diagramm/Exercise_2.txt new file mode 100644 index 0000000..01a2286 --- /dev/null +++ b/Use_Case_Diagramm/Exercise_2.txt @@ -0,0 +1,2 @@ +Sie sollen für eine Schiffe versenken Software ein Use-Case-Diagramm modellieren. Das Spiel ist auf zwei Spieler ausgelegt. Dabei eröffnet ein Spieler einen Raum und ein zweiter kann dann folgen. Das Spiel kann erst gestartet werden, wenn ein zweiter Spieler gefolgt ist. +Dann darf jeder Spieler abwechselnd setzen. Jeder Spieler kann aber auch das Spiel abbrechen, dann wird die Verbindung getrennt und der Raum geschlossen. \ No newline at end of file diff --git a/Use_Case_Diagramm/Exercise_3.txt b/Use_Case_Diagramm/Exercise_3.txt new file mode 100644 index 0000000..5a78ba3 --- /dev/null +++ b/Use_Case_Diagramm/Exercise_3.txt @@ -0,0 +1,2 @@ +Sie sollen ein Use-Case-Diagramm für einen Login-Bereich schreiben. In diesem soll sich ein Anwender registrieren und anmelden können. Wenn sich jemand registriert hat, dann muss sein Account erst durch einen Admin freigeschalten werden. Nache erfolgreichen login kann der Anwender Posts erstellen und Kommentare dazu schreiben. Diese können von ihm selber und von einem Admin geslöscht werden. +Der gesamte Account kann auch von einem Admin gesperrt werden, dann ist ein Einloggen nicht mehr möglich. \ No newline at end of file diff --git a/XX_Classes/Exercise_1.cs b/XX_Classes/Exercise_1.cs new file mode 100644 index 0000000..bec1adc --- /dev/null +++ b/XX_Classes/Exercise_1.cs @@ -0,0 +1,27 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Classes +{ + class Exercise_1 + { + public static void Start() + { + //Erstellen Sie die Klasse Funny, sodass "Hallo, das ist super!" auf der Konsole ausgegeben wird. + //Code START + dynamic funnyClass = -1; + //Code ENDE + + Console.WriteLine(funnyClass.Value1 + funnyClass.Value2 + funnyClass.Value3 + funnyClass.Value4); + } + class Funny + { + public string Value1 = "Hallo"; + public string Value2 = ", das"; + public string Value3 = " ist"; + public string Value4 = " super!"; + + } + } +} \ No newline at end of file diff --git a/XX_Classes/Exercise_2.cs b/XX_Classes/Exercise_2.cs new file mode 100644 index 0000000..7a2c491 --- /dev/null +++ b/XX_Classes/Exercise_2.cs @@ -0,0 +1,61 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Classes +{ + class Exercise_2 + { + public static void Start() + { + List listList = new List(); + //Erstellen Sie fünf neue Instanzen der Klasse Lists und fügen Sie diese der oberen Liste hinzu. + //Code START + + //Code ENDE + + foreach(var element in listList) + fillListsWithRandomValues(element); + + //Lassen Sie nun den Anwender Eingaben machen. Diese sollen Strings, Chars, Ints oder Decimal sein. Überprüfen Sie, um welchen Typ es sich handelt und überprüfen Sie, ob sich dieser Wert in einer Liste in einen der Klassen befindet oder nicht. + //Sollte sich das Element in einer Liste befinden, dann geben Sie den Wert davor und den Wert danach aus. Sollte es keinen Wert davor bzw. danach geben, nehmen Sie den letzten oder den ersten Wert. + while(true) + { + + } + } + static void fillListsWithRandomValues(Lists lis) + { + Random rand = new Random(); + //Fill Integer + for(int i = 0; i < rand.Next(5, 21); i++) + lis.IntegerList.Add(rand.Next()); + //Fill Strings + for(int i = 0; i < rand.Next(5,21); i++) + { + string temp = ""; + for(int j = 0; j < rand.Next(5,21); j++) + temp += (char)rand.Next(65,123); + lis.StringList.Add(temp); + } + //Fill Chars + for(int i = 0; i < rand.Next(5,21); i++) + { + lis.CharList.Add((char)rand.Next(65,123)); + } + //Fill Decimal + for(int i = 0; i < rand.Next(5,21); i++) + { + lis.DecimalList.Add(((decimal)rand.Next()) / (decimal)Math.Pow(10, rand.Next(1,9))); + } + + } + } + class Lists + { + public List IntegerList = new List(); + public List StringList = new List(); + public List CharList = new List(); + public List DecimalList = new List(); + } +} \ No newline at end of file diff --git a/XX_Classes/Exercise_3.cs b/XX_Classes/Exercise_3.cs new file mode 100644 index 0000000..2c0f262 --- /dev/null +++ b/XX_Classes/Exercise_3.cs @@ -0,0 +1,51 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Classes +{ + class Exercise_3 + { + public static void Start() + { + //Erstellen Sie eine Liste von Ausweisen (IDs) + //Code START + + //Code ENDE + + //Der Nutzer soll nun beliebig viele Ausweise erstellen können. Achten Sie darauf, dass der Nutzer mindestens 5 Ausweise erstellen muss. Verwenden Sie die Methode UserCreateID(). Speichern Sie die Ausweise in die oben erstellte Liste, nach dem Geburtsdatum sortiert. + //Code START + + //Code ENDE + + //Geben Sie zum Schluss alle Ausweise aus. Nutzen Sie dafür die Methode ShowIDs(). + //Code Start + //ShowIDs(); + //Code ENDE + } + + //Geben Sie in diser Methode alle Ausweise optisch ansprechend auf der Konsole aus. + static void ShowIDs(List idList) + { + + } + + //Sorgen Sie dafür, dass der Anwender hier einen validen Ausweis erstellen kann. Setzen Sie die IDNumber selber. Achten Sie darauf, dass eine IDNumber mindesten 5 Zahlen beinhaltet und eindeutig sein muss. + static ID UserCreateID() + { + //Code START + return new ID(); + //Code ENDE + } + + + } + + class ID + { + public int IDNumber = -1; + public string? Prename = null; + public string? Givenname = null; + public DateTime Birth = DateTime.MinValue; + } +} \ No newline at end of file diff --git a/XX_Classes/Exercise_4.cs b/XX_Classes/Exercise_4.cs new file mode 100644 index 0000000..020bb8e --- /dev/null +++ b/XX_Classes/Exercise_4.cs @@ -0,0 +1,49 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Classes +{ + class Exercise_4 + { + //Erstellen Sie eine statische Liste, wo man Elemente vom Typ Equipment reinspeichern kann + //Code Start + static dynamic EList = 1; + //Code ENDE + public static void Start() + { + string userinput; + do + { + EList.Add(MakeEquipment()); + Console.WriteLine("Wollen Sie die weitere Eingabe abbrechen? (y -> JA, ABBRECHEN)"); + userinput = Console.ReadLine() ?? ""; + } + while(userinput.Trim().ToUpper() != "Y"); + PrintEquipment(); + } + + //Lassen Sie hier einen Nutzer Ausrüstung erstellen (Eingabe einer ID, eines Namens und einer Anzahl) und gegen Sie diese zurück. + static Equipment? MakeEquipment() + { + //Code Start + return null; + //Code ENDE + } + + //Geben Sie hier die Liste mit Equipment optisch ansprechend aus. + static void PrintEquipment() + { + //Code Start + + //Code ENDE + } + } + + class Equipment + { + public int ID = -1; + public string? Name = null; + public int Amount = -1; + } +} \ No newline at end of file diff --git a/XX_Classes/Exercise_5.cs b/XX_Classes/Exercise_5.cs new file mode 100644 index 0000000..58790e7 --- /dev/null +++ b/XX_Classes/Exercise_5.cs @@ -0,0 +1,35 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Classes +{ + class Exercise_5 + { + public static void Start() + { + //Erstellen Sie hier eine Instanz ihrer Klasse + //Code START + dynamic obj = 1; + //Code ENDE + + obj.StringList = new List{"Hallo", "Hi", "Hey", "Hohoho", "Ciao", "Byebye"}; + obj.Position = 1; + + Console.WriteLine(GetCharsFromPosition(obj)); + } + static string GetCharsFromPosition(dynamic d) + { + string tempString = string.Empty; + foreach(var element in d.StringList) + { + tempString += element.Length > d.Position ? element[d.Position] : ""; + } + return tempString; + } + } + //Schreiben Sie eine Klasse, die oben zu der Aufgabe passt. Ändern Sie dann auch alle dynamics oben ab. + //Code START + + //Code ENDE +} \ No newline at end of file diff --git a/XX_Classes/Exercise_6.cs b/XX_Classes/Exercise_6.cs new file mode 100644 index 0000000..0c3b994 --- /dev/null +++ b/XX_Classes/Exercise_6.cs @@ -0,0 +1,78 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Classes +{ + class Exercise_6 + { + public static void Start() + { + List AnimalList = new List(); + + //Füllen Sie die AnimalList mit 20 verschiedenen Tieren unterschiedlichen Typs. + //Code Start + + //Code Ende + + while(true) + { + //Geben Sie dem Anwender die Möglichkeit, nach den unten stehenden Enums zu filtern. Der Anwender soll auswählen, nach was er filtern möchte (z.B. Schuppen, Vogel, Insekt usw.). Rufen Sie dann die Methode FilterAnimnals() auf und übergeben Sie diesen Wert. + //Code Start + + //Code Ende + } + + } + + static void FilterAnimals (List animalList, T filterItem) + { + Console.Clear(); + if(filterItem == null || animalList == null) + return; + foreach(var element in animalList) + { + if(typeof(T) == typeof(SkinKind)) + { + if(element.Skin == (SkinKind)Convert.ChangeType(filterItem, typeof(SkinKind))) + PrintAnimalToConsole(element); + } + else if(typeof(T) == typeof(MealKind)) + { + if(element.Meal == (MealKind)Convert.ChangeType(filterItem, typeof(MealKind))) + PrintAnimalToConsole(element); + } + else if(typeof(T) == typeof(AnimalKind)) + { + if(element.Kind == (AnimalKind)Convert.ChangeType(filterItem, typeof(AnimalKind))) + PrintAnimalToConsole(element); + } + } + } + + static void PrintAnimalToConsole(Animal a) + { + //Geben Sie hier das übergebene Tier mit allen Werten aus. + //Code Start + + + //Code Ende + } + + + enum SkinKind {Fell, Schuppen, Federn, Haut} + enum MealKind {Pflanzenfresser, Fleischfresser, Allesfresser} + enum AnimalKind {Säugetier, Vogel, Insekt, Reptil} + + class Animal + { + public string? Name = null; + public SkinKind Skin = SkinKind.Federn; + public MealKind Meal = MealKind.Allesfresser; + public AnimalKind Kind = AnimalKind.Insekt; + + public int CurrentPopulation = -1; + + } + } +} \ No newline at end of file diff --git a/XX_Classes/Exercise_7.cs b/XX_Classes/Exercise_7.cs new file mode 100644 index 0000000..0aaf328 --- /dev/null +++ b/XX_Classes/Exercise_7.cs @@ -0,0 +1,84 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Classes +{ + class Exercise_7 + { + static List CustomerList = new List(); + static List ProductList = new List(); + static List InvoiceList = new List(); + public static void Start() + { + while(true) + { + //Schreiben Sie ein Menü (auch gerne in einer neuen Methode), in dem der Nutzer Auswählen kann, ob er einen Kunden, ein Produkt oder eine Rechnung erstellen kann. Geben Sie ihm auch die Möglichkeit, zu einer Rechnung Produkte hinzuzufügen und zu löschen. + //Code Start + + //Code Ende + } + + } + + //Ergänzen Sie diese Methode, sodass ein Anwender hier einen neuen Kunden erstellen kann. Dieser soll dann in die CustomerList gespeichert werden. + static void CreateNewCustomerAndAddToList() + { + //Code Start + + //Code Ende + } + //Ergänzen Sie diese Methode, sodass ein Anwender hier einen neues Produkt erstellen kann. Dieser soll dann in die ProductList gespeichert werden. + static void CreateNewProductAndAddToList() + { + //Code Start + + //Code Ende + } + //Ergänzen Sie diese Methode, sodass ein Anwender hier eine neue Rechnung erstellen kann. Dieser soll dann in die InvoiceList gespeichert werden. + static void CreateNewInvoiceAndAddToList() + { + //Code Start + + //Code Ende + } + //Ergänzen Sie diese Methode, sodass ein Anwender hier ein Produkt zu einer Rechnung hinzufügen kann. + static void AddElementToInvoice(Invoice inv) + { + + } + //Ergänzen Sie diese Methode, sodass ein Anwender hier ein Produkt von einer Rechnung löschen kann. + static void DeleteElementToInvoice(Invoice inv) + { + + } + } + class Product + { + public string? Name = null; + public decimal Price = 0; + } + class Invoice + { + public Customer? Cust = null; + public List Items = new List(); + + //Schreiben Sie hier eine Methode, die die Anzahl aller einzelnen Elemente zurückgibt + + //Schreiben Sie hier eine Methode, die die Anzahl der verschiedenen Produkte zurückgibt + + //Schreiben Sie hier eine Methode, die den Gesamtpreis der Rechnung zurück gibt + } + class Item + { + public Product? Product = null; + public int Amount = 0; + } + class Customer + { + public int ID = -1; + public string? Name = null; + public string? Address = null; + } + +} \ No newline at end of file diff --git a/XX_Dateizugriffe/Ex8/Inventar.cs b/XX_Dateizugriffe/Ex8/Inventar.cs new file mode 100644 index 0000000..6ce2cf9 --- /dev/null +++ b/XX_Dateizugriffe/Ex8/Inventar.cs @@ -0,0 +1,29 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Dateizugriffe +{ + class Inventar + { + public Inventar(string companyName) + { + if(string.IsNullOrWhiteSpace(companyName)) + throw new ArgumentNullException("Der übergeben Name für die Fima ist NULL oder leer. Dies ist nicht erlaubt."); + CompanyName = companyName; + } + + public string CompanyName; + + public List Notes = new List(); + + List<(Thing obj, int amount)> objectList = new List<(Thing obj, int amount)>(); + + //Diese Methode soll den Gesamtpreis aller Elemente zurück geben. + public decimal ReturnPriceSum() + { + //Code START + return decimal.Zero; + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Dateizugriffe/Ex8/Thing.cs b/XX_Dateizugriffe/Ex8/Thing.cs new file mode 100644 index 0000000..7efdba3 --- /dev/null +++ b/XX_Dateizugriffe/Ex8/Thing.cs @@ -0,0 +1,13 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Dateizugriffe +{ + class Thing + { + public string? Name; + public decimal Price; + public string? Details; + public double Weight; + } +} \ No newline at end of file diff --git a/XX_Dateizugriffe/Exercise_1.cs b/XX_Dateizugriffe/Exercise_1.cs new file mode 100644 index 0000000..5266fc0 --- /dev/null +++ b/XX_Dateizugriffe/Exercise_1.cs @@ -0,0 +1,17 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Dateizugriffe +{ + class Exercise_1 + { + public static void Start() + { + Console.WriteLine("Hier ist der Inhalt der Datei 'ex1.ttdx';"); + //Unter Files finden Sie die Datei ex1.ttdx. Geben Sie den Inhalt der Datei aus: + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Dateizugriffe/Exercise_2.cs b/XX_Dateizugriffe/Exercise_2.cs new file mode 100644 index 0000000..3e3ce47 --- /dev/null +++ b/XX_Dateizugriffe/Exercise_2.cs @@ -0,0 +1,16 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Dateizugriffe +{ + class Exercise_2 + { + public static void Start() + { + //Unter Files finden Sie die Datei Animal.txt. Sorgen Sie dafür, dass der Nutzer die Dateiendung beliebig ändern kann: + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Dateizugriffe/Exercise_3.cs b/XX_Dateizugriffe/Exercise_3.cs new file mode 100644 index 0000000..666ecac --- /dev/null +++ b/XX_Dateizugriffe/Exercise_3.cs @@ -0,0 +1,16 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Dateizugriffe +{ + class Exercise_3 + { + public static void Start() + { + //Unter Files finden Sie die Datei 'ex3.num'. In dieser Datei sind Messergebnisse enthalten. Einige dieser Messergebnisse haben Nachkommastellen. Ihre Aufgabe ist nun, alle Zahlen mit Nachkommastellen matehmatisch sauber zu runden, sodass nur noch Integer-Zahlen in der Datei ex3.num stehen. + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Dateizugriffe/Exercise_4.cs b/XX_Dateizugriffe/Exercise_4.cs new file mode 100644 index 0000000..f64fbc1 --- /dev/null +++ b/XX_Dateizugriffe/Exercise_4.cs @@ -0,0 +1,30 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Dateizugriffe +{ + class Exercise_4 + { + public static void Start() + { + //Sorgen Sie dafür, dass die stringList bei jedem Ausführen der Aufgabe geladen wird. Achten Sie darauf zu überprüfen, ob die Datei überhaupt schon existiert. + List stringList = new List(); + //Code Start + + + //Code ENDE + Console.WriteLine("Bitte geben Sie den nächsten String ein:"); + stringList.Add(Console.ReadLine() ?? ""); + Console.Clear(); + Console.WriteLine("Hier sind alle Elemente:"); + foreach(var element in stringList) + Console.WriteLine(element); + + //Implementieren Sie die Speicherung der Liste + //Code Start + + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Dateizugriffe/Exercise_5.cs b/XX_Dateizugriffe/Exercise_5.cs new file mode 100644 index 0000000..1d58d9f --- /dev/null +++ b/XX_Dateizugriffe/Exercise_5.cs @@ -0,0 +1,21 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Dateizugriffe +{ + class Exercise_5 + { + public static void Start() + { + Console.WriteLine("Bitte geben Sie eine Namen ein:"); + string s = Console.ReadLine() ?? ""; + Console.WriteLine("Bitte geben Sie eine Anzahl der Ordner ein:"); + int i = Convert.ToInt32(Console.ReadLine()); + //Sie finden im Dateisystem einen Ordner 'Filecreator'. Der Anwender gibt oben einen Namen und eine Zahl ein. Nun sollen die Anzahl der Ordner erstellt werden. Diese sollen alle den eingegebenen Namen haben (das geht natürlich nicht, suchen Sie nach einer Lösung). + //Code Start + + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Dateizugriffe/Exercise_6.cs b/XX_Dateizugriffe/Exercise_6.cs new file mode 100644 index 0000000..b90f599 --- /dev/null +++ b/XX_Dateizugriffe/Exercise_6.cs @@ -0,0 +1,17 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Dateizugriffe +{ + class Exercise_6 + { + public static void Start() + { + //Sie sehen den Ordner "FileSystem". Geben Sie alle Ordner darin grafisch ansprechend aus: + //Code Start + + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Dateizugriffe/Exercise_7.cs b/XX_Dateizugriffe/Exercise_7.cs new file mode 100644 index 0000000..0364da1 --- /dev/null +++ b/XX_Dateizugriffe/Exercise_7.cs @@ -0,0 +1,59 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Dateizugriffe +{ + class Exercise_7 + { + public static void Start() + { + //Schreiben Sie ein Menü, in welchem der Anwender auswählen kann, ob er + // - Die Ordner im Ordner FileSystem anzeigen lassen möchte + // - Einen Ordner davon löschen möchte + // - Einen Ordner hinzufügen möchte + // - Einen Ordner umbenennen möchte + //Code Start + + + //Code ENDE + } + + //Diese Methode soll alle Ordner mit Unterordner aus FileSystem anzeigen. Achten Sie darauf, das sich die Ordnerstrukturen (auch in der Tiefe) ändern können. + static void ShowDirectories() + { + //Code Start + + //Code ENDE + } + //In dieser Methode soll der Anwender die Möglichkeit haben, einen Ordner auszuwählen. Dabei soll der Pfad des Ordners zurück gegeben werden. Als Übergabewert kann man selbst, was bei dem jeweiligen Aufruf angezeigt werden soll. + static string ChooseDirectory(string command = "Bitte wählen Sie einen Ordner:") + { + Console.WriteLine(command); + //Code Start + return string.Empty; + //Code ENDE + } + //In dieser Methode soll ein Ordner gelöscht werden. Dieser Methode soll ein Pfad zu dem zu löschenden Ordner übergeben werden. + static void DeleteDirectory(string path) + { + //Code Start + + //Code ENDE + } + //In dieser Methode soll ein Ordner umbenannt werden. Dabei soll wieder ein Pfad zu dem umbenennenden Ordner übergeben werden. + static void RenameDirectory(string path) + { + //Code Start + + //Code ENDE + } + + //In dieser Methode soll der Anwender einen neuen Ordner erstellen können. Dabei wird der Pfad zu dem Ordner, in dem der neue Ordner erstellt werden soll, übergeben werden. + static void CreateNewDirectory(string path) + { + //Code Start + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Dateizugriffe/Exercise_8.cs b/XX_Dateizugriffe/Exercise_8.cs new file mode 100644 index 0000000..ab35598 --- /dev/null +++ b/XX_Dateizugriffe/Exercise_8.cs @@ -0,0 +1,32 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Dateizugriffe +{ + //Hierbei sollen Sie die Klassen aus dem Ordner ex8 verwenden. + class Exercise_8 + { + public static void Start() + { + //Erstellen Sie eine Instanz der Klasse Inventar. + //Code Start + + //Code ENDE + + //Füllen Sie die Felder des Inventar-Objekts mit Werten. Schreiben Sie mindestens 5 Notizen und 5 Dinge mit deren Anzahl in die jeweilige Liste. + //Code START + + //Code ENDE + + //Geben Sie nun den Gesamtpreis aller Elemente darin aus. Programmieren Sie dafür in der Inventar.cs die Methode ReturnPriceSum() aus und rufen Sie diese hier auf. + //Code START + + //Code ENDE + + //Spreichern Sie nun das Objekt ab als XML und als JSON in zwei verschiedene Dateien ab. + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Dateizugriffe/Exercise_8b.cs b/XX_Dateizugriffe/Exercise_8b.cs new file mode 100644 index 0000000..24c6813 --- /dev/null +++ b/XX_Dateizugriffe/Exercise_8b.cs @@ -0,0 +1,31 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Dateizugriffe +{ + //Hierbei sollen Sie die Klassen aus dem Ordner ex8 verwenden. + class Exercise_8b + { + public static void Start() + { + Console.WriteLine("Hier sind die Daten der XML-Datei:"); + ShowXml(); + Console.WriteLine("Hier sind die Daten der JSON-Datei:"); + ShowJson(); + } + //Laden Sie die XML-Datei aus der vorherigen Aufgabe und zeigen Sie sie an: + static void ShowXml() + { + //Code START + + //Code ENDE + } + //Laden Sie die JSON-Datei aus der vorherigen Aufgabe und zeigen Sie sie an: + static void ShowJson() + { + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Dateizugriffe/FileSystem/FirstFile/FileFour/empty.txt b/XX_Dateizugriffe/FileSystem/FirstFile/FileFour/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/FirstFile/FileFour/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/FirstFile/FileOne/empty.txt b/XX_Dateizugriffe/FileSystem/FirstFile/FileOne/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/FirstFile/FileOne/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/FirstFile/FileThree/empty.txt b/XX_Dateizugriffe/FileSystem/FirstFile/FileThree/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/FirstFile/FileThree/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/FirstFile/FileTwo/empty.txt b/XX_Dateizugriffe/FileSystem/FirstFile/FileTwo/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/FirstFile/FileTwo/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileA/empty.txt b/XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileA/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileA/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileB/empty.txt b/XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileB/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileB/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileC/empty.txt b/XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileC/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileC/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileD/empty.txt b/XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileD/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileD/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileE/empty.txt b/XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileE/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/SecondFile/FileOne/FileE/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/SecondFile/FileTwo/empty.txt b/XX_Dateizugriffe/FileSystem/SecondFile/FileTwo/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/SecondFile/FileTwo/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/ThirdFile/FileFive/empty.txt b/XX_Dateizugriffe/FileSystem/ThirdFile/FileFive/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/ThirdFile/FileFive/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/ThirdFile/FileFour/FileA/empty.txt b/XX_Dateizugriffe/FileSystem/ThirdFile/FileFour/FileA/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/ThirdFile/FileFour/FileA/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/ThirdFile/FileFour/FileB/empty.txt b/XX_Dateizugriffe/FileSystem/ThirdFile/FileFour/FileB/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/ThirdFile/FileFour/FileB/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/ThirdFile/FileOne/empty.txt b/XX_Dateizugriffe/FileSystem/ThirdFile/FileOne/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/ThirdFile/FileOne/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/ThirdFile/FileThree/FileA/empty.txt b/XX_Dateizugriffe/FileSystem/ThirdFile/FileThree/FileA/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/ThirdFile/FileThree/FileA/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/ThirdFile/FileThree/FileB/empty.txt b/XX_Dateizugriffe/FileSystem/ThirdFile/FileThree/FileB/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/ThirdFile/FileThree/FileB/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/ThirdFile/FileThree/FileC/empty.txt b/XX_Dateizugriffe/FileSystem/ThirdFile/FileThree/FileC/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/ThirdFile/FileThree/FileC/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/FileSystem/ThirdFile/FileTwo/empty.txt b/XX_Dateizugriffe/FileSystem/ThirdFile/FileTwo/empty.txt new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/XX_Dateizugriffe/FileSystem/ThirdFile/FileTwo/empty.txt @@ -0,0 +1 @@ + diff --git a/XX_Dateizugriffe/Files/Animal.txt b/XX_Dateizugriffe/Files/Animal.txt new file mode 100644 index 0000000..d90dcff --- /dev/null +++ b/XX_Dateizugriffe/Files/Animal.txt @@ -0,0 +1,10 @@ +Hund +Katze +Maus +Kuh +Vogel +Bär +Wolf +Tiger +Elefant +Gepard \ No newline at end of file diff --git a/XX_Dateizugriffe/Files/ex1.ttdx b/XX_Dateizugriffe/Files/ex1.ttdx new file mode 100644 index 0000000..341dc9e --- /dev/null +++ b/XX_Dateizugriffe/Files/ex1.ttdx @@ -0,0 +1,4 @@ +Wiese +Wald +Straße +Steppe \ No newline at end of file diff --git a/XX_Dateizugriffe/Files/ex3.num b/XX_Dateizugriffe/Files/ex3.num new file mode 100644 index 0000000..f2df040 --- /dev/null +++ b/XX_Dateizugriffe/Files/ex3.num @@ -0,0 +1,42 @@ +7463,46 +48374 +3837 +372,84652 +38293 +48374 +372,31215 +382849,548613 +27394 +237492,13511 +298374 +36483 +347834 +234 +23948234,656484 +237423 +49852,138615 +94985345 +9342 +2342384,168151 +23489234,1513 +23482934 +8394 +34934,1546513 +2348934,1351323 +8994 +324 +345345 +546456 +34534,486445132 +4648 +31351 +35451,1 +3326 +313 +151544 +345,8642 +344 +646453 +16464 +16846465 +3478943 \ No newline at end of file diff --git a/XX_Enums/Exercise_1.cs b/XX_Enums/Exercise_1.cs new file mode 100644 index 0000000..0dfafab --- /dev/null +++ b/XX_Enums/Exercise_1.cs @@ -0,0 +1,23 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Enumns +{ + class Exercise_1 + { + //Ändern Sie die Hintergrundfarbe der Konsole auf weiß und die Farbe der Schrift auf lila. Nutzen Sie dafür die unten definierte Methode. + public static void Start() + { + //Code Start + + + //Code ENDE + } + static void PrintAnimal(ConsoleColor back, ConsoleColor front) + { + Console.BackgroundColor = back; + Console.ForegroundColor = front; + Console.WriteLine("Farbe geändert!!!"); + } + } +} \ No newline at end of file diff --git a/XX_Enums/Exercise_10.cs b/XX_Enums/Exercise_10.cs new file mode 100644 index 0000000..53956bd --- /dev/null +++ b/XX_Enums/Exercise_10.cs @@ -0,0 +1,25 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Enumns +{ + class Exercise_10 + { + //Sorgen Sie dafür, dass auf der Konsole "Hallo wie geht es Ihnen " ausgegeben wird. + enum Things { wie, es, Ihnen, Hallo, geht } + + public static void Start() + { + List ThingList = new List(); + //Code START + + //Code ENDE + + foreach(var element in ThingList) + Console.Write(element.ToString() + " "); + + + } + } +} \ No newline at end of file diff --git a/XX_Enums/Exercise_11.cs b/XX_Enums/Exercise_11.cs new file mode 100644 index 0000000..6e471cc --- /dev/null +++ b/XX_Enums/Exercise_11.cs @@ -0,0 +1,35 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Enumns +{ + class Exercise_11 + { + //Zeigen Sie im ersten Bereich zuerst alle möglichen Städte (die im Enum City) an. Sorgen Sie dann dafür, dass die Auswahl des Nutzers in die Liste gespeichert wird. + enum City { München, Berlin, Köln, Regensburg, Hamburg } + + public static void Start() + { + List CityList = new List(); + + while(true) + { + Console.WriteLine("Hier ist Ihre Auswahl:"); + //Code START + + //Code ENDE + Console.WriteLine("Bitte geben Sie eine valide Nummer ein:"); + int index = Convert.ToInt32(Console.ReadLine()) - 1; + Console.Clear(); + //Code START + + //Code ENDE + Console.WriteLine("Ihre Werte:"); + foreach(var element in CityList) + Console.WriteLine(element.ToString()); + Console.WriteLine(); + } + } + } +} \ No newline at end of file diff --git a/XX_Enums/Exercise_12.cs b/XX_Enums/Exercise_12.cs new file mode 100644 index 0000000..0aa906b --- /dev/null +++ b/XX_Enums/Exercise_12.cs @@ -0,0 +1,43 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Enumns +{ + class Exercise_12 + { + //Hierbei handelt es sich um ein Spiel, welches der Spieler erraten muss, welchen Wert der Computer wählt. Dabei muss der Anwender eine Zahl auswählen, die eine Richtung (Direction) repräsentiert. Schreiben Sie die Methode, die beide Eingaben (die des Anwenders und die des Computers) miteinander vergleicht und die Anzahl der Treffer zurück gibt. + enum Direction { Vorne, Hinten, Links, Rechts, Oben, Unten } + + public static void Start() + { + List PlayerList = new List(); + List ComputerList = new List(); + Random rand = new Random(); + int k = 0; + foreach(var element in Enum.GetValues(typeof(Direction))) + { + Console.WriteLine(k + ".) " + element.ToString()); + k++; + } + for(int i = 0; i < 10; i++) + { + Console.WriteLine("Bitte geben Sie eine Zahl zwischen 0 und 5 ein:"); + PlayerList.Add((Direction)Convert.ToInt32(Console.ReadLine())); + ComputerList.Add((Direction)(rand.Next() % 6)); + } + int res = TestListMatches(PlayerList, ComputerList); + if(res < 5) + Console.WriteLine("Leider haben Sie nur schäbige {0} von 10 erraten :(", res); + else + Console.WriteLine("Herzlichen Glückwunsch! Sie konnten fantastische {0} von 10 erraten!", res); + } + + static int TestListMatches(List FirstList, List SecondList) + { + //Code START + return -1; + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Enums/Exercise_13.cs b/XX_Enums/Exercise_13.cs new file mode 100644 index 0000000..5c02d81 --- /dev/null +++ b/XX_Enums/Exercise_13.cs @@ -0,0 +1,97 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Enumns +{ + class Exercise_13 + { + //Hier ist das Enum definiert, in denen die Spielelemente drinnen stehen + enum GameObjects { Schere, Stein, Papier } + + public static void Start() + { + int playerPoints = 0; + int computerPoints = 0; + + Console.WriteLine("Hallo und Herzlich Willkommen zu Schere, Stein Papier!"); + string message = string.Empty; + while(TestGameEnding(playerPoints, computerPoints)) + { + bool? winner = FindWinner(UserInput(), ComputerInput()); + if(winner == true) + { + playerPoints++; + message = "Glückwunsch! Ein Punkt für Sie!"; + } + else if(winner == false) + { + computerPoints++; + message = "Schade... Ein Punkt für den Computer..."; + } + else + message = "UNENTSCHIEDEN....."; + + Console.Clear(); + Console.WriteLine("Spieler: {0} Computer: {1}\n{2}", playerPoints, computerPoints, message); + } + + Console.Clear(); + Console.WriteLine("Das Spiel ist aus. Hier ist Ihr Ergebnis:"); + Console.WriteLine("Punkte des Spielers: {0}\nPunkte der Computers: {1}", playerPoints, computerPoints); + if(playerPoints > computerPoints) + Console.WriteLine("SIE HABEN GEWONNEN! SIE SIND DER MEISTER IN DIESEM SPIEL!"); + else if (playerPoints < computerPoints) + Console.WriteLine("Sie haben verloren. Sie sind leider sehr schlecht in dem Spiel. Bitte hören Sie auf, es zu spielen..."); + else + Console.WriteLine("!!!Unentschieden!!!"); + + } + + //Diese Methode frägt den Nutzer nach seiner Eingabe und gibt diese zurück + static GameObjects UserInput() + { + Console.WriteLine("Hier sind Ihre Auswahlelemente:"); + //Geben Sie hier die Elemente in GameObjects aus, mit jeweils einer Zahl zur Auswahl da davor. + + //Code START + + //Code ENDE + + Console.WriteLine("Bitte geben Sie die Nummer zu der Eingabe ein:"); + //Nehmen Sie hier eine Eingabe vom Nutzer entgegen. Überprüfen Sie, ob dieser eine valide Zahl eingegeben hat. Wandeln Sie die Zahl dann in ein GameObjects-Objekt um und geben Sie es zurück. + + //Code START + + return GameObjects.Papier; + //Code ENDE + } + + //Diese Methode gibt einen zufällig erstellten Wert zurück + static Random rand = new Random(); + static GameObjects ComputerInput() + { + //Erstellen Sie hier eine valide Zufallszahl und wandeln Sie diese in ein GameObjects um. Geben Sie dann diesen Wert zurück. + + //Code START + + return GameObjects.Papier; + //Code ENDE + } + + //Diese Methode gibt true zurück, wenn der Erste gewonnen hat und false, wenn der Zweite (B) + static bool? FindWinner(GameObjects A, GameObjects B) + { + //Code START + return false; + //Code ENDE + } + //Diese Methode überprüft, ob das Spiel zu Ende ist. + static bool TestGameEnding(int A, int B) + { + //Überlegen Sie sich selbst, wann das Spiel enden soll. + //Code START + return true; + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Enums/Exercise_14.cs b/XX_Enums/Exercise_14.cs new file mode 100644 index 0000000..e031e37 --- /dev/null +++ b/XX_Enums/Exercise_14.cs @@ -0,0 +1,15 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Enumns +{ + class Exercise_14 + { + // + public static void Start() + { + + } + + } +} \ No newline at end of file diff --git a/XX_Enums/Exercise_2.cs b/XX_Enums/Exercise_2.cs new file mode 100644 index 0000000..75349d2 --- /dev/null +++ b/XX_Enums/Exercise_2.cs @@ -0,0 +1,33 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Enumns +{ + class Exercise_2 + { + //Gehen Sie zur Stelle 3x5 und danach zur Stelle -2x1. Nutzen Sie dafür nur die Aufrufe der Going-Methode in der Start-Methode. + enum Direction {North, South, West, East} + + public static void Start() + { + //Code Start + + //Code Ende + } + static int x = 0; + static int y = 0; + static void Going(Direction a) + { + if(a == Direction.North) + x++; + else if(a == Direction.South) + x--; + else if(a == Direction.West) + y--; + else if(a == Direction.East) + y++; + + Console.WriteLine("Ihre aktuelle Position ist {0}x{1}", x, y); + } + } +} \ No newline at end of file diff --git a/XX_Enums/Exercise_3.cs b/XX_Enums/Exercise_3.cs new file mode 100644 index 0000000..8623fb2 --- /dev/null +++ b/XX_Enums/Exercise_3.cs @@ -0,0 +1,26 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Enumns +{ + class Exercise_3 + { + //Malen Sie unten in der Methode ShowForm die übergebene Form mit Hilfe von Sternchen (*) auf die Konsole. + + enum SpecialForms {Dreieck, Quadrat, Rechteck, Kreis} + + public static void Start() + { + ShowForm(SpecialForms.Dreieck); + ShowForm(SpecialForms.Kreis); + ShowForm(SpecialForms.Quadrat); + ShowForm(SpecialForms.Rechteck); + } + static void ShowForm(SpecialForms a) + { + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Enums/Exercise_4.cs b/XX_Enums/Exercise_4.cs new file mode 100644 index 0000000..082a006 --- /dev/null +++ b/XX_Enums/Exercise_4.cs @@ -0,0 +1,33 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Enumns +{ + class Exercise_4 + { + //Sorgen Sie dafür, dass "Hihi", "Hi" und "Haidiho" in dieser Reihenfolge unten ausgegeben wird. + enum Greetings {Hello, Hi, Hey, Heyho, Hihi, Haha, Haidiho} + + public static void Start() + { + int i1 = -1; + int i2 = -1; + int i3 = -1; + + //Code Start + i1 = -1; + i2 = -1; + i3 = -1; + //Code Ende + + Greetings g1 = (Greetings)i1; + Greetings g2 = (Greetings)i2; + Greetings g3 = (Greetings)i3; + + + Console.WriteLine(g1.ToString()); + Console.WriteLine(g2.ToString()); + Console.WriteLine(g3.ToString()); + } + } +} \ No newline at end of file diff --git a/XX_Enums/Exercise_5.cs b/XX_Enums/Exercise_5.cs new file mode 100644 index 0000000..010fef1 --- /dev/null +++ b/XX_Enums/Exercise_5.cs @@ -0,0 +1,20 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Enumns +{ + class Exercise_5 + { + //Sorgen Sie dafür, dass die Zahl 325 ausgegeben wird. + + //Code START + enum Something{ Dies, ist, ein, Enum, mit, einem, Wert } + //Code ENDE + + public static void Start() + { + int val = (int)Something.einem + (int)Something.Wert + (int)Something.ist + (int)Something.ein; + Console.WriteLine(val); + } + } +} \ No newline at end of file diff --git a/XX_Enums/Exercise_6.cs b/XX_Enums/Exercise_6.cs new file mode 100644 index 0000000..b164b50 --- /dev/null +++ b/XX_Enums/Exercise_6.cs @@ -0,0 +1,37 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Enumns +{ + class Exercise_6 + { + //Auf der Konsole soll "Cloe", "Flo" und "Adam" ausgegeben werden. + enum GivenName { Adam = 25, Berta = 83, Cloe = 29, Dagmar = 16, Erik = 72, Flo = 57, Gerda = 73} + + public static void Start() + { + int res = (int)GivenName.Gerda; + + //Code START + res += -1; + //Code ENDE + + for(int i = 0; i < 4; i++) + res += i; + res -= 3; + for(int i = 2; i > 0; i--) + res -= i; + + Console.WriteLine(((GivenName)res).ToString()); + //Code START + res += -1; + //Code ENDE + Console.WriteLine(((GivenName)res).ToString()); + //Code START + res += -1; + //Code ENDE + Console.WriteLine(((GivenName)res).ToString()); + + } + } +} \ No newline at end of file diff --git a/XX_Enums/Exercise_7.cs b/XX_Enums/Exercise_7.cs new file mode 100644 index 0000000..33feec9 --- /dev/null +++ b/XX_Enums/Exercise_7.cs @@ -0,0 +1,31 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Enumns +{ + class Exercise_7 + { + //Schreiben Sie die untere Methode und deren Aufruf um, sodass ein Enum als Übergabewert verwendet wird. Erstellen Sie dafür ein neues Enum 'Animals'. + + public static void Start() + { + PrintAnimal("Ente"); + PrintAnimal("Ente"); + PrintAnimal("Hund"); + PrintAnimal("Pferd"); + } + static void PrintAnimal(string a) + { + if(a == "Ente") + Console.WriteLine("Quark"); + else if(a == "Kuh") + Console.WriteLine("Muh"); + else if(a == "Hund") + Console.WriteLine("Wuff"); + else if(a == "Katze") + Console.WriteLine("Miau"); + else if(a == "Pferd") + Console.WriteLine("Wieha"); + } + } +} \ No newline at end of file diff --git a/XX_Enums/Exercise_8.cs b/XX_Enums/Exercise_8.cs new file mode 100644 index 0000000..0154fc3 --- /dev/null +++ b/XX_Enums/Exercise_8.cs @@ -0,0 +1,27 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Enumns +{ + class Exercise_8 + { + //Sorgen Sie dafür, dass die Methode GiveAValue immer ein zufälliges Element des Typs Things zurück gibt. Es soll dann zum Schluss 20 mal ein zufälliges Things-Element ausgegeben werden. + enum Things { Haus, Garten, Dach, Fenster, Schaukel, Terasse, Balkon, Türe } + + public static void Start() + { + for(int i = 0; i < 20; i++) + { + Console.WriteLine(GiveAValue().ToString()); + } + } + static Things GiveAValue() + { + Random rand = new Random(); + + //Code Start + return Things.Balkon; + //Code Ende + } + } +} \ No newline at end of file diff --git a/XX_Enums/Exercise_9.cs b/XX_Enums/Exercise_9.cs new file mode 100644 index 0000000..ce0b655 --- /dev/null +++ b/XX_Enums/Exercise_9.cs @@ -0,0 +1,30 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_Enumns +{ + class Exercise_9 + { + //Sie sollen eine Methode ergänzen, die die Eingabe eines Nutzers analysiert und überprüft, ob sich das Element im Enum "Music" befindet. Sollte dem so sein, gibt sie true zurück, ansonsten false. Sorgen Sie dafür, dass Groß- und Kleinschreibung keine Rolle spielen. + enum Music { Rock, Blues, Rap, Hiphop, Volksmusik } + + public static void Start() + { + while(true) + { + Console.WriteLine("Bitte geben Sie eine Musikrichtung ein:"); + if(TestValue(Console.ReadLine() ?? "")) + Console.WriteLine("Ja, wir kennen diese Richtung."); + else + Console.WriteLine("Nein, leider kennen wir diese Richtung nicht."); + } + + } + static bool TestValue(string userinput) + { + //Code Start + return false; + //Code Ende + } + } +} \ No newline at end of file diff --git a/XX_Exceptions/Exercise_1.cs b/XX_Exceptions/Exercise_1.cs new file mode 100644 index 0000000..3f2c135 --- /dev/null +++ b/XX_Exceptions/Exercise_1.cs @@ -0,0 +1,20 @@ +using System; + +namespace Exercises_C_Sharp.XX_Exceptions +{ + class Exercise_1 + { + public static void Start() + { + //Rufen Sie die Methode ConvertIt auf, ohne dass das Programm abstürzt. + //Code START + + //Code ENDE + } + + static void ConvertIt() + { + Convert.ToInt32("HAHAHA :)"); + } + } +} \ No newline at end of file diff --git a/XX_Exceptions/Exercise_2.cs b/XX_Exceptions/Exercise_2.cs new file mode 100644 index 0000000..9416efa --- /dev/null +++ b/XX_Exceptions/Exercise_2.cs @@ -0,0 +1,22 @@ +using System; + +namespace Exercises_C_Sharp.XX_Exceptions +{ + class Exercise_2 + { + public static void Start() + { + //Sichern sie die Console.ReadLine()-Methode ab, sodass alle Exceptions abgefangen werden. Geben Sie dann die jeweilige Exception aus: + //Code START + + //Code ENDE + Console.ReadLine(); + //Code START + + //Code ENDE + } + + + + } +} \ No newline at end of file diff --git a/XX_Exceptions/Exercise_3.cs b/XX_Exceptions/Exercise_3.cs new file mode 100644 index 0000000..c1e9500 --- /dev/null +++ b/XX_Exceptions/Exercise_3.cs @@ -0,0 +1,36 @@ +using System; +using System.IO; +using System.Net.Http; + +namespace Exercises_C_Sharp.XX_Exceptions +{ + class Exercise_3 + { + public static void Start() + { + //Rufen Sie die Methode ThrowException so lange auf, bis alle Exceptions geflogen und auf der Konsole ausgegeben wurden: + //Code Start + + //Code ENDE + } + + static void ThrowException() + { + Random rand = new Random(); + switch(rand.Next(0,5)) + { + case 0: + throw new FileNotFoundException("Die Datei konnte nicht gefunden werden!"); + case 1: + throw new EntryPointNotFoundException("Leider konnte der Beginn nicht identifiziert werden."); + case 2: + throw new FieldAccessException("Es kann nicht auf die Resource zugegriffen werden."); + case 3: + throw new HttpRequestException("Der Request konnte nicht verarbeitet werden."); + case 4: + throw new Exception("Es ist ein unbekannter Fehler aufgetreten..."); + } + } + + } +} \ No newline at end of file diff --git a/XX_Exceptions/Exercise_4.cs b/XX_Exceptions/Exercise_4.cs new file mode 100644 index 0000000..f9d99da --- /dev/null +++ b/XX_Exceptions/Exercise_4.cs @@ -0,0 +1,37 @@ +using System; + +namespace Exercises_C_Sharp.XX_Exceptions +{ + class Exercise_4 + { + public static void Start() + { + //Welche Exceptions könnten in der Methode possible fliegen? Fangen Sie alle möglichen Exceptions ab! + try + { + possible(); + } + //Code START + catch + { + + } + //Code ENDE + } + #pragma warning disable CS8602, CS8600 + static void possible() + { + Console.WriteLine("Bitte geben Sie eine Zahl ein:"); + int i = Convert.ToInt32(Console.ReadLine()); + double d = Math.PI / i; + Console.WriteLine("Ihr Ergebnis ist: {0}", d); + Console.WriteLine("Bitte geben Sie nun einen String ein:"); + string s = Console.ReadLine(); + Console.WriteLine("Der dritte Wert ist {0}", s[2]); + Console.WriteLine("Das Wort groß geschrieben lautet {0}", s.ToUpper()); + + } + #pragma warning restore CS8602, CS8600 + + } +} \ No newline at end of file diff --git a/XX_Exceptions/Exercise_5.cs b/XX_Exceptions/Exercise_5.cs new file mode 100644 index 0000000..8035383 --- /dev/null +++ b/XX_Exceptions/Exercise_5.cs @@ -0,0 +1,37 @@ +using System; + +namespace Exercises_C_Sharp.XX_Exceptions +{ + class Exercise_5 + { + public static void Start() + { + //Unten sehen Sie nun wieder die Methode possible wie in der vorherigen Aufgabe. Sorgen Sie nun dafür, dass unten keine Exception mehr fliegen kann. Der Funktionsumfang soll aber der selbe bleiben. Entfernen Sie dann auch die Preprocessordirectives. + try + { + possible(); + } + catch(Exception ex) + { + Console.WriteLine("Aufgabe leider nicht geschafft :("); + Console.WriteLine("Fehler: {0}", ex.ToString()); + } + } + #pragma warning disable CS8602, CS8600 + static void possible() + { + //Code START + Console.WriteLine("Bitte geben Sie eine Zahl ein:"); + int i = Convert.ToInt32(Console.ReadLine()); + double d = Math.PI / i; + Console.WriteLine("Ihr Ergebnis ist: {0}", d); + Console.WriteLine("Bitte geben Sie nun einen String ein:"); + string s = Console.ReadLine(); + Console.WriteLine("Der dritte Wert ist {0}", s[2]); + Console.WriteLine("Das Wort groß geschrieben lautet {0}", s.ToUpper()); + //Code ENDE + } + #pragma warning restore CS8602, CS8600 + + } +} \ No newline at end of file diff --git a/XX_Exceptions/Exercise_6.cs b/XX_Exceptions/Exercise_6.cs new file mode 100644 index 0000000..6c847ca --- /dev/null +++ b/XX_Exceptions/Exercise_6.cs @@ -0,0 +1,41 @@ +using System; + +namespace Exercises_C_Sharp.XX_Exceptions +{ + class Exercise_6 + { + public static void Start() + { + while(true) + { + try + { + Console.WriteLine("Das Ergebnis: " + Method(Console.ReadLine() ?? "", Console.ReadLine() ?? "")); + } + catch(ArgumentOutOfRangeException ex) + { + Console.WriteLine("Leider wurde ein falscher Wert eingegeben: " + ex.Message); + } + catch(FormatException ex) + { + Console.WriteLine("Leider hatte die Eingabe das falsche Format: " + ex.Message); + } + catch(DivideByZeroException ex) + { + Console.WriteLine("Die Eingabe führte zu einer Teilung durch 0: " + ex.Message); + } + Console.WriteLine("Bitte versuchen Sie es noch einmal..."); + } + } + static int Method(string input1, string input2) + { + //Sie bekommen von einer anderen Methode die Eingabe des Nutzers. Sie wollen zwei Zahlen durcheinander teilen. Dabei darf keine Zahl größer als 10.000 sein. Führen Sie die Berechnungen durch und schmeißen Sie jeweils eine Exception, wenn die Bedingungen nicht erfüllt sind. Erläutern Sie in den Exceptions auch das konkrete Problem. + + //Code START + + return -1; + //CODE ENDE + } + + } +} \ No newline at end of file diff --git a/XX_Exceptions/Exercise_7.cs b/XX_Exceptions/Exercise_7.cs new file mode 100644 index 0000000..c5042fd --- /dev/null +++ b/XX_Exceptions/Exercise_7.cs @@ -0,0 +1,49 @@ +using System; + +namespace Exercises_C_Sharp.XX_Exceptions +{ + class Exercise_7 + { + //Sie sollen diese Methode umschreiben, sodass keine Exceptions mehr benötigt werden. Die Funktionalität soll aber nicht abgeändert werden. + public static void Start() + { + //Code START + int i; + string s; + char c; + while(true) + { + try + { + Console.WriteLine("Bitte Zahl eingeben:"); + i = Convert.ToInt32(Console.ReadLine() ?? ""); + } + catch + { + Console.WriteLine("Falsche Zahl :("); + continue; + } + break; + } + while(true) + { + try + { + Console.WriteLine("Bitte String eingeben:"); + s = Console.ReadLine() ?? ""; + c = s[i]; + } + catch + { + Console.WriteLine("Leider ein Fehler. Bitte String nochmal eingeben..."); + continue; + } + break; + } + + Console.WriteLine("Der extrahierte Char ist " + c); + //Code ENDE + } + + } +} \ No newline at end of file diff --git a/XX_Exceptions/Exercise_8.cs b/XX_Exceptions/Exercise_8.cs new file mode 100644 index 0000000..2931820 --- /dev/null +++ b/XX_Exceptions/Exercise_8.cs @@ -0,0 +1,39 @@ +using System; +using System.IO; +using System.Net.Http; + +namespace Exercises_C_Sharp.XX_Exceptions +{ + class Exercise_8 + { + public static void Start() + { + //Rufen Sie die Methode Meth auf und fangen Sie alle Fehler mit einem catch-Block auf. Geben Sie dann die Exception und deren Nachricht auf der Konsole aus. + + //Code START + + //Code ENDE + } + + static void Meth() + { + Random rand = new Random(); + switch(rand.Next(0,6)) + { + case 0: + throw new FormatException("Schlechtes Format..."); + case 1: + throw new FileNotFoundException("Datei ist leider nicht vorhanden..."); + case 2: + throw new Exception("Keine Ahnung was hier passiert sein könnte..."); + case 3: + throw new HttpRequestException("Bei dem Protokoll ist leider ein Fehler aufgetreten. Es tut uns Leid :/", new Exception()); + case 4: + throw new IndexOutOfRangeException("Leider befand sich der Index außerhalb der Größe des Arrays."); + case 5: + throw new UriFormatException("Leider ist das Format des Pfades falsch..."); + } + } + + } +} \ No newline at end of file diff --git a/XX_Exceptions/Exercise_9.cs b/XX_Exceptions/Exercise_9.cs new file mode 100644 index 0000000..2276035 --- /dev/null +++ b/XX_Exceptions/Exercise_9.cs @@ -0,0 +1,28 @@ +using System; + +namespace Exercises_C_Sharp.XX_Exceptions +{ + class Exercise_9 + { + public static void Start() + { + //2. Erstellen Sie ein neue Instanz der Klasse Thing. Lassen Sie dabei den Anwender den Namen des Objekts angeben. Fangen Sie die möglichen Exceptions ab und wenn eine solche fliegt, lassen Sie den Anwender die Eingabe nochmal machen, bis das Objekt erstellt werden kann. + + //Code START + + //Code ENDE + } + } + class Thing + { + private string Name = string.Empty; + public Thing(string name) + { + //1. Diese Klasse representiert irgendeine Sache. Dieser Sache muss im Konstruktor ein Name übergeben werden. Für den Namen gilt: Er muss mindestens 5 Zeichen besitzen, keiner der Zeichen darf eine Zahl sein und natürlich darf der Übergabewert auch nicht null sein. Sollte ein falscher Wert übergeben werden, so schmeißen Sie eine jeweilige Exception mit einer Erläuterung, um was es sich genau handelt. Sollte alles passen, speichern Sie den Wert in die Variable 'Name'. + + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Jagged_Arrays/Exercise_1.cs b/XX_Jagged_Arrays/Exercise_1.cs new file mode 100644 index 0000000..a88584f --- /dev/null +++ b/XX_Jagged_Arrays/Exercise_1.cs @@ -0,0 +1,21 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Jagged_Arrays +{ + class Exercise_1 + { + static int[] array1 = new int[]{12,45,21,34,12,45,23}; + static int[] array2 = new int[]{152,475,211,734,812,455,3872,37283}; + static int[] array3 = new int[]{1722,4565,2123,3452,12121}; + public static void Start() + { + //Führen Sie diese drei oben gezeigten Arrays zu einem zweidimensionalen Jagged Array zusammen + + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Jagged_Arrays/Exercise_2.cs b/XX_Jagged_Arrays/Exercise_2.cs new file mode 100644 index 0000000..db68015 --- /dev/null +++ b/XX_Jagged_Arrays/Exercise_2.cs @@ -0,0 +1,24 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Jagged_Arrays +{ + class Exercise_2 + { + static string[][] JaggedArray = new string[][]{ + new string[]{"Dies", "ist", "der", "erste", "Satz", "."}, + new string[]{"Dies", "ist", "ein", "weiterer", "extrem", "guter", "Satz", "."}, + new string[]{"Der", "dritte", "Satz", "hat", "wesentlich", "mehr", "Sinn", "und", "einen", "besseren", "Inhalt", "."}, + new string[]{"Dieser", "Satz", "ist", "kurz", "."} + }; + public static void Start() + { + //Geben Sie die Sätze oben aus. Jeder Satz soll in einer Zeile stehen. Achten Sie darauf, dass die Leerzeichen richtig gesetzt sind und dass zwischen den Sätzen jeweils eine Zeile frei ist. + + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Jagged_Arrays/Exercise_3.cs b/XX_Jagged_Arrays/Exercise_3.cs new file mode 100644 index 0000000..fa4c46e --- /dev/null +++ b/XX_Jagged_Arrays/Exercise_3.cs @@ -0,0 +1,19 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Jagged_Arrays +{ + class Exercise_3 + { + static string[][] JaggedArray = new string[3][]; + public static void Start() + { + //Der Anwender soll drei Sätze eingeben. Unterteilen Sie die Sätze in einzelene Wörter und Satzzeichen, wie Sie sie auch aus Aufgabe 2 kennen und speichern Sie diese in das oben stehende Array ab. + + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Jagged_Arrays/Exercise_4.cs b/XX_Jagged_Arrays/Exercise_4.cs new file mode 100644 index 0000000..cbb70bb --- /dev/null +++ b/XX_Jagged_Arrays/Exercise_4.cs @@ -0,0 +1,26 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Jagged_Arrays +{ + class Exercise_4 + { + static int[][] JaggedArray = new int[][] + { + new int[] {1234, 2712, 993843, 273273, 382783}, + new int[] {93847, 3827362, 3049384, 384738, 2938273}, + new int[] {3948374, 39485, 3029384, 30493847, 30293849, 2738203}, + new int[] {949302, 495874, 483747, 392910, 3049381, 3723901, 39409381, 3784803, 2838499}, + new int[] {3892, 29302, 392830, 9583,573483, 38492, 1923, 39403} + }; + public static void Start() + { + //Sorgen Sie dafür, dass im Jagged Array oben alle ungeraden Zahlen herausgelöscht werden. Geben Sie dann das Array zur kontrolle aus. + + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Klassendiagramm/Exercise_1.cs b/XX_Klassendiagramm/Exercise_1.cs new file mode 100644 index 0000000..a512a58 --- /dev/null +++ b/XX_Klassendiagramm/Exercise_1.cs @@ -0,0 +1,41 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Klassendiagramm +{ + //Übertragen Sie jede Klasse in ein Objekt eines Klassendiagramms + class Messbecher + { + private int volume = 0; + public string Material {get{return "plastic";}} + public int Volume{get{return volume;}} + + public void Fill(int milliliter){ } + public void Empty(){ } + private bool isStill(){ return true; } + } + + class Hammer + { + public string Material = "Stahl"; + private int verschleiß = 46; + public void Schlagen(int stärke){ } + public void Pflegen(){ } + private int verschleißBerechnen(int schlagstärke){return verschleiß * schlagstärke;} + } + + class Kaugummi + { + public List Inhaltsstoffe = new List(); + private List giftigeStoffe = new List(); + public string Geschmack = "Erdbeere"; + public double GrammZucker = 12.453; + private double wirklicheGrammZucker = 72.82; + private DateTime wirklichesAblaufdatum = new DateTime(1999, 02, 08); + + private decimal freigabeGiftstoffe(){return (decimal)(wirklicheGrammZucker * 3);} + public bool Kauen(int kaustärke){ return true; } + public DateTime Ablaufdatum(){ return DateTime.Now.AddYears(3);} + } +} \ No newline at end of file diff --git a/XX_Klassendiagramm/Exercise_2/Exercise_2.txt b/XX_Klassendiagramm/Exercise_2/Exercise_2.txt new file mode 100644 index 0000000..4fe2eb1 --- /dev/null +++ b/XX_Klassendiagramm/Exercise_2/Exercise_2.txt @@ -0,0 +1,16 @@ +Um welche Beziehung handelt es sich? + +Auto – Reifen +Pfarrer – Kirche +Körper – Zelle +Hund – Tier +Rechnung - Rechnungsposten +Baum – Blatt +Tulpe – Blume +Vater – Kind +Bauer - Feld +Samen - Pflanze +Fell - Tier +Plastik - Tastatur +Brille - Glas +Elektrogerät - Fernseher \ No newline at end of file diff --git a/XX_Klassendiagramm/Exercise_2/Exercise_3.txt b/XX_Klassendiagramm/Exercise_2/Exercise_3.txt new file mode 100644 index 0000000..25b2b3f --- /dev/null +++ b/XX_Klassendiagramm/Exercise_2/Exercise_3.txt @@ -0,0 +1,4 @@ +1.) Es gibt ein neues Projekt namens ‚Klassenzimmer Digital‘. In diesem Projekt soll ein komplett digitales Klassenzimmer erstellt werden, in dem Schüler in einer digitalen Welt 1:1 so arbeiten können wie in Präsents. Sie haben die Aufgabe erhalten, ein Klassenzimmer als Klassendiagramm zu modellieren. Bedenken Sie alle Elemente, die in einem Klassenzimmer vorkommen können, für was man diese verwendet und welche Eigenschaften diese haben. +Wundern Sie sich nicht, wenn viele Relationen Ableitungen sind. + +2.) Programmieren Sie jetzt das Klassendiagramm aus Aufgabe 3 aus. Erstellen Sie alle Klassen mit den jeweiligen Attributen und Methoden. Verwenden Sie für die Beziehungen untereinander Listen und Felder. Für Ableitungen verwendet man die klassische Ableitung mit dem Doppelpunkt hinter dem Klassennamen. \ No newline at end of file diff --git a/XX_Klassendiagramm/Exercise_2/Exercise_4.txt b/XX_Klassendiagramm/Exercise_2/Exercise_4.txt new file mode 100644 index 0000000..f221c59 --- /dev/null +++ b/XX_Klassendiagramm/Exercise_2/Exercise_4.txt @@ -0,0 +1,4 @@ +//Anlehung an die IHK-Prüfung + +Wir sollen eine Besucherapp modellieren. Dabei gibt es drei verschiedene Typen von Besuchern: Standard (Kein Rabatt), Premium (10% Rabatt) und VIP (20% Rabatt, darf Premiumeingang nutzen). +Implementieren Sie mit Hilfe von Vererbung die drei Klassen. Dabei soll die Klasse Besucher eine Methode besitzen, die das jeweilige Objekt der jeweiligen Klasse zurück gibt. \ No newline at end of file diff --git a/XX_Konstruktoren/Exercise_1.cs b/XX_Konstruktoren/Exercise_1.cs new file mode 100644 index 0000000..6ac0eb5 --- /dev/null +++ b/XX_Konstruktoren/Exercise_1.cs @@ -0,0 +1,23 @@ +using System; + +namespace Exercises_C_Sharp.XX_Konstruktoren +{ + class Exercise_1 + { + public static void Start() + { + //Erstellen Sie ein Objekt der Klasse und sorgen Sie dafür, dass "Hello World!" auf der Konsole ausgegeben wird. + //Code Start + + + //Code ENDE + } + } + class Hallo + { + public Hallo(string s) + { + Console.WriteLine(s); + } + } +} \ No newline at end of file diff --git a/XX_Konstruktoren/Exercise_2.cs b/XX_Konstruktoren/Exercise_2.cs new file mode 100644 index 0000000..6835f0f --- /dev/null +++ b/XX_Konstruktoren/Exercise_2.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Konstruktoren +{ + class Exercise_2 + { + public static void Start() + { + //Im Kontruktor von der Klasse List ist es möglich, eine andere Liste zu übergeben, damit diese übernommen wird. Erstellen Sie eine neue Liste newList und übergeben Sie direkt im Konstruktor die stringList. + List stringList = new List() { "Hallo", "Hi", "Hey" }; + + //Code Start + dynamic newList = 1; + //Code ENDE + + foreach(var element in newList) + Console.WriteLine(element); + } + } +} \ No newline at end of file diff --git a/XX_Konstruktoren/Exercise_3.cs b/XX_Konstruktoren/Exercise_3.cs new file mode 100644 index 0000000..56dca7f --- /dev/null +++ b/XX_Konstruktoren/Exercise_3.cs @@ -0,0 +1,25 @@ +using System; + +namespace Exercises_C_Sharp.XX_Konstruktoren +{ + class Exercise_3 + { + public static void Start() + { + //Erstellen Sie ein Objekt der Klasse SomeThingElse. Sorgen Sie dafür, dass auf der Konsole die Zahl 343 ausgegeben wird. + //Code Start + dynamic obj = 1; + //Code ENDE + Console.WriteLine(obj.Number * obj.Number * obj.Number); + } + + class SomeThingElse + { + public int Number; + public SomeThingElse(int i) + { + Number = i; + } + } + } +} \ No newline at end of file diff --git a/XX_Konstruktoren/Exercise_4.cs b/XX_Konstruktoren/Exercise_4.cs new file mode 100644 index 0000000..6ef070d --- /dev/null +++ b/XX_Konstruktoren/Exercise_4.cs @@ -0,0 +1,21 @@ +using System; + +namespace Exercises_C_Sharp.XX_Konstruktoren +{ + class Exercise_4 + { + public static void Start() + { + //2. Erzeugen Sie eine Objekt der Klasse StringShortner. Geben Sie dann den erzeugten String auf der Konsole aus. + //Code Start + + + //Code ENDE + } + //1. Schreiben Sie eine Klasse "StringShortner", die im Konstruktor einen String und einen Integer verlangt. Sorgen Sie dann dafür, dass der auf die übergebene Anzahl von Integern gekürzt wird. Schreiben Sie den String dann in ein Feld, wovon außen zugegriffen werden kann. + //Code Start + + + //Code ENDE + } +} \ No newline at end of file diff --git a/XX_Konstruktoren/Exercise_5.cs b/XX_Konstruktoren/Exercise_5.cs new file mode 100644 index 0000000..aecb68e --- /dev/null +++ b/XX_Konstruktoren/Exercise_5.cs @@ -0,0 +1,42 @@ +using System; + +namespace Exercises_C_Sharp.XX_Konstruktoren +{ + class Exercise_5 + { + public static void Start() + { + //Erzeugen Sie drei Tiere und lassen Sie sie Lärm machen.... + //Code Start + + //Code ENDE + } + } + + class Animalclass + { + public readonly string Name; + public readonly Animals Kind; + public Animalclass(string name, Animals kind) + { + this.Name = name; + this.Kind = kind; + } + public void MakeNoise() + { + Console.Write("{0} is a {1} and make ", Name, Kind.ToString()); + if(Kind == Animals.Dog) + Console.WriteLine("\"Wuff\""); + else if(Kind == Animals.Cat) + Console.WriteLine("\"Miau\""); + else if(Kind == Animals.Cow) + Console.WriteLine("\"Muh\""); + else if(Kind == Animals.Sheep) + Console.WriteLine("\"Mäh\""); + else if(Kind == Animals.Horse) + Console.WriteLine("\"Wieha\""); + } + } + + enum Animals {Dog, Cat, Cow, Sheep, Horse} +} \ No newline at end of file diff --git a/XX_Konstruktoren/Exercise_6.cs b/XX_Konstruktoren/Exercise_6.cs new file mode 100644 index 0000000..9d368a6 --- /dev/null +++ b/XX_Konstruktoren/Exercise_6.cs @@ -0,0 +1,24 @@ +using System; + +namespace Exercises_C_Sharp.XX_Konstruktoren +{ + class Exercise_6 + { + public static void Start() + { + //Es gibt einige Klassen, von denen Sie schon wissen, dass es Konstruktoren gibt. Hier zwei weitere Beispiele: + + //Erzeugen Sie ein Tuple aus double und decimal: + //Code Start + dynamic tup = -1; + //Code ENDE + Console.WriteLine("Der double: {0} - der decimal: {1}", tup.Item1, tup.Item2); + + //Erstellen Sie ein neues Random-Element, um Zufallszahlen zu erzeugen. Übergeben Sie einen dabei einen Seed, um die Zufallszahlen noch besser zu machen: + //Code Start + dynamic Random = -1; + //Code ENDE + Console.WriteLine(Random.Next()); + } + } +} \ No newline at end of file diff --git a/XX_Konstruktoren/Exercise_7.cs b/XX_Konstruktoren/Exercise_7.cs new file mode 100644 index 0000000..08c389b --- /dev/null +++ b/XX_Konstruktoren/Exercise_7.cs @@ -0,0 +1,32 @@ +using System; + +namespace Exercises_C_Sharp.XX_Konstruktoren +{ + class Exercise_7 + { + public static void Start() + { + //3. Erstellen Sie drei Objekte der Klasse MoreMethod. Erstellen Sie diese mit jeweils drei verschiedenen Übergabewerten in dem Konstruktor: + //Code Start + + //Code ENDE + } + } + + class MoreMethod + { + public MoreMethod() + { + Console.WriteLine("MoreMethod wurde erstellt. Keine Werte wurden übergeben..."); + } + //1. Überladen Sie den Konstruktor, damit ein String übergeben werden kann. Geben Sie diesen dann aus: + //Code START + + //Code ENDE + + //2. Schreiben Sie eine zweite Überladung des Konstruktors, welche zwei Integer-Zahlen übergeben werden. Teilen Sie die erste Zahl durch die zweite Zahl und geben Sie das Ergebnis mit den Nachkommastellen aus: + //Code START + + //Code ENDE + } +} \ No newline at end of file diff --git a/XX_Lists/Exercise_1.cs b/XX_Lists/Exercise_1.cs new file mode 100644 index 0000000..12a5be9 --- /dev/null +++ b/XX_Lists/Exercise_1.cs @@ -0,0 +1,27 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Lists +{ + class Exercise_1 + { + public static void Start() + { + //Sorgen Sie dafür, dass in der Liste alle Zahlen von 1 bis 10 stehen: + List intList = new List(); + for(int i = 0; i < 10; i++) + { + /*Code START*/ + + /*Code ENDE*/ + } + + //Kontrolle: + foreach(var element in intList) + { + Console.WriteLine(element); + } + } + } +} \ No newline at end of file diff --git a/XX_Lists/Exercise_10.cs b/XX_Lists/Exercise_10.cs new file mode 100644 index 0000000..3773e4d --- /dev/null +++ b/XX_Lists/Exercise_10.cs @@ -0,0 +1,26 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Lists +{ + class Exercise_10 + { + public static void Start() + { + //Kontrolle: + foreach (var element in Meth()) + Console.WriteLine(element); + + } + + //Schreiben Sie eine Methode, die eine beliebige Anzahl von String-Eingaben vom Nutzer entgegen nimmt. Die Methode soll dann eine Liste dieser Eingaben zurück geben. + static List Meth() + { + /*Code START*/ + + return new List(); + /*Code ENDE*/ + } + } +} \ No newline at end of file diff --git a/XX_Lists/Exercise_11.cs b/XX_Lists/Exercise_11.cs new file mode 100644 index 0000000..732dc80 --- /dev/null +++ b/XX_Lists/Exercise_11.cs @@ -0,0 +1,26 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Lists +{ + class Exercise_11 + { + public static void Start() + { + //Kontrolle: + foreach (var element in Meth()) + Console.WriteLine(element); + + } + + //Schreiben Sie eine Methode, die eine beliebige Anzahl von Integer-Eingaben vom Nutzer entgegen nimmt. Die Methode soll dann eine Liste dieser Eingaben zurück geben. Falsche Eingaben (Strings, die nicht umgewandelt werden können) sollen ignoriert werden. + static List Meth() + { + /*Code START*/ + + return new List(); + /*Code ENDE*/ + } + } +} \ No newline at end of file diff --git a/XX_Lists/Exercise_12.cs b/XX_Lists/Exercise_12.cs new file mode 100644 index 0000000..18fd101 --- /dev/null +++ b/XX_Lists/Exercise_12.cs @@ -0,0 +1,33 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Lists +{ + class Exercise_12 + { + public static void Start() + { + List stringList = new List(); + stringList.Add(Console.ReadLine() ?? ""); + stringList.Add(Console.ReadLine() ?? ""); + stringList.Add(Console.ReadLine() ?? ""); + stringList.Add(Console.ReadLine() ?? ""); + stringList.Add(Console.ReadLine() ?? ""); + //Kontrolle: + Console.WriteLine(); + foreach (var element in Meth(stringList, 'a')) + Console.WriteLine(element); + + } + + //In der folgenden Methode bekommen Sie eine Liste von Strings und einen Character. Sie sollen nun aus der Liste alle Wörter entfernen, die diesen Character beinhalten. + static List Meth(List lis, char c) + { + /*Code START*/ + + return new List(); + /*Code ENDE*/ + } + } +} \ No newline at end of file diff --git a/XX_Lists/Exercise_13.cs b/XX_Lists/Exercise_13.cs new file mode 100644 index 0000000..ed1ca95 --- /dev/null +++ b/XX_Lists/Exercise_13.cs @@ -0,0 +1,28 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Lists +{ + class Exercise_13 + { + public static void Start() + { + List intList = new List(){736,452,372,493,482,803,392,473,293,493,462,583,192,483,201,939,483,192,472,493}; + + //Kontrolle: + foreach (var element in Meth(intList)) + Console.WriteLine(element); + + } + + //Schreiben Sie eine Methode, die die Integerwerte einer übergebenen Liste nach ihren Kehrwert sortiert. Somit würde 432 (Kehrwert: 234) vor der 123 (Kehrwert: 321) kommen. + static List Meth(List lis) + { + /*Code START*/ + + return new List(); + /*Code ENDE*/ + } + } +} \ No newline at end of file diff --git a/XX_Lists/Exercise_2.cs b/XX_Lists/Exercise_2.cs new file mode 100644 index 0000000..b4716c6 --- /dev/null +++ b/XX_Lists/Exercise_2.cs @@ -0,0 +1,27 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Lists +{ + class Exercise_2 + { + public static void Start() + { + //Erstellen Sie eine Liste, in die unten die drei Werte reingeschrieben werden: + + /*Code START*/ + dynamic superList = 1; + /*Code ENDE*/ + + superList.Add("Hallo"); + superList.Add("Hi"); + superList.Insert(0, "Hey"); + + //Kontrolle: + foreach(var element in superList) + Console.WriteLine(element); + + } + } +} \ No newline at end of file diff --git a/XX_Lists/Exercise_3.cs b/XX_Lists/Exercise_3.cs new file mode 100644 index 0000000..6937e87 --- /dev/null +++ b/XX_Lists/Exercise_3.cs @@ -0,0 +1,28 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Lists +{ + class Exercise_3 + { + public static void Start() + { + //Sorgen Sie dafür, dass unten aus der Liste "Hallo, wie geht's?" ausgegeben wird: + + List stringList = new List(); + stringList.Add(", wie"); + stringList.Add("'s?"); + + /*Code START*/ + + + /*Code ENDE*/ + + + //Kontrolle: + foreach(var element in stringList) + Console.Write(element); + } + } +} \ No newline at end of file diff --git a/XX_Lists/Exercise_4.cs b/XX_Lists/Exercise_4.cs new file mode 100644 index 0000000..e18dbca --- /dev/null +++ b/XX_Lists/Exercise_4.cs @@ -0,0 +1,25 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Lists +{ + class Exercise_4 + { + public static void Start() + { + //Geben Sie das Doppelte der ersten Zahl, das Dreifache der zweiten Zahl, das Vierfache der dritten Zahl usw. aus der Liste aus: + List intList = new List() {14,2,12,32,51,31,53,12,34,34,2,45,45,23,62,72,25,40}; + + + /*Code START*/ + + + /*Code ENDE*/ + + + //Kontrolle: + //28 - 6 - 48 - 160 usw.... + } + } +} \ No newline at end of file diff --git a/XX_Lists/Exercise_5.cs b/XX_Lists/Exercise_5.cs new file mode 100644 index 0000000..7b2c3e1 --- /dev/null +++ b/XX_Lists/Exercise_5.cs @@ -0,0 +1,21 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Lists +{ + class Exercise_5 + { + public static void Start() + { + //Geben Sie die folgenden Informationen über die Zahlen in der Liste aus: Größte Zahl, kleinste Zahl, Durchschnitt (arithmetisches Mittel): + List intList = new List() {14,2,12,32,51,31,53,12,34,34,2,45,45,23,62,72,25,40}; + + + /*Code START*/ + + + /*Code ENDE*/ + } + } +} \ No newline at end of file diff --git a/XX_Lists/Exercise_6.cs b/XX_Lists/Exercise_6.cs new file mode 100644 index 0000000..2590740 --- /dev/null +++ b/XX_Lists/Exercise_6.cs @@ -0,0 +1,21 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Lists +{ + class Exercise_6 + { + public static void Start() + { + //Geben Sie den Medianwert der folgenden Zahlenreihe an. Der Medianwert ist der Wert, der bei einer sortierten Reihe genau in der Mitte steht: + List intList = new List() {14,2,12,32,51,31,53,12,34,34,2,45,45,23,62,72,25,40}; + + + /*Code START*/ + + + /*Code ENDE*/ + } + } +} \ No newline at end of file diff --git a/XX_Lists/Exercise_7.cs b/XX_Lists/Exercise_7.cs new file mode 100644 index 0000000..88de3e8 --- /dev/null +++ b/XX_Lists/Exercise_7.cs @@ -0,0 +1,39 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Lists +{ + class Exercise_7 + { + public static void Start() + { + //Schreiben Sie zwei Methoden. Die erste soll alle geraden Zahlen aus der Liste entfernen, die zweite alle ungeraden Zahlen: + + List intListOdd = new List() {14,2,12,32,51,31,53,12,34,34,2,45,45,23,62,72,25,40}; + List intListEven = new List() {14,2,12,32,51,31,53,12,34,34,2,45,45,23,62,72,25,40}; + + //Kontrolle: + foreach(var element in RemoveOdds(intListEven)) + Console.Write(element + " - "); + Console.WriteLine(); + foreach(var element in RemoveEvens(intListOdd)) + Console.Write(element + " - "); + + } + static List RemoveOdds(List intList) + { + /*Code START*/ + + return intList; + /*Code ENDE*/ + } + static List RemoveEvens(List intList) + { + /*Code START*/ + + return intList; + /*Code ENDE*/ + } + } +} \ No newline at end of file diff --git a/XX_Lists/Exercise_8.cs b/XX_Lists/Exercise_8.cs new file mode 100644 index 0000000..1853242 --- /dev/null +++ b/XX_Lists/Exercise_8.cs @@ -0,0 +1,29 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Lists +{ + class Exercise_8 + { + public static void Start() + { + + List doubleList = new List() {12.2, 34.2,434,2.5,23.134, 54.684, 23.43, 34.683, 23.43, 11.53, 11.5444, 34.2345, 23.3534223}; + + //Kontrolle: + foreach(var element in Meth(doubleList, 4)) + Console.WriteLine(element); + + } + + //Schreiben Sie eine Methode, die eine Liste von Doubles bekommt. Zusätzlich soll noch ein Wert übergeben werden, der die neue Größe der Liste angibt. Nehmen Sie solange Werte aus der Liste, bis diese übergebene Anzahl erreicht ist. Streichen Sie dabei immer die kleinsten Werte heraus. Änder Sie nicht die Ordnung der übergebenen Liste: + static List Meth(List doubleList, int i) + { + /*Code START*/ + + return doubleList; + /*Code ENDE*/ + } + } +} \ No newline at end of file diff --git a/XX_Lists/Exercise_9.cs b/XX_Lists/Exercise_9.cs new file mode 100644 index 0000000..8fd0360 --- /dev/null +++ b/XX_Lists/Exercise_9.cs @@ -0,0 +1,27 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Lists +{ + class Exercise_9 + { + public static void Start() + { + + List intList = new List() {46,45,2,3,-8,15,14,16,35,86,-84,25,78,6,32,-15,99,87, -38, 64, -42}; + + //Kontrolle: + Meth(intList); + + } + + //Schreiben Sie eine Methode, die alle Werte einer Integerliste als String ausgibt. So soll er beispielsweise bei der 1 -> "Eins" ausgeben und bei der 34 -> "Vierunddreißig". Es reicht aus, wenn es für ein und zweistellige Zahlen funktioniert. Schauen Sie auch, dass auch negative Zahlen ausgegeben werden: + static void Meth(List intList) + { + /*Code START*/ + + /*Code ENDE*/ + } + } +} \ No newline at end of file diff --git a/XX_Mehrdimensionale_Arrays/Exercise_1.cs b/XX_Mehrdimensionale_Arrays/Exercise_1.cs new file mode 100644 index 0000000..f5e329c --- /dev/null +++ b/XX_Mehrdimensionale_Arrays/Exercise_1.cs @@ -0,0 +1,21 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Mehrdimensionale_Arrays +{ + class Exercise_1 + { + static int[] array1 = new int[]{12,45,21,34,12,45}; + static int[] array2 = new int[]{152,475,211,734,812,455}; + static int[] array3 = new int[]{1722,4565,2123,3452,12121,3315}; + public static void Start() + { + //Führen Sie diese drei oben gezeigten Arrays zu einem Array zusammen + + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Mehrdimensionale_Arrays/Exercise_2.cs b/XX_Mehrdimensionale_Arrays/Exercise_2.cs new file mode 100644 index 0000000..8a6f46b --- /dev/null +++ b/XX_Mehrdimensionale_Arrays/Exercise_2.cs @@ -0,0 +1,26 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Mehrdimensionale_Arrays +{ + class Exercise_2 + { + public static void Start() + { + //Sorgen Sie dafür, dass auf der Konsole die Zahl 2565 ausgegeben wird. + + //Code START + dynamic array = -1; + //Code ENDE + + MakeSomething(array); + } + + static void MakeSomething(int[,] intArray) + { + int i = intArray[1,4] + intArray[0,3] + intArray[5, 1]; + Console.WriteLine(i); + } + } +} \ No newline at end of file diff --git a/XX_Mehrdimensionale_Arrays/Exercise_3.cs b/XX_Mehrdimensionale_Arrays/Exercise_3.cs new file mode 100644 index 0000000..6c167f7 --- /dev/null +++ b/XX_Mehrdimensionale_Arrays/Exercise_3.cs @@ -0,0 +1,26 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Mehrdimensionale_Arrays +{ + class Exercise_3 + { + static int[,] intArray = new int[,]{ + { 1, 2, 3 }, + { 3, 4, 5 }, + { 5, 6, 6 }, + { 7, 8, 9 } + }; + public static void Start() + { + //Geben Sie das 2-dimensionale Feld auf der Konsole aus. Geben Sie zu jeder Zeile und zu jeder Spalte die jewilige Summe mit aus. + + //Code START + + //Code ENDE + + } + + } +} \ No newline at end of file diff --git a/XX_Mehrdimensionale_Arrays/Exercise_4.cs b/XX_Mehrdimensionale_Arrays/Exercise_4.cs new file mode 100644 index 0000000..cf69a71 --- /dev/null +++ b/XX_Mehrdimensionale_Arrays/Exercise_4.cs @@ -0,0 +1,37 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Mehrdimensionale_Arrays +{ + class Exercise_4 + { + + public static void Start() + { + int[,] intArray = new int[,]{{ 1, 2, 3 },{ 3, 4, 5 },{ 5, 6, 6 },{ 7, 8, 9 }}; + int[,] intArray2 = new int[,]{{ 45,12,18,89,685 },{ 1,258,333,95,667},{ 685,19,5,1,0 },{ 4888,555,222,336,96 }}; + + ShowArray(ReverseArray(intArray)); + ShowArray(ReverseArray(intArray2)); + + } + + //Schreiben Sie eine Methode, die die Zeilen und die Spalten eines 2-dimensionalen Arrays vertauscht. + static int[,] ReverseArray(int[,] arr) + { + //Code START + return new int[0,0]; + //Code ENDE + } + + //Schreiben Sie eine Methode, die ein 2-dimensionales Array ausgibt. + static void ShowArray(int[,] arr) + { + //Code START + + //Code ENDE + } + + } +} \ No newline at end of file diff --git a/XX_Mehrdimensionale_Arrays/Exercise_5.cs b/XX_Mehrdimensionale_Arrays/Exercise_5.cs new file mode 100644 index 0000000..12a8558 --- /dev/null +++ b/XX_Mehrdimensionale_Arrays/Exercise_5.cs @@ -0,0 +1,40 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Mehrdimensionale_Arrays +{ + class Exercise_5 + { + + public static void Start() + { + int[,] intArray1 = new int[,]{{ 45,12,18,89,685 },{ 1,258,333,95,667},{ 685,19,5,1,0 },{ 4888,555,222,336,96 }}; + int[,] intArray2 = new int[,]{{ 45,12,18,89,685 },{ 1,258,333,95,667},{ 685,19,5,1,0 },{ 4888,555,222,336,96 }}; + + //Überprüfung: + foreach(var element in RemoveEven(intArray1)) + Console.Write(element + " - "); + Console.WriteLine("\n"); + foreach(var element in RemoveOdd(intArray2)) + Console.Write(element + " - "); + + + } + //Schreiben Sie eine Methode, die alle geraden Zahlen aus einem 2-dimensionalen Array durch -1 ersetzt: + static int[,] RemoveEven(int[,] arr) + { + //Code START + return new int[0,0]; + //Code ENDE + } + + //Schreiben Sie eine Methode, die alle ungeraden Zahlen aus einem 2-dimensionalen Array durch -1 ersetzt: + static int[,] RemoveOdd(int[,] arr) + { + //Code START + return new int[0,0]; + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Mehrdimensionale_Arrays/Exercise_6.cs b/XX_Mehrdimensionale_Arrays/Exercise_6.cs new file mode 100644 index 0000000..99ecc35 --- /dev/null +++ b/XX_Mehrdimensionale_Arrays/Exercise_6.cs @@ -0,0 +1,25 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Mehrdimensionale_Arrays +{ + class Exercise_6 + { + static string[,] stringArray = new string[3,3]; + + public static void Start() + { + //Lassen Sie den Nutzer das zweidimensionale Array 'stringArray' mit (9, jeweils eine pro Feld) Eingaben befüllen + + //Code START + + //Code ENDE + + //Überprüfung: + foreach(var element in stringArray) + Console.Write(element + " - "); + } + + } +} \ No newline at end of file diff --git a/XX_Mehrdimensionale_Arrays/Exercise_7.cs b/XX_Mehrdimensionale_Arrays/Exercise_7.cs new file mode 100644 index 0000000..8c5253b --- /dev/null +++ b/XX_Mehrdimensionale_Arrays/Exercise_7.cs @@ -0,0 +1,62 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Mehrdimensionale_Arrays +{ + class Exercise_7 + { + //Ein Wissenschaftler hat einen Versuchsaufbau, bei deren Durchführung dieser vier Werte bekommt. Er hat diesen Versuch dreimal gemacht und die Werte in das Array reingeschreiben lassen. + static double[,] scienceArray1 = new double[,] + { + {2.343, 65.235539, 534.239384, 4934.23534}, + {6.342, 64.231343, 345.645342, 3453.23345}, + {5.234, 56.203923, 432.859384, 3429.348504} + }; + static double[,] scienceArray2 = new double[,] + { + {2.343, 65.235539, 534.239384}, + {6.342, 64.231343, 345.645342}, + {5.234, 56.203923, 432.859384} + };static double[,] scienceArray3 = new double[,] + { + {2.343, 65.235539, 534.239384, 4934.23534, 74.2383}, + {6.342, 64.231343, 345.645342, 3453.23345, 764.239334}, + {5.234, 56.203923, 432.859384, 3429.348504, 532.28394483}, + {6.864, 86.12923, 122.2319384, 1229.34234, 322.28243} + }; + + public static void Start() + { + ShowValues(WorkArray(scienceArray1)); + ShowValues(WorkArray(scienceArray2)); + ShowValues(WorkArray(scienceArray3)); + + } + static void ShowValues(Tuple res) + { + Console.WriteLine("----------------------"); + for(int i = 0; i < res.Item1.Length; i++) + { + Console.WriteLine(i+1 + ". Reihe: " + res.Item1[i]); + } + Console.WriteLine("Durschnitte der Reihen: " + res.Item2); + Console.WriteLine("Durschnitte aller Werte: " + res.Item3); + Console.WriteLine("----------------------"); + } + + //Ihre Aufgabe ist nun, eine Methode zu schreiben, die beliebig große zweidimensionale Arrays verarbeitet. Die Methode soll folgende Werte zurück geben: + // - Es soll von allen Reihen der Druchschnitt (arithmetisches Mittel) berechnet werden. + // - Es soll von den oberen (Durchschnitts-)Werten der Druchschnitt (arithmetisches Mittel) berechnet werden. + // - Es soll der Druchschnitt (arithmetisches Mittel) von allen Zahlen in dem Array berechnet werden. + //Gebene Sie daher ein Array mit den Zeilendurchschnitten und die jeweiligen Zahlen zurück. + static Tuple WorkArray(double[,] dArray) + { + //Code START + dynamic d = -1; + return d; + //Code ENDE + } + + } +} \ No newline at end of file diff --git a/XX_MySQL/Exercise_1.cs b/XX_MySQL/Exercise_1.cs new file mode 100644 index 0000000..bf221ca --- /dev/null +++ b/XX_MySQL/Exercise_1.cs @@ -0,0 +1,70 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_MySQL +{ + //+---------+----------------+ + //| ID | StringValue | + //+---------+----------------+ + class Exercise_1 + { + public static void Start() + { + var connection = CreateDatabase(); + //4. Erstellen Sie ein kleines Menü, in welchem der Anwender Auswählen kann, ob er die Daten angezeigt haben will, ein Datum hinzufügen will, oder ein Datum löschen will. Außerdem soll der Anwender noch nach einem (Sub-)String suchen können. Rufen Sie dann die dafür vorgesehene Methode auf. + //Code Start + + //Code ENDE + + } + + static dynamic CreateDatabase() + { + //1. Stellen Sie im ersten Schritt eine Verbindung zu Ihrer Datenbank her. + //Code Start + + //Code ENDE + + //2. Erstellen Sie dann die Table "Exercise_MySQL_1", sollte sie nicht vorhanden sein. + //Code Start + + //Code ENDE + + //3. Geben Sie dann das MySqlConnection-Objekt zurück. + //Code Start + return -1; + //Code ENDE + } + + //Hier soll der Anwender einen neuen String eingeben. Dieser soll dann in die Datenbank gespeichert werden. + static void AddNewString(dynamic connection) + { + //Code Start + + //Code ENDE + } + + //Hier sollen alle Werte der Datenbank ausgegeben werden. + static void ShowAllString(dynamic connection) + { + //Code Start + + //Code ENDE + } + + //Hier sollen alle Werte ausgegeben werden, auf die der zu suchende Substring passt. + static void SearchForStrings(dynamic connection) + { + //Code Start + + //Code ENDE + } + //Hier soll ein Wert aus der Datenbank gelöscht werden können. + static void DeleteString(dynamic connection) + { + //Code Start + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_MySQL/Exercise_2.cs b/XX_MySQL/Exercise_2.cs new file mode 100644 index 0000000..af578f2 --- /dev/null +++ b/XX_MySQL/Exercise_2.cs @@ -0,0 +1,58 @@ +using System; +using System.IO; + +namespace Exercises_C_Sharp.XX_MySQL +{ + // Tabelle 'Human' + //+---------+--------------+-----------+-----------+ + //| ID | GivenName | Surname | Birthday | + //+---------+--------------+-----------+-----------+ + + // Tabelle 'Disease' + // +------+-----------+----------+-----------+--- + // | ID | HumanID | Disease | Duration | + // +------+-----------+----------+-----------+--- + // + // ----+------------------+------------+-----------------+ + // | FirstAppearance | TotalCost | DrHouseEpisode | + // ----+------------------+------------+-----------------+ + class Exercise_2 + { + //Ihre Aufgabe ist es, eine Patientenverwaltung zu schreiben, in der man neue Patienten hinzufügen kann. Diesen Patienten kann man dann beliebig viele Krankheiten hinzufügen. Sie sollen folgende Dinge in die Software implementieren: + // - Erstellen eines Patienten (natürlich mit der Abspeicherung in die Datenbank) + // - Anzeigen aller Patienten + // - Auswahl eines Patienten und hinzufügen einer Krankheit (diese besteht aus dem Namen der Krankheit, der Krankheitsdauer, das erste Auftreten, die Gesamtkosten und der Dr. Hose-Folge, in der diese auftritt) + // - Suchen einer Krankheit und/oder eines Patienten mit der Eingabe eines Strings + // - Ausgabe alles Krankheiten eines Patienten + public static void Start() + { + //Code Start + + //Code ENDE + + } + + static dynamic CreateDatabase() + { + //1. Stellen Sie im ersten Schritt eine Verbindung zu Ihrer Datenbank her. + //Code Start + + //Code ENDE + + //2. Erstellen Sie dann die beiden Tabellen, wie sie oben beschrieben sind, sollten sie nicht schon vorhanden sein. + //Code Start + + //Code ENDE + + //3. Geben Sie dann das MySqlConnection-Objekt zurück. + //Code Start + return -1; + //Code ENDE + } + + + //Code Start + + //Code ENDE + } +} \ No newline at end of file diff --git a/XX_Serialisierung/Exercise_1.cs b/XX_Serialisierung/Exercise_1.cs new file mode 100644 index 0000000..659d399 --- /dev/null +++ b/XX_Serialisierung/Exercise_1.cs @@ -0,0 +1,16 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Serialisierung +{ + class Exercise_1 + { + public static void Start() + { + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Serialisierung/Exercise_2.cs b/XX_Serialisierung/Exercise_2.cs new file mode 100644 index 0000000..05571aa --- /dev/null +++ b/XX_Serialisierung/Exercise_2.cs @@ -0,0 +1,16 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Serialisierung +{ + class Exercise_2 + { + public static void Start() + { + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Tuple/Exercise_1.cs b/XX_Tuple/Exercise_1.cs new file mode 100644 index 0000000..f59f34a --- /dev/null +++ b/XX_Tuple/Exercise_1.cs @@ -0,0 +1,23 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Tuple +{ + class Exercise_1 + { + //Übergeben Sie an Stelle zweier Übergabeparameter ein Tuple mit diesen Werten: + + public static void Start() + { + //Code START + Meth("Hans", 35); + //Code ENDE + } + + static void Meth(/*CODE START*/string name, int age/*CODE ENDE*/) + { + Console.WriteLine("{0} ist {1} Jahre alt.", name, age); + } + } +} \ No newline at end of file diff --git a/XX_Tuple/Exercise_2.cs b/XX_Tuple/Exercise_2.cs new file mode 100644 index 0000000..5ebce48 --- /dev/null +++ b/XX_Tuple/Exercise_2.cs @@ -0,0 +1,25 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Tuple +{ + class Exercise_2 + { + //Ändern Sie die Werte in dem Tuple 'tup', sodass die Werte "Breite2 und 12.9 darin stehen. + + public static void Start() + { + Tuple tup = new Tuple("Länge", 12.54); + + //Code START + + //Code ENDE + + + //Konstrolle: + Console.WriteLine("Die {0} beträgt {1} Meter.", tup.Item1, tup.Item2); + } + + } +} \ No newline at end of file diff --git a/XX_Tuple/Exercise_3.cs b/XX_Tuple/Exercise_3.cs new file mode 100644 index 0000000..c306cff --- /dev/null +++ b/XX_Tuple/Exercise_3.cs @@ -0,0 +1,23 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Tuple +{ + class Exercise_3 + { + //Erstellen Sie ein Tuple, welches dafür sorgt, dass unten die Daten für den Mt. Everest richtig ausgibt. + + public static void Start() + { + //Code START + dynamic tup = -1; + //Code ENDE + + + //Konstrolle: + Console.WriteLine("Der Berg {0} ist {1} Meter hoch und liegt in {2}.", tup.Item1, tup.Item2, tup.Item3); + } + + } +} \ No newline at end of file diff --git a/XX_Tuple/Exercise_4.cs b/XX_Tuple/Exercise_4.cs new file mode 100644 index 0000000..c94c37f --- /dev/null +++ b/XX_Tuple/Exercise_4.cs @@ -0,0 +1,31 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Tuple +{ + class Exercise_4 + { + //Die untere Methode soll eine Eingabe vom Nutzer entgegen nehmen und dann die Werte (Nutzereingabe, Anzahl des Buchstabens, der Buchstabe selbst) als ein Tuple zurückgeben. + + public static void Start() + { + var element = Meth(); + Console.WriteLine("Das Wort {0} hat {1} den Buchstaben {2} enthalten.", element.Item1, element.Item2, element.Item3); + } + + static /*Code START*/dynamic/*Code ENDE*/ Meth() + { + string s = Console.ReadLine() ?? string.Empty; + int res = 0; + foreach(var element in s) + if(element == 'a' || element == 'A') + res++; + + //Code START + return s + res; + //Code ENDE + } + + } +} \ No newline at end of file diff --git a/XX_Tuple/Exercise_5.cs b/XX_Tuple/Exercise_5.cs new file mode 100644 index 0000000..113dd8e --- /dev/null +++ b/XX_Tuple/Exercise_5.cs @@ -0,0 +1,44 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Tuple +{ + class Exercise_5 + { + //Erstellen Sie eine Liste von Tupeln. Sorgen Sie dafür, dass die Liste mit der unteren Methode gefüllt wird. Geben Sie zum Schluss die Elemente aus. + + //Code START + static dynamic tupleList = -1; + //Code ENDE + public static void Start() + { + while(true) + { + tupleList.Add(GetStringAndIntFromUser()); + Console.WriteLine("Weiter? Dann Enter..."); + var key = Console.ReadKey(); + if(key.Key != ConsoleKey.Enter) + break; + } + + Console.Clear(); + + foreach(var element in tupleList) + { + //Code START + + //Code ENDE + } + } + + //Diese Methode soll den Nutzer nach einen String und einen int fragen und diese kombination dann in einem Tuple zurück geben. Sorgen Sie dafür, dass der Nutzer valide Werte eingibt. + static /*Code START*/ dynamic /*Code ENDE*/ GetStringAndIntFromUser() + { + //Code START + return -1; + //Code ENDE + } + + } +} \ No newline at end of file diff --git a/XX_Tuple/Exercise_6.cs b/XX_Tuple/Exercise_6.cs new file mode 100644 index 0000000..1812364 --- /dev/null +++ b/XX_Tuple/Exercise_6.cs @@ -0,0 +1,29 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Tuple +{ + class Exercise_6 + { + //Sorgen Sie dafür, dass 7 und 345 ausgegeben wird: + + //Code START + static dynamic tupList = -1; + //Code ENDE + public static void Start() + { + int counter = 0; + int sum = 0; + foreach(var element in tupList) + { + sum += element.Item1; + sum += element.Item2; + sum += element.Item3; + counter++; + } + Console.WriteLine("Die beiden Werte sind {0} und {1}!", counter, sum); + } + + } +} \ No newline at end of file diff --git a/XX_Tuple/Exercise_7.cs b/XX_Tuple/Exercise_7.cs new file mode 100644 index 0000000..4a8005d --- /dev/null +++ b/XX_Tuple/Exercise_7.cs @@ -0,0 +1,57 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Tuple +{ + class Exercise_7 + { + //Sie sollen ein Kochbuch in einer Liste implementieren. In diesem Kochbuch steht zuerst das Produkt, dann folgt eine Liste mit Zutaten und deren Mengen. Sie sollen auch noch zusätzlich zwei weitere Methoden schreiben, dem Nutzer ein Element löschen und dem Nutzer ein Element hinzufügen lassen. + static List>>> Kochbuch = new List>>>(); + public static void Start() + { + //Starten Sie hier und füllen Sie die Liste 'Kochbuch' mit mindesten drei Rezepten + //Code START + + //Code ENDE + + Console.WriteLine("------ Gefülltes Kochbuch -----"); + ShowKochbuch(); + AddNewToKochbuch(); + Console.WriteLine("------ Zusätzliches Rezept -----"); + ShowKochbuch(); + DeleteElementFromKochbuch(); + Console.WriteLine("------ Rezept gelöscht -----"); + ShowKochbuch(); + } + //Hier werden alle Rezepte ausgegeben + static void ShowKochbuch() + { + foreach(var recipes in Kochbuch) + { + Console.WriteLine("*****************"); + Console.WriteLine("*** {0}", recipes.Item1); + Console.WriteLine("*****************"); + foreach(var element in recipes.Item2) + { + Console.WriteLine("- {0}: {1}", element.Item1, element.Item2); + } + Console.WriteLine(); + } + } + //In dieser Methode kann der Anwender ein Element aus dem Kochbuch löschen lassen + static void DeleteElementFromKochbuch() + { + //Code START + + //Code ENDE + } + //In dieser Methode soll der Anwender ein Rezept hinzufügen können + static void AddNewToKochbuch() + { + //Code START + + //Code ENDE + } + } +} \ No newline at end of file diff --git a/XX_Tuple/Exercise_8.cs b/XX_Tuple/Exercise_8.cs new file mode 100644 index 0000000..c7e2d01 --- /dev/null +++ b/XX_Tuple/Exercise_8.cs @@ -0,0 +1,38 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Tuple +{ + class Exercise_8 + { + //Sorgen Sie dafür, dass "Elementarelement" ausgegeben wird. + + public static void Start() + { + //Code START + dynamic element = -1; + //Code ENDE + Meth(element); + + } + + static void Meth(dynamic tup) + { + int temp = tup.Item2; + while(tup.Item1.Length <= temp || temp < 0) + { + if(temp < 0) + { + temp *= -1; + continue; + } + temp /= 2; + } + for(int i = temp; i >= 0; i--) + Console.Write(tup.Item1[i]); + for(int i = tup.Item1.Length - 1; i > temp; i--) + Console.Write(tup.Item1[i]); + } + } +} \ No newline at end of file diff --git a/XX_Tuple/Exercise_9.cs b/XX_Tuple/Exercise_9.cs new file mode 100644 index 0000000..b4ea355 --- /dev/null +++ b/XX_Tuple/Exercise_9.cs @@ -0,0 +1,39 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Tuple +{ + class Exercise_9 + { + //Die Methode soll den Nutzer nach Strings fragen. Wenn der nutzer nichts eingibt, dann soll die Methode Start() die Methode Meth() mit den eingegebenen Werten aufrufen. + public static void Start() + { + //Code START + dynamic element = -1; + //Code ENDE + foreach(var item in Meth(element)) + { + //Geben Sie hier die einzelnen Werte in dieser Form aus: + //Haus -> 2 Selbstlaute + //Bauer -> 3 Selbstlaute + //Er -> 1 Selbstlaut + //Achten Sie auf die deutsche Grammatik! + + //Code START + + //Code ENDE + } + + } + //Sorgen Sie dafür, dass die Methode eine Liste der Strings mit deren Anzahl an Selbstlauten zurück gibt: + static List> Meth(List stringList) + { + //Code START + dynamic returnList = -1; + //Code ENDE + + return returnList; + } + } +} \ No newline at end of file diff --git a/XX_Überladung/Exercise_1.cs b/XX_Überladung/Exercise_1.cs new file mode 100644 index 0000000..438fc8b --- /dev/null +++ b/XX_Überladung/Exercise_1.cs @@ -0,0 +1,22 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Überladung +{ + class Exercise_1 + { + public static void Start() + { + //Sorgen Sie dafür, dass die Methode Output ausgibt, ob es sich um eine Zahl, oder um einen String handelt und diesen dann ausgibt. Nutzen Sie dafür Überladung der Methoden. + Output(12); + Output("Hallo"); + } + //Code START + static void Output(dynamic d) + { + + } + //Code ENDE + } +} \ No newline at end of file diff --git a/XX_Überladung/Exercise_2.cs b/XX_Überladung/Exercise_2.cs new file mode 100644 index 0000000..6725619 --- /dev/null +++ b/XX_Überladung/Exercise_2.cs @@ -0,0 +1,33 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Überladung +{ + class Exercise_2 + { + //Schreiben Sie den unteren Code so um, dass die Felder Number und DoubleNumber entfernt werden können. Nutzen Sie dafür die Möglichkeit der Überladung. + + //Code START + static int Number = 0; + static double DoubleNumber = 0.0; + + public static void Start() + { + Number = 13; + Output(); + DoubleNumber = 34.23; + Output(); + } + + + static void Output() + { + if(Number != 0) + Console.WriteLine("Der Integer {0} wurde gesetzt.", Number); + else if(DoubleNumber != 0.0) + Console.WriteLine("Der Double {0} wurde gesetzt.", DoubleNumber); + } + //Code ENDE + } +} \ No newline at end of file diff --git a/XX_Überladung/Exercise_3.cs b/XX_Überladung/Exercise_3.cs new file mode 100644 index 0000000..c18bbc8 --- /dev/null +++ b/XX_Überladung/Exercise_3.cs @@ -0,0 +1,34 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Überladung +{ + class Exercise_3 + { + //Sorgen Sie dafür, dass die unteren Elemente auf der Konsole ausgegeben werden. + + public static void Start() + { + Output(12); + Output("Hallo", 12.5); + Output(15.15, "Heyho"); + Output(123, "Element", 'G'); + } + + //Code START + static void Output(dynamic d) + { + + } + static void Output(dynamic d, dynamic d2) + { + + } + static void Output(dynamic d, dynamic d2, dynamic d3) + { + + } + //Code ENDE + } +} \ No newline at end of file diff --git a/XX_Überladung/Exercise_4.cs b/XX_Überladung/Exercise_4.cs new file mode 100644 index 0000000..d01e6cd --- /dev/null +++ b/XX_Überladung/Exercise_4.cs @@ -0,0 +1,25 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Überladung +{ + class Exercise_4 + { + //Sie sollen die Methode ConvertToInt so schreiben, dass mit allen drei Aufrufen der richtige Integer-Wert zurück gegeben wird. Verwenden Sie dafür Überladung und kein dynamic. + + public static void Start() + { + Console.WriteLine(ConvertToInt('7')); + Console.WriteLine(ConvertToInt("Drei")); + Console.WriteLine(ConvertToInt("i")); + } + + //Code START + static int ConvertToInt(dynamic d) + { + return -1; + } + //Code ENDE + } +} \ No newline at end of file diff --git a/XX_Überladung/Exercise_5.cs b/XX_Überladung/Exercise_5.cs new file mode 100644 index 0000000..9238ff4 --- /dev/null +++ b/XX_Überladung/Exercise_5.cs @@ -0,0 +1,35 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.XX_Überladung +{ + class Exercise_5 + { + //Beim Aufruf der Methode Analyze soll man einen String, einen Integer, einen Character oder einen Double übergeben können. Dabei soll die Methode jeweils den Typ der Variablen auf die Konsole schreiben. Zusätzlich soll zu einem String die Länge ausgegeben werden, zu einem Integer die Anzahl der Stellen, zu einem Character die dezimale Darstellung und zu einem Double die Anzahl der Nachkommastellen. Nutzen Sie dafür Überladungen der Mehtode Analyze. + + //Ausgabebeispiel: + //Das übergebene Element ist ein Double. Dieser besitzt 3 Nachkommastellen. + //Das übergebene Element ist ein Character mit der dezimalen Codierung 83. + //Das übergebene Element ist ein String mit der Länge 10. + //usw.... + + public static void Start() + { + Analyze(44.343); + Analyze('S'); + Analyze("Teststring"); + Analyze(390); + Analyze(33.0); + Analyze(1209); + Analyze('c'); + } + + //Code START + static void Analyze(dynamic d) + { + + } + //Code ENDE + } +} \ No newline at end of file