commit 477307326760935c0c0e00d4ace9e8bebc1f7edf Author: 1925458 <1925458tud.hs-mannheim.de> Date: Tue Apr 9 13:32:44 2024 +0200 First Commit diff --git a/Lektion 1.md b/Lektion 1.md new file mode 100644 index 0000000..785f5aa --- /dev/null +++ b/Lektion 1.md @@ -0,0 +1,227 @@ +### Programmieren Crash Kurs +--- +### Die Fragen +1. Warum jetzt ausgerechnet Java? +2. Warum fangen wir so simpel an? + +--- + +### Struktur eines Programmes + +Ein Java Programm beginnt in der main Methode + +```java +class MeineKlasse{ + public static void main(String[] args){ + // Hier beginnt der Code + } +} +``` + +--- +### Ablauf eines Programms + +Fürs erste fokusieren wir uns auf **procedurale** Programmierung. D.h. jede Arbeitasanweisung wird Schritt für Schritt abgearbeitet. + +``` +class MeineKlasse{ + public static void main(String[] args){ + int ersteZahl = 0; // 1. Befehl + int zweiteZahl = 1; // 2. Befehl + int ergebnis = ersteZahl + zweiteZahl; // 3. Befehl + System.out.println(ergebnis); // 4. Befehl; + } +} +``` +i.d.R Endet jede Anweisung mit einem Semicolon (;) + +--- +### Variablen + +Variablen von einfachen Datentypen speichern Aussagen(Expressions). Variablen können nur Aussagen Ihres Datentypens speichern + +``` +boolean my_bool = true; +int my_integer = 14; +double my_double = 2.4; +char my_char = 'H'; +``` + +--- +### Aufgabe 0 + +Finde die Fehler + +```java +class MeineKlasse{ + int a = 0; + public static void main(String[] args){ + int b = 15; + int c = 4.0 + System.out.println(ergebnis); + int ergebnis = a + b + c; + } +} + +``` +--- +### Deklarierung und Initialisierung +``` +int c; +c = 10; +int d = 10; +``` +``` +int result; +// viel Code dazwischen +result = kalkulation(); +``` +--- +### Aufgabe 1 + +1. Deklariere die Variable 'c' mit dem Datentyp Integer +2. Initialisiere die Variable 'c' mit dem Wert 0 +3. Weise der Variablen 'c' dem Wert 16 zu + +--- +### Aufgabe 2 +1. Erstelle 3 Variablen x,y und z und initialisiere Sie auf beliebige Werte +2. Erstelle 3 Variablen d,m,y und initialisiere Sie auf deinen Geburtstag + +-> Was fällt dabei auf? +--- +### Einfache Datentypen + +Welche einfache Datentypen kennst du? + +Erstelle zu jedem eine Variable und einen entsprechenden Wert! + +Wie unterscheiden sich diese Datentypen? + +--- +### Unter der Haube (MALLOC) + +Java reserviert Speicher für jede deklarierte Variable. Die Menge an Speicher ist abhängig von dem jeweiligen Datentypen. +``` +int i; // Reserviert 4 byte +long l; // Reserviert 8 byte +short s; // Reserviert 2 byte +char c; // Reserviert 2 byte +``` +--- +### Operatoren + +Auf Datentypen können verschiedene Operationen durchgeführt werden. Den wichtigsten Operator kennst du bereits, den Zuweisungsoperator: +``` +int i = 10; +``` +Der Zuweisungsoperator nimmt eine **Aussage** (rechts) und weist sie einer Variablen (links) zu. Aussagen und Zuweisungen werden in der **funktionalen** Programmierung sehr wichtig. + +--- +### Operatoren + +Auf numerischen Datentypen können eine Vielzahl an mathematischen Operationen durchgeführt werden +``` +int i = 10; +int j = 15; +int k = i + j; // Addition +int l = i - j; // Subtraktion +int m = i * j; // Multiplikation +int n = i / j; // Division +int o = i % j; // Modulo +int p = i++; // Inkrementieren +int q = i--; // Dekrementieren +``` +--- +### Operatoren + +Auf numerischen Datentypen können eine Vielzahl an logischen Operationen durchgeführt werden. +``` +int a = 5; +int b = 10; +boolean c = a > b; // größer +boolean d = a < b; // kleiner +boolean e = a >= b; // größer gleich +boolean f = a <= b; // kleiner gleich +boolean g = a == b; // gleich +boolean h = a != b; // ungleich + + +``` + +--- +### Aufgabe 3 + +Erstelle einen Algorithmus, welcher überprüft, ob eine Zahl gerade oder ungerade ist. Wenn die Zahl gerade ist, speichere das Ergebnis in einer variablen 'boolean ist_gerade' ab. + +--- +### Operatoren + +Auf boolean Werte können logische Operatoren angewendet werden: +``` +boolean a = true; +boolean b = false; +boolean c = a || b; // logisches Oder +boolean d = a && b; // logisches Und +boolean e = a == b; // gleichheit +boolean f = a != b; // ungleichheit +boolean g = a | b; // bitweise oder +boolean h = a & b; // bitweise und +``` + +--- +### Kontrollstrukturen + +Kontrollstrukturen geben dem Programm die Möglichkeit anhand von Daten (State) unterschiedliche Entscheidungen zu treffen +``` java +Scanner scanner = new Scanner(System.in); +int alter = scanner.nextInt(); +if(alter >= 10){ + // Programm normal fortsetzen +} else { + // Normalen programmfluss unterbrachen +} +``` +--- +### Kontrollstrukturen + +Es gibt 2 fundamentale Kontrollstrukturen: Abzweigungnen und Schleifen +```java +// Beispiel einer Schleife +boolean gesunder_maschinenzustand = true; +do{ + // Programmfluss + gesunder_maschinenzustand = pruefeZustand(); +} while(gesunder_maschinenzustand); +``` + +--- + +### Aufgabe 4 + +1. Erstelle ein Programm, welches die Zahlen 1 - 10 ausgibt. +2. Erstelle ein Programm welches die Zahlen 1 - 100 ausgibt. +3. Erstelle ein Programm welches alle geraden Zahlen von 1 bis 100 ausgibt. +4. Erstelle ein Programm, welches alle Zahlen von 1 - 1000 ausgibt, die ein vielfaches von 13 sind. +5. Erstelle ein Programm, welches alle Primzahlen von 1 - 100 ausgibt. +--- + +### Schleifen +In Java gibt es 3 Schleifen: for, while, do-while: + +```java + for(int i = 0; i < 10; i++){ + System.out.println(i); + } + int j = 0; + while(j < 10){ + System.out.println(j); + j++; + } + int k = 0; + do{ + System.out.println(k); + k++; + }while(k < 10); + +``` \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29