Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters



Ähnliche Dokumente
1 Vom Problem zum Programm

Hochschule München, FK 03 FA SS Ingenieurinformatik

Access Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli inkl. zusätzlichem Übungsanhang ACC2010-UA

Datenbanken Kapitel 2

Inventur. Bemerkung. / Inventur

Datenbanken Microsoft Access 2010

Schnellanleitung: Verbuchung von Studien- und Prüfungsleistungen

Das DAAD-PORTAL. Prozess der Antragstellung in dem SAPbasierten Bewerbungsportal des DAAD.

Datenexport aus JS - Software

7DVWH.HOOQHU. Kassensystem SANYO (X&D6RIWKapitel 42

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Im Original veränderbare Word-Dateien

OrgChart 2.30 INTRANET-AUSGABE 2 DARSTELLUNGSOPTIONEN 5 SUCHFUNKTION 8 SYMBOLEDITOR 8 LOGA-VERSION 8 FEHLERBEREINIGUNGEN 9 SUCHFUNKTION 2

1. So beginnen Sie eine Kalkulation

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Informatik Repetitorium SS Volker Jaedicke

BsBanking. Nach dem Anmelden werden Ihnen alle Rechtsanwälte angezeigt. Sie können hier auch neue anlegen und vorhandene bearbeiten.

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Anleitung über den Umgang mit Schildern

Vorabversion. Schulung am Homepage Administration und Pflege

TYPO3 Tipps und Tricks

Erstellen von x-y-diagrammen in OpenOffice.calc

Dokument Lob erstellen

Bibliotheksprogramm (WebOPAC) Schritt-für-Schritt-Anleitung. ohne Ausleihe

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Um die Patientenverwaltung von Sesam zu nutzen, muss man die Patienten natürlich zuerst in die Kartei eintragen.

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

Microsoft Access 2010 Navigationsformular (Musterlösung)

Ihr Ideen- & Projektmanagement-Tool

Fakultät Angewandte Informatik Lehrprofessur für Informatik

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Kapitel 7 - Wägungen

Institut für Programmierung und Reaktive Systeme 26. April Programmieren II. 10. Übungsblatt

Anzeige von eingescannten Rechnungen

1 topologisches Sortieren

Wir arbeiten mit Zufallszahlen

Erstellen der Barcode-Etiketten:

An-/Abwesenheitsplaner Überstunden verwalten

ecaros2 - Accountmanager

Informatik Grundlagen, WS04, Seminar 13

CC Modul Leadpark. 1. Setup 1.1 Providerdaten 1.2 Einstellungen 1.3 Qualifizierungsstati 1.4 Reklamationsstati 1.5 Design 1.

Das Modul ARTIKEL-BARCODE ermöglicht den Druck von Barcode-Etiketten der EAN-Codes 8 und 13.

Klausur in Programmieren

MS Excel 2010 Kompakt

Angewandte Mathematik und Programmierung

Norddeutsche Landesverbände - Stand vom

Grundlagen der Theoretischen Informatik, SoSe 2008

Lehrer: Einschreibemethoden

Einführung in die Programmierung

NEUES BEI BUSINESSLINE WINDOWS

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Vektoren mit GeoGebra

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Einführung in die Programmierung

Erfahrungen mit Hartz IV- Empfängern

SQL - Übungen Bearbeitung der Datenbank Personal (1)

Benutzerhandbuch Moodle für Kursteilnehmer/innen am MPG

3 Wie bekommen Sie Passwortlevel 3 und einen Installateurscode?

Freischaltung eines neuen VR-NetKeys mit SecureGo

4.1 Wie bediene ich das Webportal?

Datenbank LAP - Chefexperten Detailhandel

Programmierkurs Java

Vorgehensweise bei Lastschriftverfahren

Synchronisations- Assistent

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Pfötchenhoffung e.v. Tier Manager

Anleitung für die Online-Bewerbung über LSF auf Lehrveranstaltungen aller Lehramtsstudiengänge

Ingenieurinformatik Diplom-FA (C-Programmierung)

Arbeiten mit UMLed und Delphi

Import und Export von Übergängern

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

1. Einführung Erstellung einer Teillieferung Erstellung einer Teilrechnung 6

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Kostenloser Apple-Softclient zur Nutzung von TeSign

Beispiel(unten ist der Spielfeldrand):

Gebrauchanweisung für Selbsteinträge im Veranstaltungskalender von

Massenversand Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Mediator 9 - Lernprogramm

LSF - Lehre Studium Forschung Einführung in LSF

Praktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife

CampusNet Webportal SRH Heidelberg

Um eine Person in Magnolia zu erfassen, gehen Sie wie folgt vor:

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Etikettendruck mit Works 7.0

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Fallbeispiel: Eintragen einer Behandlung

RSA-Verschlüsselung. Verfahren zur Erzeugung der beiden Schlüssel:

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

PDF-Dateien erstellen mit edocprinter PDF Pro

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Schulung Marketing Engine Thema : Einrichtung der App

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Internet online Update (Mozilla Firefox)

1 Mathematische Grundlagen

Änderungen in Version 12

DAS HALLENBUCHUNGSPROGRAMM EBUSY

Informationen zu den regionalen Startseiten

Transkript:

Prof. Dr. Ulrich Breitschuh Hochschule Anhalt(FH) Fachbereich Informatik Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters Hinweis: Die Aufgaben 3, 6 und 8 sind testatpichtige Aufgaben. Beachten Sie in diesem Zusammenhang die jeweiligen Abgabetermine.

Aufgaben für den 1. Praktikumstag Aufgabe 1: Zum Sortieren von Vektoren wird in den Bibliotheken der C-Compiler die Funktion qsort bereitgestellt. Diese Funktion sortiert die Elemente des Feldes in fallender Folge. Die Sortierfunktion kann folgenden Prototyp besitzen: void qsort (void *base,int num,int width, int (*compare)(const void *elmt1,const void *elmt2)) Die Parameter haben folgende Bedeutung: base void* Anfangsadresse des Feldes num int Zahl der Feldelemente width int Gröÿe der einzelnen Feldelemente in Byte compare Sortierfunktion In der Sortierfunktion compare wird das Kriterium für das Sortieren festgelegt. Zum Sortieren von ganzen Zahlen muÿ diese Funktion den folgenden Aufbau besitzen: int compare(const void *elmt1,const void *elmt2) { int *e1=(int *)elmt1; int *e2=(int *)elmt2; return *e1-*e2; } Für das Ergebnis der Sortierfunktion gelten folgende Festlegungen: Ergebnis negativ Null positiv Bedingung elmt1 kleiner als elmt2 elmt1 gleich elmt2 elmt1 gröÿer als elmt2 Verwenden Sie die Funktion qsort zum Sortieren eines Feldes von ganzen Zahlen in aufsteigender Folge. Testen Sie dabei das Sortieren eines kleinen Feldes mit eigenen Daten.

Aufgabe 2: Schreiben Sie eine C-Funktion dsort zum Sortieren eines Feldes eines beliebigen Datentyps unter Verwendung des Verfahrens des direkten Austauschs. Diese Funktion soll den gleichen Prototyp void dsort (void *base,int num,int width, int (*compare)(const void *elmt1,const void *elmt2)) besitzen, wie in der Aufgabe 1 beschriebene Standardfunktion qsort. In diesem Verfahren wird im gesamten Feld das kleinste Element gesucht und in die erste Position getauscht. Dann wird das verbleibende Feld wieder nach dem kleinsten Element durchsucht und getauscht. usw. Testen Sie diese Funktion mit dem gleichen Beispiel, wie in Aufgabe 1.

Aufgabe 3: Endabgabetermin: 12.01.2012 Vergleichen Sie das Rechenzeitverhalten dieser beiden Sortierverfahren beim Sortieren groÿer Felder. Erzeugen Sie dazu Felder ganzer Zahlen, die durch den Zufallszahlengenerator erzeugt werden. Dieser wird mit dem Befehl rand(); aufgerufen. Für die bessere Lesbarkeit der erzeugten Ausgaben ist es möglich den Zahlenbereich der Zufallszahlen mittels rand()%1000; z.b. auf den Bereich von 0 bis 999 zu begrenzen. Es ist auch möglich den Zufallszahlengenerator zu initialisieren, damit unterschiedliche Zahlenfolgen sortiert werden können, das kann unter Verwendung der Sekundenbruchteil der aktuellen Uhrzeit erreicht werden. Dazu muÿ folgende Anweisungsfolge im Programm enthalten sein: struct timeb tm; ftime(&tm); srand(tm.millitm); Es muÿ noch die nachfolgende Headerdatei eingebunden werden: #include<sys/timeb.h> Betrachten Sie dazu das Rechenzeitverhalten bei dsort für Vektoren mit 10000, 20000 und 40000 Elementen bzw. bei qsort für Vektoren mit 1000000, 2000000 und 4000000 Elementen. Dazu kann die Funktion ZeitDierenz, die in zeiten.c bereitgestellt wird verwendet werden. Die dazugehörigen Prototypen sind in zeiten.h festgelegt. Beide Quelltexte benden sich in meinem Downloadbereich.

Aufgaben für den 2. Praktikumstag Aufgabe 4: Schreiben Sie zwei Funktionen strrchr und strrstr, die nach dem letzten auftreten eines Zeichens bzw. einer Teilzeichenkette innerhalb einer vorgegebenen Zeichenkette suchen. Diese Funktionen sollen folgenden Protoypen besitzen: char* strrchr(char*,char); char* strrstr(char*,char*); Als Ergebnis sollen diese Funktionen den Zeiger auf das letzte Auftreten des vorgegebenen Objektes liefern. Falls keine Übereinstimmung gefunden wurde, soll der NULL-Zeiger zurückgeliefert werden.

Aufgabe 5: Schreiben Sie eine Funktion str2int, die eine Zeichenkette in eine nichtnegative ganze Zahl konvertiert. Diese Funktion soll folgenden Prototyp besitzen: int str2int(char* kette,int basis); Der Parameter basis ist Basis der Zahlendarstellung der Zahl in der Zeichenkette. Die Basis soll Werte zwischen 2 und 16 annehmen können. Zur Darstellung der Ziern sind die numerischen Ziern zugelassen und die Buchstaben a-f. Wenn ein Fehler beider Konvertierung auftritt, soll der Wert 1 als Ergebnis geliefert werden. Beispiel: Der Funktionsaufruf str2int("3a",12) soll das Ergebnis 46 liefern.

Aufgabe 6: Endabgabetermin: 19.01.2012 Schreiben Sie ein C-Programm, welches den Text einer Kopfzeile von C- Funktionen analysiert. Der Text der Kopfzeile soll als Zeichenkette eingegeben werden und untersucht werden. Als Ergebnis soll das Programm den Namen der Funktion, die Zahl der Parameter und die Parameternamen bestimmen. Beispiel: Für den Funktionsaufruf soll folgende Ausgabe erzeugt werden: Name der Funktion: funk 1.Parameter: a1 2.Parameter: b1 3.Parameter: u Zahl der Parameter: 3 Hinweis: funk(a1,b1,u) Da die Funktion scanf als Datentrennzeichen das Leerzeichen verwendet, eignet sich diese Funktion nicht zum Eingeben von Zeichenketten, welche auch Leerzeichen enthalten dürfen. Deshalb soll die Funktion gets verwendet werden, die eine Eingabezeile in eine Zeichenkette schreibt.

Aufgaben für den 3. Praktikumstag Aufgabe 7: Schreiben Sie ein C-Programm zur Eingabe von Informationen über Buchtitel. Für jedes Buch soll der Nachname und der Vorname des Autor sowie der Titel des Buches verwaltet werden. Diese Information sollen als lineare Liste gespeichert werden. Dazu kann folgende Struktur benutzt werden: typedef struct _buch { char Nachname[31]; char Vorname[31]; char Titel[81]: struct _buch *Nf; } Buch; Das Programm soll diese Liste durch Eingabe aufbauen und dann in einer binären Datei abspeichern. Informieren Sie sich dazu über die Arbeitsweise der Funktionen fwirte bzw. fread zur binären Ein- bzw. Ausgabe von Speicherblöcken. Hinweis: Diese Datei sollte als erste Inforamtion, die Zahl der Buchtitel beinhalten und dann nacheinander die einzelnen Buchtitel.

Aufgabe 8: Endabgabetermin: 25.01.2012 Schreiben Sie ein C-Programm, welches die Datei mit den Buchinformationen der Aufgabe 7 in ein Feld vom Typ Buch einliest, welches über dynamische Feldvereinbarung erzeugt wurde und dieses Feld mit Hilfe von qsort sortiert. Das Feld soll in alphabetischer Reihenfolge der Nachnamen der Autoren sortiert werden. Bei gleichen Nachnamen soll die alphabetische Reihenfolge der Vornamen verwendet werden. Die Bücher eines Autors werden alphabetisch nach dem Titel sortiert. Das Ergebnis des Sortierens ist am Bildschirm auszugeben.