Programmieren 1 Flashcards

(43 cards)

1
Q

Determinierter Algorithmus

A

Gleiche Eingabedaten => gleiche Ausgabedaten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Deterministische Algorithmen

A

Gleiche Eingabedaten => gleiche berechnung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Paradigma - Wie wird ein Algorithmus formuliert?

A

Imperativ, objektorientiert, funtional, logisch. hybrid, prozedural, deklarativ.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Komplexität - Mit welchem Aufwand löst der Algorithmus das Problem?

A

Z.B. Benötigte Rechenzeit oder verwendeter Speicherplatz

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Korrektheit

A

Verifikation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Abstrakte Datentypen

A

Definiert durch algebraische Methoden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Berechenbarkeit/Entscheidbarkeit

A

Gibt es für das Problem einen algorithmus?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Entwurf von Algorithmen

A

Rekursion, Backtracking, Divide-and-Conquer, Greedy-Algorithms

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Standardslgorithmen

A

Wird häufig verwenden
Algorithmen zum Suchen und Sortieren, Algorithmen für konkrete Datentypen (Graphen, Listen, Keller (Stacks), Schlangen (Queues))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Varianten des Algorithmenbegriffs

A

Nichtdetwrministische, parallele, randomisierte Algorithmen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Imperativen Algorithmus

A

In einem imperativen Algorithmus gibt es Variable, die verschiedene Werte annehmen können. die Menge aller Variablen und ihrer Werte sowie der Programmzähler beschreiben den Zustand zu einem bestimmten Zeitpunkt. Ein Algorithmus bewirkt eine Zustandstransformation.
Sprache: Algol, Algol68, Pascal, C,..

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Funktionaler Algorithmus

A

Ein funktionaler Algorithmus formuliert die Berechnung durch Funktionen. Die Funktionen können rekursiv sein; auch gibt es Funktionen höherer Ordnung.
Sprache: Lisp, Scheme, ML, Haskell

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Objektorientierten Algorithmus

A

In einem objektorientierten Algorithmus werden Datenstrukturen (Attribute) und Funktionen/Methoden zu einer Klasse zusammengefasst. Von jeder Klasse können Objekte gemäß der Datenstruktur erstellt und über die Methoden manipuliert werden.
Sprache: Smalltalk, Eiffel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Logischer (deduktiver) Algorithmus

A

Ein logischer (deduktiver) Algorithmus führt Berechnungen durch, indem er aus Fakten und Regeln durch Ableitungen in einem logischem Kalkül Ziele beweist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hybriden Paradigma

A

Die Mischung von Paradigmen

Sprache: java, C++, C# (Imperativ, Objektorientiert), Scala (imperativ, objektorientiert, funktional)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Prozedurale Programmiersprachen:

A

Es wird exakt angegeben. Wie die Lösung eines Problems ermittelt werden kann. z.B. imperative Programmiersprachen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Deklarative Programmiersprachen

A

Zur deklarativen Programmierung fragt man, was berechnet werden soll. Der Lösung wird nicht programmiert, sondern das gewünschte Ergebnis angegeben. Deklarative Paradigmen beruhen auf mathematischen, rechnerunabhängigen Theorien. z.B. Prädikative und (partiell) funktionale Programmiersprachen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Elementare Datenstrukturen

A

Wertebereiche, Operationen, boolean, char, cardinal, integer, real, enumeration

19
Q

Konstruktoren

A

Array(Feld), record(Satz), set(Menge), pointer(Zeiger). Zeiger gestatten rekursive Datenstrukturen (Listen, Bäume, Graphen)

20
Q

General Purpose Language (GPL)

A

Programmiersprachen

21
Q

Domain Specific Language (DSL)

A

Sprachen für spezielle Anwendungen

22
Q

Sprachen der Informatik:

A

Algorithmen: Programmiersprachen (Java, C, LISP)
Dokumente: Markup-Sprachen (HTML, XML)
Modelle, Systeme: Modellierungssprachen (BPMN, UML)
Spezifikationen: Spezifikationssprachen (OCL, VDM-SL, Z)
Datenbanken: Anfragesprachen (SQL)

23
Q

Lexik

A

