Abschlußtest Programmieren 30. Juni 2017 Name: Punkte von 32: Gruppe: Haase-Di Haase-Do Stanek-Di Stanek-Do

Ähnliche Dokumente
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.

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Angewandte Mathematik und Programmierung

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik

Programmieren in C/C++ und MATLAB

Schriftlicher Test (120 Minuten) VU Einführung ins Programmieren für TM. 23. Januar 2017

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

Schriftlicher Test (120 Minuten) VU Einführung ins Programmieren für TM. 25. Jänner 2016

C++ Teil 5. Sven Groß. 12. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16

Grundlagen der Informatik 5. Kontrollstrukturen II

5. Elementare Befehle und Struktogramme

Kontrollstrukturen -- Schleifen und Wiederholungen

Programmieren in C/C++ und MATLAB

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

Hochschule Darmstadt Informatik-Praktikum SS 2018 EIT Bachelor 3. Aufgabenblatt Funktionen - Unterprogramme

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.

Schriftlicher Test (120 Minuten) VU Einführung ins Programmieren für TM. 24. Juni 2016

Polymorphismus 179. Function.h. #include <string>

Polymorphismus 44. Function.hpp. #include <string>

Objektorientierte Programmierung mit C++ SS 2007

Hochschule Darmstadt Informatik-Praktikum WS 2016/2017 WIng Bachelor 4. Aufgabenblatt Modularisierung, Funktionen, Unterprogramme

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 23

Ziele sind das Arbeiten mit Funktionen (Modularisierung, Parameterübergabe), sowie - Reihentyp (Array)

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

Grundlagen der Informatik 4. Kontrollstrukturen I

Auswahlen (Selektionen)

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

Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16

Objektorientierte Programmierung

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

Hochschule München, FK03 SS Masterstudiengang Technische Berechnung und Simulation. Programmierung von CAx-Systemen Teil 1

Vorlesungsprüfung Programmiersprache 1

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

Klausur Informatik WS 2012/13

Einführung in die Programmierung

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

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

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

Einführung in die Programmierung Wintersemester 2011/12

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5

Angewandte Mathematik und Programmierung

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

Klausur in Programmieren

Informatik B von Adrian Neumann

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

9. Vektoren. (auch Felder/array)

Schleifen in C/C++/Java

Funktionales C++ zum Ersten

C++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14

Algorithmen und Datenstrukturen

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden

1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt?

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: B 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.

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

Grundlagen der Informatik 6. Arrays I

Programmieren in C/C++ und MATLAB

Grundlagen der Informatik

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik

Schleifen in C/C++/Java

Projekt 3 Variablen und Operatoren

Herzlich willkommen!

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

Klausur: Informatik, am 13. August 2015 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Informatik für Elektrotechnik und Informationstechnik

Einführung in die Programmierung Wintersemester 2008/09

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

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

C++ Teil 7. Sven Groß. 30. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 13

Konzepte der Programmiersprachen

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

Aufgabe 1. Universität Duisburg-Essen Fachbereich Mathematik Dr. O. Rheinbach

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

Grundlagen der Informatik 2. Typen

Einführung in die Programmierung Wintersemester 2016/17

c) Zur Ausgabe der Transaktion soll statt print der Operator << verwendet werden.geben Sie die dazu nötigen Änderungen an.

Gestrige Themen. Benutzung des Compilers und Editors. Variablen. Ein- und Ausgabe mit cin, cout (C++) Verzweigungen. Schleifen

Mapra: C++ Teil 2. Felix Gruber, Sven Groß. 2. Mai 2017 IGPM. Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 2 2. Mai / 11

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Variablen, Konstanten und Datentypen

Klausur Informatik I WS 2006/2007

Programmierung und Angewandte Mathematik

virtual Wertpapier& operator=(const Wertpapier&); // VIRTUELLE ZUWEISUNG protected: static enum {wortfeldlaenge = 20}; char* name_z; double kurs; };

Inoffizielle Lösung zur Informatik I Prüfung Frühlingssemester 2010 Freitag, 13. August May 23, 2011

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

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Ausnahmebehandlung. (exceptionhandling) in C++

1 EINFÜHRUNG PROGRAMMAUFBAU IN C++

Transkript:

Abschlußtest Programmieren 30. Juni 2017 Name: Punkte von 32: Gruppe: Haase-Di Haase-Do Stanek-Di Stanek-Do 1. (6 P) Schreiben Sie die folgenden mathematischen Ausdrücke als korrekte C++- Anweisungen (Variablendeklarationen, Speicherallokierungen und Fileinkludierungen sind nicht nötig): x2 ( (a) e 2 ) (b) sin 2 (2πx) + 4y3 y (M PI ist vordefiniert) (c) Test, ob x [a, b] (d) d = min(a, b, c) ohne Verwendung der Funktion min (e) Schreiben Sie die Folgenglieder von (x n ) n N0 für n = 0,..., 10 in einen STL-Vektor x. Die Folge wird gebildet durch x k+1 = 3x k + x k 1. Zu Beginn enthält x zwei Einträge mit x(0) = 1 und x(1) = 1. Verwenden Sie die Methode push back.

