Ostfalia Hochschule für angewandte Wissenschaften Fakultät Elektrotechnik Prof. Dr.-Ing. M. Haas



Ähnliche Dokumente
Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Programmierkurs Java

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

Folgeanleitung für Fachlehrer

Folgeanleitung für Klassenlehrer

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

VB.net Programmierung und Beispielprogramm für GSV

Erstellen einer digitalen Signatur für Adobe-Formulare

Lizenzen auschecken. Was ist zu tun?

OP-LOG

Anwendungsbeispiele Buchhaltung

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

Erste Schritte. Lavid-F.I.S. Faktura. Erste Schritte

Die Dateiablage Der Weg zur Dateiablage

Faktura. IT.S FAIR Faktura. Handbuch. Dauner Str.12, D Mönchengladbach, Hotline: 0900/ (1,30 /Min)

1 Voraussetzungen für Einsatz des FRITZ! LAN Assistenten

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben

Arbeiten mit dem Outlook Add-In

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

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Schnelleinstieg in die (cs) AuftragPro

Updatehinweise für die Version forma 5.5.5

Um die Installation zu starten, klicken Sie auf den Downloadlink in Ihrer (Zugangsdaten für Ihre Bestellung vom...)

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

O UTLOOK EDITION. Was ist die Outlook Edition? Installieren der Outlook Edition. Siehe auch:

Hilfe zur Urlaubsplanung und Zeiterfassung

Web-Erfassung von Veranstaltungen

How to install freesshd

Anleitungen zum Einfügen eines Partnerlinks in Ihre Website

! " # $ " % & Nicki Wruck worldwidewruck

Leichte-Sprache-Bilder

FastViewer Remote Edition 2.X

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Ihr CMS für die eigene Facebook Page - 1

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Die Cloud der Gruppe Clubmädchen

Artikel Schnittstelle über CSV

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

5.2 Neue Projekte erstellen

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis 1

1 Vom Problem zum Programm

Wie richten Sie Ihr Web Paket bei Netpage24 ein

KURZANLEITUNG MSDAS DMS SYSTEM - SILVERDAT II SCHNITTSTELLE

Sie finden im Folgenden drei Anleitungen, wie Sie sich mit dem Server der Schule verbinden können:

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Erste Schritte. Lavid-F.I.S. Agentur. Erste Schritte

Sicherheitseinstellungen... 2 Pop-up-Fenster erlauben... 3

Outlook Express 5 und Internet Explorer 4.5 Konto einrichten

Tutorial -

TeamSpeak3 Einrichten

Wann benötigen Sie eine neue Lizenz-Datei mit der Endung.pkg?

Anleitung zum Anlegen und Bearbeiten einer News in TYPO3 für

Excel Pivot-Tabellen 2010 effektiv

Alerts für Microsoft CRM 4.0

s zu Hause lesen

Kostenstellen verwalten. Tipps & Tricks

Überprüfung der digital signierten E-Rechnung

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Netzwerkeinstellungen unter Mac OS X

Version 0.3. Installation von MinGW und Eclipse CDT

Anleitung für den Euroweb-Newsletter

Bedienungsanleitung CAD-KAS Reklamationserfassung. Einen neuen Datensatz anlegen. Klicken Sie auf das + Symbol, um einen neuen Datensatz anzulegen.

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

Mediator 9 - Lernprogramm

Modul 2.2: Zugang zu Ihren Teilnehmer-Ordnern via ftp (zum Dateientransfer):

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

OSF Integrator für Btracking und Salesforce Anleitung für die Nutzer

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Download unter:

Content Management System (CMS) Manual

Schulberichtssystem. Inhaltsverzeichnis

teischl.com Software Design & Services e.u. office@teischl.com

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

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb

Eigenen Farbverlauf erstellen

Anleitung über den Umgang mit Schildern

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

ClubWebMan Veranstaltungskalender


Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Bauteilattribute als Sachdaten anzeigen

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

CVR Seniorentreff vom 04. und Serienbriefe/Seriendruck. Serienbriefe / Seriendruck

Installationsanleitungen

Schritt 1 - Registrierung und Anmeldung

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Frankieren in Microsoft Word mit dem E Porto Add in der Deutschen Post

