WS 1997/98 - Fachhochschule Köln
Fachbereich Nachrichtentechnik
Dr. Matthias Groß

Praktikum Datenverarbeitung - 3. Arbeitsblatt

Abgabetermin für alle: Montag 05. 01. 1998 im DV-Labor

Bei dieser Praktikumsaufgabe sollen die Verarbeitung von Zeichenketten und einfache Unterprogramme kennengelernt werden. Es gelten die gleichen Abgabemodalitäten wie bei den letzten zwei Arbeitsblättern. Zusätzlich ist bei der Aufgabe 10 ein gutes Struktogramm anzufertigen und mit abzugeben.

Aufgabe 10:

Schreiben Sie jeweils ein Unterprogramm für die folgende Aufgaben:

  1. Expandieren einer "Aufzählungs-Zeichenkette" der Form
    "a-d,e, m,n-q, 1-3" nach "1,2,3,a,b,c,d,e,m,n,o,p,q"

    Das Programm soll also eine eingegebene Zeichenkette (Nur die ASCII-Zeichen) überprüfen und ausgeben, welche Zeichen innerhalb dieser Zeichenkette gemeint sind. Groß- und Kleinbuchstaben sind zu unterscheiden. Beachten Sie, daß der Anwender auch unsinnige Eingaben machen kann und daß die Eingabe keine sinnvolle Reihenfolge aufweisen muß. Diese Sonderfälle sind definiert abzufangen.
  2. Zusammenfassen einer Zeichenkette zu einer möglichst kurzen Schreibweise, daß heißt:

    "1,2,3,a,b,c,d,e,m,n,o,p,q" wird zu "1-3,a-e, m-q"

    Die gleichen Punkte wie bei Aufgabe a) sind zu berücksichtigen.

Bitte beachten Sie bei dieser Aufgabe unbedingt die Hinweise aus der Vorlesung und verwenden Sie den dort angegebenen Tip mit dem Feld. Beachten Sie auch, daß es andere Sonderzeichen außer den ASCII-Zeichen gibt. Das Unterprogramm sollte den folgenden Programmkopf aufweisen:

void ExpandStr(char Input[], char Output[]);

Aufgabe 11:

Schreiben Sie ein Unterprogramm void printverbal(long n), welches die übergebene Integerzahl i in verbaler Form auf den Bildschirm ausgibt.

Der Aufruf von printverbal() sollte die folgenden Resultate liefern:

Bitte beachten Sie auch hier die Tips aus der Vorlesung, verwenden Sie also Unterprogramme für möglichst viele Teilaufgaben und strukturieren Sie hierdurch das Problem. Erstellen Sie bitte vorher das Struktogramm zu diesem Problem

Aufgabe 12:

Schreiben Sie ein Unterprogramm in der Form

int ConvertZahl(char Str[]),

welches eine in einem beliebigen (2-er bis 36-iger) Zahlsystem eingegebene Zahl in eine Dezimalzahl umrechnen kann. Hierbei sind die Ziffern 0,1,2,...,9,A,B,...,Y,Z,a,...,z gestattet. Die Kennzeichnung des Zahlsystems erfolgt am Ende der Zahl durch einen Unterstrich gefolgt von der Dezimaldarstellung des verwendeten Zahlsystems oder einer der gängigen Abkürzungen b für binär, o für oktal, d für dezimal oder h für Hexadezimal. Eine fehlende Angabe ist wie _10 zu werten. Die Erfassung der Eingabe sollte über eine eigene Einleseroutine erfolgen, die die Zeichen einzeln von der Tastatur einliest. Diese Erfassung sollte wiederum in einem eigenen Unterprogramm programmiert werden.

Beispiele:

Zusatz: Ein Dezimalpunkt oder -komma soll korrekt mit ausgewertet werden.

Verwenden Sie zu Lösung keine unter C vorhandenen Bibliotheksfunktionen.


FH-Köln Zurück zurück vor WWW-Wais whois mail Hilfe


Seite zuletzt aktualisiert am 27.11.1997 von Matthias Groß.
Diese Seite ist Teil des WWW-Dienstes der FH-Köln, Germany.