Klausur in Programmieren

Ähnliche Dokumente
Klausur in Programmieren

Klausur in Programmieren

Klausur in Programmieren

Klausur in Programmieren

Klausur in Programmieren

Klausur in Programmieren

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.

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

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

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

Viel Erfolg bei der Bearbeitung der Aufgaben!

Zeiger, Arrays und Strings in C und C++

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

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

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

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

Einführung in die Programmierung

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

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

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

2. Programmierung in C

Angewandte Mathematik und Programmierung

Grundlagen der Informatik 6. Arrays I

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

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

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

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung

Zeiger: Der Adressoperator &

Info-2, Klausurvorbereitung, SS 2016

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

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

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

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

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

Programmieren in C/C++ und MATLAB

Objektorientiertes Programmieren für Ingenieure

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

Programmierung und Angewandte Mathematik

DAP2 Praktikum Blatt 1

Ein kleiner Blick auf die generische Programmierung

Pseudo-Programmiersprache

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

Grundlagen der Informatik 11. Zeiger

8. Referenzen und Zeiger

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

Objektorientierte Programmierung mit C++ SS 2007

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

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

2. Programmierung in C

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Grundlagen der Informatik 2. Typen

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Fachhochschule Augsburg. Ingenieurinformatik SS05 Seite 1/8

Konzepte der Programmiersprachen

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Grundlagen der Programmierung

Überladen von Operatoren

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

Klausur Grundlagen der Programmierung

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Klausur Informatik WS 2012/13

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

Auswahlen (Selektionen)

Vorlesung Objektorientierte Programmierung Klausur

Klausur Programmieren 1 SS 2017

pue13 January 28, 2017

1 Vom Problem zum Programm

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.

Kurze Einführung in die Programmiersprache C++ und in Root

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue

Informatik Repetitorium SS Volker Jaedicke

Programmierkurs C++ Datenstrukturen Seite 1

Grundlagen der Programmierung

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

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

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

Kontrollstrukturen und Funktionen in C

Praktikum Ingenieurinformatik. Termin 6. Matrizen, Zeichenketten, Zeiger

Klausur Informatik I WS 2006/2007

3D Programmierpraktikum: Einführung in C++ - Teil 1

Hydroinformatik I: Referenzen und Zeiger

einlesen n > 0? Ausgabe Negative Zahl

Zeiger und dynamischer Speicher

Arrays,Strings&Pointer in C/C++

Ein- und Ausgabe (I/O)

Java programmieren mit JavaKara. Eine Zusammenfassung in Beispielen

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

9. Vektoren. (auch Felder/array)

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Elementare Datentypen in C++

Vorlesungsprüfung Programmiersprache 1

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

PVK Informatik I 1.Teil. Grundlagen Variablen Operatoren Fallunterscheidung Schleifen Kurzschreibweise Pointer Array Dynamische Strukturen Funktionen

Hochschule Darmstadt Informatik-Praktikum SS 2017 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe

Kap 7. Funktionen und Arrays

Tag 4 Repetitorium Informatik (Java)

CEN1112 Labor Software-Entwicklung

Transkript:

Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.: Aufgabe 1 2 3 4 5 6 Summe Punkte max 12 20 18 12 23 15 100 Punkte Alle Fragen beziehen sich auf den Stoff der Vorlesung. Somit sind sie z.b. bezogen auf die Programmiersprache C++. Auch sonst gelten die Konventionen wie in unserer Vorlesung. 1. Aufgabe: Grundlagen Stellen Sie die nachfolgenden Zahlen in den jeweiligen Zahlensystemen dar (12P): a) 1010 1001 1100 1111 (binär) hex: A9 CF (1P) oktal: 124717 (3P) b) 131 (dezimal) hex: 83 (2P) binär: 1000 0011 (2P) c) 9D (hex) dezimal: 157 (3P) binär: 1001 1101 (1P) - Bitte beachten Sie auch die Rückseite - Seite 1 von 6

Klausur Programmieren Sommer 2014 2. Aufgabe: Grundlagen Schreiben Sie ein Hauptprogramm, das eine Schleife enthält und so lange reelle Werte in die Variable x von der Konsole einliest, bis der Wert 0 eingegeben wird. Bestimmen Sie innerhalb der Schleife den Funktionswert der Funktion y = x 3 + 4/x + 1 an der Stelle x und geben Sie diesen reellen Wert von y auf die Konsole aus. Schreiben Sie das Programm so, dass für den Funktionswert y immer definierte Werte berechnet werden (Hinweis: 25 / 0 ist z.b. nicht definiert). (20P) #include <iostream> using namespace std; int main() double x; do cout << Wert: ; cin >> x; if(x!= 0.0) double y = x * x * x + 4 / x + 1.0; cout << y = << y << endl; while(x!= 0.0); return 0;