Kurzbeschreibung S&S Arbeitszeiterfassung

-Versand an Galileo Kundenstamm. Galileo / Outlook

Tipps und Tricks zu den Updates

Klicken Sie auf Extras / Serienbriefe mit Word. Im Fenster Serienbriefe können Sie nun auswählen, an wen Sie den Serienbrief schicken möchten.

Erklärung zum Internet-Bestellschein

Arbeiten mit UMLed und Delphi

Autoresponder Unlimited 2.0

iphone-kontakte zu Exchange übertragen

Transkript:

Seite 1 von 7 Übungsaufgabe 1 (02.10.2014) In der Vorlesung entstand der Programmcode für ein C-Programm, das die folgende Anforderung erfüllen soll: Entwickeln Sie ein Programm, das fortlaufend neue Werte einer fiktiven Messgröße aus der Eingabe liest und für jeden neuen Messwert den Mittelwert dieser "Messreihe" aktualisiert. Als Rechenformel für den aktuellen Mittelwert soll gelten: aktueller Mittelwert = (aktuelle Summe der Messwerte) / (aktuelle Anzahl der Messungen) "Anzahl der Messungen" können Sie gleichsetzen mit der Anzahl wiederholter Eingaben. Das Programm wiederholt Eingabe und Mittelung endlos. Ändern Sie das, indem Sie die Bedingung "Eingabe ist negativ" als Kriterium zu Beendigung benutzen. Das Programm sollte danach auch die letzte Ausgabe ausführen, was es bisher nicht kann. Das Programm finden Sie auf dem Public Server der Ostfalia über die Webseite zu dieser Vorlesung unter https://www.ostfalia.de/cms/de/pws/haas/lehre/vorlesungen/programmierenc/beispielprogramme/ als Quelle1.cpp Um mit Firefox den Zugriff auf die vermeintlich "unsicheren Inhalte" auf dem Public Server herzustellen, klicken Sie auf das kleine Vorhängeschloss links oben in der Adresszeile, das sich dann in ein Ritterschild verwandelt:

Seite 2 von 7 Zeigen Sie auf das Ritterschild und dann auf den Abwärtspfeil rechts neben "Weiter blockieren". Wählen Sie "Schutz auf dieser Seite deaktivieren". Nun sollten Sie im Contentbereich rechts auch die Daten am Ziel des Hyperlinks sehen. Klicken Sie auf "Vorlesungsbeispiele" und speichern Sie die Datei gmw_1.cpp in einem Ordner, in dem Sie die Programmquellen für Projekte mit Ihrem Entwicklungssystem sicher aufbewahren. Legen Sie nun mit Ihrem bevorzugten Entwicklungssystem für C/C++ ein "leeres Projekt" an und fügen Sie diesem die Programmquelle gmw_1.cpp hinzu. Falls Sie noch keine Entwicklungsumgebung für C/C++ haben, können Sie z.b. Microsoft Visual C++ 2008 Express aus der folgenden Quelle herunterladen und installieren: http://e5.onthehub.com/webstore/offeringsofmajorversionlist.aspx?pmv=fe39e2d6-8ff9-e011-8e6c- f04da23e67f6&cmi_mnumain=bdba23cf-e05e-e011-971f-0030487d8897&ws=04bfd63d-b99b-e011-969d- 0030487d8897&vsro=8&JSEnabled=1 oder dem Link auf der Webseite folgen, um stattdessen Visual C++ 2012 Express zu installieren: http://www.microsoft.com/de-de/download/details.aspx?id=34673 Versuchen Sie nun, ein Zielprogramm aus dem vorhandenen Programmcode zu erstellen, bevor Sie diesen verändern.

