CEN1112 Labor Software-Entwicklung

Ähnliche Dokumente
Labor Software-Entwicklung 1

Labor Software-Entwicklung 1

CEN1112 Labor Software-Entwicklung

Mazura. h 2. Vertiefung

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

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

GI Vektoren

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3

Ausgabe:

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben

Projekt 3 Variablen und Operatoren

RO-Tutorien 15 und 16

Klausur in Programmieren

Praktikum Ingenieurinformatik. Termin 2a. Schleifen und Verzweigungen in C und mit MATLAB

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

Variablen und Datentypen

RO-Tutorien 3 / 6 / 12

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Hochschule München, FK 03 FA SS Ingenieurinformatik

Klausur: Informatik, am 11. Juli 2013 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Programmieren in C (Übungsblatt 1)

Klausur: Informatik, am 11. Juli 2013 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Programmieren in C (Übungsblatt 1)

Viel Erfolg bei der Bearbeitung der Aufgaben!

In diesen Canvas können Punkte an gültigen Koordinaten gezeichnet werden.

*** Viel Erfolg! ***

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

*** Viel Erfolg! ***

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Programmieren in C (Übungsblatt 1)

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Vorkurs Informatik WiSe 17/18

Institut für Informatik und Angewandte Kognitionswissenschaften

Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren

Vorkurs Informatik WiSe 16/17

Informatik Repetitorium SS Volker Jaedicke

Elementare Datentypen in C++

Musterklausur_2 Grundlagen Informatik

Pseudo-Programmiersprache

Lesen Sie alle Aufgabenstellungen sorgfältig durch, bevor Sie mit der Bearbeitung der ersten Aufgabe beginnen.

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Aufgabe 16. Aufgabe 17

Intensivübung zu Algorithmen und Datenstrukturen

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Probeklausur Name: (c)

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe

Übung 1 (Entwurf von Algorithmen) Beispiellösung

Nachname:... Vorname:... MatrNr.:... Klausur PR2. Erstellen Sie eine Struktur für eine Komplexe Zahl mit den Elementen real und imag vom Typ double.

Institut für Programmierung und Reaktive Systeme 20. November Programmieren I. 4. Übungsblatt

Programmierung mit C Zeiger

Klausur in Programmieren

Stephan Mechler, AUFGABE 1

einlesen n > 0? Ausgabe Negative Zahl

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

Klausur in Programmieren

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Vorbereitende Aufgaben

Vom Algorithmus zum Programm

ÜBUNGS-BLOCK 7 LÖSUNGEN

Wissenschaftliches Rechnen

Praktische Eine Einführung

Variablen und Datentypen

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Programmierkurs C++ Datenstrukturen Seite 1