3. Aufgabe: Funktionen und Schleifen a) Erklären Sie die wesentlichen Unterschiede zwischen den folgenden Funktionsaufrufen in wenigen und kurzen Sätzen (bei Romanen kann es Punktabzug geben!): (12 P) 1. void functioncall1(int iinvalue) 2. void functioncall2(int& riinoutvalue) 3. void functioncall3(int* piinoutvalue) 4. int functioncall4() zu 1. Aufruf mittels call by value, d.h. der Wert wird als Kopie übergeben zu 2. Aufruf mittels call by reference in C++-Form, d.h. die Variable selbst wird übergeben zu 3. Aufruf mittels call by reference, C-Form, d.h ein Zeiger auf eine Variable wird übergeben. Mittels Dereferenzierung des Zeigers kann dann der Variablenwert gelesen und/oder geädert werden. Auch Arrays lassen sich in dieser Form übergeben. zu 4. Die Funktion besitzt keine Parameter, sondern nur einen Rückgabewert vom Typ int. b) Welche Schleifenarten gibt es in C/C++? Geben Sie kleine Beispiele als Programmfragmente (keine Funktionen, kein Hauptprogramm, keine Ein- oder Ausgabe!). (6 P) for-schleife int x = 0; for(int li=0; li < 10; ++li) x += li; while-schleife do-while-schlife int x = 0; int x = 0; while(x < 10) do x += 2; x += 4; while(x < 10);

Klausur Programmieren Sommer 2014 4. Aufgabe: Array/Feld, Indizierung a) Erklären Sie den Unterschied zwischen einem Array und einer Struktur (kein Roman kann Punktabzug geben!). (4 P) - ein Array besteht aus eine Anzahl von Variablen/Feldern desselben Datentyps. Der Zugriff auf einzelne Felder erfolgt mit dem Index-Operator [ ]. - eine Struktur besteht aus mehreren Variablen, die einen unterschiedlichen Datentyp besitzen können. Der Zugriff erfolgt mit dem Punkt-Operator. b) Schreiben Sie eine kleine Funktion, bei der ein Polynom a vom Grad 3 in der Form eines Arrays übergeben und der Wert an der Stelle x berechnet wird (a_0 + a_1 * x 1 + a_2 * x 2 + a_3 * x 3 ). Übergeben Sie der Funktion das Polynom als Array, sowie den Wert für x. Das Ergebnis soll als reelle Zahl in Form eines Funktionswertes zurück gegeben werden. Geben Sie anschließend ein Programmfragment an, bei dem die von Ihnen definierte Funktion aufgerufen wird (d.h. eine Anweisung reicht und bitte kein Hauptprogramm oder irgendwelche Ein- oder Ausgaben schreiben!). Bibliotheken dürfen nicht verwendet werden! (8 P) double polynom(double* a, double dinx, int iinsize) double dresult = *a; double x = dinx; for(int li=1; li < iinsize; ++li) dresult = a[li] * x; x *= dinx; return dresult; // Aufruf der Funktion polynom double a[4] = 1.5, 2.1, 7.2, 4.2; double dresult = polynom(a, 2.0, 4);

5. Aufgabe: Zeichenketten a) Schreiben Sie eine Funktion strlength, die die Länge einer mit 0 terminierten Zeichenkette bestimmt. Die Zeichenkette soll als Parameter übergeben werden. Der Funktionswert soll die Länge zurückgeben (kein Hauptprogramm, keine Ein- oder Ausgabe!). (8 P) int strlength(char* acinstring) int ilen = 0; while(acinstring[ilen]!= 0) ilen++; return ilen; b) Schreiben Sie eine Funktion lower, die eine Zeichenkette acstring mit Großbuchstaben in Kleinbuchstaben ändert. Alle anderen Zeichen sollen unverändert bleiben. (kein Hauptprogramm, keine Ein- oder Ausgabe!). (15 P) lower( THIS IS AN EXAMPLE! ) this is an example! Hinweis: char coffset = a A ; void lower(char* acinstring) char coffset = a A ; int ilen = 0; while(acinstring[ilen]!= 0) char ccurrent = acinstring[ilen]; if(ccurrent >= A && ccurrent <= Z ) acinstring[ilen] = ccurrent + coffset; ilen++;

6. Aufgabe: Algorithmus Was macht die nachfolgende Funktion unknown? Was wird auf die Konsole ausgegeben? (newstr dient nur dem Anlegen einer beschreibbaren Zeichenkette) Bitte beschreiben Sie die Funktionsweise möglichst abstrakt Romane geben Abzug! (15 P) #include <iostream> using namespace std; char* newstr(char* acinstring) char* acvalue = new char[1000]; int ivalue = 0; while(acinstring[ivalue]!= 0 && ivalue < 999) acvalue[ivalue] = acinstring[ivalue]; ivalue++; acvalue[ivalue] = 0; return acvalue; int unknown(char* acinparam1, char acinparam2, char acinparam3, int& rioutvalue) rioutvalue = 0; int ivalue = 0; while(acinparam1[rioutvalue]!= 0) if(acinparam1[rioutvalue] == acinparam2) acinparam1[rioutvalue] = acinparam3; ivalue++; rioutvalue++; return ivalue; int main() int ivalue; char* acvalue = newstr("was tut dieses Programm?"); int iresult = unknown(acvalue, ' ', '_', ivalue); cout << "Ergebnis: " << acvalue << ", " << iresult << "/" << ivalue << endl; delete [] acvalue; return 0; Die Funktion unknown ersetzt in der übergebenen Zeichenkette alle Zeichen, die gleich dem acinparam2 sind durch das Zeichen in acinparam3. Der Parameter rioutvalue enthält nach dem Aufruf die Länge der Zeichenkette. Der Rückgabewert gibt an, wieviele Zeichen ersetzt wurden.