diff --git a/08 2D_Felder/Program.cs b/08 2D_Felder/Program.cs index 02d1caa4e443182bb976de5e4c4d1a3147515987..f9f17f928d28f79a289d10b11ed8ec4f5ef5b0e9 100644 --- a/08 2D_Felder/Program.cs +++ b/08 2D_Felder/Program.cs @@ -45,7 +45,7 @@ namespace _08_2D_Felder FeldAusgeben(g2); - int[,] h = new int[7, 18]; + int[,] h = new int[10, 6]; FeldAusgeben(h); for (int z = 0; z < h.GetLength(0); z++) @@ -69,7 +69,7 @@ namespace _08_2D_Felder int[,] hh = FeldKopieren(h); - // Ganz linke Spalte mit 2 belegen: + // Ganz linke Spalte von der zweiten bis zur vorletzten Zeile mit 2 belegen: for (int z = 1; z < h.GetLength(0)-1; z++) // .GetLength(0) ~ Anzahl der Zeilen h[z, 0] = 2; FeldAusgeben(h); @@ -90,19 +90,20 @@ namespace _08_2D_Felder /////////////////////////////////////////////////////////////////////////// /// Ausgefranste Felder (Jagged Arrays) + /// Feld von Feldern - int[][] k = new int[5][]; - k[0] = new int[5]; + int[][] k = new int[5][]; // 5er Feld von ... + k[0] = new int[5]; // Feld an der Zeilen-Pos. 0 k[1] = new int[1]; k[3] = new int[] { 4, 5, 6, 7, 8, 9, 3 }; - for (int z = 0; z < k.Length; z++) + for (int zeile = 0; zeile < k.Length; zeile++) // Schleife über die Zeilen { - if (k[z] != null) + if (k[zeile] != null) // Hat diese Zeile ÜBERHAUPT Elemente? { - for (int i = 0; i < k[z].Length; i++) + for (int i = 0; i < k[zeile].Length; i++) // Schleife über die Elemente einer Zeile { - Console.Write($"{k[z][i]} "); + Console.Write($"{k[zeile][i]} "); } Console.WriteLine(); } @@ -113,15 +114,28 @@ namespace _08_2D_Felder } + int[][,] k2; // Feld von 2D-Feldern + int[][,,] k3; // Feld von 3D-Feldern - ///////////////////////////////////////////////////////////////////// - /// - int anz = 6; - bool[] bf = new bool[1000000]; + int[,][] k4; // 2D Feld von 1D Feldern + int[,][,] k5; // 2D Feld von 2D Feldern - for (int i = 0; i < bf.Length; i++) - bf[i] = true; + /////////////////////////////////////////////////////////// + /// Ranges + /// int[] g1 = { 1, 2, 3, 4, 5, 6 }; + int w1 = g1[0]; + //int w2 = g1[^1]; // ~ g1[g1.Length-1] + //int w3 = g1[^2]; // ~ g1[g1.Length-2] + + + //// Liefern eine Ausschnitt-KOPIE des Feldes g1 + //int[] w4 = g1[1..3]; // 2,3 EXKLUSIVER rechter Index + //int[] w5 = g1[3..]; // 4,5,6 + //int[] w5 = g1[3..^0]; // 4,5,6 ~~ ^0 EXKLUSIVER rechter Index + + //int[] w6 = g1[..3]; // 1,2,3 + //int[] w7 = g1[..]; // Kopie von g1 } } } diff --git a/08 2D_Felder_Ubg_Di/08 2D_Felder_Ubg_Di.csproj b/08 2D_Felder_Ubg_Di/08 2D_Felder_Ubg_Di.csproj new file mode 100644 index 0000000000000000000000000000000000000000..e9216a61966112b01d7912c159381bab01196bd1 --- /dev/null +++ b/08 2D_Felder_Ubg_Di/08 2D_Felder_Ubg_Di.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_08_2D_Felder_Ubg_Di</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/08 2D_Felder_Ubg_Di/Program.cs b/08 2D_Felder_Ubg_Di/Program.cs new file mode 100644 index 0000000000000000000000000000000000000000..114ee307213e5890d8a27e79b40ec218f8e40346 --- /dev/null +++ b/08 2D_Felder_Ubg_Di/Program.cs @@ -0,0 +1,69 @@ +using System; + +namespace _08_2D_Felder_Ubg_Di +{ + class Program + { + static void FeldAusgeben(int[,] feld) + { + for (int z = 0; z < feld.GetLength(0); z++) // GetLength(n) ~ Anzahl der Elemente in der Dimension n + { + for (int i = 0; i < feld.GetLength(1); i++) + Console.Write($"{feld[z, i],3} "); + + Console.WriteLine(); + } + Console.WriteLine("-----------------------------"); + } + /// <summary> + /// Initialisiert ein neu anzulegendes n*n Feld mit aufsteigenden Werten + /// </summary> + /// <param name="n">Größe des Feldes</param> + /// <returns>n*n Feld</returns> + static int[,] InitFeld(int n) + { + int[,] feld = new int[n, n]; + int wert = 1; + + for (int z = 0; z < feld.GetLength(0); z++) // GetLength(n) ~ Anzahl der Elemente in der Dimension n + { + for (int i = 0; i < feld.GetLength(1); i++) + feld[z, i] = wert++; + //feld[z, i] = z * n + i + 1; + } + return feld; + } + + static void Vierer(int [,] f) + { + for (int z = 0; z < f.GetLength(0); z++) // GetLength(n) ~ Anzahl der Elemente in der Dimension n + for (int i = 0; i < f.GetLength(1); i++) + if (f[z, i] % 4 == 0) + f[z, i] = 0; + } + + + + static void Diagonale(int[,] f) + { + for (int i = 0; i < f.GetLength(1); i++) + { + f[i, i] = -1; // Hauptdiagonale + f[i,f.GetLength(0) - 1 - i] = -2; // Nebendiagonale + } + } + static void Main(string[] args) + { + int[,] f= InitFeld(12); + Vierer(f); + Diagonale(f); + FeldAusgeben(f); + + // 8x8 Spielfeld + // Ausgabefunktion für Felder schreiben + // Elemente mit 1..64 vorbelegen + // Alle durch 4 teilbaren Werte mit 0 überschreiben + // Diagonale mit -1 eintragen + } + } +} diff --git a/08 ZeichenkettenIntro/08 ZeichenkettenIntro.csproj b/08 ZeichenkettenIntro/08 ZeichenkettenIntro.csproj new file mode 100644 index 0000000000000000000000000000000000000000..1b6e81faeb001d38cc64f4e3527e5ecb238d4203 --- /dev/null +++ b/08 ZeichenkettenIntro/08 ZeichenkettenIntro.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_08_ZeichenkettenIntro</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/08 ZeichenkettenIntro/Program.cs b/08 ZeichenkettenIntro/Program.cs new file mode 100644 index 0000000000000000000000000000000000000000..326d9497d1013b80923161cb5fc7649ec610f59c --- /dev/null +++ b/08 ZeichenkettenIntro/Program.cs @@ -0,0 +1,58 @@ +using System; + +namespace _08_ZeichenkettenIntro +{ + class Program + { + static void ASCII_Tabelle() + { + string s = "ABC..XYZ abc..xyz 012..789"; + //for (int i = 0; i < s.Length; i++) + //{ + // Console.WriteLine(s[i]); + //} + foreach (char c in s) + { + Console.WriteLine($"{c} - {(int)c}"); + } + + Console.WriteLine("-------------------"); + + for (int i = 32; i < 128; i++) + { + Console.WriteLine($"{i,3} - {(char)i}"); + } + } + static string InGrossbuchstabenKonvertieren(string s) + { + string erg = ""; + foreach (char c in s) + { + if (c >= 'a' && c <= 'z') // Handelt es sich um einen Kleinbuchstaben? + erg += (char)(c - ('a' - 'A')); // Differenz zwischen Klein- u. Großbuchstaben abziehen + else + erg += c; + } + return erg; + } + static string InKleinbuchstabenKonvertieren(string s) + { + string erg = ""; + foreach (char c in s) + { + if (c >= 'A' && c <= 'Z') // Handelt es sich um einen Kleinbuchstaben? + erg += (char)(c + ('a' - 'A')); // Differenz zwischen Klein- u. Großbuchstaben abziehen + else + erg += c; + } + return erg; + } + static void Main(string[] args) + { + string s = "Hello World!"; + + Console.WriteLine(InGrossbuchstabenKonvertieren(s)); + Console.WriteLine(InKleinbuchstabenKonvertieren(s)); + } + } +} diff --git a/Prog1_WS2021_22.sln b/Prog1_WS2021_22.sln index a3378c618177ec0b91dff3ee0e4e3f9195669592..e5d06192f3b525747cefac653cf48b8e464a23f9 100644 --- a/Prog1_WS2021_22.sln +++ b/Prog1_WS2021_22.sln @@ -57,9 +57,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "07 ArraysByRef", "07 Arrays EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "07 DoubleUngenauigkeiten", "07 DoubleUngenauigkeiten\07 DoubleUngenauigkeiten.csproj", "{982D3EE4-33F6-48B9-8E8A-68DCCDFA3A84}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "08 RefVsOut", "08 RefVsOut\08 RefVsOut.csproj", "{4724CACD-310A-4F71-B140-400D77C92EC7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "08 RefVsOut", "08 RefVsOut\08 RefVsOut.csproj", "{4724CACD-310A-4F71-B140-400D77C92EC7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "08 2D_Felder", "08 2D_Felder\08 2D_Felder.csproj", "{EE89CDF4-D279-4F6D-82E0-26175D60DF5D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "08 2D_Felder", "08 2D_Felder\08 2D_Felder.csproj", "{EE89CDF4-D279-4F6D-82E0-26175D60DF5D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "08 2D_Felder_Ubg_Di", "08 2D_Felder_Ubg_Di\08 2D_Felder_Ubg_Di.csproj", "{00DFDFC9-A638-4392-934F-D83ADD9D9530}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "08 ZeichenkettenIntro", "08 ZeichenkettenIntro\08 ZeichenkettenIntro.csproj", "{36213D4C-1100-4634-A883-1BC46FD24298}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -183,6 +187,14 @@ Global {EE89CDF4-D279-4F6D-82E0-26175D60DF5D}.Debug|Any CPU.Build.0 = Debug|Any CPU {EE89CDF4-D279-4F6D-82E0-26175D60DF5D}.Release|Any CPU.ActiveCfg = Release|Any CPU {EE89CDF4-D279-4F6D-82E0-26175D60DF5D}.Release|Any CPU.Build.0 = Release|Any CPU + {00DFDFC9-A638-4392-934F-D83ADD9D9530}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {00DFDFC9-A638-4392-934F-D83ADD9D9530}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00DFDFC9-A638-4392-934F-D83ADD9D9530}.Release|Any CPU.ActiveCfg = Release|Any CPU + {00DFDFC9-A638-4392-934F-D83ADD9D9530}.Release|Any CPU.Build.0 = Release|Any CPU + {36213D4C-1100-4634-A883-1BC46FD24298}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {36213D4C-1100-4634-A883-1BC46FD24298}.Debug|Any CPU.Build.0 = Debug|Any CPU + {36213D4C-1100-4634-A883-1BC46FD24298}.Release|Any CPU.ActiveCfg = Release|Any CPU + {36213D4C-1100-4634-A883-1BC46FD24298}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE