S. d. I.: Programmieren in C (Hausaufgaben) xiv. Hausaufgaben

Ähnliche Dokumente
Ihr Heimatverzeichnis. Die Ausgangsverzeichnisse für die neu zu erstellenden Verzeichnisse sind folgender Tabelle zu entnehmen:

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

KREDITVERZEICHNIS Konfiguration Ausgabe: /13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration

Shell-Scripting Linux-Kurs der Unix-AG

Arbeiten mit der Shell Teil 1

GNU Emacs-Referenzkarte

Arbeiten mit der Shell Teil 1

MDE-Konfigurationsprogramm Version 1.12

Dateisystem 2, Suchen & Finden, Manpages

Stapelverarbeitungsdateien

6 Ein- und Ausgabe. Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig (

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Systemprogrammierung I - Aufgaben zur Erlangung der Klausurzulassung für Informatiker und Wirtschaftsinformatiker

Benutzung der Manpage, Shell Teil 3

Bestandsabgleich mit einem Onlineshop einrichten

Schreibweise in IGOR: 6.02E-23

Shell-Scripting Linux-Kurs der Unix-AG


JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Artikel Schnittstelle über CSV

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Dateisystem 2, Suchen & Finden

Installation. Aufruf der Jagdverwaltung. Aufbau der Jagdverwaltung

Waimea String Replacer

<? $ZeilenMax = 9; $SpaltenMax = 9; echo "<pre>";

2017/01/23 15:50 1/5 Bedienung

Daten aus europa3000 ins Excel exportieren

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

Übersicht. UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32

Dateien: String(Text)-Verarbeitung: Dateiverwaltung: Komprimierung: Übersicht. grep, strings, file, cmp, diff, tail, head. tr, cut, sort, uniq

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Arbeiten mit der Shell Teil 1

Handbuch zum VivaWeb-Serienbrief-Programm

Backup-Programm für Festplatten unter SpartaDOS. Deutsche Anleitung

Erzeugen benutzerdefinierter Buchstabenlisten in EXCEL

SelfLinux Dateien unter Linux

Dateisystem: Einführung

Dateisystem: Einführung

Patselect Profil: Datenübernahme aus Patselect

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

Monatstreff für Menschen ab 50 Merkblatt 69 EXCEL Peter Aeberhard, Computeria Olten

Johannes mirroring-seite

Shell-Programmierung

SelfLinux Dateien unter Linux

Einstieg in die Informatik mit Java

PIWIN 1 Übung Blatt 5

Grafische Oberfläche, Shell Teil 4 Linux-Kurs der Unix-AG

Dokumentation IBIS Master Version 1.5.6

Zarb Arbeitsblätter kreativ und schnell erstellen Netzwerk-Installation von Zarb 5 für Windows 1

Linux Prinzipien und Programmierung

1.103 Regular Expressions - Reguläre Ausdrücke

6 DATENBANKEN Datenbank. mit Spaltenüberschriften,

Excel Allgemeine Infos

Bedienungsanleitung. Version 2.0. Aufruf des Online-Update-Managers. Bedienungsanleitung Online-Update Stand Juni 2010

Ein Tool zum Konvertieren von Pegasus Mail Adressbüchern und Verteilerlisten in Novell Groupwise Adressbücher.

Aufgabenblatt 1: - Präsenzübung für die Übungen Do Mi Ausgabe Mi

Erweiterung der Selektionen

Arbeiten mit der Shell Teil 2

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.

Inhaltsverzeichnis. Trennstriche. Rechter Rand. Statuszeile. Formatzeile. Informationzeile. Ein/Aus Befehle. "Flag"-Zeichen. Sichern und Speichern.

Simple Incremental Cleaner

Wettspiele auswerten

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden?

RECHNEN MIT WORD 2010

LINUX Gesamtmitschrift

Handbuch UTA12 Sequence Control

eadmin Manual Universitätsstraße Koblenz Deutschland

Programmieren I + II Regeln der Code-Formatierung

Dateiname Name(n) und Matrikelnr. des/der Bearbeiter Tel.-Nr. und -Adresse für den Fall, dass die Diskette nicht lesbar ist.

Erweiterung AE WWS Lite Win: Module Barcode Printing

Institut fu r Informatik

-Versand an Galileo Kundenstamm. Galileo / Outlook

Teil 1: Einführung in die Shell. Was ist die Shell? Wichtige Kommandos (1) Einführung in die Shell. Grundlagen der Shell-Programmierung

Dateien verwalten (Bilder, Dokumente, Medien)

Sortieren und Filtern von Listen

Die eigene, persönliche Webseite der Fakultät mittels Imperia (CMS) pflegen

Deklarationen in C. Prof. Dr. Margarita Esponda

Computer & GNU/Linux Einführung Teil 3

Stapelverarbeitung Teil 1

Archivieren und Komprimieren, SSH

5 Tabellenanpassung. 5.1 Spaltenbreite und Zeilenhöhe Spaltenbreite verändern

TIPPS & TRICKS SAP CM Teil 3

4.2 Selbstdefinierte Matlab-Funktionen 1. Teil

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Variablen & erweiterte Aktionen nutzen

Simple Filesystem Helper

Installations- und Bedienungsanleitung für die iks Datastar Software

Zum Betrieb muss dem Programm unter Info ein temporäres Verzeichnis zugewiesen werden, wo Schreibrechte vorhanden sind.

Um Batch programmieren zu lernen, gibt es sicherlich viele Möglichkeiten, doch der Einstieg ist schnell geschafft

Installation und Benutzung AD.NAV.ZipTools

Sort n Rename. Einführung Dateien laden Dateien sortieren. Thumbnails & individuelle. Reihenfolge

Übungsklausur Programmieren / Algorithmen und Datenstrukturen 2

BAV-Remote Skript L.Pagel

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

Bildreihenfolge fixieren

Excel Tipps & Tricks Umgang mit umfangreichen Tabellen

Transkript:

S. d. I.: Programmieren in C (Hausaufgaben) xiv Hausaufgaben Hinweise: 1) Das Programm und die Dokumentation müssen auf Papier und Datenträger abgegeben werden. 2) Alle Kommandos dürfen um sinnvolle Optionen erweitert werden. Eine Option soll wahlweise durch das Zeichen "-" oder "/" eingeleitet werden. Optionsnamen können in Langform oder gekürzter Form angegeben werden, solange sie sich von anderen Optionen unterscheiden (Bsp.: -delete, -delet, -dele, -del, -de oder -d sind u.u. erlaubt und bewirken dasselbe). Groß- und Kleinbuchstaben werden nicht unterschieden. 3) Die Optionen dürfen in beliebiger Reihenfolge und beliebig oft auf der Kommandozeile stehen. Falls eine Option mehrfach vorkommt, bestimmt die am weitesten rechts stehende Angabe den Wert bzw. die Aktion. 4) Alle Kommandos unterstützen die Optionen "-help" und "-?", die eine Beschreibung der erlaubten Parameter ausgeben. 6) Dateispezifikationen bestehen aus einem optionalen Geräteteil, einem optionalen Verzeichnispfad und dem Dateinamen (inkl. Erweiterung). Beispiele: MS-DOS: e:\gross\vorles\prg_c\qsort.c UNIX: /usr/gross/vorles/prg_c/qsort.c Die Programme sollen einfach an verschiedene Konventionen angepaßt werden können. 7) Zur Lösung der Aufgben dürfen nur die MS-DOS spezifischen Größen der Dateien dosproto.h, dos_gcc.c, dos_msc.c und dos_tc.c verwendet werden, die in dieser Lehrveranstaltung vorgestellt / erarbeitet werden. Alle anderen Funktionen müssen unabhängig vom Betriebssystem / Rechner realisiert werden. Aufgabe 1 (Gruppenarbeit) Erstellen Sie ein Programm, das "Ablaufpläne" (Zeitdiagramme) erstellt. Beispiel: diese Anweisungsfolge liefert diese Graphik A1 A2 A3 PROCESSES A1 A2 A3 A1 SENDS xyz TO A2! Startmeldung *--- xyz ---> Startmeldung A2 SENDS abc TO A3 *--- abc ---> A3 SENDS ok TO A2 <--- ok ----* A2 SENDS ok TO A1 <--- ok ----* Die Breite der Graphik kann vorgegeben werden. Die Länge der Pfeile wird automatisch angepaßt und ggf. wird für die Beschriftung der Pfeile automatisch eine Abkürzung gewählt. In diesem Fall wird automatisch ein sortiertes Abkürzungsverzeichnis ausgegeben. Pro Feld werden mindestens acht Zeichen benötigt (*- a -> ).

