• Keine Ergebnisse gefunden

Klausur Informatik BApril 1998Teil I: Informatik 3

N/A
N/A
Protected

Academic year: 2021

Aktie "Klausur Informatik BApril 1998Teil I: Informatik 3"

Copied!
8
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Punkte

Klausur Informatik B April 1998

Teil I: Informatik 3

(2)

Aufgabe 1: Fragekatalog (gesamt 5 Punkte) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.

(a) (1 Punkt) Was ist der Unterschied zwischen „Breiten-“ und „Tiefensuche“?

(b) (1 Punkt) Was ist ein „streng zusammenhängender Graph“?

(c) (1 Punkt) Was ist ein „aufspannender Baum“ eines Graphen?

(d) (1 Punkt) Nennen Sie einen Vorteil von „Adjazenzlisten“ gegenüber „Adjazenzmatrizen“.

(e) (1 Punkt) Nennen Sie einen Vorteil von „Hashtabellen“ gegenüber „Suchbäumen“.

(3)

Punkte

Aufgabe 2: Suchverfahren (gesamt 13 Punkte)

Es sollen die Lösungen für ein sogenanntes „magisches Quadrat“ gefunden werden. Es besteht aus 9 Feldern (3 Zeilen und 3 Spalten). Die Felder sollen mit den Ziffern von 1 bis 9 belegt werden, so daß:

• jede Ziffer nur einmal vorkommt,

• die Summen aller Zeilen, aller Spalten und der beiden Diagonalen den selben Wert ergeben,

• alle Felder belegt sind.

In der Aufgabe soll ein Programm geschrieben werden, daß alle Lösungen durch Backtracking findet.

Eine Teillösung ist ein teilweise von oben links belegtes Quadrat, wie z.B.:

4 9 2

3 5

Eine Teillösung ist feasible, wenn:

• jede Ziffer in den belegten Feldern höchstens einmal vorkommt,

• die Summen aller vollständig belegten Zeilen, Spalten und Diagonalen den selben Wert ergeben.

(a) (3 Punkte) Welche Teillösung ist die Wurzel des Suchbaums? Welches sind die Nachfolger einer Teillösung im Suchbaum? Wann ist eine Teillösung eine Gesamtlösung?

(b) (2 Punkte) Zeichnen Sie einen Ausschnitt des Suchbaums mit der oben abgebildeten Teillösung als Wurzel und mit mindestens 10 weiteren Teillösungen.

(4)

(b) (8 Punkte) Der Suchalgorithmus soll in Modula-2 implementiert werden. Folgende Typen, Variablen und Prozeduren sind vorgegeben:

TYPE Index = [0..2];

Ziffer = [0..9];

VAR MQ = ARRAY Index, Index OF Ziffer;

(* Variable zur Repräsentation einer Teillösung,

der erste Index bezeichnet Zeilen, der zweite Spalten, unbelegte Felder enthalten 0,

belegte Felder enthalten eine Ziffer von 1 bis 9. *) PROCEDURE MQFeasible : BOOLEAN;

(* Testet, ob die Teillösung in MQ feasible ist. *) PROCEDURE MQAusgabe;

(* Gibt die Teillösung in MQ aus. *) Im Hauptprogramm wird MQ inhitialisiert:

VAR i, j : Index;

...

FOR i:=0 TO 2 DO

FOR j:=0 TO 2 DO MQ[i,j]:=0 END;

END;

Vervollständigen Sie die Prozedur MQBacktrack, die alle Lösungen findet und ausgibt. Geben Sie an, wie der Aufruf der Prozedur aus dem Hauptprogramm erfolgt.

PROCEDURE MQBacktrack(Zeile, Spalte : Index);

(5)

Punkte

Aufgabe 3: Graphalgorithmen (gesamt 10 Punkte)

Gegeben ist der folgende Graph mit bewerteten Kanten:

20

20

1 5

3 7

5 10

A

B D

C E

(a) (3 Punkte) Erstellen Sie die zugehörige Adjazenzmatrix.

(b) (6 Punkte) Ermitteln sie mit dem Algorithmus von Dijkstra die kürzesten Wege vom Knoten A zu allen anderen Knoten. Tragen Sie die Distanzen und Vorgänger in jedem Schritt in die Tabelle ein.

Distanz zu Knoten A Vorgänger

Schritt A B C D E A B C D E

0 1 2 3 4

