Programmierung - Cheatsheet.pdf

Programmierung - Cheatsheet
Programmierung - Cheatsheet Variablen und Datentypen Definition: Variablen speichern Daten; Datentypen definieren, welche Art von Daten in einer Variable gespeichert werden können. Details: Variablen: Symbolische Namen für Speicherorte, die Werte enthalten. Datentypen: Beschreiben die Art der Daten, z.B. int , float , char . Primitive Datentypen: Grundlegende Typen wie int , float , double , char ...

© StudySmarter 2024, all rights reserved.

Programmierung - Cheatsheet

Variablen und Datentypen

Definition:

Variablen speichern Daten; Datentypen definieren, welche Art von Daten in einer Variable gespeichert werden können.

Details:

  • Variablen: Symbolische Namen für Speicherorte, die Werte enthalten.
  • Datentypen: Beschreiben die Art der Daten, z.B. int, float, char.
  • Primitive Datentypen: Grundlegende Typen wie int, float, double, char, bool.
  • Typischerweise verwendete Operationen:
    • Addition: \texttt{+}
    • Subtraktion: \texttt{-}
    • Multiplikation: \texttt{*}
    • Division: \texttt{/}
  • Deklaration: Datentyp Variablenname; z.B. \texttt{int x;}
  • Initialisierung: Variablenname = Wert; z.B. \texttt{x = 5;}

Kontrollstrukturen wie Schleifen und Bedingungen

Definition:

Kontrollstrukturen steuern den Ablauf eines Programms.

Details:

  • Schleifen: Wiederholen Anweisungen, solange eine Bedingung erfüllt ist. Haupttypen:
    • for-Schleife: Wird bei bekannter Iterationsanzahl verwendet. Syntax: for (Initialisierung; Bedingung; Schritt) { Anweisungen }
    • while-Schleife: Fortsetzung, solange Bedingung wahr ist. Syntax: while (Bedingung) { Anweisungen }
    • do-while-Schleife: Führt Anweisung mindestens einmal aus. Syntax: do { Anweisungen } while (Bedingung);
  • Bedingungen: Entscheiden über Programmfluss je nach erfüllter oder nicht erfüllter Bedingung.
    • if-Anweisung: Basisform der Bedingung. Syntax: if (Bedingung) { Anweisungen }
    • if-else-Anweisung: Alternative Anweisungen bei Nicht-Erfüllung. Syntax: if (Bedingung) { Anweisungen } else { Anweisungen }
    • switch-Anweisung: Erleichtert mehrere Bedingungsprüfungen. Syntax: switch (Ausdruck) { case Wert: Anweisungen; break; ... default: Anweisungen; }
    • Bedingte (ternäre) Operatoren: Kurzform. Syntax: bedingung ? Ausdruck1 : Ausdruck2

Rekursive Algorithmen und Dynamic Programming

Definition:

Rekursive Algorithmen nutzen die Technik, ein Problem durch kleinere Instanzen desselben Problems zu lösen. Dynamic Programming (DP) optimiert rekursive Algorithmen durch Speicherung und Wiederverwendung bereits berechneter Teilergebnisse.

Details:

  • Rekursion: Problem in kleinere Teillösungen zerlegen, bis eine einfache Lösung erreichbar ist.
  • DP: Memorization (Top-down) und Tabulation (Bottom-up) zur Optimierung von rekursiven Ansätzen.
  • Beispiele für DP: Fibonacci, Knapsack-Problem, kürzeste Pfade.
  • Formel: \( F(n) = F(n-1) + F(n-2) \), für das Fibonacci-Problem.
  • Zeitkomplexität eindeutig verringert durch Wiederverwendung von Zwischenergebnissen.

Klassen und Objekte

Definition:

Definiert Datentypen und Funktionen in einem strukturierten Rahmen.

Details:

  • Klasse: Bauplan für Objekte, definiert Attribute und Methoden.
  • Objekte: Instanzen einer Klasse mit spezifischen Werten.
  • Attribute: Daten/Felder einer Klasse, z.B. Variablen.
  • Methoden: Funktionen einer Klasse, definieren Verhalten.
  • Instanziierung: Erzeugung eines Objekts aus einer Klasse, z.B. obj = Klasse().
  • Selbstreferenz: Enthält self als erstes Argument in Methoden.

Vererbung und Polymorphismus

Definition:

Vererbung und Polymorphismus sind fundamentale Konzepte in der objektorientierten Programmierung, die die Wiederverwendbarkeit und Flexibilität von Code erhöhen.

Details:

  • Vererbung: Erlaubt es einer Klasse (Subklasse), die Eigenschaften und Methoden einer anderen Klasse (Superklasse) zu übernehmen.
  • Polymorphismus: Ermöglicht es Objekten unterschiedlicher Klassen mit einer gemeinsamen Oberklasse, durch denselben Schnittstellenaufbau angesprochen zu werden.
  • Erlaubt Methodenüberschreibung: Subklassen können Methoden der Superklasse überschreiben.
  • Fördert die Code-Wiederverwendbarkeit und Anwendbarkeit durch erweiterbare Klassen.
  • Verringert die Kopplung von Code.

Algorithmische Komplexität und Big-O-Notation

Definition:

Definiert die Effizienz eines Algorithmus in Bezug auf Laufzeit und Speicherplatz.

Details:

  • Big-O-Notation beschreibt das asymptotische Verhalten der Funktion, wie sie sich bei wachsender Eingabe verhält.
  • Für Funktion f(n) und g(n) sagt f(n) = O(g(n)), dass es Konstanten c und n0 gibt, sodass für alle n > n0 gilt: f(n) ≤ c*g(n).
  • O(1): konstant
  • O(log n): logarithmisch
  • O(n): linear
  • O(n log n): linear-logarithmisch
  • O(n^2): quadratisch
  • schlechtere Notationen: O(2^n), O(n!), etc.

Git und Versionskontrollsysteme

Definition:

Verwaltung von Quellcode-Änderungen, Kollaborationstool zur Versionskontrolle

Details:

  • Git: Verteiltes Versionskontrollsystem
  • Repository: Speicherort für Code
  • Commit: Speichern eines Snapshots des Codes
  • Branch: Parallele Entwicklungsstränge
  • Merge: Zusammenführen von Branches
  • Remote: Externes Repository
  • Pull: Änderungen vom Remote ins lokale Repository
  • Push: Änderungen vom lokalen ins Remote-Repository
  • Grundlegende Befehle: git init, git clone, git add, git commit, git pull, git push, git checkout

Agile Methoden und Scrum

Definition:

Agile Methoden und Scrum sind iterative und inkrementelle Vorgehensmodelle im Projektmanagement, die Flexibilität, Kundenzufriedenheit und schnelle Reaktionszeiten fokussieren.

Details:

  • Iterative und inkrementelle Entwicklung.
  • Fokus auf Anpassungsfähigkeit und schnelle Reaktionszeiten.
  • Sprint-Zyklen von typischerweise 2-4 Wochen.
  • Rollen: Product Owner, Scrum Master, Entwicklungsteam.
  • Artefakte: Product Backlog, Sprint Backlog, Burndown Chart.
  • Meetings: Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective.
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden