Basics Flashcards

1
Q

Was besagt der euklidsche Algorithmus?

A

Der GGT zweier Zahlen ist auch GGT ihrer Differenz.

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

Beschreibe den euklidschen Algorithmus iterativ.

A
while(a != b){
  if(a > b){
    a = a - b;
  }
  else{
    b = b - a;
  }
  ggT = a;
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Definition Algorithmus

A

Eine Anleitung zur Lösung einer Aufgabenstellung, die so präzise formuliert ist, dass sie “mechanisch” ausgeführt werden kann.

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

Definition algorithmisches Problem

A

Problem, das mit einem Algorithmus gelöst werden kann.

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

Eigenschaften von Algorithmen

A
  • Determiniertheit: identische Eingaben führen stets zu identischen Ergebnissen
  • Determinismus: Ablauf stets klar definiert (keine Wahlfreiheit)
  • Terminierung: für jede Eingabe liegt ein Ergebnis nach endlich vielen Schritten vor.
  • Effizienz: Aufwand relativ zu vorgegebenen Massstab
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wie hängt ein Programm mit einem Algorithmus zusammen?

A

Jedes Programm repräsentiert einen bestimmten Algorithmus. Kein Programm ohne Algorithmus.

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

Programm als Zustandstransformator. Hoare Triple

A

{Eingangszustand} Anweisung {Ausgangszustand}

Beispiel euklidscher Algorithmus: {a = 15, b = 12} c = ggt(a,b) {a = 15, b = 12, c = ggt(a,b)}

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

Was ist die Aufgabe eines Datentyps in einer Methode?

A

Definition der gültigen Wertemenge, z.B. für die Precondition (Vorbedingung / Eingangswert)

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

Was ist die Nachbedingung / Postcondition in einer Methode?

A

Die Wertebreiche der Rückgabeparameter.
Fehlerfälle werden formal durch checked Exceptions oder durch einen Spezialwert signalisiert. Informell durch einen Kommentar.

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

Was ist die Vorbedingung / Precondition in einer Methode?

A

Die Anzahl und Wertebereiche der Parameter, die durch den Datentyp formal bestimmt sind und vom Compiler überprüfbar sind. Weitere informelle Einschränkungen des Wertebereichs im Kommentar.

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

Wann wird ein Programm (= Folge von Anweisungen) als korrekt bezeichnet?

A

Wenn unter der Annahme, dass die Vorbedingung erfüllt ist, unter Anwendung des Programms die Nachbedingung erfüllt wird. “Die Vorbedingung impliziert die Nachbedingung”

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

Nenne einige primitive / einfache Datentypen von Java

A

byte, short, int, long
float, double
char
boolean

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

Nenne einige Referenzdatentypen von Java

A

array
string
objects

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

Welche Datenstrukturen stellt der JDK zur Verfügung?

A

List
Hashtable
Collections

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

Welche Datenstrukturen muss man z.T. selber implementieren bzw. gut verstehen?

A

Stacks
Queues
Trees

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

Was sind ADT?

A

Abstrakte Datentypen

17
Q

Was ist das Konzept von Information Hiding?

A

Nur gerade soviel wie für die Verwendung einer Klasse nötig ist, wird auch für andere sichtbar gemacht.

18
Q

Ergänze die Lücken:

Jede Klasse besteht aus einer von aussen sichtbaren ……., und aus einer ausserhalb des Moduls unsichtbaren …………….

A
  • Schnittstelle

- Implementation

19
Q

Wie werden Schnittstelle und Implementation von ADTs in Java umgesetzt?

A
  • das interface beschreibt die Schnittstelle (enthält keine Implementation)
  • die class implementiert die Schnittstelle
Beispiel: 
interface Stack {
     void push(Object obj);
     Object pop();
}

class MyStack implements Stack {

    void push(Object obj) {
           // Implementation
}
Stack stack = new MyStack();
}
  • > Die Variable stack ist vom Typ des Interfaces
  • > in Java kann eine Klasse mehrere Interfaces implementieren aber nur von einer Klasse erben
20
Q

Nenne eine “last in - first out” Datenstruktur

A

Stack

21
Q

Welche Operationen können auf einem Stack ausgeführt werden?

A
void push (Object x)
Object pop ()
Object peek() 
boolean isEmpty()
boolean isFull()
void removeAll()
size()
22
Q

Was macht die Methode peek() auf einem Stack?

A

Gibt das oberste Element als Rückgabewert zurück ohne es zu entfernen.

23
Q

What does LIFO stand for?

A

Last In First Out

24
Q

What causes a StackOverflowError?

A

Thrown when an application recurses too deeply.

25
Q

What’s postfix notation?

A

In a postfix expression, an operator is written after its operands. the infix expression 2+3 is 23+ in postfix notation. For postfix expressions, operations are performed in the order in which they are written (left to right).

26
Q

Nenne einige Anwendungen von Stacks

A
  • Auswertung eines Ausdrucks in Postfix-Notation
  • Überprüfung / Test auf korrekte Klammersetzung
  • XML Wohlgeformtheit (each opening tag needs an closing tag)
27
Q

What’s the difference between a LinkedList and a ArrayList in Java? What would you use a LinkedList for?

A

An ArrayList internally stores the data in Arrays a LinkedList uses a doubly linked list. To simply store and access data an ArrayList is more efficient. To manipulate data the LinkedList is more efficient.

28
Q

What type of datastructure is a queue? LIFO or FIFO?

A

FIFO - die Objekte werden in derselben Reihenfolge entfernt wie sie eingefügt werden.

29
Q

Was sind die 3 minimalen Operationen einer Queue?

A

void enqueue (Obect x) throws Overflow;
-> legt ein neues Objekt in die Queue, falls noch nicht voll.
Object dequeue()
-> entfernt das zuerst eingefügte Objekt von der Queue. Gibt “null” zurück wenn das Objekt leer ist
boolean isEmpty()

30
Q

Was sind zusätzliche Operationen einer Queue?

A
Object peek()
void removeAll()
boolean isFull()
31
Q

Nenne einige praktische Anwendungen einer Queue

A

Warteschlangen werden in der Informatik oft eingesetzt. Beispiele: Drucker, der von mehreren Anwendern geteilt wird. CPU tasks scheduling. Call center phone system.

32
Q

What are the following variables: outIdx, inId?

A

outIdx: zeigt auf das älteste Element in der Queue in einer Array Implementation
inIdx: zeigt auf die nächste freie Stelle

33
Q

How is a ring buffer usually implemented?

A

Queue using an Array.

34
Q

Explain in 1-2 sentences how a priority queue works.

A

a priority queue basically functions like a queue (FIFO data structure) where the objects in the queue can be assigned a priority. Objects with higher priority move forward in the queue, objects of the same priority are removed in the order they came into the queue.