(c) (1 Punkt) Zeichnen Sie den aufspannenden Baum mit den kürzesten Wegen.

(6)

Aufgabe 4: Bäume (gesamt 12 Punkte) Es wird folgende Art von Bäumen betrachtet:

• jeder Knoten besitzt ein Datenelement bestehend aus einem Zeichen,

• jeder Knoten kann mehrere Unterbäume besitzen, die Anzahl ist nicht begrenzt.

Beispiel:

I

3 K

T

I A M

N

R O F

(a) (2 Punkte) Welche Zeichenkette entsteht, wenn der Baum des Beispiels in Postorder traversiert wird und dabei die Datenelemente ausgegeben werden?

Hinweis: Postorder bedeutet hier, daß jeweils zuerst die Unterbäume in der Reihenfolge von links nach rechts traversiert werden und dann die Wurzel traversiert wird.

(7)

Punkte

(b) (3 Punkte) Geben Sie für die beschriebene Art von Bäumen eine Datenstruktur in Modula-2 an.

Hinweis: Die unbegrenzte Zahl von Unterbäumen kann nur durch eine dynamische Datenstruktur dargestellt werden, z.B. durch eine lineare Liste.

(c) (7 Punkte) Schreiben Sie eine Prozedur in Modula-2 zur Traversierung und Ausgabe der Datenelemente in Postorder. Benutzen Sie dabei die unter (b) erstellte Datenstruktur.

(8)

Aufgabe 5: Hashing (gesamt 10 Punkte) Datensätze von Studierenden sollen in eine Hashtabelle der Größe N=11 eingetragen werden. Es gilt:

• es wird geschlossenes Hashing durchgeführt,

• als Schlüssel dient die Matrikelnummer k,

• die erste Hashfunktion h ist gegeben durch die Quersumme der Matrikelnummer modulo N:

h(k) = Quersumme(k) mod N,

• die zweite Hashfunktion g ist gegeben durch die Quersumme der Matrikelnummer modulo 4:

g(k) = Quersumme(k) mod 4,

• g liefert den Wert zum Inkrementieren nach Kollision.

Hinweis: Die im Skript, Kap. 3, S. 17, im 2. Absatz beschriebene Variation wird nicht benutzt.

(a) (3 Punkte) Es sollen fünf Datensätze in die Hashtabelle eingetragen werden, ermitteln Sie zunächst das Ergebnis der beiden Hashfunktionen:

Datensatz Matrikelnummer k h(k) g(k)

1. 118830

2. 114561

3. 115891

4. 114793

5. 116700

(b) (7 Punkte) Tragen Sie die Matrikelnummern in die Hashtabelle ein, beachten Sie dabei die in (a) vorgegebene Reihenfolge beim Eintragen:

Index in der Hashtabelle Matrikelnummer k 0

1 2 3 4 5 6 7

Referenzen

ÄHNLICHE DOKUMENTE

Es kann von einem Baum zu einem anderen benachbarten Baum springen (also zu einem Baum in einem angrenzenden Feld). Die Kosten f¨ur einen Sprung h¨angen vom Risiko ab, dass

1. F¨ur jedes Terminalzeichen, das zusammen mit anderen Zeichen auf der rechten Seite einer Produktion auftaucht, wird eine neue Variable eingef¨uhrt: N f¨ur ¬, O f¨ur ∨ und U

 Normalerweise: Zulassung zur Prüfung erfolgt nur, wenn zum Ende des Semesters zusätzlich die für die Übungen geforderten Studienleistungen erbracht worden sind.  Festlegung

 jede Information muß sich auf irgendeine Weise als Folge von Bytes darstellen lassen.  Art der gespeicherten Information sollte durch Dateinamen

Zachmann Informatik 1 - WS 05/06 Aufbau und Funktionsweise eines Computers 2.. Arbeitsweise

(b) Nennen Sie ein Beispiel für eine Rechnung, bei der dieser Wert ent- steht.. (a) Beschreiben Sie die Von-Neumann-Architektur

• PUSH speicher kopiert Wert von Adresse speicher auf den Stapel, POP speicher nimmt obersten Wert vom Stapel und transferiert ihn in den Hauptspeicher.. • ADD und MPY (

In einem einfachen Rechner wird eine Zahlendarstellung mit 8 Bit und 2er- Komplement für negative Zahlen verwendet?. Wie viele positive und wie viele negative Zahlen lassen sich