Programmieren in C Seite 3 von 7 Für die Ein- und Ausgabe verwenden Sie die Standardfunktionen fscanf und fprintf. Ihre Beschreibung finden Sie z.b. unter der Adresse http://www.cplusplus.com/reference/cstdio/ die auch in der Ostfalia-Seite zu dieser Vorlesung verlinkt ist. Sie finden dort in der Box "Reference" den Eintrag "C library" und dort unter "<cstdio> (stdio.h)" eine Liste der Funktionen für die Ein- und Ausgabe. Erproben Sie Ihr Programm nach erfolgreicher Erstellung und prüfen Sie, ob es sich korrekt verhält. Übungsaufgabe 2 (06.10.2014) Sie haben in der Vorlesung erfahren, dass jedes ASCII-Zeichen einerseits eine ganze Zahlen mit festem Wert im Bereich 0 255 ist, andererseits auf ASCII-fähigen Terminals als Zeichen erscheint. Die Zahl ist der Index, das zugehörige Zeichen der Inhalt der ASCII-Codetabelle. Formulieren Sie ein kleines Programm, dass für einen zwischen Index 32 und 127 (dezimal) per Konsoleneingabe frei wählbaren Ausschnitt der ASCII-Tabelle sowohl Index als auch Zeichen auf der Konsole ausgibt.

Seite 4 von 7 Übungsaufgabe 3 (17.10.2014) Auf dem Netzwerkordner mit den Beispielprogrammen zur Vorlesung finden Sie das Programm mit der strukturierten Darstellung der Mittelwertberechnung. Ergänzen Sie es durch die Bearbeitung einer zweiten Messreihe, d.h. Eingabe und Mittelung einer zusätzlichen Größe. Auch die zweite Messreihe gehört in die schon vorhandene Schleife, die einer zeitlichen Abfolge der Erfassung und Auswertung neuer Werte der beiden Größen entspricht. Übungsaufgabe 4 (20.10.2014) Auf dem Netzwerkordner mit den Beispielprogrammen zur Vorlesung finden Sie nun auch die Weiterentwicklung des Programm mit der strukturierten Mittelwertberechnung. Es enthält Funktionen für Initialisierung und die Messwerteingabe und Mittelung. "Testen" Sie, ob es funktioniert wie erwartet. Erweitern Sie den Strukturdatentyp um einen eindeutigen Schlüssel (Nummer), mit dem jedes der beiden Objekte identifierbar wird. Verändern Sie die Ausgabe so, dass dem Anwender klar ist, für welche der beiden Messreihen das Programm die Eingabe anfordert. Verändern Sie schließlich die Ausgabe am Ende des Programms so, dass sie das Endergebnis der Mittelung beider Messreihen anzeigt. Übungsaufgabe 5 (28.10.2014) Dem Beispiel mwstr3.cpp, dessen Messprozessobjekte nun als Feldelemente implementiert sind, fehlt noch die richtige Laufbedingung für die Hauptschleife. Formulieren Sie die Zuweisung an die Größe app_run nun iterativ mithilfe einer for-schleife so, dass app_run solange true ist, wie für mindestens ein Messobjekt x[i] noch gilt, dass x[i].running == true ist. Ändern Sie auch die abschließende Ausgabe so, dass das Endergebnis des Mittelwerts für alle Messobjekt auf der Konsole erscheint. Übungsaufgabe 6 (03.11.2014) Im Beispielordner finden Sie mwstr5.cpp. Bei diesem Programm sind Feldlänge und Feldbearbeitung durch eine gemeinsame konstant deklarierte Variable verknüpft. Setzen Sie die Weiterentwicklung so fort, dass ein Anwender des Programms zur Laufzeit die Anzahl der Messreihen per Eingabe an der Konsole bestimmen kann, für die das Programm jeweils ein Objekt anlegt, Messwerte einliest und den Mittelwert aktualisiert. Benutzen Sie für die Anforderung von Speicher zur Laufzeit den C++ - Operator new, wie in der Vorlesung gezeigt: messreihe * x; // Zeiger auf ein beliebiges Objekt vom Typ messreihe // deklarieren x = new messreihe[wunsch_anzahl]; // Speicher für ein Feld anfordern und // Zeiger auf das erste Element richten if( x == NULL ) // Fehler behandeln else // Messwerteingaben und Mittelwerte Übungsaufgabe 7 (10.11.2014)