Struktogramme. (6.) Ermitteln Sie den Wert von a und b aus dem Struktogramm: Struktogramme S. 1/3

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Nachname:... Vorname:... MatrNr.:... Klausur PR2. int main() { char Text[] = "Sehr geehrte Damen und Herren!"; char *tmp=text;

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Klausur in Programmieren

Musterlösung: 12. Jgst. 2. Kursarbeit Datum: Fach: Informationsverarbeitung (LK)

Name:... Matr.-Nr... Bearbeitungszeit: 120 Minuten. Lesen Sie die Aufgaben jeweils bis zum Ende durch; oft gibt es hilfreiche Hinweise!

Grundlagen der Programmierung

Primzahlen und Programmieren

Erste Java-Programme (Arrays und Schleifen)

Grundlagen der Informatik

Erste Java-Programme (Scopes und Rekursion)

Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben!

Transkript:

Dipl.-Ing. (FH) Peter Bitterlich M.Sc. Joachim Storz Fakultät für Technik STUDIENGANG MEDIZINTECHNIK CEN1112 Labor Software-Entwicklung Vorbereitungsaufgaben zu Versuch 3 C-Programmierung Vertiefung Wintersemester 2016/2017 2016-11-22

Vorbemerkungen Literatur Sie können gerne Literatur und Bücher zur Programmierung in C verwenden und mit in das Labor bringen. Insbesondere das Nachschlagewerk C Die Programmiersprache C. Ein Nachschlagewerk, Regionales Rechenzentrum für Niedersachsen / Leibnitz Universität Hannover (RRZN) ist inklusive handschriftlicher Ergänzungen sowohl im Labor als auch in der Prüfung als Hilfsmittel zugelassen. Was Sie in den Versuchen 1 und 2 gelernt haben Sie sollten vertraut und geübt sein im Umgang mit der graphischen Darstellung von Algorithmen durch Programmablaufpläne, mit der Definition und Initialisierung von Variablen in der Programmiersprache C, mit dem Umgang mit den Datentypen int, float und double mit dem Zuweisungsoperator und den mathematischen Operatoren, mit den Betriebssystemfunktionen zur Eingabe und Ausgabe und mit der mathematischen Bibliothek, mit der Blockanweisung, den Schleifen und den Auswahlanweisungen, mit der Deklaration und dem Aufruf von Funktionen und Unterprogrammen und mit der Verwendung von Funktionsparametern und Rückgabewerten Allgemeine Vorbereitung Wiederholen Sie die neuen Inhalte der Vorlesung und machen Sie sich vertraut mit Feldern (Arrays) und mit den Datentypen enum und struct mit der Eingabe und Speicherung von Text in C (Strings) mit Zeigern und deren Verwendung Lesen Sie weiterhin die Hinweise auf der Internetseite des Labors. Hinweise zu den Vorbereitungsaufgaben Die Bearbeitung der Vorbereitungsaufgaben sowie die Teilnahme an den Softwarelaboren dienen Ihrem persönlichen Einstieg in das Programmieren mit der Programmiersprache C. Hierbei ist die selbstständige Bearbeitung der jeweiligen Aufgaben eine wichtige Prüfungsvorbereitung. Versuchen Sie nicht, diese Vorbereitung durch Nachschlagen der Lösungen im Internet oder Abschreiben abzukürzen. Spätestens in der Prüfung werden Sie sich darüber freuen können, dass Sie die Aufgaben selbst gelöst haben. Die Lösungen der Vorbereitungsaufgaben sind zum Labortermin in handschriftlicher Form vorzulegen; pflegen Sie hierfür einen Ordner/Schnellhefter. Insbesondere werden Programmablaufpläne und Struktogramme, die mit anderen Hilfsmitteln als Papier, Stift und Lineal angefertigt wurden, nicht akzeptiert. Programmablaufpläne und Struktogramme sollen Algorithmen unabhängig von einer Programmiersprache veranschaulichen und keinen C Code enthalten. Die Vorbereitungsaufgaben werden als Laboraufgabe 0 gewertet und müssen vor Abnahme der restlichen Aufgaben testiert sein. Beachten Sie etwaige Rahmenbedingungen. Labor Software-Entwicklung Vorbereitungsaufgaben zu Versuch 3 Seite 2 von 6

Vorbereitungsaufgabe 1: Komplexe Datentypen Entwerfen Sie geeignete Datentypen für die unten beschriebenen Situationen und schreiben Sie jeweils den Programmcode auf, wie man diese Datentypen bzw. eine Variable eines solchen Datentyps in C definieren würde. a) Ein Punkt in der Euklidischen Ebene wird durch ein Paar von Koordinaten (x, y) beschrieben. Für ein C-Programm soll ein Datentyp definiert werden, mit dessen Hilfe sich alle notwendigen Informationen eines Punktes in einer Variablen speichern lassen. Dieser Datentyp soll sich u.a. für Funktionsparameter verwenden lassen. b) Für eine wissenschaftliche Berechnung sollen Temperaturen gemessen und gespeichert werden. Die aktuelle Temperatur wird alle 15 Minuten gemessen. Die Temperaturen werden über den Zeitraum von einem Jahr erfasst. Für ein C-Programm soll ein Datentyp definiert werden, der in der Lage ist, die Gesamtmenge dieser Daten zu speichern. c) In einem C-Programm sollen die folgenden Werte von Spielkarten gespeichert werden: Sieben, Acht, Neun, Zehn, Bube, Dame, Koenig, Ass. Damit der C-Code leichter zu lesen ist, soll ein Datentyp definiert werden, der es erlaubt, die Namen der Werte der Spielkarten direkt im C-Code zu verwenden. d) Zudem soll ein weiterer Datentyp definiert werden, mit dessen Hilfe der Zustand eines Stapels von Acht solcher Karten gespeichert werden kann (d.h. welcher Kartenwert liegt ganz oben im Stapel, welcher darunter, welcher an unterster Position). Hinweis: Es reicht jeweils die Definition der Datentypen in C. Sie brauchen kein komplettes C Programm zu schreiben. Vorbereitungsaufgabe 2: Berechnung des Mittelwertes Für eine wissenschaftliche Auswertung soll der Mittelwert von 100 Messdaten berechnet werden. Für die Speicherung der Messdaten stehen die Variablen x 0, x 1, x 2,, x 99 zur Verfügung. a) Entwerfen Sie einen Algorithmus, der zunächst die Werte für die 1000 Messdaten als Eingabe liest und dann das arithmetische Mittel dieser Werte berechnet und anschließend ausgibt. b) Zeichnen Sie Ihren Algorithmus als Programmablaufplan. c) Schreiben Sie ein C-Programm, das zunächst die Anzahl N von der Tastatur einliest. Falls der Wert von N zu groß ist, soll das Programm mit einer Fehlermeldung abbrechen. Ansonsten soll das Programm danach die Messwerte x 0, x 1, x 2,, x N-1 von der Tastatur einlesen und anschließend das arithmetische Mittel der eingegebenen Daten berechnen und auf dem Bildschirm ausgeben. d) Tipp: Verwenden Sie einen Datentyp der in der Lage ist, die Gesamtmenge dieser Daten zu speichern. Hinweis: Ihr Arbeitsergebnis der Teilaufgabe c) sollte zum Labortermin in digitaler Form vorliegen, bestenfalls als Microsoft Visual Studio 2013-Projekt. Labor Software-Entwicklung Vorbereitungsaufgaben zu Versuch 3 Seite 3 von 6

