Klausur zur Vorlesung „Einführung in die Informatik für Hörer anderer Fachrichtungen“, SS 2005 Name: __________________________ Matrikelnummer: _______________________ Studiengang: ____________________ Semester/Versuch:____________/__________ Datum: Bearbeitungszeit: 90 min Punkteverteilung (insgesamt 90): Aufgabe 1: 10 Aufgabe 2: 10 Aufgabe 5: 15 Aufgabe 6: 10 Aufgabe 3: 12 Aufgabe 7: 10 Aufgabe 4: 13 Aufgabe 8: 10 1. Zustandsdiagramme und Variablen [10 Punkte] Eine Ampel an einem Fußgängerweg besteht aus der Ampel für die Fußgänger (2 Scheinwerfer) und einer Ampel für die Kraftfahrzeuge (3 Scheinwerfer). Außerdem hat sie einen Druckknopf, mittels dem ein Fußgänger für die Fußgängerampel Grün anfordern kann. Die beiden Ampeln seien folgendermaßen geregelt: Wenn das Fußgängersignal nicht gedrückt ist (Anfangszustand), ist die Kraftfahrzeugampel (KA) aus (alle Scheinwerfer aus!) und die Fußgängerampel (FA) Rot. Wenn das Fußgängersignal gedrückt wird, springt die Kraftfahrzeugampel auf Grün, die Fußgängerampel bleibt Rot Dann schaltet die Kraftfahrzeugampel zunächst auf Gelb. Anschließend wird die Kraftfahrzeugampel auf rot und die Fußgängerampel auf Grün gesetzt. Über den Zustand Gelb-Rot für die Kraftfahrzeugampel und Rot für die Fußgängerampel wird wiederum der Anfangszustand erreicht. 1. Vervollständigen Sie das angegebene Zustandsdiagramm derart, dass die Zustandsübergänge der beiden Ampeln beschrieben werden. Verwenden Sie dabei folgende Aktionen: „Fußgängersignal drücken“ oder „Umschalten“. KA_oben= KA_mitte= KA_unten= FA_oben= FA_unten= KA_oben= KA_mitte= KA_unten= FA_oben= FA_unten= KA_oben= KA_mitte= KA_unten= FA_oben= FA_unten= KA_oben= KA_mitte= KA_unten= FA_oben= FA_unten= KA_oben= KA_mitte= KA_unten= FA_oben= FA_unten= 2. Obiges Diagramm hat nur 5 Zustände. Wie viele Zustände wären theoretisch möglich? (Es genügt die Angabe der Zahl ohne Begründung) 2. Funktionale Modellierung [10 Punkte] Das folgende Datenflussdiagramm beschreibt eine Funktion, die die Wahrscheinlichkeit einen Herzinfarkt zu erleiden, aus den booleschen Variablen stress und übergewicht ermittelt (Es handelt sich hier natürlich um ein grob vereinfachtes Modell, da nur zwischen Stress oder Nicht-Stress, bzw. zwischen Übergewicht und Nicht-Übergewicht gewählt werden kann). uebergewicht stress 15 % 62 % Wenn 18 % Wenn Wenn 1. Wandeln Sie das Datenflussdiagramm in einen Term um: 2. Beschreiben Sie in eigenen Worten das Verhalten der Funktion: 5% 3. Information und Daten: Zahlen und ihre Darstellung [12 Punkte] Im Rahmen dieser Aufgabe stehen für die Codierung ganzer Zahlen 8 Bits zur Verfügung. 1. Geben sie folgende Zahlen in Zweierkomplementdarstellung an (der Index 10 kennzeichnet, dass es sich bei den Zahlen um Zahlen im Dezimalsystem handelt): 2710 = - 2310 = 2. Geben Sie den Zahlenbereich (in Dezimaldarstellung) an, der sich bei Codierung ganzer Zahlen im Zweierkomplement mit 8 Bits darstellen lässt: 3. Es sie die Dualzahl x2 = 111111112 gegeben: Welcher Zahl entspricht x2 in Dezimaldarstellung, wenn die Codierung im Zweierkomplement erfolgt und 8 Bits zur Verfügung stehen: Welche Zahl (in Dezimaldarstellung) ergibt sich, wenn zu x2 die Zahl 12 addiert wird ? 4. Datenbanksysteme: ER-Modellierung [13 Punkte] In einer Datenbank sind die Daten von Lehrern, Schülern, Klassen und Fächer einer Schule gespeichert. Ein Lehrer hat dabei eine Personalnummer, einen Namen, eine Adresse und eine Gehaltsstufe. Schüler haben neben einer Identifikationsnummer einen Namen, eine Adresse und gehören einer einzigen Klasse an. Klassen sind eindeutig durch ihre Klassennummer bestimmt und ihnen ist jeweils genau ein Klassenraum zugeordnet; Fächer werden eindeutig durch ihre Identifikationsnummer gekennzeichnet und sie haben einen Namen. Eine Klasse wird von genau einem Lehrer in einem Fach unterrichtet. Ein Lehrer kann dieselbe Klasse in unterschiedlichen Fächern unterrichten. Zusätzlich hat jeder Lehrer die Leitung maximal einer Klasse inne. 1. Vervollständigen Sie das angegebene Entity-Relationship-Diagramm! (Vergessen Sie nicht die Kardinalitäten!) 2. Geben Sie zu dem ER-Diagramm aus Teilaufgabe a) das entsprechende Datenbankschema an! 5. Datenbankabfragen [15 Punkte] Sie sind Eigentümer(in) eines Einzelhandelsgeschäftes. Die Einkäufe Ihrer Kunden - diese werden mittels Kundenkarte eindeutig identifiziert - werden mittels Scannerkasse und Datenbank detailliert erfasst, um später das Kaufverhalten analysieren zu können. Nachfolgend sehen Sie als Ausschnitt der Datenbank die Datensätze der Access-Tabellen „Artikelstamm“, „Kundenstamm“ und „Käufe“. Mittels der Tabelle „Käufe“ wird der Betrag dokumentiert, den ein Kunde jeweils bei einem Einkaufsvorgang für einen bestimmten Artikel ausgegeben hat. Artikelstamm EAN 4711 4712 4713 Artikelbezeichnung Maoam Mamba Snickers Käufe lfdNr Kundennummer 1 007 2 008 3 007 4 007 EAN Betrag Datum 4711 10,89 1.7.2005 4711 50,21 2.7.2005 4712 0,49 3.7.2005 4711 5,89 4.7.2005 Kundenstamm Kundennummer Nachname Vorname 007 Bond James 008 Müller Egon 1. Teilaufgabe: Erläutern Sie den Begriff „Referentielle Integrität“ unter Bezugnahme auf die o.g. Tabellen „Käufe“ sowie „Artikelstamm“ und/oder „Kundenstamm“ 2. Teilaufgabe: Ergänzen Sie die nachfolgende Access-Auswahlabfrage in der Weise, dass Ihnen alle Käufe des Kunden „Bond“ (Anzeige des Nachnamens) – unter Angabe der Artikelbezeichnung und des Betrages – ausgegeben werden, deren Betrag über 5 (Euro) liegt. 3. Teilaufgabe: Formulieren Sie die unter Punkt b) aufgeführte Abfrage als SQL-Abfrage (wahlweise mit oder ohne „Inner Join“) 6. Normalisierung von Tabellen [10 Punkte] 1. Teilaufgabe: Verbessern Sie folgende Tabelle in der Weise, dass die 1. bis 3. Normalform erfüllt ist, indem Sie die betreffende(n) Tabelle(n) neu entwerfen (nur die Feldnamen in diese Tabelle(n) eintragen, nicht die Werte!). 2. Teilaufgabe: Erläutern Sie in Stichpunkten außerdem die nachfolgend aufgeführten Begriffe an Beispielen aus der unten aufgeführten Tabelle bzw. an Beispielen den von Ihnen neu entworfenen Tabellen 1., 2., 3. Normalform Funktionale Abhängigkeit Transitive Abhängigkeit FeldKontoN BLZ namen r > 9876 7001008 0 9999 7001008 0 9876 7002119 9 Bankname Kundenname PLZ Geburtsdat um Alter Postbank Pfahls, Holger 80123 1.1.1960 45 Postbank Schreiber, W.H. Maxwell, M. 90100 1.1.1940 65 82159 1.1.1955 50 RaiBa Schneitzelreuth 7. VBA [10 Punkte] Sie haben geerbt und verfügen über einen größeren Betrag, den Sie ein Jahr auf der Bank anlegen möchten. Nun erhalten Sie laufend Angebote von Banken zur Geldanlage. Um bequem zu ermitteln, über welchen Betrag Sie nach einem Jahr verfügen können, erstellen Sie sich die beiden nachfolgenden VBA-Prozeduren „Reichtum“ sowie „Endwertberechnung“. 1. Teilaufgabe: Vervollständigen Sie nachfolgenden rudimentären VBA-Code mittels geeigneter Schleifen und Kontrollstrukturen in der Weise, dass jede Eingabe kleiner oder gleich Null für den Anlagebetrag und für den Zinssatz mit einer Fehlermeldung abgelehnt wird. 2. Teilaufgabe: Mittels der Funktion „Endwertberechnung“ soll berechnet werden, auf welchen Betrag sich das angelegte Geld nach einem Jahr „vermehrt“ hat. Dieser Betrag soll mittels der bereits aufgeführten „MsgBox“ am Bildschirm anzeigt werden. Ergänzen Sie hierfür beide Prozeduren in geeigneter Weise. Sub Reichtum() Dim Anlagebetrag As Double, Zinssatz As Double, Endwert As Double ……………………………………………………..= InputBox("Geben Sie den Anlagebetrag ein") ……………………………………………….…….= InputBox("Geben Sie den Zinssatz in Prozent ein") ............................................... = Endwertberechnung (Anlagebetrag, Zinssatz) MsgBox ("Aus Ihrem Betrag in Höhe von " & Anlagebetrag & " wird ein Betrag von " & Endwert) End Sub Function Endwertberechnung(………………………………………………………………………..) ......................... ........................................................... = ………………………………………………………… End Function 8. HTML [10 Punkte] Folgender HTML-Code beschreibt eine Tabelle in Verbindung mit einem Eingabeformular. 1. Erläutern Sie die im HTML-Code gekennzeichneten Tags. 2. Zeichnen Sie in dem dafür vorgesehenen (karierten) Bereich auf der folgenden Seite, der den Bildschirm darstellen soll, das Erscheinungsbild der Tabelle und der Eingabefelder für den Anwender. Geben Sie die Größenverhältnisse proportional wieder. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Bewerbung</title> </head> <body> <form name=“Bewerbung“ action=“mailto:[email protected]“> <table style=“width:100%“> <tr> <td colspan=“2“ style=“text-align:center; font-size:200%“> Ja ich möchte mich bewerben!</td> </tr> <tr> <td style=“width:30%“>Name:</td> <td><input name=“Name“ type=“text“ size=“30“ maxlength=“60“></td> </tr> <tr> <td style=“width:30%; vertical-align:top“>Und das bin ich:</td> <td><textarea name=“Vorstellung“ cols=“60“ rows=“5“></textarea></td> </tr> <tr> <td style=“width:30%“><input type=“submit“ value=“Abschicken“ name=“sub“></td> <td><input type=“reset“ value=“Zurücksetzen“ name=“res“></td> </tr> </table> </form> </body> </html> 1a) <textarea name=“Vorstellung“ cols=“60“ rows=“5“></textarea> 1b) <input type=“reset“ value=“Zurücksetzen“ name=“res“> 2.Hier bitte die Bildschirmdarstellung eintragen: (30 Spalten; 20 Zeilen) 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30