• Keine Ergebnisse gefunden

Klausur am 03.02.2004 Einführung in die Informatik für Hörer aller Fakultäten Wintersemester 2003/2004

N/A
N/A
Protected

Academic year: 2022

Aktie "Klausur am 03.02.2004 Einführung in die Informatik für Hörer aller Fakultäten Wintersemester 2003/2004"

Copied!
6
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Klausur am 03.02.2004

Einführung in die Informatik für Hörer aller Fakultäten Wintersemester 2003/2004

Prof. Wolff von Gudenberg , Prof. Rainer Kolla. Prof. Frank Puppe, Prof. Dietmar Seipel

1.1 1.2 1.3 1.4 1.5 2.1 2.2 2.3 3.1 3.2 4.1 4.2 4.3

2 6 8 8 3 21 6 8 10 9 8 6 5 100

Hinweise:

1) Schreiben Sie auf jedes Antwortblatt Ihren Namen.

2) Geben Sie zuerst die Aufgabennummer und dann deren Lösung an.

3) Eine Aufgabe mit x Punkten ist auf x Minuten Bearbeitungszeit angelegt.

4) Zum Bestehen der Klausur sind 50 Punkte (50%) erforderlich.

Aufgabe 1: Form und Darstellung von Informationen (27 Punkte):

Aufgabe 1.1 (2 Punkte)

Die meisten Anwender benutzen den Computer 1. zum Schreiben von Texten

1b. einschließlich Rechtschreibkontrolle 2. zum Senden und Empfangen von Emails und 3. zum Surfen im WWW.

Geben Sie jeweils an (keine Begründung erforderlich), welche Metaphern (Maschine, Werkzeug, Medium, Partner) diesen vier Punkten zugrunde liegen.

Aufgabe 1.2 (6 Punkte)

Geben Sie eine EBNF-Grammatik für die Produktion einfacher Schlager an, die aus 3 Teilen bestehen: einer Intro, einem Text und einem Schluss. Die Intro wiederholt mindestens 3 Mal eine der folgenden Silben (da, la, wa, bla), der Text enthält Wörter, die nicht näher spezifiziert sind, und der Schluss besteht immer aus „aha aha aha“). Ein Beispiel für einen korrekten Schlagertext wäre: „da da da ich lieb dich nicht du liebst mich nicht aha aha aha“.

Aufgabe 1.3 (8 Punkte)

In HTML kann man Formulare benutzen, um Informationen vom Benutzer zu erfragen und weiterzuverarbeiten. Geben Sie ein ganz einfaches, aber vollständiges HTML-Formular an (nur den body) und markieren Sie die Teile ihres Formulars, die für folgende Aufgaben zuständig sind: wie gibt der Benutzer Daten ein? In welcher Form werden sie zum Server übertragen? Wie wird dem Server mitgeteilt, wie er die Daten weiterverarbeiten soll?

Aufgabe 1.4 (8 Punkte)

Geben Sie eine DTD in XML für Kontakte an. Ein Kontakt besteht aus Anrede („Herr“ oder

„Frau“; optional), Name (notwendig), der aus einem Vornamen (String) und einem Nachnamen (String) besteht, mindestens einer Email (String) und optional vielen Telefonnummern (Zahl) besteht. Geben Sie außerdem ein gültiges Dokument mit dem Kontakt (Mark Spitz, Email: Mark.Spitz@web.de), das ihrer DTD entspricht.

Aufgabe 1.5 (3 Punkte)

Setzen Sie folgende Begriffe zueinander in Beziehung: WWW, Internet, TCP-IP, http,

(2)

Aufgabe 2: Grundlagen der Programmierung (35 Punkte) Aufgabe 2.1 : Adressverwaltung (21 Punkte)

Ein Adressbuch speichert Firmenadressen und Privatadressen.

Es soll Suchfunktionen und Sortiermöglichkeiten enthalten.

Eine Firmenadresse besteht aus

• Firmenname

• Postfach

• Ort

Eine Privatadresse besteht aus

• Nachname

• Vorname

• Straße

• Ort

a) Fassen Sie Gemeinsamkeiten zu einer Klasse zusammen. (3) Diese Klasse soll eine (abstrakte) Methode getName() enthalten.

b) Geben sie eine Klasse für eine der beiden Adressarten an. (3)

c) Implementieren Sie das Adressbuch mit Verwendung eines Arrays. (2+3+3) Beschränken Sie sich auf die Methoden

a. sucheOrt (String ort), welche die Position der ersten Adresse mit dem gegebenen ort bestimmt.

b. sucheOrt (String ort, int position), welche die Position der ersten Adressenach der angegebenen Position mit dem gegebenen ort bestimmt.

c. einfuegeAn(Adresse a, int position)