Die Lexik einer Programmiersprache bestimmt die textuellen Grundbausteine der Programme.
-Schlüsselwörter
-Zeichen
-Bezeichner
Angegeben durch Aufzählung oder reguläre Ausdrücke.

24
Q

Syntax

A

Die Syntax einer Programmiersprache beschreibt, wie aus den Grundbausteinen vollständige Programme gebildet werden können.

25
Semantik
Die Bedeutung der syntaktisch korrekten Programme ist durch die Semantik der Sprache gegeben. Axiomatische Semantik, algebraische Semantik, operationelle Semantik (Zustandsfolgen), denotationale Semantik (Funkrionen)
26
Maschinensprache
Bits und Bytes, für den menschlichen Leser kaum verständlich (Java-Bytecode)
27
Maschinenorientierte Sprachen
Stellen die Befehle in einem Mnemo-Code dar (Java-Assembler Jasmin)
28
Problemorientierte Sprachen
Imperative, funktionale, objektorientierte, deduktive Sprachen, Spezialsprachen
29
Compiler
Übersetzen Quellprogramme aus problemorientierten Sprachen in äquivalente Zielprogramme in Maschinensprachen cc -o prog prog.c => prog input output Compiler: C Compiler und Interpreter: Hashkell
30
Interpreter
Lesen das Programm ein und führen es aus. Die Eingabe kann während der Ausführung oder durch eine Datei erfolgen. scm prog.scm input output Interpreter: Scheme Compiler und Interpreter: Hashkell
31
Mischverfahren
Übersetzen das Programm zunäachst mit einem Compiler in eine Zwischensprache. Das übersetzte Programm wird anschließend interpretiert. Eingabe über Tastatur oder Dateien. Ausgabe pber Bildschirm oder Dateien. javac prog.java => java prog Mischverfahren: Java
32
Just-In-Time-Compiler (JIT)
Ein JIT übersetzt den Bytecode einzelner Methoden während der Ausführung in Maschinencode der jeweiligen Platform. Beim nächsten Aufruf erfolgt die Ausführung deutlich schneller. Vorteilhaft ist, dass der Bytecode unverändert und das übersetzte Programm portabel bleibt.
33
Skriptsprachen
übergeordnete Sprachen, um vorhandene Programme oder Prozeduren kontrolliert ablaufen zu lassen. Habe ihren Ursprung in den Kommandosprachen (Job Control Language JCL) von Betriebsystemen. Shell-Skripte von Unix, Perl, PHP, Python, JavaScript (werden in der Regel interpretiert, nicht kompiliert)
34
Test
Probeweiser Ablauf des Programms Eingabedaten müssen sorgfältig ausgewählt werden Zeigt Anwesenheit von Fehlern, niemals aber deren Abwesenheit
35
Validierung
Test eines Softwaresystems unter realistischen Bedingungen | Validierung auch nach Korrektheitsbeweis nötig (Laufzeitverhalten), Systemauslastung)
36
Halteproblem
Zeigen Computerprogramme keine Reaktion mehr, steckt oft ein Algorithmus dahinter, der für eine spezielle Eingabe nicht Terminiert. Der Halteproblem ist unentscheidbar, d.h. Es gibt für diese problem kein Algorithmus, der es Löst.
37
Variable
``` Dienen dazu Daten für Berechnungen im Hauptspeicher zu halten Besitzt: Bezeichner Datentyp Wertebereich Operatoren und Methoden Darstellung für literale Lebensdauer Sichtbarkeit ```
38
Klasse
Die Zusammenfassung von Objekten gleicher Struktur und gleichen Verhaltens. Die beschreibt, wie Objekte aufgebaut und wie sie bearbeitet werden können
39
Objekte
Wird durch Attribute definiert
40
Verhalten
Wird durch Methoden definiert
41
Konstruktoren
Methoden zum Erzeugen von Objekten einer Klasse. Besitzen der Namen der Klasse
42
ASCII
American Standard Code For Information Interchange, Zeichencodierung, 127 Zuordnungen zwischen Bitfolgen und Zeichnen
43
Funktionale Algorithmus
Ein Algorithmus heißt funktional, wenn die Berechnungsvorschrift mittels einer Sammlung von Funktionen definiert wird.