Universität Stuttgart Institut für Rechnergestützte Ingenieursysteme Univ.-Prof. Hon.-Prof. Dr. Dieter Roller Übungsblatt 2 zur Vorlesung ”Grundlagen der Informatik I” im WS 2015/16 Aufgabe 2.1 - Thema: Algorithmus - Parkscheinautomat Algorithmen existieren nicht nur für das Rechnen mit Zahlen, sondern auch für andere Probleme im Bereich der Informationsverarbeitung. Wichtig ist, dass ein Algorithmus immer eine eindeutige Vorschrift darstellt. a. Entwerfen Sie einen Algorithmus zur Bedienung eines Parkscheinautomaten! Berücksichtigen Sie dabei, dass der Automat sowohl Geldscheine als auch Hartgeld und Geldkarten nimmt und eine Quittung ausgegeben werden kann. Halten Sie außerdem die nötigen Vorbedingungen wie Öffnungszeiten u.ä. fest. b. Vergegenwärtigen Sie sich die Eigenschaften eines Algorithmus! Können Sie sich Algorithmen vorstellen, die nicht terminieren oder deterministisch sind aber doch sinnvoll Verwendung finden? Geben Sie je ein Beispiel. Aufgabe 2.2 - Thema: Codierung Die folgenden 2 Texte a) und b) sind in ASCII ohne jedwede Erweiterung codiert dargestellt; der besseren Lesbarkeit halber sind die Bits in 4-Bit-Gruppen aufgeteilt, ansonsten wurde kein wie immer geartetes Trennzeichen eingeführt. Entschlüsseln Sie zunächst die Texte in Teilaufgabe a. und b.! a. 1001 0011 1011 1011 0011 0110 1111 1110 0101 1011 0111 0000 1111 0100 1101 0011 1010 11 b. 1010 0111 0101 0010 1010 1100 0100 1001 0011 0001 0110 0111 0100 0111 1000 1011 0000 1010 1010 1100 0101 1001 0001 0100 1010 0010 1100 1110 c. Auf einem Rechner mit einer Wortlänge, die eine Zweierpotenz ist, erscheint obige Codierung als etwas schwierig interpretierbar. Wie kann die Codierung sinnvoll auf eine solche Wortlänge erweitert werden? d. Gegeben seien folgende Symbole: Rot, Gelb, Grün, Blau, Schwarz, Weiss, Türkis, Violett, und Grau. Entwerfen Sie eine binäre Codierung für diese Symbole derart, dass alle Codewörter gleich lang sind und mit einer minimalen Anzahl von Bits auskommen. e. Sie wollen Ihren Code mittels ungerader Parität vor Übertragungsfehlern sichern. Wie muss der Code erweitert werden? Grundlagen der Informatik I – Blatt 2 Seite 1 von 2 Universität Stuttgart Institut für Rechnergestützte Ingenieursysteme Univ.-Prof. Hon.-Prof. Dr. Dieter Roller Aufgabe 2.3: - Thema: Codeworte variabler Länge und Dekodierung Codeworte mit variabler Länge werden unter anderem zur kompakten Übertragung von Daten verwendet. Dabei werden beispielsweise häufige Buchstaben wie "e" mit einem kurzen Codewort codiert, seltene Buchstaben mit einem längeren. Derartige Codeworte werden ohne Zwischenraum aneinandergefügt. Damit der Text eindeutig interpretierbar bleibt, ist zu prüfen, ob die Fanobedingung eingehalten wird. a. Erfüllen die folgenden Worte eines Codes die Fanobedingung: a=1 c=00 d=01 e=10 ? b. Decodieren Sie die folgende in obigem Code geschriebene Botschaft: 101100 c. Wie muss der Code angepasst werden, wenn er der Fano-Bedingung gehorchen und weiterhin eine variable Wortlänge aufweisen soll? d. Sie wollen die Nachricht „reservierung“ unter Einhaltung der Fanobedingung codieren. d1. Geben Sie einen möglichst einfachen Code mit variabler Länge an, der die FanoBedingung einhält! Als optimale Lösung können Sie das Verfahren der Huffman Codierung verwenden (siehe z.B. http://www.pohlig.de/Unterricht/Inf2002/Tag44/29.2_Huffmann_Algorithmus.htm). d2. Codieren Sie in dem von Ihnen entworfenen Code die angegebene Nachricht. e. Jemand schickt Ihnen eine Mitteilung. Es soll sich dabei um eine Folge von hexadezimal (also zur Basis 16) codierten ASCII-Zeichen handeln. Je zwei aufeinanderfolgende Hexadezimalzeichen ergeben ein ASCII-Zeichen (um den Text besser lesen zu können, wurde er in gleichlange Blöcke geteilt). Wie lautet die nachfolgende Mitteilung? Können Sie sich vorstellen wozu diese Mitteilung verwendet wird? 687474 703A2F 2F7777 772E69 726973 2E756E 692D73 747574 746761 72742E 6465 Grundlagen der Informatik I – Blatt 2 Seite 2 von 2