Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
ef_informatik:programmieren_csharp [2023-09-12 12:09] – [Aufgabe G4] scaef_informatik:programmieren_csharp [2025-09-23 12:21] (aktuell) – [Aufgabe D5] sps
Zeile 1: Zeile 1:
 ====== Programmieren in C# ====== ====== Programmieren in C# ======
 +
 +++++Lernziele|
 +
 +   * **Grundlagen C#**, alles im Dossier unten:
 +     * Variablen
 +     * Schleifen
 +     * Verzweigungen
 +     * Funktionen
 +     * Arrays
 +     * Listen
 +     * ...
 +
 +
 +++++
  
 **Slides:** **Slides:**
Zeile 7: Zeile 21:
    * {{ :ef_informatik:efif_jahr_a_03_scope.pdf |}}    * {{ :ef_informatik:efif_jahr_a_03_scope.pdf |}}
    * {{ :ef_informatik:efif_jahr_a_04_git_github.pdf |}}    * {{ :ef_informatik:efif_jahr_a_04_git_github.pdf |}}
 +   * {{ :ef_informatik:efif_jahr_a_05_strings.pdf |}}
  
 {{:ef_informatik:imgoodatcsharp.jpg?300|}} {{:ef_informatik:imgoodatcsharp.jpg?300|}}
Zeile 20: Zeile 35:
 ==== - Installation & Hello World ==== ==== - Installation & Hello World ====
  
-Um C# zu programmieren, verwenden wir die IDE **Visual Studio** (kurz: **VS**von MicrosoftAchtung: Nicht zu verwechseln mit dem *Visual Studio Code*!+Verwende eine der beiden Möglichkeiten, um C# zu programmieren
 + 
 +   1. **Visual Studio** (Windows only) 
 +   1**Visual Studio Code** (Windows & Mac) 
 + 
 + 
 +=== C# in Visual Studio === 
    - Lade die **Community Edition** (gratis) des **Visual Studios** von der Website https://visualstudio.microsoft.com/de/ herunter ...    - Lade die **Community Edition** (gratis) des **Visual Studios** von der Website https://visualstudio.microsoft.com/de/ herunter ...
    - ... und installiere sie.    - ... und installiere sie.