Seite 5 von 7 Im Beispielordner finden Sie das in der heutigen Vorlesung entwickelte Programm minmax.cpp. Im fehlt noch eine Verifikation, d.h. Starten und Erproben, für die weitere Entwicklung. Führen Sie das aus und setzen Sie dann die Entwicklung des Programms fort, indem Sie eine weitere Funktion definieren, die der Anwendung main per Konsoleneingabe beliebige Werte des Feldes liefert, bevor main die Funktion zur Bestimmung des minimalen und maximalen Werts aufruft. Halten Sie sich bei der Gestaltung des Funktionsarguments an die schon vorhandenen beiden Funktionen des Programms. Übungsaufgabe 8 (17.11.2014) Im Beispielordner finden Sie jetzt auch minmax2.cpp. Wie in der Vorlesung am 17.11. besprochen, sollte die Funktion für die Ausgabe des min- und des max-wertes anstelle wie jetzt programmiert 2 Zahlenwerte vom Typ int zu übernehmen und auszugeben dasselben mit einer Folge von N int-werten ab einer Anfangsadresse tun. Es ist dann nur noch Sache unserer Anwendung main, hier ein Feld der Länge 2 anzulegen, darin den min-wert im Element 0 und den max-wert in Element 1 zu speichern und dann den Zeiger auf das Feld zusammen mit dessen Länge im Aufruf der Funktion zu übergeben. Programmieren Sie außerdem in minmax2.cpp die Fehlerbehandlung für den Fall, dass malloc bzw. new den Pointer auf NULL zurückgibt. Dies wäre der Fall, wenn der angeforderte Speicher nicht fortlaufend adressierbar zur Verfügung stünde, oder wenn malloc eine negative Anzahl von Bytes anforderte (falscher Parameterwert). Das Programm soll in diesem Fall ein Feld fester Länge anlegen (benutzen Sie das Makro N) und dann mit dem Feld so verfahren wie bei erfolgreicher Speicheranforderung mit dem Pointer auf den angeforderten Speicher. Gestalten Sie Ihr Übungsprogramm so, dass es mit if( kein Speicher) auch nicht teilweise denselben Code ausführen muss wie mit else, abgesehen vielleicht von fprintf o.ä. Übungsaufgabe 9 (25.11.2014) Sie finden im Beispielordner die Programmquelle ppointer.cpp. Laden Sie diese herunter, erstellen Sie daraus ein Zielprogramm und probieren Sie es aus. Öffnen Sie dann mit einem einfachen Texteditor (z.b. notepad) eine neue Datei, geben Sie eine Anzahl Werte ein und speichern Sie den Inhalt in dem Ordner ab, in dem sich Ihr Zielprogramm befindet. Benennen Sie dann ppointer.cpp um und ändern Sie am Programm folgendes: 1.) main öffnet die Datei im Projektordner zum Lesen: FILE * inputfile; inputfile = fopen( "datei.txt", "r" ); if( inputfile == NULL ) // Fehler else // hier geht es weiter... 2.) main fragt nach der Eingabe für eine Anzahl Werte N, die es aus der geöffneten Datei lesen und in einem Feld von double speichern soll, übernimmt für N einen Wert per Konsoleingabe, und wenn N > 0, führt aus: Speicher reservieren für N Werte; wenn OK, wiederhole für alle N: fscanf( inputfile, "%lg", AdresseNaechsterWert ); Diese Operationen sollten Sie wenn möglich mit der Funktion gibspeicherundwerte realisieren, indem Sie deren Code entsprechend ändern und sie mit main aufrufen. Dabei ersetzen Sie AdresseNaechsterWert durch den passenden Zeigerausdruck, der auf den reservierten Speicher zeigt.