d) Legen Sie im Hauptprogramm ein Adressbuch für 200 Adressen an. Tragen Sie in (4) dieses Adressbuch 27 Adressen ein (eine Adresse liefert die (statische) Klassen- Funktion neueAdresse() der Klasse Adressverwaltung.

Die Klasse Adressverwaltung soll NICHT implementiert werden.

e) Geben Sie die Namen aller in Hamburg beheimateten Firmen oder Personen aus. (3) Aufgabe 2.2 : Zähler (6 Punkte)

Ein Zähler ist ein abstrakter Datentyp, der in einem Bereich variieren kann. Ein Zähler kann auf einen Anfangswert gesetzt werden und erhöht werden.

a) Schreiben Sie ein Interface oder eine Klasse Zaehler (3)

b) Schreiben Sie ein Interface oder eine Klasse zur Implementation eines Zählers, wobei bei Überschreiten des Endwertes automatisch auf den Anfangswert gesetzt wird. (3)

Aufgabe 2.3 : Stringlisten (8 Punkte)

Schreiben Sie eine Funktion, die zwei sortierte Arrays von Strings so mischt, dass wieder ein sortiertes Array von Strings resultiert.

(3)

Aufgabe 3: Aufbau von Rechnern und Betriebssystemen (19 Punkte) Aufgabe 3.1: (Maschinenprogrammierung / 10 Punkte)

Setzen Sie das folgende Programm zur Berechnung eines Polynoms n-ten Grades (n ≥ 0) in Maschinensprache um.

int r = x;

int i = n;

int s = a[i];

while (i ≠ 0) {

i = i - 1;

s = s*r + a[i];

}

Am Anfang der Berechnung liegt folgende Speicherbelegung vor:

Speicheradresse Inhalt 100 x

101 n 102 a0

102+1 a1

⋮ ⋮ 102+n an

Nutzen Sie dabei den Registerspeicher wie folgt, wobei alle Register zu Beginn den Inhalt 0 haben.

Register Verwendung 0 Konstante 0 1 r

2 i 3 s

4 Hilfsregister

Das Ergebnis der Berechnung (der Wert s nach Beendigung der While- Schleife) soll im Hauptspeicher an der Adresse 100 abgelegt werden.

(4)

Übersicht über den Befehlssatz aus der Vorlesung:

Arithmetik:

ADD $d, $s, $t Reg[d]=Reg[s]+Reg[t], pc++

SUB $d, $s, $t Reg[d]=Reg[s]-Reg[t], pc++

MUL $d, $s, $t Reg[d]=Reg[s]*Reg[t], pc++

DIV $d, $s, $t Reg[d]=Reg[s]/Reg[t], pc++

ADDI $d, $s, k Reg[d]=Reg[s]+k, pc++

SUBI $d, $s, k Reg[d]=Reg[s]-k,pc++

MULI $d, $s, k Reg[d]=Reg[s]*k, pc++

DIVI $d, $s, k Reg[d]=Reg[s]/k, pc++

Vergleich:

SLT $d, $s, $t Reg[d]=1, falls Reg[s]<Reg[t], sonst 0, pc++

SLE $d, $s, $t Reg[d]=1, falls Reg[s]≤Reg[t], sonst 0, pc++

SEQ $d, $s, $t Reg[d]=1, falls Reg[s]=Reg[t], sonst 0, pc++

SGE $d, $s, $t Reg[d]=1, falls Reg[s]≥Reg[t], sonst 0, pc++

SGT $d, $s, $t Reg[d]=1, falls Reg[s]>Reg[t], sonst 0, pc++

SLTI $d, $s, k Reg[d]=1, falls Reg[s]<k], sonst 0, pc++

SLEI $d, $s, k Reg[d]=1, falls Reg[s]≤k, sonst 0, pc++

SEQI $d, $s, k Reg[d]=1, falls Reg[s]=k, sonst 0, pc++

SGEI $d, $s, k Reg[d]=1, falls Reg[s]≥k, sonst 0, pc++

SGTI $d, $s, k Reg[d]=1, falls Reg[s]>k, sonst 0, pc++

Verzweigung:

BEQZ $s, k pc=pc+k+1, falls Reg[s]=0, sonst: pc++

BNEQZ $s, k pc=pc+k+1, falls Reg[s]≠0, sonst: pc++

JMP k pc=pc+k+1

Speicher:

LD $d, k($s) Reg[d]=Mem[Reg[s]+k], pc++

ST $s, k($d) Mem[Reg[d]+k]=Reg[s], pc++

Aufgabe 3.2: (Verständnisfragen / 2+2+2+3=9 Punkte )

a) In welchen Phasen kann sich ein Maschinenbefehl in einem Prozessor befinden?

b) Stellen Sie die 16-Bit Binärzahl B'1100101011111110' im Hexadezimal- und Octalformat dar. (Hinweis: Unterteilen Sie in 4er bzw. 3er Gruppen)