S. d. I.: Programmieren in C (Hausaufgaben) xv Aufgabe 2 (Gruppenarbeit) Erstellen Sie ein Programm, das beliebige C-Programme (Pascal-Programme) nach den Programmierrichtlinien formatiert. Aufgabe 3 (Gruppenarbeit) Erstellen Sie ein Programm, das eine Kreuzverweistabelle für C-Programme (Pascal-Programme) erstellt. Falls das Programm mit mehreren Dateien aufgerufen wird, werden Verweise über alle Dateien aufgelöst. Bei Variablen werden der Name, der Typ, die Deklarationsstelle und alle Aufrufstellen ausgegeben und bei Funktionen der Name, der Rückgabewert, die Stelle des Prototypen, die Stelle der Definition sowie alle Aufrufstellen. Falls Variablen / Funktionen in verschiedenen Dateien vorkommen, muß auch der Dateiname berücksichtigt werden. Die Ausgabe erfolgt entweder sortiert nach Namen oder nach Dateinamen (in diesem Fall kann angegeben werden, für welche Datei(en) die Ausgabe erfolgen soll). Eine Ausgabezeile kann z.b. folgendermaßen aufgebaut sein: Variablen-/Konstanten-/Funktionsname Typ Dateiname Deklarations-/Definitionsstelle Aufrufstellen_je_Datei Aufgabe 4 (Gruppenarbeit) Erstellen Sie ein Programm, das zwei Textdateien auf Gleichheit überprüft und ggf. die Unterschiede ausgibt. Optionen: 1) /BLOCK=n Es werden n Zeilen ausgegeben. Danach wartet das Programm auf eine beliebige Eingabe, bevor es die Ausgabe fortsetzt. Default: n = 22. 2) /COMPRESS_SPACE Alle Leerzeichen und Tabulatoren werden zu einem Leerzeichen zusammengefaßt. Default: Jedes Zeichen zählt. 3) /MAX_DIFF=n Bei mehr als n Unterschieden wird das Programm abgebrochen. Default: n = 100. 4) /NOCASE Groß- und Kleinbuchstaben werden nicht unterschieden. Default: Sie werden unterschieden. 5) /NOTRIM Leerzeichen und Tabulatoren am Ende einer Zeile werden nicht ignoriert. Default: Sie werden ignoriert. 6) /NUMBER=n Spätestens nach n Zeilen muß nach einem Unterschied eine Resynchronisation der beiden Dateien erfolgen. Falls dies nicht der Fall ist, wird das Programm abgebrochen. Default: n = 25. 7) /OUTPUT=fname Ausgabe in Datei "fname" vornehmen.