Seite 6 von 7 Es kann nun sein, dass in der Datei weniger Werte stehen als der Anwender Ihres Programms daraus lesen möchte. Diese Fall kann ein C-Programm unterscheiden mit if ( feof( inputfile ) ) break; // Dateiende ist erreicht else // hier geht es weiter. Ein geöffnete Datei wird in C wieder geschlossen, also freigegeben, mit fclose (inputfile); Programmieren Sie zum Abschluss eine Kontrollausgabe der Daten im dynamischen Feld von double. Übungsaufgabe 10 (02.12.2014) Laden Sie vom Beispielordner der Webseite zur Vorlesung die Programmquelle copydata_neu.cpp herunter. Zum Programmcode aus der Vorlesung am 1.12. habe ich für Ihr besseres Verständnis der Dateioperationen und des doppelten Zeigers Kommentare hinzugefügt. In der vorhandenen Fassung startet das Programm mit den Namen der Eingabedatei im Programmaufruf. Es verlangt dann die Anzahl der aus der Datei einzugebenden Werte per Terminaleingabe vom Anwender. Ändern Sie dies Verhalten so, dass das Programm nun ohne Anwendereingabe auskommt, indem es selbst in der neuen Funktion void bestimmeanzahl ( FILE * in, int * anzahl ); die den Referenzparameter anzahl Anzahl der Werte in der Datei in bestimmt.. Die Funktion soll die Datei als Textdatei ansehen und die darin vorhandenen Werte zählen, indem sie die Eingabe einer Zeichenkette solange wiederholt, bis das Dateiende erreicht ist, und bei jedem Lesen einen Zähler inkrementieren. Vor der Rückkehr soll die Funktion dem Ziel des Zeigers anzahl den Zähler zuweisen. Nachdem Ihr um bestimmeanzahl erweitertes Programm diese Funktion aufgerufen hat, soll es copydata aufrufen, um die Eingabe aller Werte aus der Datei und Ablage im dynamisch angeforderten Speicher auszuführen. Dabei können Sie copydata unverändert verwenden. Überzeugen Sie sich vom Funktionieren dieser Weiterentwicklung. Ändern Sie das Programm dann so, dass es in main eine Protokollierungsdatei öffnet: logfile = fopen( argv[2], "w" ); // auch dieser Dateiname aus dem Programmaufruf und ersetzen Sie nun jede Terminalausgabe durch Ausgabe in diese Datei: fprintf(logfile, "..."); // wo bisher stand fprintf(stdout, "..."); Erproben Sie das Programm und öffnen Sie die Protokollierungsdatei mit einem Texteditor: sehen Sie sich an, was das Programm dort eingetragen hat. Übungsaufgabe 10 (09.12.2014) Laden und öffnen Sie die Programmquelle copydata4.cpp auf dem WWW-Ordner mit Programmbeispielen. Sie finden dort einen Header mit sog. Makros #define..., welche die Stellen ("Bits", Flags) eines Statusworts bezeichnen und nummerieren. Das Programm soll dafür sorgen, dass im Statuswort an jeder der so definierten Stellen der logischen Wert 1 steht, wenn der zugehörige Fehler im Programmablauf eintritt. Ihre Aufgabe besteht also zunächst darin, anstelle aller Kommentare // setze entsprechendes Bit im Statuswort die richtige Setzoperation des entsprechenden Bits im Statuswort ins Programm zu schreiben. Die binäre Setzoperation habe ich in der Vorlesung am 8.12. erklärt, Sie finden Sie auch im Umdruck auf der Seite 37, Abschnitt 6.4.4 als "Set eines Bit" erklärt. Damit setzt das Programm im Statuswort grundsätzlich nur das entsprechende Bit an der Stelle bit auf im word auf 1, während an allen anderen Bits in word nichts verändert wird. Beachten Sie, dass das Statuswort in den von main aufgerufenen Funktionen des Vorlageprogramms als Referenzparameter vorkommt.

Seite 7 von 7 Vor Beendigung des Programms ruft main eine Art Meldungsfunktion namens kontrollausgabe auf. Diese soll an den Stellen mit dem Kommentar teste im if Argument entsprechendes Bit im Statuswort das Statuswort auf je ein gesetztes Bit überprüfen ("testen"), um ggf. eine passende Ausgabe auf die Konsole zu bringen. Das Testen eines Bit ist an derselben Stelle im Umdruck beschrieben wie das Set bzw. Reset. Für den Test im Argument von if reicht aber hier der vereinfachte Ausdruck status & (1 << bitnummer) also if( status & (1 << bitnummer)) // dann führe die Ausgabe aus mit der jeweils richtigen Bitnummer wie in dem zuständigen Makro #define... Erproben Sie das Programm nach erfolgreicher Erstellung mit verschiedenen Fällen: kein Parameter im Programmaufruf, falscher Dateiname, Datei ohne Inhalt, Datei mit korrektem Inhalt. Den Fall einer Datei mit einem Inhalt wie z.b. 1 2 3 4 5 abc 6 7 8 kann das Programm wie bisher nicht behandeln. Die Lösung dafür folgt am 15.12.