Einführung in die Programmierung - Cheatsheet.pdf

Einführung in die Programmierung - Cheatsheet
Grundlagen der Syntax und Semantik von Programmiersprachen Definition: Grundlagen der Syntax und Semantik beziehen sich auf die Struktur und Bedeutung von Programmiersprachen. Details: Syntax: Formale Regeln zur Strukturierung von Programmcode, z.B. Grammatikregeln. Semantik: Bedeutung und Verhalten der syntaktisch korrekten Programme. Kontextfreie Grammatiken: Werden verwendet, um Syntax zu defin...

© StudySmarter 2024, all rights reserved.

Grundlagen der Syntax und Semantik von Programmiersprachen

Definition:

Grundlagen der Syntax und Semantik beziehen sich auf die Struktur und Bedeutung von Programmiersprachen.

Details:

  • Syntax: Formale Regeln zur Strukturierung von Programmcode, z.B. Grammatikregeln.
  • Semantik: Bedeutung und Verhalten der syntaktisch korrekten Programme.
  • Kontextfreie Grammatiken: Werden verwendet, um Syntax zu definieren.
  • \text{Syntaxbaum}: Baumstruktur, die die syntaktische Struktur eines Satzes darstellt.
  • Typüberprüfung: Methode zur Sicherstellung der semantischen Korrektheit.
  • \text{Operational Semantics}: Beschreibt, wie ein Programm auf einer abstrakten Maschine ausgeführt wird.
  • \text{Denotational Semantics}: Zuordnung von Programmen zu mathematischen Objekten, die deren Bedeutung repräsentieren.
  • \text{Axiomatic Semantics}: Nutzung logischer Formeln, um das Verhalten von Programmen zu spezifizieren.

Verwendung grundlegender Datentypen und -strukturen

Definition:

Nutzung und Implementierung von grundlegenden Datentypen (wie int, float, char) und Datenstrukturen (wie Arrays, Listen, Bäume) in der Programmierung.

Details:

  • Datentypen:
    • int: Ganzzahlige Werte
    • float: Gleitkommazahlen
    • char: Einzelne Zeichen
  • Datenstrukturen:
    • Array: Homogene, statische Datenstruktur
    • Liste: Dynamische Datenstruktur, kann unterschiedlichste Typen aufnehmen
    • Baum: Hierarchische Datenstruktur
  • Beispiele in C++:
    • int x = 5;
    • float y = 5.5;
    • char z = 'A';
    • int array[5] = {1, 2, 3, 4, 5};

Schleifen, Bedingungen und Kontrollstrukturen implementieren

Definition:

Schleifen, Bedingungen und Kontrollstrukturen steuern den Programmfluss.

Details:

  • Schleifen: Wiederhole eine Sequenz von Anweisungen, solange eine Bedingung erfüllt ist (z.B. for-, while-Schleifen).
  • Bedingungen: Ausführung von Code basierend auf booleschen Ausdrücken (z.B. if, else, elif).
  • Kontrollstrukturen: Strukturelemente, die den Ablauf eines Programmes bestimmen (z.B. break, continue, return).
  • While-Schleife: \texttt{while (Bedingung):\ Anweisungen}
  • For-Schleife: \texttt{for Variable in Sequenz: \ Anweisungen}
  • If-Bedingung: \texttt{if (Bedingung): \ Anweisungen}
  • Break und Continue: \texttt{break} beendet eine Schleife; \texttt{continue} überspringt den restlichen Schleifenblock und startet die nächste Schleifeniteration.

Prozedurale und objektorientierte Programmierung

Definition:

Prozedurale Programmierung strukturiert Programme in Prozeduren oder Funktionen; objektorientierte Programmierung verwendet Objekte, die Daten und Funktionen kapseln.

Details:

  • Prozedural: Fokus auf Funktionen und Algorithmen
  • Verwendung von Kontrollstrukturen wie Schleifen und Bedingungsanweisungen
  • Typische Sprachen: C, Pascal
  • Objektorientiert: Fokus auf Objekte und deren Interaktion
  • Grundkonzepte: Klassen, Objekte, Vererbung, Polymorphie
  • Typische Sprachen: Java, C++

Rekursives Programmieren und dessen Anwendungen

Definition:

Rekursives Programmieren: Methode, bei der eine Funktion sich selbst aufruft, um ein Problem in kleinere Teilprobleme zu zerlegen.

Details:

  • Basisfall: Bedingung, bei der die Rekursion endet.
  • Rekursiver Fall: Definition der Funktion in Bezug auf sich selbst.
  • Effektiv für Probleme mit natürlicher Teilung in ähnliche Teilprobleme (z.B. Fibonacci, Fakultät).
  • Kann zu hoher Speichernutzung führen; auf Stack Overflow achten.
  • Anwendungen: Suchen und Sortieren (z.B. Quicksort), Traversieren von Datenstrukturen (z.B. Bäume, Graphen).

Komplexitätsanalyse von Datenstrukturen

Definition:

Analyse der Laufzeit- und Speicherkomplexität von Operationen auf Datenstrukturen.

Details:

  • Wichtige Landau-Notationen: \(O(f(n))\), \(\Omega(f(n))\), \(\Theta(f(n))\)
  • Zeitkomplexität: misst die Anzahl der grundlegenden Operationen
  • Speicherkomplexität: misst den benötigten Speicher
  • Amortisierte Analyse: Durchschnittliche Komplexität über eine Sequenz von Operationen
  • Wichtige Datenstrukturen: Arrays, verkettete Listen, Stacks, Queues, Bäume
  • Arrays: Zugriff O(1), Suche O(n), Einfügen O(n), Löschen O(n)
  • Verkettete Listen: Zugriff O(n), Suche O(n), Einfügen O(1), Löschen O(1)
  • Stapel (Stacks) und Schlangen (Queues): Zugriff O(n), Suche O(n), Einfügen O(1), Löschen O(1)
  • Bäume (z.B. Binärbäume): Zugriff O(log n), Suche O(log n), Einfügen O(log n), Löschen O(log n)

Sortier- und Suchalgorithmen

Definition:

Verfahren, um Daten zu ordnen oder ein spezifisches Element in einer Datenstruktur zu finden.

Details:

  • Wichtige Sortieralgorithmen: Bubble Sort, Merge Sort, Quick Sort
  • Wichtige Suchalgorithmen: Lineare Suche, Binäre Suche
  • Komplexität oft in Big-O-Notation ausgedrückt
  • Bedeutung für Effizienz von Programmen

Versionskontrollsysteme wie Git

Definition:

Versionskontrollsystem zur Verwaltung und Nachverfolgung von Änderungen im Quellcode.

Details:

  • Git: Verteiltes Versionskontrollsystem
  • Repository (Repo): Speichert Projektdateien und den Verlauf ihrer Änderungen
  • Commit: Speichert Snapshot der Änderungen
  • Branch: Parallelisierung von Entwicklungssträngen
  • Merge: Zusammenführen von Änderungen aus verschiedenen Branches
  • Clone, Push, Pull: Operationen zur Verwaltung von Repos
  • Undo: Änderungen rückgängig machen
  • Merge-Konflikte: Manuelle Auflösung bei widersprüchlichen Änderungen
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