Zeile 26: Zeile 48:
    - Diese Projekt enthält bereits Code, der wie unten angezeigt aussehen sollte.    - Diese Projekt enthält bereits Code, der wie unten angezeigt aussehen sollte.
    - Dieses Programm ist das bekannteste Programm der Welt: **Hello World**. Alles was dieses Programm macht, ist die Nachricht ''Hello World!'' im Ausgabefenster, genannt **Konsole** oder **Terminal**, auszugeben. Drücke, um das Programm auszuführen auf den (grünen) Pfeil oder F5.     - Dieses Programm ist das bekannteste Programm der Welt: **Hello World**. Alles was dieses Programm macht, ist die Nachricht ''Hello World!'' im Ausgabefenster, genannt **Konsole** oder **Terminal**, auszugeben. Drücke, um das Programm auszuführen auf den (grünen) Pfeil oder F5. 
 +
 +
 +
 +
 +=== C# in Visual Code ===
 +
 +   1. .NET SDK installieren: [[https://dotnet.microsoft.com/en-us/download]]
 +   1. Check ob hat funktioniert: In Konsole: <WRAP><code>
 +dotnet --version
 +</code></WRAP>
 +   1. VSCode installieren
 +   1. C# Extension von Microsoft in VSCode installieren
 +   1. Neues C#-Projekt: <WRAP><code>
 +dotnet new console -n MyFirstApp
 +cd MyFirstApp
 +code .
 +</code></WRAP>
 +   1. Programm ausführen:<WRAP><code>
 +dotnet run
 +</code></WRAP>
 +
 +
 +
 +
 +=== Top-Level Statements ===
  
 Seit C# 9.0 werden standardmässig Top-Level Statements verwendet. Damit sieht ein einfaches "Hello World"-Programm wie folgt aus: Seit C# 9.0 werden standardmässig Top-Level Statements verwendet. Damit sieht ein einfaches "Hello World"-Programm wie folgt aus:
Zeile 493: Zeile 540:
 </code> </code>
    - Was macht der Code? Versuche es herauszufinden, ohne den Code auszuführen.    - Was macht der Code? Versuche es herauszufinden, ohne den Code auszuführen.
-   - Schreibe nun den Code so um, dass die Schleife das unten angezeigt Grundgerüst hat. Verwende die **break** Anweisung, um aus der Schleife auszubrechen.+   - Schreibe nun den Code so um, dass die Schleife das unten angezeigte Grundgerüst hat. Verwende die **break** Anweisung, um aus der Schleife auszubrechen.
 <code csharp> <code csharp>
 ... ...
Zeile 508: Zeile 555:
 === Aufgabe D5 === === Aufgabe D5 ===
  
-Schreibe ein einfache **Quiz-Game**, um deine Kopfrechenfähigkeiten zu trainieren. Die Benutzer\*In soll solange weiterspielen können, bis sie einen Fehler begeht, dann ist Game Over! Die Rechnungen sollen einfache Additionen von zwei ganzen Zahlen sein, wobei diese Zahlen per Zufall ausgewählt werden (siehe Codebeispiel unten). Der Benutzer\*In soll also die Rechnung präsentiert werden und dann das eingetippte Resultat mit dem tatsächlichen Resultat verglichen werden.+Schreibe ein einfaches **Quiz-Game**, um deine Kopfrechenfähigkeiten zu trainieren. Die Benutzer\*In soll solange weiterspielen können, bis sie einen Fehler begeht, dann ist Game Over! Die Rechnungen sollen einfache Additionen von zwei ganzen Zahlen sein, wobei diese Zahlen per Zufall ausgewählt werden (siehe Codebeispiel unten). Der Benutzer\*In soll also die Rechnung präsentiert werden und dann das eingetippte Resultat mit dem tatsächlichen Resultat verglichen werden.
  
 Folgender Code gibt einem $10$ **Zufallszahlen** im Bereich $1$ bis $5$ aus und dient als Beispiel dafür, wie man Zufallszahlen generiert: Folgender Code gibt einem $10$ **Zufallszahlen** im Bereich $1$ bis $5$ aus und dient als Beispiel dafür, wie man Zufallszahlen generiert:
Zeile 543: Zeile 590:
 === Aufgabe E2 === === Aufgabe E2 ===
    - **Primzahlen** sind positive ganze Zahlen, die nur durch sich selbst und $1$ teilbar sind, also $2,3,5,7,11,13,\ldots$. Schreibe ein Programm, in dem die Benutzer\*In eine ganze Zahl eingeben soll. Das Programm überprüft, ob es sich bei der Zahl um eine Primzahl handelt oder nicht und gibt eine entsprechende Rückmeldung. \\ \\    - **Primzahlen** sind positive ganze Zahlen, die nur durch sich selbst und $1$ teilbar sind, also $2,3,5,7,11,13,\ldots$. Schreibe ein Programm, in dem die Benutzer\*In eine ganze Zahl eingeben soll. Das Programm überprüft, ob es sich bei der Zahl um eine Primzahl handelt oder nicht und gibt eine entsprechende Rückmeldung. \\ \\
-   - Mache eine Kopie deines Programms. Nun soll eine Zahl eingegeben werden und sämtliche kleiner gleich dieser Zahl ausgegeben werden.+   - Mache eine Kopie deines Programms. Nun soll eine Zahl eingegeben werden und sämtliche Primzahlen kleiner gleich dieser Zahl ausgegeben werden.
  
 === Aufgabe E3 === === Aufgabe E3 ===
Zeile 744: Zeile 791:
  
 Die meisten Programmiersprachen kommen mit vielen vorprogrammierten Utility-Functions daher, die einem das Leben vereinfachen. Ziel dieser Aufgabe ist es, diese **Utility-Functions selbst zu programmieren**, und dabei nur die *rudimentärsten Befehle* wie Schleifen oder if-else zu verwenden. Vordefinierte String-Methoden wie Length, Split usw. dürfen natürlich nicht verwendet werden. Es sollen auch *keine Listen* sondern nur Arrays verwendet werden. Natürlich darfst du selbst programmierte Utility-Functions wiederverwenden dürfen. Beispiel: Nachdem du deine eigene `Length`-Funktion definiert hast, darfst du diese verwenden für die nächsten Funktionen. Die meisten Programmiersprachen kommen mit vielen vorprogrammierten Utility-Functions daher, die einem das Leben vereinfachen. Ziel dieser Aufgabe ist es, diese **Utility-Functions selbst zu programmieren**, und dabei nur die *rudimentärsten Befehle* wie Schleifen oder if-else zu verwenden. Vordefinierte String-Methoden wie Length, Split usw. dürfen natürlich nicht verwendet werden. Es sollen auch *keine Listen* sondern nur Arrays verwendet werden. Natürlich darfst du selbst programmierte Utility-Functions wiederverwenden dürfen. Beispiel: Nachdem du deine eigene `Length`-Funktion definiert hast, darfst du diese verwenden für die nächsten Funktionen.
-  Funktion `Length`, die die Länge eines Strings bestimmt und zurück gibt. Schaffst du das ohne die Methode Length, die bei jedem String vorhanden ist? + 
-  Funktion `NumberOfChar`, die überprüft, wie oft ein bestimmter Buchstabe (Typ: char) in einem String vorkommt, zB. \\ `int i = NumberOfChar("Nerds sind nicht normal", 'n')` +   1. Funktion `Length`, die die Länge eines Strings bestimmt und zurück gibt. Programmiere dies ohne die Methode Length, die bei jedem String vorhanden ist. Verwende auch kein foreach (verwendet intern wohl auch Length). 
-  Funktion `PositionsOfChar`, die in einem Array sämtliche Positionen eines Buchstaben in einem String angibt, zB. \\ `int[] i = PositionsOfChar("Nerds sind nicht normal", 'n')` +   1. Funktion `NumberOfChar`, die überprüft, wie oft ein bestimmter Buchstabe (Typ: char) in einem String vorkommt, zB. \\ `int i = NumberOfChar("Nerds sind nicht normal", 'n')` 
-  Funktion `Split`, die einen String bei jedem Vorkommen eines bestimmten Zeichens auftrennt und die Teile in einem Array zurückgibt, zB. \\ `string[] a = Split("Ein Satz mit fünf Wörtern", ' ')`+   1. Funktion `PositionsOfChar`, die in einem Array sämtliche Positionen eines Buchstaben in einem String angibt, zB. \\ `int[] i = PositionsOfChar("Nerds sind nicht normal", 'n')` 
 +   1. Funktion `Split`, die einen String bei jedem Vorkommen eines bestimmten Zeichens auftrennt und die Teile in einem Array zurückgibt, zB. \\ `string[] a = Split("Ein Satz mit fünf Wörtern", ' ')`
  
  
Zeile 859: Zeile 907:
 </nodisp> </nodisp>
  
-<nodisp 2>+<nodisp 1>
  
 ++++Aufgaben D| ++++Aufgaben D|
Zeile 1118: Zeile 1166:
 if (z >= 2) if (z >= 2)
 { {
-    for (int i = 2; i <= Math.Sqrt(33); i++)+    for (int i = 2; i <= Math.Sqrt(z); i++)
     {     {
         if (z % i == 0)         if (z % i == 0)
  • ef_informatik/programmieren_csharp.1694520599.txt.gz
  • Zuletzt geändert: 2023-09-12 12:09
  • von sca