2. (4 P) Welche Ausgaben liefert das folgende Programm in den zwei cout Anweisungen? Begründen Sie Ihre Antwort jeweils stichwortartig! 1 # include < iostream > 2 using namespace std ; 3 4 int myfun ( int &a, int b) 5 { 6 while (a < b) 7 { 8 a *= 2; 9 b /= 2; 10 } 11 12 return b - a; 13 } 14 15 int main () 16 { 17 int x = 2; 18 int b = 7; 19 int c = 0; 20 21 cout << x << " " << b << " " << c << endl ; 22 23 c = myfun (x, b); 24 25 cout << x << " " << b << " " << c << endl ; 26 27 return 0; 28 }

3. (4 P) Die Eulersche Zahl kann folgendermaßen berechnet werden: 1 k!. (a) Schreiben Sie eine Funktion e(const double epsilon), die die Eulersche Zahl e mit Genauigkeit epsilon berechnet, d.h. berechnen Sie n 1 für so ein n, dass k! n n 1 1 k! 1 k! epsilon gilt. Gehen Sie dabei davon aus, dass eine Funktion double fakt(const int k) zur Berechung von k! bereits deklariert und definiert wurde. Verwenden Sie diese Funktion bei Ihrer Lösung! (b) Lesen Sie eine positive Zahl epsilon von Tastatur ein. Sichern Sie die Eingabe so ab, dass nur Zahlen größer Null akzeptiert werden, d.h., die Eingabe wird solange wiederholt bis dies der Fall ist. (c) Berechnen Sie e für die eingelesene Zahl epsilon mittels Ihrer Funktion und geben Sie den erhaltenen Wert aus. Hierbei sind keine break, continue, goto erlaubt. Es darf in der Funktion nur genau ein return-statement auftreten, dieses darf sich nicht innerhalb eines Zyklus oder einer Alternative befinden.

4. (10 P = 2.5 + 2 + 2.5 + 1 + 1 + 1) Für beliebige x, y R und n N soll (x + y) n berechnet werden. Dabei gilt (x + y) n = n ( ) n x n k y k (1) k Die Binomialkoeffizienten ( n k) sollen dabei mithilfe der Rekursion ( ) ( ) ( ) n n 1 n 1 = + k = 1,..., n 1 (2) k k k 1 berechnet werden. Dabei gilt ( ) n = 0 ( ) n = n ( ) 0 = 1 0 Folgender C++-Code ist aufzuschreiben: (a) Schreiben Sie eine Funktion binom, die für gegebene n und k den Binomialkoeffizienten ( n k) rekursiv durch (2) berechnet. (b) Schreiben Sie eine Funktion binom koeff, die für gegebenes n alle Binomialkoeffizienten ( ( n 0), n ( 1),..., n n) berechnet, indem binom aufgerufen wird, und diese als STL-Vektor an das aufrufende Programm zurückgibt. (c) Schreiben Sie eine Funktion eval xy, die (x + y) n für gegebenes n, x und y mit (1) berechnet, indem binom koeff aufgerufen wird, und das Result an das aufrufende Programm zurückgibt. (d) Lesen Sie im dazugehörigen Hauptprogramm Werte für n, x und y ein; dabei muss n 0 eine ganze Zahl sein. (e) Berechnen Sie im Hauptprogramm (x + y) n mithilfe der Funktion eval xy. (f) Geben Sie anschließend x, y und n sowie Ihr Resultat mittels cout aus. Die Teile (d), (e) und (f) können auch ohne vorhandenen Code zu (a), (b) oder (c) angegeben werden. Ebenso kann (b) ohne Code zu (a) angegeben werden und (c) ohne Code zu (b) oder (a). Hierbei sind keine break, continue, goto erlaubt. Es darf in der Funktion nur genau ein return-statement auftreten, dieses darf sich nicht innerhalb eines Zyklus oder einer Alternative befinden.

5. (8 P) Deklarieren und definieren Sie eine Klasse House sodaß das unten gegebene Hauptprogramm unverändert funktioniert. In folgenden Codezeilen werden Methoden/Konstruktoren Ihrer Klasse benötigt: Zeile 12: num gibt die variable Anzahl der Fenster an. Zeile 13: Alle Fenster werden geöffnet. Zeile 15: Secure() genau dann true wenn alle Fenster geschlossen sind. Zeile 17: Kopie. Zeile 18: Anzahl der noch offenen Fenster. Zeile 19: Gesamtanzahl der Fenster. Zeile 21: Schließe das Fenster mit Nummer idx. Zeile 4: Welche Includes werden zusätzlich benötigt? Sie können die Methodendefinitionen gleich in den -deklarationen unterbringen. Pointer werden nicht benötigt und sind daher nicht erlaubt. 1 #include <iostream> // cout, endl, cin 2 #include <cstdlib> // rand() 3 //... #include?? 4 using namespace std; 5 // ---------------------- class House --------------------- 6 //... Ihre Klasse 7 // --------------------------------------------------------- 8 int main() 9 { 10 int num; cout << "Fensteranzahl: "; cin >> num; 11 12 House a(num); // Baue das Haus 13 a.openallwindows(); // Oeffne alle Fenster 14 15 while (! a.secure() ) // Solange noch mindestens ein Fenster offen ist. 16 { 17 const House b(a); 18 cout << "Noch " << b.numberopen() << "Fenster offen." << endl; 19 int idx = rand() % b.numberwindows(); // idx aus [0, Fensteranzahl[ 20 21 a.closewindow(idx); // Schliesse Fenster idx 22 } 23 24 return 0; 25 }