S. d. I.: Programmieren in C (Hausaufgaben) xvi 8) /PARALLEL Ausgaben der Datei 1 erfolgen in den ersten 35 Spalten und die der Datei 2 in den letzten 35 Spalten einer Zeile. Die Ausgaben werden ggf. durch Leerzeilen auf die gleiche Zeilenzahl angepaßt. Default: Je unterschiedlichem Block erfolgt zuerst die Ausgabe für Datei 1 und dann die für Datei 2 über die volle Zeilenlänge. 9) /TAB_SIZE=n Tabulator entspricht n Zeichen. Default: n = 8 Aufgabe 5 (Gruppenarbeit) Erstellen Sie ein Programm, das die Sätze einer Textdatei alphabetisch sortiert (das Programm soll einfach erweitert werden können, so daß es aus mehreren Eingabedateien eine sortierte Ausgabedatei erstellt bzw. zwischen Zeichenfolgen und Zahlen unterscheiden kann). Optionen: 1) /KEY=(field,...) Definiert ein Feld, nach dem die Sätze sortiert werden sollen. Falls die Angabe fehlt, wird der ganze Satz für den Vergleich verwendet und alle Sätze werden aufsteigend sortiert. Definition des Feldes: a) ASCENDING Es wird aufsteigend sortiert. b) CASE Groß- und Kleinbuchstaben werden nicht unterschieden. Default: Sie werden unterschieden. c) DESCENDING Es wird absteigend sortiert. Default: ASCENDING. d) NUMBER:n Gibt die Rangfolge des Feldes innerhalb der Sortierfelder an. Falls die Angabe fehlt, erhält das erste Feld die Nummer 1, das zweite die Nummer 2, usw.. e) POSITION:n Der Schlüssel beginnt an Position n. Das erste Zeichen des Satzes hat die Position 1. f) SIZE:n Länge des Schlüssels in Zeichen. Max. Länge: 256 Zeichen. 2) /NODUPLICATES Duplikate sind nicht erlaubt. Falls mehrere Sätze denselben Schlüssel besitzen wird nur ein Satz in die Zielliste übernommen. Es ist nicht vorhersagbar, welcher Satz übernommen wird. Default: Duplikate sind erlaubt. 3) /STATISTICS Anzahl Sätze, Duplikate,... Default: keine Statistikausgabe. Aufgabe 6 (Gruppenarbeit) Erstellen Sie ein Programm, das Dateien über "stdout" ausgibt. Optionen: 1) /BLOCK=n Es werden n Zeilen ausgegeben. Danach wartet das Programm auf eine Eingabe, bevor es die Ausgabe fortsetzt. Default: n = 22. a) <Leertaste> Ausgabe des nächsten Blocks b) n<leertaste> Ausgabe von n weiteren Zeilen c) nb n Zeilen in Rückwärtsrichtung überspringen d) nf n Zeilen in Vorwärtsrichtung überspringen

S. d. I.: Programmieren in C (Hausaufgaben) xvii e) n/string Die Ausgabe bis zum n-ten Auftreten der Zeichenfolge "string" überspringen. Falls "string" leer ist, wird die letzte Zeichenfolge verwendet f) = Ausgabe der aktuellen Zeilennummer g) a Ausgabe dieser Datei abbrechen und mit nächster Datei fortsetzen h) q Programm beenden 2) /CONFIRM Jede Ausgabe muß vorher bestätigt werden (interaktive Auswahl einiger Dateien aus einer Menge). Default: keine Bestätigung. 3) /CUT Zeilen, die länger als 80 Zeichen sind, werden abgeschnitten. Default: Zu lange Zeilen werden gefaltet. 4) /FROM=string Die Zeichenfolge "string" wird gesucht. Die Ausgabe beginnt zwei Zeilen davor. 5) /LINES=n nur die ersten n Zeilen ausgeben 6) /NUMBER zusätzlich Zeilennummern ausgeben 7) /PAGES=(low,up) Ausgabe von Seite "low" bis Seite "up". Default: low = 1, up = 32000 8) /SHOW_ALL Nicht-druckbare Zeichen werden sichtbar gemacht (Bsp.: ^ x für <ctrl-x>). 9) /SQUEEZE mehrere aufeinanderfolgende Leerzeilen werden zu einer Leerzeile bei der Ausgabe komprimiert. 10) /EXCLUDE fname... Alle hier spezifizierten Dateien werden von der Auswahl ausgenommen. Die einzelnen Dateien werden durch Leerzeichen voneinander getrennt. "Wildcards" sind erlaubt. Diese Option muß nach der Auswahl der Dateien stehen, die ausgegeben werden sollen. Aufgabe 7 Erstellen Sie ein Analyseprogramm für C-Programme (Pascal-Programme), das die Anzahl der Kommentarzeilen, der "if"-anweisungen, usw. sowie die maximale Schachtelungstiefe zählt und als Statistik ausgibt. Aufgabe 8 Erstellen Sie ein Kopierprogramm. Falls die Dateien auf Diskette kopiert werden und die Diskette voll ist, soll gefragt werden, ob der Kopiervorgang auf einer neuen Diskette fortgesetzt werden soll. Es können sowohl reine Textdateien als auch Binärdateien kopiert werden. Mehrere Eingabedateien können durch die Zeichen "+" oder "," getrennt sein. Falls nur ein Ausgabedatei-

S. d. I.: Programmieren in C (Hausaufgaben) xviii name spezifiziert wurde, werden die Eingabedateien ggf. hintereinander kopiert (append). "Wildcard"-Zeichen sind erlaubt (entspricht dem MS-DOS Befehl "COPY"). Optionen: 1) /CONFIRM Jeder Kopiervorgang muß vorher bestätigt werden (interaktive Auswahl einiger Dateien aus einer Menge). Default: keine Bestätigung. 2) /Hidden Versteckte Dateien werden ebenfalls kopiert. Default: Sie werden nicht kopiert. 3) /LOG Der Name der kopierten Datei (inkl. Zieldateinamen) wird ausgegeben. Default: keine Ausgabe. 4) /RECURSIVE Der Befehl erstreckt sich auch auf alle Unterverzeichnisse. 5) /REPLACE Existierende Dateien werden ohne Rückfrage überschrieben. Default: Existierende Dateien werden nicht automatisch überschrieben! 6) /VERIFY Kopie und Original werden anschließend noch einmal auf Übereinstimmung überprüft. Default: Keine Überprüfung. Aufgabe 9 Erstellen Sie ein Programm zum Löschen von Dateien. Optionen: 1) /ALL Es sollen alle Dateien gelöscht werden (inkl. "read-only" und "hidden"), die der Spezifikation genügen. Default: Es werden nur "normale" Dateien gelöscht. 2) /CONFIRM Jeder Löschvorgang muß vorher bestätigt werden (interaktive Auswahl einiger Dateien aus einer Menge). Default: keine Bestätigung. 3) /HIDDEN Versteckte Dateien werden ebenfalls gelöscht. Default: Sie werden nicht gelöscht. 4) /LOG Der Name (inkl. Pfad) der gelöschten Datei wird ausgegeben. Default: keine Ausgabe 5) /READ_ONLY "Read-only" Dateien werden ebenfalls gelöscht. Default: Sie werden nicht gelöscht. 6) /RECURSIVE Der Befehl erstreckt sich auch auf alle Unterverzeichnisse.

