diff --git a/10 Enums/Program.cs b/10 Enums/Program.cs index 403e9548eb266b692808557cc7ae7cb31744ad70..90630a4aca22d2dbaec892f2f10d513fa9b8c30c 100644 --- a/10 Enums/Program.cs +++ b/10 Enums/Program.cs @@ -3,15 +3,15 @@ namespace _10_Enums { // Enums definieren jeweils einen neuen DATENTYP, KEINE VARIABLEN + enum Ampelfarben { rot, gelb, grün } + enum Ampelfarben2 { rot, gelb, grün, blau, lila } + class Program { - public enum Ampelfarben { rot, gelb, grün} - public enum Ampelfarben2 { rot, gelb, grün, blau, lila } static void Main(string[] args) { - //enum Ampel { rot, gelb, grün}; // FALSCH!!! - //Ampel = Ampel.rot; // Enums definieren jeweils einen neuen DATENTYP, KEINE VARIABLEN - + //enum Ampel { rot, gelb, grün}; + //Ampel = Ampel.rot; // FALSCH!!! Enums definieren jeweils einen neuen DATENTYP, KEINE VARIABLEN int ampel1 = 0; @@ -23,16 +23,17 @@ namespace _10_Enums { Console.WriteLine("Die Ampel ist rot"); } - Console.WriteLine((int) ampel2); + Console.WriteLine((int)ampel2); Console.WriteLine("-----------"); - ampel2++; + + ampel2 += 2; Console.WriteLine(ampel2); Console.WriteLine((int)ampel2); string[] sf = { "Stehen bleiben", "Warten", "Gute Fahrt" }; - Console.WriteLine(sf[(int) ampel2]); + Console.WriteLine(sf[(int)ampel2]); - ampel2 = (Ampelfarben) 10; + ampel2 = (Ampelfarben)10; Console.WriteLine(ampel2); } } diff --git a/11 StructIntro/11 StructIntro.csproj b/11 StructIntro/11 StructIntro.csproj new file mode 100644 index 0000000000000000000000000000000000000000..5520aefe3189aa137dc5479311c6a4a57f89d8ff --- /dev/null +++ b/11 StructIntro/11 StructIntro.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_11_StructIntro</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/11 StructIntro/Program.cs b/11 StructIntro/Program.cs new file mode 100644 index 0000000000000000000000000000000000000000..a668d4b0db32a5a2471dfc809c380f8d3890f158 --- /dev/null +++ b/11 StructIntro/Program.cs @@ -0,0 +1,82 @@ +using System; + +namespace _11_StructIntro +{ + struct Person + { // Felder einer Struct: Geben an, aus welchen Basiselementen eine + // Struktur zusammengesetzt sind + public string name ; // public: name ist von Funktionen AUßERHALB der struct Person zugreifbar + public string vorname; + public int alter; + public string ort ; + public int plz; + + // Konstruktoren: Initialisieren die struct. Allen Feldern der Struktur muss + // ein Wert zugewiesen werden! + // Es kann mehrere Konstruktoren (mit mehr oder weniger Parametern) geben + public Person(string Name, string Vorname, int Alter, string Ort, int Plz) + { + name = Name; + vorname = Vorname; + alter = Alter; + ort = Ort; + plz = Plz; + } + public Person(string Name, string Vorname) + { + name = Name; + vorname = Vorname; + alter = -1; + ort = ""; + plz = -1; + } + public override string ToString() // Konvertiert eine Person in einen String + // override ~ die Default-Implementierung namespace.struct wird überschrieben + => $"{vorname} {name} -- Alter: {alter} {plz} {ort}"; + } + + class Program + { + static void PersonAusgeben(string name, string vorname, int alter, string ort, int plz) + { + + } + static void PersonAusgeben(Person p) + { + Console.WriteLine($"{p.vorname} {p.name} -- Alter: {p.alter} {p.plz} {p.ort}"); + } + static void Main(string[] args) + { + //anton.name = "Meier"; + //anton.vorname = "Anton"; + //anton.alter = 27; + //anton.ort = "Nürnberg"; + //anton.plz = 90489; + + Person anton = new Person("Meier","Anton",27,"Nürnberg",90489); + PersonAusgeben(anton); + + Person berta = anton; + anton.vorname = "Antonia"; + + PersonAusgeben(anton); + PersonAusgeben(berta); + + Person claudia = new Person("Schneider", "Claudia"); + PersonAusgeben(claudia); + Console.WriteLine(claudia); + string s = claudia.ToString(); + // anton, berta, claudia sind WERTETYPEN, da structs + } + } +} +namespace xyz +{ + class prog2 + { + static void tueEtwas() + { + //_11_StructIntro.Person claudia = new _11_StructIntro.Person(); + } + } +} diff --git a/11 Time/11 Time.csproj b/11 Time/11 Time.csproj new file mode 100644 index 0000000000000000000000000000000000000000..af0545c3ab38e14797c20d27acfdcdd3ac12d383 --- /dev/null +++ b/11 Time/11 Time.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_11_Time</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/11 Time/Program.cs b/11 Time/Program.cs new file mode 100644 index 0000000000000000000000000000000000000000..c3fbbaf121b077d836a9c6d66f720715ead7795b --- /dev/null +++ b/11 Time/Program.cs @@ -0,0 +1,30 @@ +using System; + +namespace _11_Time +{ + struct Time + { + public int time; + public Time(int stunden, int minuten) + { + time = 60 * stunden + minuten; + } + public override string ToString() + { + return base.ToString(); + } + } + class Program + { + static int TimeDifInMinutes(Time t2, Time t1) => t2.time - t1.time; + + static void Main(string[] args) + { + Time t1 = new Time(9, 45); + Time t2 = new Time(11, 15); + + Console.WriteLine(TimeDifInMinutes(t2,t1)); + + } + } +} diff --git a/11 UebgKoordinaten/11 UebgKoordinaten.csproj b/11 UebgKoordinaten/11 UebgKoordinaten.csproj new file mode 100644 index 0000000000000000000000000000000000000000..9b62a0e120cbd04808a87155cc501886fc397d99 --- /dev/null +++ b/11 UebgKoordinaten/11 UebgKoordinaten.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_11_UebgKoordinaten</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/11 UebgKoordinaten/Program.cs b/11 UebgKoordinaten/Program.cs new file mode 100644 index 0000000000000000000000000000000000000000..0acd44d64fb14d7e487a7c57d4052bc343f08f6e --- /dev/null +++ b/11 UebgKoordinaten/Program.cs @@ -0,0 +1,55 @@ +using System; + +namespace _11_UebgKoordinaten +{ + // Erstellen Sie eine Struct Koordinate Coord(double x, double y) mit + // ToString() und Konstruktor(en) + // Erstellen Sie in Program eine Methode CoordDist(), welche den Abstand zwischen zwei Koordinaten bestimmt + // Erstellen Sie in Program eine Methode CoordMove(), welche die Koordinate um ein deltaX, deltaY verschiebt + + struct Coord + { + public double x, y; + public Coord(double X, double Y) + { + x = X; + y = Y; + } + public override string ToString() => $"({x}|{y})"; + + } + class Program + { + static double CoordDist(Coord p1, Coord p2) + { + double dx = p1.x - p2.x; + double dy = p1.y - p2.y; + return Math.Sqrt(dx * dx + dy * dy); + } + static void CoordMove(ref Coord p, double deltaX, double deltaY) + { + p.x += deltaX; + p.y += deltaY; + } + static Coord CoordMove(Coord p, double deltaX, double deltaY) + { + p.x += deltaX; + p.y += deltaY; + return p; + } + static void Main(string[] args) + { + Coord c1 = new Coord(1, 2); + Coord c2 = new Coord(3, 3); + Console.WriteLine(c1); + Console.WriteLine(c2); + Console.WriteLine(CoordDist(c1, c2)); + + CoordMove(ref c1, 4, 3); // Referenzübergabe der Koord. c1 + Console.WriteLine(c1); + + Coord c3 = CoordMove(c1, 6, 5); // Werteübergabe von c1, aber return liefert Ergebnis zurück + Console.WriteLine(c3); + } + } +} diff --git a/Prog1_WS2021_22.sln b/Prog1_WS2021_22.sln index 9cd9ef4f669b43ddb1af6f80796b2017a8fc60c8..c9f67d38a35d448185b8d5139752400c4b912a4a 100644 --- a/Prog1_WS2021_22.sln +++ b/Prog1_WS2021_22.sln @@ -93,13 +93,19 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10 UebgSpeisekarteDi", "10 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10 UebgMoRekursion", "10 UebgMoRekursion\10 UebgMoRekursion.csproj", "{803E6BCD-791C-4F4A-BBDD-DF88E6F97967}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "10 WoerterZaehlen", "10 WoerterZaehlen\10 WoerterZaehlen.csproj", "{83740224-D4AC-4884-B9E5-B13F3AC1DE9A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10 WoerterZaehlen", "10 WoerterZaehlen\10 WoerterZaehlen.csproj", "{83740224-D4AC-4884-B9E5-B13F3AC1DE9A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "10 StreamWriterIntro", "10 StreamWriterIntro\10 StreamWriterIntro.csproj", "{3186C668-B6EF-4657-AED7-D98675AE40FE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10 StreamWriterIntro", "10 StreamWriterIntro\10 StreamWriterIntro.csproj", "{3186C668-B6EF-4657-AED7-D98675AE40FE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "10 StringSplit2", "10 StringSplit2\10 StringSplit2.csproj", "{1D7678D8-3B0D-4178-9F80-2043D18C8BAD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10 StringSplit2", "10 StringSplit2\10 StringSplit2.csproj", "{1D7678D8-3B0D-4178-9F80-2043D18C8BAD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "10 Enums", "10 Enums\10 Enums.csproj", "{0A59F1EF-68BD-43C7-BA85-EC1557017D86}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10 Enums", "10 Enums\10 Enums.csproj", "{0A59F1EF-68BD-43C7-BA85-EC1557017D86}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11 StructIntro", "11 StructIntro\11 StructIntro.csproj", "{F8A06135-B753-408E-B569-D345AA694667}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11 UebgKoordinaten", "11 UebgKoordinaten\11 UebgKoordinaten.csproj", "{EAAD4537-6255-4C1B-8162-BD7C946F3065}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11 Time", "11 Time\11 Time.csproj", "{A5C6305D-65D0-4B95-9884-F75E61BDD8E9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -303,6 +309,18 @@ Global {0A59F1EF-68BD-43C7-BA85-EC1557017D86}.Debug|Any CPU.Build.0 = Debug|Any CPU {0A59F1EF-68BD-43C7-BA85-EC1557017D86}.Release|Any CPU.ActiveCfg = Release|Any CPU {0A59F1EF-68BD-43C7-BA85-EC1557017D86}.Release|Any CPU.Build.0 = Release|Any CPU + {F8A06135-B753-408E-B569-D345AA694667}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8A06135-B753-408E-B569-D345AA694667}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8A06135-B753-408E-B569-D345AA694667}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8A06135-B753-408E-B569-D345AA694667}.Release|Any CPU.Build.0 = Release|Any CPU + {EAAD4537-6255-4C1B-8162-BD7C946F3065}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EAAD4537-6255-4C1B-8162-BD7C946F3065}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EAAD4537-6255-4C1B-8162-BD7C946F3065}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EAAD4537-6255-4C1B-8162-BD7C946F3065}.Release|Any CPU.Build.0 = Release|Any CPU + {A5C6305D-65D0-4B95-9884-F75E61BDD8E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A5C6305D-65D0-4B95-9884-F75E61BDD8E9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A5C6305D-65D0-4B95-9884-F75E61BDD8E9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A5C6305D-65D0-4B95-9884-F75E61BDD8E9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE