From 912d23a8d0a3d69dd1da8856b47efe83c84ee9d4 Mon Sep 17 00:00:00 2001 From: wienkop <uwe.wienkop@th-nuernberg.de> Date: Tue, 19 Oct 2021 11:14:51 +0200 Subject: [PATCH] Woche 03 - Schleifen --- 02 Fallunterscheidungen/Program.cs | 28 ++++++++-- 03 IntArithmetik/03 IntArithmetik.csproj | 9 +++ 03 IntArithmetik/Program.cs | 46 ++++++++++++++++ .../03 IntArithmetik_Di.csproj | 9 +++ 03 IntArithmetik_Di/Program.cs | 55 +++++++++++++++++++ 03 Primzahltest/03 Primzahltest.csproj | 9 +++ 03 Primzahltest/Program.cs | 38 +++++++++++++ .../03 Quadratzahlen_bis.csproj | 9 +++ 03 Quadratzahlen_bis/Program.cs | 21 +++++++ 03 Quersumme/03 Quersumme.csproj | 9 +++ 03 Quersumme/Program.cs | 23 ++++++++ 03 SchleifenIntro/03 SchleifenIntro.csproj | 9 +++ 03 SchleifenIntro/Program.cs | 32 +++++++++++ Prog1_WS2021_22.sln | 42 +++++++++++++- 14 files changed, 330 insertions(+), 9 deletions(-) create mode 100644 03 IntArithmetik/03 IntArithmetik.csproj create mode 100644 03 IntArithmetik/Program.cs create mode 100644 03 IntArithmetik_Di/03 IntArithmetik_Di.csproj create mode 100644 03 IntArithmetik_Di/Program.cs create mode 100644 03 Primzahltest/03 Primzahltest.csproj create mode 100644 03 Primzahltest/Program.cs create mode 100644 03 Quadratzahlen_bis/03 Quadratzahlen_bis.csproj create mode 100644 03 Quadratzahlen_bis/Program.cs create mode 100644 03 Quersumme/03 Quersumme.csproj create mode 100644 03 Quersumme/Program.cs create mode 100644 03 SchleifenIntro/03 SchleifenIntro.csproj create mode 100644 03 SchleifenIntro/Program.cs diff --git a/02 Fallunterscheidungen/Program.cs b/02 Fallunterscheidungen/Program.cs index 48bf272..cc77957 100644 --- a/02 Fallunterscheidungen/Program.cs +++ b/02 Fallunterscheidungen/Program.cs @@ -13,10 +13,9 @@ namespace _02_Fallunterscheidungen { kleiner = x; } - else - { + else kleiner = y; - } + Console.WriteLine($"Die kleinere Zahl ist {kleiner}"); if (x == 3) @@ -40,7 +39,7 @@ namespace _02_Fallunterscheidungen int t = -5; if (t < 0) Console.WriteLine("ganz schön kalt"); - else if (t > 24) + else if (t > 24) // else: t >= 0 Console.WriteLine("Summertime"); else Console.WriteLine("weder warm noch kalt"); @@ -69,10 +68,27 @@ namespace _02_Fallunterscheidungen Console.WriteLine("ganz schön kalt"); if (t >= 0 && t <= 24) Console.WriteLine("weder warm noch kalt"); - if (t >24 ) + if (t > 24) Console.WriteLine("Summertime"); + // && verknüpft zwei Wahrheitswerte (bool) + // genau dann wahr, wenn BEIDE wahr sind + // true && false --> false + // false && true --> false + // Short-cut evaluation: zweiter Ausdruck wird nur dann + // ausgewertet, wenn der erste wahr ist + + bool b = t < 24 && t > 3; + + + if (x == 3 || x == 4) + Console.WriteLine("x ist drei oder vier"); + // || genau dann wahr, wenn mindestens einer der beiden + // Wahrheitswerte wahr ist + // true || false --> true + // 2. Ausdruck wird nur dann ausgewertet, wenn der erste + // falsch ist } } -} +} \ No newline at end of file diff --git a/03 IntArithmetik/03 IntArithmetik.csproj b/03 IntArithmetik/03 IntArithmetik.csproj new file mode 100644 index 0000000..218adb1 --- /dev/null +++ b/03 IntArithmetik/03 IntArithmetik.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_03_IntArithmetik</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/03 IntArithmetik/Program.cs b/03 IntArithmetik/Program.cs new file mode 100644 index 0000000..d016117 --- /dev/null +++ b/03 IntArithmetik/Program.cs @@ -0,0 +1,46 @@ +using System; + +namespace _03_IntArithmetik +{ + class Program + { + static void Main(string[] args) + { + // 5:2 --> 2 R 1 + // 5 / 2 --> 2 + // 5 % 2 --> 1 (Rest) + + int zahl0 = 123; // 1 * 10^2 + 2 * 10^1 + 3 * 10^0 + int einer = zahl0 % 10; + int hunderter = zahl0 / 100; + int zehner = zahl0 / 10 % 10; // 123 / 10 --> 12 % 10 --> 2 + + // Listen Sie alle dreistelligen Zahlen auf, + // die durch alle ihre Ziffern teilbar sind + + // https://openbook.rheinwerk-verlag.de/visual_csharp_2012/ + + + // 1. for-Schleife von 100 .. 999 + int anzAusgaben = 0; + for (int zahl = 100 ; zahl < 1000; zahl++) + { + // 2. für jede Stelle: Var deklarieren und Ziffer zuweisen + int e = zahl % 10; + int z = zahl / 10 % 10; + int h = zahl / 100; + + // 3. if: 1) keine Nuller und 2) Teilbarkeit + // ggf. ausgeben + if (e != 0 && z != 0 && + zahl % e == 0 && zahl % z == 0 && zahl % h == 0) + { + Console.Write($"{zahl} "); + anzAusgaben++; + if (anzAusgaben%10 == 0) + Console.WriteLine(); + } + } + } + } +} diff --git a/03 IntArithmetik_Di/03 IntArithmetik_Di.csproj b/03 IntArithmetik_Di/03 IntArithmetik_Di.csproj new file mode 100644 index 0000000..2daff2a --- /dev/null +++ b/03 IntArithmetik_Di/03 IntArithmetik_Di.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_03_IntArithmetik_Di</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/03 IntArithmetik_Di/Program.cs b/03 IntArithmetik_Di/Program.cs new file mode 100644 index 0000000..c7987d7 --- /dev/null +++ b/03 IntArithmetik_Di/Program.cs @@ -0,0 +1,55 @@ +using System; + +namespace _03_IntArithmetik_Di +{ + class Program + { + //// 7 : 2 = 3 R 1 + //Console.WriteLine(7/2); + //Console.WriteLine(7%2); + + //// 123 + //Console.WriteLine(123 % 10); + //Console.WriteLine(123 / 100); + //Console.WriteLine(123 / 10 % 10); + + //// 1234 + //Console.WriteLine(1234/10%100); + static void Main(string[] args) + { + Console.WriteLine("Alle dreistelligen Zahlen, die durch alle ihre Ziffern teilbar sind"); + + // 1. Schleife von 100 .. 999 + // 2. Dritte Stelle extrahieren + // 2b. Test, ob Zahl durch dritte Stelle teilbar ist + // 3. Zweite Stelle ... + // 4. Erste Stelle + + int anz = 0; + // 1. Schleife von 100 .. 999 + for (int zahl = 100; zahl < 1000; zahl++) + { + // 2. Einer, Zehner, Hunderter extrahieren + int e = zahl % 10; + int z = zahl / 10 % 10; + int h = zahl / 100; + + // 3. Test + if (e != 0 && z != 0 && + zahl % e == 0 && zahl % z == 0 && zahl % h == 0) + { + // 4. ggf. Zahl ausgeben + anz++; + //if (anz % 5 == 0) + // Console.WriteLine($"{zahl} "); + //else + // Console.Write($"{zahl} "); + + Console.Write($"{zahl} "); + if (anz % 5 == 0) + Console.WriteLine(); + } + } + } + } +} diff --git a/03 Primzahltest/03 Primzahltest.csproj b/03 Primzahltest/03 Primzahltest.csproj new file mode 100644 index 0000000..e45a87a --- /dev/null +++ b/03 Primzahltest/03 Primzahltest.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_03_Primzahltest</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/03 Primzahltest/Program.cs b/03 Primzahltest/Program.cs new file mode 100644 index 0000000..1d2e2f0 --- /dev/null +++ b/03 Primzahltest/Program.cs @@ -0,0 +1,38 @@ +using System; + +namespace _03_Primzahltest +{ + class Program + { + static void Main(string[] args) + { + DateTime startzeit = DateTime.Now; + int anzPrimzahlen = 1; + + for (int zahl = 3; zahl < 100000; zahl+= 2) + { + bool zahlIstPrimzahl = true; + int teilergrenze = (int) Math.Sqrt(zahl); + for (int teiler = 3; /* n == 0 && */ teiler <= teilergrenze; teiler+=2) + { + //Console.WriteLine($"Teiler: {teiler,2}: {primZahl/teiler} {primZahl%teiler}"); + if (zahl % teiler == 0) + { + //Console.WriteLine($"{primZahl} ist durch {teiler} teilbar ==> keine Primzahl"); + zahlIstPrimzahl = false; + break; + } + // HIER KEIN ELSE!!! + } + if (zahlIstPrimzahl) + anzPrimzahlen++; + //Console.WriteLine($"{zahl} ist eine Primzahl"); + //else + // Console.WriteLine($"{zahl} ist keine Primzahl"); + + } + Console.WriteLine($"{anzPrimzahlen} Primzahlen gefunden"); // 9592 + Console.WriteLine($"Benötigte Rechenzeit: {(DateTime.Now-startzeit).TotalMilliseconds} ms."); + } + } +} diff --git a/03 Quadratzahlen_bis/03 Quadratzahlen_bis.csproj b/03 Quadratzahlen_bis/03 Quadratzahlen_bis.csproj new file mode 100644 index 0000000..855467f --- /dev/null +++ b/03 Quadratzahlen_bis/03 Quadratzahlen_bis.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_03_Quadratzahlen_bis</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/03 Quadratzahlen_bis/Program.cs b/03 Quadratzahlen_bis/Program.cs new file mode 100644 index 0000000..4ab71ef --- /dev/null +++ b/03 Quadratzahlen_bis/Program.cs @@ -0,0 +1,21 @@ +using System; + +namespace _03_Quadratzahlen_bis +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Quadratzahlen bis ..."); + //int grenze = Convert.ToInt32(Console.ReadLine()); + int grenze = 100; + + int zahl = 1; + while (zahl * zahl <= grenze) + { + Console.WriteLine($"{zahl} --> {zahl*zahl}"); + zahl++; + } + } + } +} diff --git a/03 Quersumme/03 Quersumme.csproj b/03 Quersumme/03 Quersumme.csproj new file mode 100644 index 0000000..d84fe56 --- /dev/null +++ b/03 Quersumme/03 Quersumme.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_03_Quersumme</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/03 Quersumme/Program.cs b/03 Quersumme/Program.cs new file mode 100644 index 0000000..560ebda --- /dev/null +++ b/03 Quersumme/Program.cs @@ -0,0 +1,23 @@ +using System; + +namespace _03_Quersumme +{ + class Program + { + static void Main(string[] args) + { + int zahl = 1234567; + + int qsumme = 0; + + while (zahl > 0) + { + Console.WriteLine(zahl); + int letzteZiffer = zahl % 10; + qsumme += letzteZiffer; + zahl /= 10; + } + Console.WriteLine($"Die Quersumme beträgt: {qsumme}"); + } + } +} diff --git a/03 SchleifenIntro/03 SchleifenIntro.csproj b/03 SchleifenIntro/03 SchleifenIntro.csproj new file mode 100644 index 0000000..cf5f52f --- /dev/null +++ b/03 SchleifenIntro/03 SchleifenIntro.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_03_SchleifenIntro</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/03 SchleifenIntro/Program.cs b/03 SchleifenIntro/Program.cs new file mode 100644 index 0000000..07b48b4 --- /dev/null +++ b/03 SchleifenIntro/Program.cs @@ -0,0 +1,32 @@ +using System; + +namespace _03_SchleifenIntro +{ + class Program + { + static void Main(string[] args) + { + //int i; + for (int i = 0; i < 5; i++) + // int i = 0: Definiert eine neue int-Var i und initialisiert diese mit 0 + // i<5: Durchlaufbedingung, Test vor jedem Durchlauf, auch dem ERSTEN + // { } Schleifenrumpf: Die zu wiederholenden Anweisungen + // i++: Weiterschalten i++ --> i = i+1 + // weiter bei i<5 + { + Console.WriteLine("Hello World!"); + } + //Console.WriteLine(i); + + + int k = 0; + while (k<5) + { + Console.WriteLine("Hallo"); + k++; + } + + + } + } +} diff --git a/Prog1_WS2021_22.sln b/Prog1_WS2021_22.sln index c1b648b..995f824 100644 --- a/Prog1_WS2021_22.sln +++ b/Prog1_WS2021_22.sln @@ -9,11 +9,23 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "01 Hallo", "01 Hallo\01 Hal EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "02 Rechteck", "02 Rechteck\02 Rechteck.csproj", "{76322CB6-249B-428C-9847-E551E25F38DB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "02 Rechteck_Di", "02 Rechteck_Di\02 Rechteck_Di.csproj", "{857CABA6-FCAE-4E48-8357-02B08F87BE49}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "02 Rechteck_Di", "02 Rechteck_Di\02 Rechteck_Di.csproj", "{857CABA6-FCAE-4E48-8357-02B08F87BE49}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "02 Ausgabeformatierung", "02 Ausgabeformatierung\02 Ausgabeformatierung.csproj", "{27FA1463-A81B-46A4-A331-457D973BA70C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "02 Ausgabeformatierung", "02 Ausgabeformatierung\02 Ausgabeformatierung.csproj", "{27FA1463-A81B-46A4-A331-457D973BA70C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "02 Fallunterscheidungen", "02 Fallunterscheidungen\02 Fallunterscheidungen.csproj", "{3370BE4E-7EF8-4ABB-949D-62CA9FA5CDA7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "02 Fallunterscheidungen", "02 Fallunterscheidungen\02 Fallunterscheidungen.csproj", "{3370BE4E-7EF8-4ABB-949D-62CA9FA5CDA7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "03 SchleifenIntro", "03 SchleifenIntro\03 SchleifenIntro.csproj", "{5C715673-820D-4FC5-B8C6-EEE0890713EE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "03 Primzahltest", "03 Primzahltest\03 Primzahltest.csproj", "{958EC31B-7CFC-470B-87AD-2AEB00E816A5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "03 IntArithmetik", "03 IntArithmetik\03 IntArithmetik.csproj", "{9CB8537D-D35E-4718-9258-12857B8B7411}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "03 IntArithmetik_Di", "03 IntArithmetik_Di\03 IntArithmetik_Di.csproj", "{EADEA381-506F-41FF-99EC-487D4D3B6114}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "03 Quersumme", "03 Quersumme\03 Quersumme.csproj", "{C2D51C5D-AFDC-4A8A-9393-904A1CAA2CCC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "03 Quadratzahlen_bis", "03 Quadratzahlen_bis\03 Quadratzahlen_bis.csproj", "{F492AB76-864B-45FD-9BF2-36B9CA24987D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -45,6 +57,30 @@ Global {3370BE4E-7EF8-4ABB-949D-62CA9FA5CDA7}.Debug|Any CPU.Build.0 = Debug|Any CPU {3370BE4E-7EF8-4ABB-949D-62CA9FA5CDA7}.Release|Any CPU.ActiveCfg = Release|Any CPU {3370BE4E-7EF8-4ABB-949D-62CA9FA5CDA7}.Release|Any CPU.Build.0 = Release|Any CPU + {5C715673-820D-4FC5-B8C6-EEE0890713EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5C715673-820D-4FC5-B8C6-EEE0890713EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5C715673-820D-4FC5-B8C6-EEE0890713EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5C715673-820D-4FC5-B8C6-EEE0890713EE}.Release|Any CPU.Build.0 = Release|Any CPU + {958EC31B-7CFC-470B-87AD-2AEB00E816A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {958EC31B-7CFC-470B-87AD-2AEB00E816A5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {958EC31B-7CFC-470B-87AD-2AEB00E816A5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {958EC31B-7CFC-470B-87AD-2AEB00E816A5}.Release|Any CPU.Build.0 = Release|Any CPU + {9CB8537D-D35E-4718-9258-12857B8B7411}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9CB8537D-D35E-4718-9258-12857B8B7411}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9CB8537D-D35E-4718-9258-12857B8B7411}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9CB8537D-D35E-4718-9258-12857B8B7411}.Release|Any CPU.Build.0 = Release|Any CPU + {EADEA381-506F-41FF-99EC-487D4D3B6114}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EADEA381-506F-41FF-99EC-487D4D3B6114}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EADEA381-506F-41FF-99EC-487D4D3B6114}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EADEA381-506F-41FF-99EC-487D4D3B6114}.Release|Any CPU.Build.0 = Release|Any CPU + {C2D51C5D-AFDC-4A8A-9393-904A1CAA2CCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2D51C5D-AFDC-4A8A-9393-904A1CAA2CCC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2D51C5D-AFDC-4A8A-9393-904A1CAA2CCC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2D51C5D-AFDC-4A8A-9393-904A1CAA2CCC}.Release|Any CPU.Build.0 = Release|Any CPU + {F492AB76-864B-45FD-9BF2-36B9CA24987D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F492AB76-864B-45FD-9BF2-36B9CA24987D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F492AB76-864B-45FD-9BF2-36B9CA24987D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F492AB76-864B-45FD-9BF2-36B9CA24987D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE -- GitLab