S. d. I.: Programmieren in C (Hausaufgaben) xix Aufgabe 10 Erstellen Sie ein Programm, das Dateiverzeichnisse anzeigt. Die Ausgabe soll sortiert erfolgen, wobei die Unterverzeichnisse zuerst ausgegeben werden. Am Ende jedes Dateiverzeichnisses wird eine Statistik ausgegeben, die die Anzahl der Unterverzeichnisse, die Anzahl der Dateien und die Summe der Dateigrößen enthält. Optionen: 1) /BLOCK=n Es werden n Zeilen ausgegeben. Danach wartet das Programm auf eine beliebige Eingabe, bevor es die Ausgabe fortsetzt. Default: n = 22. 2) /COLUMNS=n Ausgabe der Dateinamen in n Spalten à 16 Zeichen. Default: n = 5. Dateiverzeichnisse werden durch die Erweiterung "<DIR>" gekennzeichnet. 3) /FULL Jede Datei (auch versteckte Dateien) in einer Zeile mit allen Informationen (inkl. Dateiattributen) ausgeben. Entspricht dem "DIR" bei MS-DOS. 4) /HIDDEN Es werden nur versteckte Dateien angezeigt. 5) /OUTPUT=fname Ausgabe in Datei "fname" vornehmen. 6) /READ_ONLY Es werden nur "read-only" Dateien angezeigt. 7) /RECURSIVE Der Befehl erstreckt sich auch auf alle Unterverzeichnisse. 8) /TOTAL Je Dateiverzeichnis wird nur die Anzahl der Unterverzeichnisse, die Anzahl der Dateien und die Summe der Dateigrößen ausgegeben. Am Ende wird dann ggf. noch die Gesamtzahl aller Unterverzeichnisse, die Gesamtzahl aller Dateien und die Summe aller Dateigrößen für das Ausgangsverzeichnis ausgegeben. 10) /TREE Es wird nur die Verzeichnisstruktur ausgegeben (ohne die Dateien). Aufgabe 11 Erstellen Sie ein Programm, das Dateien umbenennt. Optionen: 1) /ALL Es sollen alle Dateien umbenannt werden (inkl. "read-only" und "hidden"), die der Spezifikation genügen. Default: Es werden nur "normale" Datein umbenannt. 2) /CONFIRM Jede Umbenennung muß vorher bestätigt werden (interaktive Auswahl einiger Dateien aus einer Menge). Default: keine Bestätigung. 3) /HIDDEN Versteckte Dateien werden ebenfalls umbenannt. Default: Sie werden nicht umbenannt. 4) /LOG Der Name (inkl. Pfad) der umbenannten Datei (inkl. Zieldateinamen) wird ausgegeben. Default: keine Ausgabe

S. d. I.: Programmieren in C (Hausaufgaben) xx 5) /READ_ONLY "Read-only" Dateien werden ebenfalls umbenannt. Default: Sie werden nicht umbenannt. 6) /RECURSIVE Der Befehl erstreckt sich auch auf alle Unterverzeichnisse. Aufgabe 12 Erstellen Sie ein Programm, das eine Zeichenfolge in Dateien sucht. Optionen: 1) /COUNT Es wird nur die Anzahl der Zeilen ausgegeben, die die Zeichenfolge enthalten (nicht enthalten). Die Zeilen selbst werden nicht ausgegeben. 2) /EXACT genaue Übereinstimmung. Default: Groß- und Kleinbuchstaben werden nicht unterschieden. 3) /NOMATCH Ausgabe aller Zeilen, die die Zeichenfolge nicht enthalten. Default: Ausgabe der Zeilen, die die Zeichenfolge enthalten. 4) /NUMBER Ausgabe der Zeilennummer vor der Zeile. 5) /OUTPUT=fname Ausgabe in Datei "fname" vornehmen. 6) /STATUS Es wird nichts ausgegeben, sondern nur ein Status erzeugt (als Rückgabewert). Gefunden: 0, nicht gefunden: 1, Syntaxfehler: 2.