Vorbereitungsaufgabe 3: Verschlüsselung von geheimen Botschaften Unten sehen Sie den Ausschnitt aus einem C-Programm, das dazu benutzt werden soll, geheime Botschaften zu verschlüsseln. #include <stdio.h> int main() { char botschaft[100]; char c; int i = 0; // Das eingegebene Wort soll in botschaft gespeichert werden printf("bitte ein Wort eingeben: "); scanf_s(<ergänzung 1>, <Ergänzung 2>); // Es sollen nacheinander alle Zeichen von botschaft verändert werden while(botschaft[i] <Ergänzung 3>) { c = botschaft[i]; // Jedes Zeichen soll durch das in der ASCII-Tabelle unmittelbar // nachfolgende Zeichen ersetzt werden <Ergänzung 4> } botschaft[i] = c; i = i + 1; } // Hier soll das verschluesselte Wort ausgegeben werden printf(<ergänzung 5>, <Ergänzung 6>); return 0; Das Programm fordert Sie zunächst auf, ein Wort über die Tastatur einzugeben. Das Wort wird in einem String gespeichert und anschließend durch Veränderung jedes einzelnen Zeichens verschlüsselt. Danach wird das verschlüsselte Wort auf dem Bildschirm ausgegeben. a) Ergänzen Sie die Lücken und die fehlenden Stellen im C-Code, so dass das Programm fehlerfrei übersetzt werden kann. Labor Software-Entwicklung Vorbereitungsaufgaben zu Versuch 3 Seite 4 von 6

b) Überlegen Sie sich die Berechnung für die Verschlüsselung und testen Sie Ihr Programm anschließend mit den Worten aus den zwei Beispielbildern. c) Ein C-Programm verschlüsselt ein Wort, indem es jedes Zeichen des Wortes auf folgende Art und Weise ersetzt: 1. Setze c auf den ASCII-Wert (dezimal) des Zeichens 2. Falls c kleiner als 65 oder größer als 122 ist, dann weiter bei Schritt 5 3. Falls c größer als 111 ist, dann verringere c um 58 4. Erhöhe c um 10 5. Ersetze das alte Zeichen durch das ASCII-Zeichen mit Wert c Überlegen Sie sich die Berechnung der Entschlüsselung! Tipp: Verwenden Sie eine geeignete ASCII-TABELLE d) [OPTIONAL] Schreiben Sie Ihre Lösung aus b) so um das jeder Zugriff auf Felder (Arrays) ausschließlich über Zeiger erfolgt. Hinweis: Ihre Arbeits-Ergebnisse der Teilaufgaben a), b) und d) sollten zum Labortermin in digitaler Form, bestenfalls als Microsoft Visual Studio 2013-Projekt, vorliegen. Vorbereitungsaufgabe 4: Zufallszahlen Schreiben Sie ein Programm, welches Ihnen ganzzahlige Zufallszahlen im Bereich von 1 bis 9 liefert. Tipp: Schauen Sie sich noch einmal die Hinweise zu Aufgabe 5 aus Laborversuch 2 und die Funktion rand() an, und überlegen Sie sich dann, wie sich eine Zufallszahl zwischen 0 und 9 erzeugen lässt. Hinweis: Ihre Arbeitsergebnisse aus dieser Vorbereitung sollten zum Labortermin in digitaler Form vorliegen, bestenfalls Microsoft Visual Studio 2013-Projekt. Labor Software-Entwicklung Vorbereitungsaufgaben zu Versuch 3 Seite 5 von 6

Vorbereitungsaufgabe 5: Seltsame Zahlen Gegeben ist der unten stehende Algorithmus in Form eines Programmablaufplans. Der Algorithmus benutzt u.a. die Variablen x 0, x 1, x 2, x 3,, x 19. Sie sollen herausfinden, was dieser Algorithmus berechnet, bzw. welche Ausgaben erzeugt werden. Spielen Sie hierzu den Ablauf des Verfahrens Schritt für Schritt durch, indem Sie eine Münze auf das Start-Feld legen und dann für jeden Schritt die Münze entlang der Pfeile entsprechend verschieben, bis Sie auf dem Ende-Feld angekommen sind. Notieren Sie sich dabei, welche Ausgaben erfolgen und wie sich die Werte der Variablen x 0, x 1, x 2, x 3,, x 19 ändern (z.b. durch Benutzung von Bleistift und Radiergummi und der unten stehenden Tabelle). x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 13 x 14 x 15 x 16 x 17 x 18 x 19 Labor Software-Entwicklung Vorbereitungsaufgaben zu Versuch 3 Seite 6 von 6