/


K. N.
Diese Lernkarten decken grundlegende Abstraktionskonzepte der Informatik auf Universitätsniveau ab. Sie konzentrieren sich auf Entwurfsvorschriften, Datenstrukturen wie Listen, Funktionen und Fallunterscheidungen, insbesondere in der Programmiersprache Clojure. Die Karteikarten erklären, wie Listen rekursiv definiert und in Clojure erstellt werden, sowie die Phasen der Entwurfsvorschriften, die für die Entwicklung kleiner Programme entscheidend sind. Sie eignen sich für Studierende, die ein tieferes Verständnis von funktionaler Programmierung und objektorientierten Konzepten erlangen möchten.
Cartes-fiches
15
Utilisateurs
8
Langue
Allemand
Catégorie
Informatique
Niveau
Université
Créé / Mis à jour
29.05.2016 / 04.10.2025

Cartes-fiches

Nennen Sie Beispiele für Programmierstile (-paradigmen) und erläutern Sie sie jeweils kurz.

prozedurale / imperative Sprachen
- Grundkonzepte: Variablen, Wertzuweisungen
- Programm = Folge von Anweisungen, die eine Zustandsänderung bewirken

funktionale Sprachen
- Grundkonzept: Funktion im Sinne der Mathematik
- Programm = Ausdruck, der einen Wert als Ergebnis liefert
- keine Variablen als benannte Speicherzellen

logische Programmierung
- Grundkonzept: formale, mathematische Logik
- besteht aus Fakten und Regeln

Vergleichen Sie prozedurorientiertes mit objektorientiertem Denken.

prozedurorientiert:
- Algorithmen, Prozeduren im Vordergrund, Daten sind "zweitrangig"
- für jede Figurart eigene Prozedur erforderlich
- Fallunterscheidungen nötig, wenn in Programm Figuren verschiedener Arten gleichzeitig vorkommen

objektorientiert:
- Daten im Mittelpunkt der Betrachtung
- Figurobjekt weiß selbst, wie eine Antwort zu ermitteln ist --> Fallunterscheidungen weitestgehend überflüssig
 

Welche Merkmale haben objektorientierte Programmiersprachen?

1.) Geheimnisprinzip
- Klienten sehen abstrakte Sicht des Objektes, innere Struktur bleibt verborgen
2.) Klassenprinzip
- Struktur und Verhalten gleichartiger Objekte durch Klassenzugehörigkeit definiert
3.) Vererbung
- Vererbung von Struktur und Verhalten an Unterklassen
4.) Polymorphie
- Objekte verschiedener Klassen können gleiche Nachricht verstehen
- Nachrichten erst zur Laufzeit an passende Methoden gebunden

Was sind Eigenschaften von Clojure?

- Lisp-Dialekt
- läuft auf der Java Virtual Machine
- ermöglicht verschiedene Programmierstile
- behandelt Funktionen als Werte erster Ordnung
- nur eine Auswertungsregel für die Anwendung von Funktionen

Was sind Entwurfsvorschriften?

- Handlungsanleitungen für die Entwicklung kleiner Programme
- Programmstrukturen folgen den Datenstrukturen
- Abstraktion von der Lösung von Einzelproblemen zur Lösung von Problemklassen

Aus welchen Phasen setzt sich die Entwurfsvorschrift 1 zusammen?

1.) Zweckbestimmung, Vertrag, Funktionskopf
- Beschreiben des Zwecks der Funktion
- Spezifizieren der Eingabedatenarten und des Ergebnisses
- Benennen der Funktion
- Aufschreiben ihres Kopfes

2.) Tests
- Positiv- und Negativ-Test

3.) Funktionsrumpf
4.) Testen

Welche Regel gilt für Hilfsfunktionen?

Definiere für jeden Zusammenhang zwischen Größen, die sich aus der Problembeschreibung ergeben, eine Funktion.

Welche Regel gilt für Variablendefinitionen?

Ersetze jede Konstante, deren Bedeutung sich nicht aus dem Kontext ergibt, durch einen sprechenden Variablennamen.

Wann heißt eine Funktion bedingt?

Wenn für die Ermittlung ihres Resultats eine Fallunterscheidung notwendig ist.

Wie werden in Clojure Fallunterscheidungen eingebaut?

(cond
Frage Antwort
Frage Antwort
...
:else Antwort)

Wobei jede Frage ein boolscher Ausdruck und Antwort ein beliebiger Clojure-Ausdruck ist.

Welche Phasen enthält Entwurfsvorschrift 2?

1.) Zweckbestimmung, Funktionskopf, Vertrag
2.) Datenanalyse
- Ermittlung der durch die Funktion zu unterscheidenden Fälle

3.) Tests
- Angabe eines Tests für jeden der in der Datenanalyse ermittelten Fälle
- für Intervalle sind auch die Grenzfälle zu berücksichtigen

4.) Funktionsschablone
- Aufschreiben des bedingten Ausdrucks
- Skelett des cond-Ausdruckes mit je einer Frage-Antwort-Klausel für jeden Fall
- Fragen schon entwickeln, Anworten noch nicht ausformulieren (nur Platzhalter)

5.) Funktionsrumpf
- Entwickeln der Antworten für alle Bedingungen
6.) Testen

Was lässt sich zu der Art von Atomen sagen?

Sie sind entweder numerisch, boolesch oder symbolisch.

Wie werden in Clojure Listen erzeugt?

'() = leere Liste
Hinzufügen eines neuen ersten Elementes mittels (cons elementNeu Liste )

Wie kann eine Liste von Elementen als Datenstruktur rekursiv definiert werden?

Eine Liste von Elementen ist entweder
1.) die leere Liste '() oder
2.) (cons e lve), wobei e ein Element und lve eine Liste von Elementen ist

Welche Phasen beinhaltet Entwurfsvorschrift 3?

1.) Zweckbestimmung, Funktionskopf, Vertrag
2.) Datenanalyse / Datendefinition
- Definition von problemangepassten Datenstrukturen
- für jede Objektmenge eine (rekursive) Datenstruktur

3.) Test
- Test für den Fall, dass rekursive Datenstruktur keine Elemente enthält
- Test für den Fall, dass rekursive Datenstruktur genau ein Element enthält
- Test für den Fall, dass rekursive Datenstruktur mehr als ein Element enthält

4.) Funktionsschablone
- Skelett eines cond-Ausdruckes mit je einer Frage-Antwort-Klausel für einen nicht-rekursiven und einen rekursiven Fall
- passende Selektionsausdrücke (first, rest) für rekursive Fälle, wobei auf rest die zu entwickelnde Funktion rekursiv anzuwenden ist

5.) Funktionsrumpf
6.) Testen

Étudier