c) Wieviele Adressleitungen (Busbreite) benötigt man mindestens, wenn ein Hauptspeicher von 16 MB adressiert werden soll?

d) Zeichnen Sie die Gatterschaltung der Funktion y=!( !(a&!(b)) & !(!(a)&b) )

bestehend aus NAND-, NOR- und Inverterbausteinen.

(5)

Aufgabe 4: Datenbanken (19 Punkte)

Aufgabe 4.1 (Datenbankanfragen in Sql ) (8 Punkte)

Wir betrachten die bekannte University–Datenbank mit den folgenden Tabellen:

Student

Number Name Class Major

17 Smith 1 Cosc

8 Brown 2 Cosc

Course

Name Number Hours Department

Intro to Computer Science Cosc1310 4 Cosc

Data Structures Cosc3320 4 Cosc

Professional Mobilium XI Discrete Mathematics Math2410 3 Math

Databases Cosc3380 3 Cosc

Section

ID Course Semester Year Instructor 85 Math2410 Fall 2001 King 92 Cosc1310 Fall 2001 Anderson 102 Cosc3320 Spring 2002 Knuth 119 Cosc1310 Fall 2002 Anderson 135 Cosc3380 Fall 2002 Stone

GradeReport

StudentID SectionID Grade

17 119 C

8 85 A

8 92 A

8 135 A

Prerequisite Course Prerequisite Cosc3380 Cosc3320 Cosc3380 Math2410 Cosc3320 Cosc1310

Erstellen Sie in Sql folgende Anfragen:

a) Bestimmen Sie alle Kurse (Name, Nummer) im Zeitraum ‘Fall 2002’.

b) Bestimmen Sie die Namen aller Studenten, die den Kurs ‘Cosc3380’ besucht haben.

c) Bestimmen Sie die Anzahl der Kurse im Cosc Department.

d) Bestimmen Sie alle Voraussetzungen (Prerequisite) des Kurses ‘Discrete Mathematics’.

(6)

Aufgabe 4.2 (Datenmodellierung) (6 Punkte)

Wir betrachten die Datenbank DB aus Aufgabe 4.1.

a) Geben Sie geeignete Schl¨ussel und Fremdschl¨ussel zu den Relationenschemas

• Student,

• Section und

• GradeReport

von DB an.

b) Geben Sie ein ER–Diagramm f¨urDB an, in dem m¨oglichst viele Relationen als Relation- ships modelliert sind.

Aufgabe 4.3 (Funktionale Abh¨ angigkeiten) (5 Punkte)

Gegeben sei folgende Menge F von funktionalen Abh¨angigkeiten:

F ={AB→C, C →D, AC →DE }.

a) Bestimmen Sie die Attributh¨ulle ABF+. b) Bestimmen Sie eine Basis von F.

c) Zerlegen Sie das Relationenschema R = (U, F), mit U = {A, B, C, D, E} bez¨uglich der funktionalen Abh¨angigkeit AB →C (Einzelschritt des Dekompositionsalgorithmus).

Referenzen

ÄHNLICHE DOKUMENTE

Hierzu wird zunächst bestimmt ob es sich bei &lt;STRING&gt; um eine statische Datei handelt, oder ob die Ausführung eines Skriptes nötig ist, um die angeforderte Datei dynamisch

Otto-von-Guericke-Universit¨ at Magdeburg Fakult¨ at f¨ ur

a) Ihre Wohngemeinschaft („WG“: 4 Personen, 3 Nationalitäten, 2 Geschlechter) hat sich darauf geeinigt, daß jedes Mitglied maximal eine Besuchsperson unange- meldet zum

a) Ihre Wohngemeinschaft („WG“: 4 Personen, 3 Nationalitäten, 2 Geschlechter) hat sich darauf geeinigt, daß jedes Mitglied maximal eine Besuchsperson unange- meldet zum

Teilfach1 = InputBox(&#34;Geben Sie die Note des ersten Teilfachs ein&#34;) Teilfach2 = InputBox(&#34;Geben Sie die Note des zweiten Teilfachs ein&#34;) Teilfach3 =

Ergänzen Sie die nachfolgend aufgeführte Prozedur „Urlaubskosten“ mittels geeigneter Nassi-Shneiderman-Kontrollstrukturen in der Weise, dass alle Eingaben des Anwenders mit

  In einem Ethernet-LAN kann eine Nachricht gleichzeitig (d.h. in einem Sendevorgang) an alle angeschlossenen PCs gesendet werden...   Ein Router dient zur Speicherung

Programming by Contract als Teilveranstaltung f¨ ur das IT-Master-Modul 800/805 Program- miersprachen und Sprachkonzepte ist unter dem Titel Softwarequalit¨ atssteigerungen