• Keine Ergebnisse gefunden

ANGEWANDTE DATENTECHNIK (SOFTWARETECHNIK)

N/A
N/A
Protected

Academic year: 2022

Aktie "ANGEWANDTE DATENTECHNIK (SOFTWARETECHNIK)"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Universit¨ at Paderborn Fakult¨ at V (EIM) Institut f¨ ur ET & IT

ANGEWANDTE DATENTECHNIK (SOFTWARETECHNIK)

Prof. Dr.-Ing. F. Belli

WS 2012/2013

Ubung 12 ¨

Ubungen zum Fach Grundlagen der Datenverarbeitung ¨

Ubung 12, Rechner¨ ¨ ubungen am 21.1. und 22.1.2013 (Poolraum - P7.2.02.1):

Aufgabe 1:

Implementieren Sie ein C-Programm, welches entscheidet, ob der Inhalt von zwei Dateien identisch ist.

Das Programm soll dazu von der Kommandozeile die zwei Dateinamen der zu vergleichenden Dateien als Parameter ¨ubergeben bekommen (s.a. Folien 12.23 und 12.24 der Vorlesungsunterlagen).

Hinweise zur Implementierung:

• Definieren Sie Ihremain-Funktion wie folgt:int main(int argc, char *argv[])

argv[1]undargv[2]enthalten bei korrektem Aufruf des Programms die Namen der zu vergleichenden Dateien. Die Variableargcbeinhaltet die Anzahl der Elemente des Feldes,argv–argv[0]beinhaltet standardm¨aßig den Namen des Programms (z.B.Dateivergleich.exe) und wird automatisch durch die Umgebung gesetzt.

• In der Eclipse-Entwicklungsumgebung lassen sich Kommandozeilenargumente wie folgt setzen:

Men¨upunktRun ⇒Run Configurations...⇒RegisterkarteArguments (des aktuellen Projektes) Alternativ k¨onnen Sie ihr Programm von der Kommandozeile aus starten. Es sei angenommen, dass das ausf¨uhrbare ProgrammDateivergleichund die zu vergleichenden DateienDatei1.txtbzw.Datei2.txt heißen:

Windows:Dateivergleich.exe Datei1.txt Datei2.txt Linux:./Dateivergleich Datei1.txt Datei2.txt

• Offnen Sie beide Dateien mitels der Funktion¨ fopenund pr¨ufen Sie, ob das ¨Offnen erfolgreich war.

• Lesen Sie anschließend beide Dateien zeichenweise mit der Funktionfgetc (Prototyp:

int fgetc(FILE *pFilePointer)) ein und pr¨ufen jeweils, ob die aktuell gelesenen Zeichen sich un- terscheiden (analog zu Aufgabe 1 der ¨Ubung 8) – die Funktionfgetcgibt das aktuell gelesene Zeichen alsint-Wert zur¨uck.

• Das Ende einer Datei ist erreicht, wenn gilt:fgetc(pFilePointer) == EOF Aufgabe 2:

Implementieren Sie ein C-Programm, das eine frei gew¨ahlte Anzahl von Zufallszahlen in eine Datei schreibt.

Der Benutzer des Programms soll die Anzahl der Zufallszahlen sowie den Dateinamen bestimmen k¨onnen.

Lesen Sie dazu die Anzahl sowie den Dateinamen von der Konsole oder alternativ ¨uber die Parameter der main-Funktion wie in Aufgabe 1 ein. Mittels des Aufrufsfprintf(pDatei, "%d\n", rand());k¨onnen Sie eine einzelne Zufallszahl inklusive eines Zeilenvorschubs als Trennsymbol in eine Datei schreiben.

Hinweis: Die folgenden zwei Funktionen aus der Bibliothekstdlib.hsind hilfreich:

Erzeugung einer Zufallszahl:int rand ();

Umwandlung eines Strings in eine Zahl:int atoi (char* string);

Aufgabe 3:

Es ist ein Programm zu schreiben, welches eine Datei bestehend aus Zahlen wie sie beispielsweise in Aufgabe 2 erzeugt wurde, ausliest. Diese Zahlen sollen anschließend sortiert in eine andere Datei geschrieben werden.

Hinweise zur Implementierung:

• Da die Anzahl der einzulesenden Zahlen unbekannt ist, m¨ussen Sie die Zahlen zun¨achst in eine verket- tete Liste schreiben und dann die Anzahl der Elemente in der Liste z¨ahlen. Danach k¨onnen die Zahlen in ein Feld ¨ubertragen werden, das anschließend sortiert und in eine andere Datei ausgegeben wird.

• Die verkette Liste ist bereits implementiert und liegt in den DateienStack.c undStack.h vor.

• F¨ugen Sie diese beiden Dateien ihrem Eclipse-Projektverzeichnis hinzu.

• Mittels der Pr¨aprozessoranweisung#include "Stack.h"k¨onnen Sie die Stackfunktionen wie gewohnt f¨ur Ihre Implementierung benutzen.

Referenzen

ÄHNLICHE DOKUMENTE

Implementieren Sie ein einfaches C-Programm zur Zinsberechnung: Der Benutzer soll das Anfangskapital sowie einen Zinssatz eingeben. Berechnet und ausgegeben werden soll das

Das Programm gibt nun das Ergebnis auf die Konsole aus und fragt den Benutzer, ob er das Programm beenden (Eingabe des Buchstabens ’e’ oder ’E’) oder eine weitere Berechnung

Das Sortieren soll anschließend mittels des folgenden Algorithmus vorgenommen werden - hier als ein sogenannter Pseudo-Code

erg¨anzen Sie Aufgabe 2 vom ¨ ¨ Ubungsblatt 5 wie folgt: Definieren Sie ein Zeigerfeld so, dass jeweils die i-te Komponente des Zeigerfeldes auf die i-te Komponente des

Innerhalb des Funktionsrumpfes der Funktion, die die L¨osung rekursiv berechnet, sollen keine lokalen Variablen benutzt werden!.

Ist der Eingang Sensor Verarbeitung nicht gesetzt, aber der Eingang Sensor Vorrat, so soll der Ausgang Fließband ebenfalls gesetzt werden. Ist einer der beiden Sensoreing¨ange

Sequentielle Ausgabe der Werte aller Knoten auf die Konsole (rekursive Implementierung):5. void ausgabeListeRekursiv

Der Trainer diktiert Zahlen und der Schüler schreibt sie nach Gehör. Die Zahlen möglichst nur