Klausur zur Vorlesung „Grundlagen der Datenverarbeitung“, Sommersemester 2002 Name: 1 Matrikelnummer: Prof. Dr.-Ing. R. Anderl Dipl.-Ing. A. Mann Dipl.-Ing. S. Leibrecht Dipl.-Ing. A. Pfouga Klausur zur Vorlesung Grundlagen der Datenverarbeitung Sommersemester 2002 Name Vorname Matrikelnummer Semester Fachbereich AUFGABE Erreichbare Punkte 1 2 3 4 5 6 7 8 SUMME 15 15 10 15 8 14 14 9 100 Erreichte Punkte Hinweise: Als Hilfsmittel sind Skripte, Bücher, eigene Mitschriften und nicht-programmierbare Taschenrechner zugelassen. Füllen Sie zunächst das Deckblatt und den Kopf jedes weiteren Blattes deutlich lesbar aus und halten Sie den Studentenausweis und einen Lichtbildausweis zur Kontrolle bereit. Prüfen Sie, ob Ihre Klausur alle 14 Aufgabenseiten enthält. Sie sollten die Lösungen an den freien Stellen in der Klausur eintragen. Reicht der vorhandene Platz nicht aus, können Sie lose Blätter verwenden, die Sie zuerst mit Namen, Vornamen und Matrikelnummer versehen. Fachgebiet Datenverarbeitung in der Konstruktion DiK Klausur zur Vorlesung „Grundlagen der Datenverarbeitung“, Sommersemester 2002 Name: 2 Matrikelnummer: Aufgabe 1 (15P) Eine Software zur Berechung von Kurvendiskussionen benötigt ein zugrundeliegendes Datenmodell. Dabei wird auf nachträgliche Erweiterbarkeit und eine TOP-DOWNVorgehensweise beim Entwurf wert gelegt. Eine erste Analyse des Themas erbrachte folgende Aussagen: - Ein Polynom ist eine spezielle mathematische Funktion. - Eine math. Funktion besitzt eine variable Anzahl von Nullstellen, Extrempunkte und Wendepunkte . - Alle zuvor genannten Eigenschaften einer Funktion sind diskrete Punkte - Bei gegebenen x-Wert erhält man einen Funktionswert einer math. Funktion zurück. - Von jeder math. Funktion kann man die Menge der Nullstellen berechnen. Mit welcher Methode dies zu bewerkstelligen ist, hängt von dem speziellen Typ von math. Funktion ab! - Ein Polynom besitzt Koeffizienten. - Ein quadratisches Polynom ist ein spezieller Typ eines Polynoms. - Um ein konkretes quadratisches Polynom zu erzeugen, muss man genau drei Koeffizienten angeben. - Die Nullstellen eines quadratischen Polynoms lassen sich mit der pq-Formel berechnen! Überführen Sie die Informationen in ein Klassendiagramm nach UML-Notation. Verwenden Sie dabei je nach Bedarf folgende Konstrukte: - Klassen, - Abstrakte Klassen, - Aggregationen, - Generalisierungen (Vererbung), - Abstrakte Methoden, - Methoden. Fachgebiet Datenverarbeitung in der Konstruktion DiK Klausur zur Vorlesung „Grundlagen der Datenverarbeitung“, Sommersemester 2002 Name: 3 Matrikelnummer: Lösung zu Aufgabe 1: Diskreter_Punkt Nullstelle 0..n Extrempunkt <abstr> Math_Funktion 0..n Wendepunkt +<abstr> f(x : float) : float #berechneNullstellen() Polynom 0..n 1..n Koeffizient Quadr_Polynom +Quadr_Polynom(p0, p1, p2 : float) #berechneNullstellen() pq-Formel Fachgebiet Datenverarbeitung in der Konstruktion DiK Klausur zur Vorlesung „Grundlagen der Datenverarbeitung“, Sommersemester 2002 Name: 4 Matrikelnummer: Aufgabe 2 (15P) Erstellen Sie ein Struktogramm einer Methode zur Berechnung der Nullstellen eines quadratischen Polynoms der Form f ( x) = x 2 + px + q . Verwenden Sie dazu die p-q-Formel 2 x1, 2 p p = − m −q. 2 2 Die Methode soll als Parameter die Koeffizienten entgegennehmen und als Rückgabewert ein eindimensionales Feld mit den Nullstellen zurückgeben. Berücksichtigen Sie auch die Fälle, bei denen keine Nullstelle existiert (d.h. wenn der Radikant der p-q-Formel negativ wird) und wenn sich eine doppelte Nullstelle ergibt (wenn der Radikant Null ist). Benutzen Sie zur Berechnung der Quadratwurzel w = r die Iterationsformel wn +1 = wn wn + r ; Startwert: w0 = r ; 2 wn Abbruch, wenn Genauigkeit erreicht, d.h. (wn wn − r ) ≤ 0.001 . HINWEIS: Sie müssen nicht die exakte Java-Syntax verwenden. Die Anweisungen können in Prosa beschrieben werden. Anweisungen wie Deklarationen, Initialisierungen und Funktionsrückgaben gehören zu einem Struktogramm. Fachgebiet Datenverarbeitung in der Konstruktion DiK Klausur zur Vorlesung „Grundlagen der Datenverarbeitung“, Sommersemester 2002 Name: 5 Matrikelnummer: Lösung zu Aufgabe 2: Deklariere Feld nullstellen[] als Gleitkommazahl Deklariere Hilfsvariablen w, r als Gleitkommazahlen Setze r = p*p/4-q (Rechne also den Radikant aus) r ist >0 =0 Initialisiere Feldlänge von nullstellen auf 2 Initialisiere Feldlänge von nullstellen auf 1 w=r (ww-r) > 0.001 w = (ww+r)/ (2*w) nullstellen[0]=-p/2-w nullstellen[0] = -p/2 <0 Initialisiere Feldlänge von nullstellen auf 0 bzw. Setze nullstellen auf null bzw. nil nullstellen[1]=-p/2+w Rückgabewert ist das Feld nullstellen Fachgebiet Datenverarbeitung in der Konstruktion DiK Klausur zur Vorlesung „Grundlagen der Datenverarbeitung“, Sommersemester 2002 Name: 6 Matrikelnummer: Aufgabe 3 (10P) Die folgende Abbildung zeigt die unvollständige Klassendefinition der Klasse Matrix sowie das Struktogramm der Methode getFoo(). Matrix -inhalt[][] : float -..... : .. +...() +getFoo() : float +....() Deklariere lokale Variablen namens m, n, i, j als ganze Zahlen Deklariere lokale Variable namens temp als Gleitkommazahl mit einfacher Genauigkeit Initialisiere m mit Zeilenanzahl des Feldes inhalt Initialisiere n mit Spaltenanzahl des Feldes inhalt Setze temp auf erstes Element des Feldes inhalt Über alle Zeilen Über alle Spalten Aktuelles Feldelement kleiner als temp WAHR Kopiere den Inhalt des aktuellen Feldelementes in die Variable temp. Falsch Tue nichts! Gebe den Inhalt von temp als Funktionswert zurück. a) Welche Bedeutung hat der Rückgabewert der Funktion getFoo()? (1P) Kleinste Wert aus Feld inhalt. b) Geben Sie die vollständige Implementation der Methode getFoo() in Java an. Fachgebiet Datenverarbeitung in der Konstruktion (9P) DiK Klausur zur Vorlesung „Grundlagen der Datenverarbeitung“, Sommersemester 2002 Name: 7 Matrikelnummer: Lösung zu Aufgabe 3b): Fachgebiet Datenverarbeitung in der Konstruktion DiK Klausur zur Vorlesung „Grundlagen der Datenverarbeitung“, Sommersemester 2002 Name: 8 Matrikelnummer: Aufgabe 4 (15P) Gegeben sind die Zahl a = 3510 in Dezimaldarstellung und die Zahl b = 1011 10002 in Dualdarstellung. Auf einem Prozessor mit 10 Bit Addierwerk, welcher mit der (p)-Komplementdarstellung arbeitet, soll die Subtraktion c = a - b = a + (-b) durchgeführt werden. Führen Sie dazu folgende Schritte durch. (Geben Sie sämtliche dazu nötigen Rechenschritte an.) a) Überführen Sie die Zahl a mittels eines geeigneten Umrechnungsverfahrens in Dualdarstellung. (4P) Modulo-Verfahren: z=35; p=10; q=2 y0 = z mod q = 35 mod 2 = 1 z0 = 35 div 2 = 17 y1 = z0 mod q = 17 mod 2 = 1 z1 = 17 div 2 = 8 y2 = z1 mod q = 8 mod 2 = 0 z2 = 8 div 2 = 4 y3 = z2 mod q = 4 mod 2 = 0 z3 = 4 div 2 = 2 y4 = z3 mod q = 2 mod 2 = 0 z4 = 2 div 2 = 1 y5 = z4 mod q = 1 mod 2 = 1 z5 = 2 div 2 = 0 a = {y5 y4 y3 y2 y1 y0}2 = 1000112 b) Berechnen Sie die Zweierkomplementdarstellung (K2-Darstellung) der Zahl (-b). (3P) Anzahl Stellen in Prozessor: n = 10 -b=Kp(b) = Kp (-1011 10002) = = kp ( abs ( -1011 10002) ) = = kp (1011 10002) = = 210 – 1011 10002 = = 100 0000 00002 – 00 1011 10002 = = 11 0100 10002 c) Führen Sie oben genannte Subtraktion im Dualsystem durch. (2P) Addition: a + K2(b) 10 0011 + 11 0100 1000 a K2(b) -------------------11 0110 1011 K2(c) Fachgebiet Datenverarbeitung in der Konstruktion DiK Klausur zur Vorlesung „Grundlagen der Datenverarbeitung“, Sommersemester 2002 Name: 9 Matrikelnummer: a) Welche Aussage kann man über das Vorzeichen des Ergebnisses c treffen? Überführen Sie die Zahl c in die Vorzeichen-Betrag-Darstellung. (3P) Das Ergebnis aus dem Aufgabenteil b) ist negativ, da a9 =1. c = -Kp(-c) = = -Kp(|-c|) = -[210 - |-c|] = -[210 - 11011010112] = -100101012 d) Überführen Sie die Zahl b mittels eines geeigneten Verfahrens in das Dezimalsystem. (3P) Horner-Schema: k=8, p=2, a7=1, a6=0, a5=1, a4=1, a3=1, a2=0, a1=0, a0=0 z7 = a7 = 1 z6 = p*z7 + a6 = 2*1 + 0 = 2 z5 = p*z6 + a5 = 2*2 + 1 = 5 z4 = p*z5 + a4 = 2*5 + 1 = 11 z3 = p*z4 + a3 = 2*11 + 1 = 23 z2 = p*z3 + a2 = 2*23 + 0 = 46 z1 = p*z2 + a1 = 2*46 + 0 = 92 z0 = p*z1 + a0 = 2*92 + 0 = 184 Ergebnis: b = 18410 Fachgebiet Datenverarbeitung in der Konstruktion DiK Klausur zur Vorlesung „Grundlagen der Datenverarbeitung“, Sommersemester 2002 Name: 10 Matrikelnummer: Aufgabe 5 (8P) a) Was ist ein Prozessorbus und aus welchen Komponenten besteht er? (4P) Der Prozessorbus ist eine Ansammlung von Leitungen, die den Prozessor mit Speichermodulen bzw. Peripheriebausteinen verbinden und einen Informationsaustausch zwischen diesen Komponenten ermöglichen. Der Prozessorbus besteht aus dem Datenbus, dem Adressbus und dem Kontrollbus. b) Welcher Zusammenhang besteht zwischen - dem physikalischen Adressraum, - dem virtuellen Adressraum und dem - Hintergrundspeicher? (2P) Der virtuelle Adreßraum ist vollständig mit Speicherzellen ausgestattet und wird auf Bereiche des physikalischen Adreßraums abgebildet. Er ist größer als die im physikalischen Adreßraum vorhandenen Speicherbereiche. ) Ist nicht genug Speicherplatz im physikalischen Adreßraum verfügbar, werden Speicherinhalte des virtuellen Adreßraums auf einen Hintergrundspeicher (z.B. Festplatte) ausgelagert. c) Wie lauten die beiden Abkürzungen RAM und EEPROM ausgeschrieben? (2P) Random Access Memory, Electrically Erasable Programable Read Only Memory Fachgebiet Datenverarbeitung in der Konstruktion DiK Klausur zur Vorlesung „Grundlagen der Datenverarbeitung“, Sommersemester 2002 Name: 11 Matrikelnummer: Aufgabe 6 (14P) a) Nennen Sie 4 verschiedene Typen von Abstrakten Datentypen. (2P) (un-, gerichteter | un-, gewichteter) Graph, Liste, Stapel, Schlange, Baum b) Welchen Typ eines Abstrakten Datentyps stellt folgende Abbildung dar? Spezifizieren Sie den Typ möglichst genau. (2P) H 11 2 G 2 C 3 D 4 2 F 5 5 K 9 2 A I 1 B J 1 E 2 2 1 Ungerichteter, gewichteter Graph Fachgebiet Datenverarbeitung in der Konstruktion DiK Klausur zur Vorlesung „Grundlagen der Datenverarbeitung“, Sommersemester 2002 Name: 12 Matrikelnummer: c) Wie heißt das Verfahren zur Erstellung des Minimalen Spannbaums? (1P) Verfahren nach KRUSKAL d) Zeichen Sie den Minimalen Spannbaum der abgebildeten Datenstruktur. Geben Sie auch alle dazu nötigen Teilschritte an. (5P) H 2 G 2 C 3 D 2 F K 2 A I 1 B J 1 E 2 2 1 e) Traversieren Sie die Datenstruktur aus b) ausgehend von Knoten (C) mittels der Tiefensuche. Geben Sie die Reihenfolge der Knoten an, die sich bei dieser Traversierung ergibt. HINWEIS: Wählen Sie in jedem Schritt denjenigen Knoten als den Nächsten zu besuchenden aus, der in der alphabetischen Reihenfolge der Vordere ist! (4P) CDHGKAEBFIJ Fachgebiet Datenverarbeitung in der Konstruktion DiK Klausur zur Vorlesung „Grundlagen der Datenverarbeitung“, Sommersemester 2002 Name: 13 Matrikelnummer: Aufgabe 7: (14P) a) Ordnen Protokoll, -anwendung oder Netzwerkkomponente den Schichten des OSIModells zu. Es reicht die Angabe der Schichtennummern aus. (5P) BEGRIFF ISO-SCHICHTEN Ethernet 1, 2 10base-T 1 ISDN: 2, 3, 4 Gateway 7 FTP (File Transfer Protocol): 5, 6, 7 b) Welche Topologie besitzt das unten abgebildete Rechnernetz? (2P) G C D F H A B E Baumtopologie Fachgebiet Datenverarbeitung in der Konstruktion DiK Klausur zur Vorlesung „Grundlagen der Datenverarbeitung“, Sommersemester 2002 Name: 14 Matrikelnummer: c) Nennen Sie 2 Vorteile und 2 Nachteile der von Ihnen in b) genannten Topologieart. (2P) Vorteile: relativ leicht implementierbar, Entlastung der peripheren Rechner, Nachteile: bei Defekt am Hauptverteiler Zerfall in Teilnetze hohe Belastung des Hauptverteilers d) Von Knoten (D) nach Knoten (H) wird nun eine direkte Kommunikationsstrecke hinzugefügt. Welche Topologie besitzt nun das gesamte Netz? (2P) Unbeschränkte Topologie e) Welcher zusätzliche Aufgabe haben die Knoten bei der Weiterleitung der Datenpakete nach dem Einfügen der zusätzlichen Strecke aus d)? Nennen Sie den Fachbegriff und erläutern Sie ihn kurz. (3P) Routing an jedem Rechner notwendig Der größte Nachteil dieser Topologie liegt darin, dass jeder Rechner, der an einem solchen Netzwerk teilnimmt, für jedes empfangene oder von ihm selbst erzeugte Paket die Entscheidung treffen muss, ob und auf welchem Wege er es weiterleitet. Solche Entscheidungen fasst man in der Netzwerktechnologie unter dem Stichwort Routing zusammen. Fachgebiet Datenverarbeitung in der Konstruktion DiK Klausur zur Vorlesung „Grundlagen der Datenverarbeitung“, Sommersemester 2002 Name: 15 Matrikelnummer: Aufgabe 8 (9P) Das UNIX-Kommando ls –l erzeugte folgende Ausgabe: a) Welche Bedeutung haben die einzelnen Spalten? 1. Spalte :Zugriffsrechte auf Datei: Owner, Group, Anybody 2. Spalte: Besitzer der Datei 3. Spalte: Gruppe der Datei 4. Spalte: Dateigröße (in bytes) 5. Spalte: Datum (des letzten Zugriffs) auf Datei 6. Spalte: Dateiname (3P) b) Der Benutzer mann gehört den Gruppen gedv, dikwimis und pst an. Welche der oben aufgeführten Dateien können bei den bestehenden Zugriffsrechten von ihm verändert werden? (2P) Sämtliche Dateien ausser Horner.java c) Der Benutzer pfouga gehört den Gruppen dikwimis und pst an. Welche Dateien können vom ihm ausgeführt werden? (2P) Nur die Datei compileAll.sh. d) Das Java-Programm in der Datei Horner.class soll für jeden lesbar sein. Welche Unix - Kommandozeile muss zur Änderung der Zugriffsrechte in einer Shell eingegeben werden (Befehl inklusive Optionen und Argumenten)? (2P) chmod o+r Horner.class oder: chmod 644 Horner.class Fachgebiet Datenverarbeitung in der Konstruktion DiK