Informatik 1 ( ) D-MAVT F2011. Rekursion, Signaturen. Yves Brise Übungsstunde 8

Größe: px
Ab Seite anzeigen:

Download "Informatik 1 ( ) D-MAVT F2011. Rekursion, Signaturen. Yves Brise Übungsstunde 8"

Transkript

1 Informatik 1 ( ) D-MAVT F2011 Rekursion, Signaturen

2 Nachbesprechung Blatt 5 & 6 Blatt 5 Sortieren Pseudocode Vektoren Verschlüsselung Blatt 6 Zeiger, structs Listen Niederschlagsanalyse (Vorsicht int-division)

3 Initialisierung Dynamisches Feld Ein dynamisches Feld kann nicht mit geschwungenen Klammern initialisiert werden! Verwende direkten Elementzugriff, oder Konstruktoren. struct foo { ; int a, b; int main() { foo* test = new foo[3] = {{0,1,{0,2,{0,3; delete[] test; return 0; test.cpp:6: error: expected primary-expression before { token

4 Initialisierung Dynamisches Feld struct foo { ; int a, b; int main() { foo* test = new foo[3]; test[0] = {0,1; test[1] = {0,2; test[2] = {0,3; delete[] test; return 0; test.cpp:7: error: expected primary-expression before { token

5 Initialisierung Dynamisches Feld Direkter Elementzugriff struct foo { ; int a, b; int main() { foo* test = new foo[3]; test[0].a = 0; test[0].b = 1; test[1].a = 0; test[1].b = 2; test[2].a = 0; test[2].b = 3; delete[] test; return 0; OK! Aber recht umständlich...

6 Initialisierung Dynamisches Feld Direkter Elementzugriff struct foo { foo () {this->a = 0; this->b = 0; foo (int a, int b) { this->a = a; this->b = b; int a, b; ; int main() { foo* test = new foo[3]; test[0] = foo(0,1); test[1] = foo(0,2); test[2] = foo(0,3); delete[] test; return 0; Sehr komfortabel, vor allem wenn die Datentypen komplizierter werden.

7 Blatt 8, Aufgabe 1 Fibonacci Zahlen Teilaufgabe a) Definition fib(n) := 0, if n =0, 1, if n =1, fib(n 1) + fib(n 2), if n 2 Berechnung fib(2) = fib(1) + fib(0) = 1+0 = 1 Teilaufgabe b) Schaut euch die Auwertung aus a) einmal genau an...

8 Blatt 8, Aufgabe 2 Labyrinth Finden Sie einen Weg durch das Labyrith! Darstellung als char Feld, wobei X für Hindernis, S für Startpunkt, Z für Ziel und die Zeichen >,<,^,v für rechts, links, oben und unten steht. Anfangssituation Weg gefunden!

9 Blatt 8, Aufgabe 2 Das Framework Sie müssen nur die Datei labyrinth.cpp bearbeiten. Zusätzlich enthält das Verzeichnis die Datei labyrinth.map, die Karte des Labyrinths codiert. int loadlabyrinth(char *filename); void printlabyrinth(); int main(int argc, char* argv[]) { if (argc == 2) { if (!loadlabyrinth(argv[1])) { printlabyrinth(); resetlabyrinth(); return 0; Labyrith laden und ausgeben mit Kommandozeilenparameter. Alterntiv kann auch labyrinth.map als Argument an loadlabyrinth übergeben werden.

10 Blatt 8, Aufgabe 2 Die Datenstruktur struct tlab { // die wirkliche groesse des Labyrinths // diese Zahlen werden aus dem Labyrinth-File eingelesen int size_x; int size_y; // labyrinthoriginal enthaelt die original zeichen aus dem // labyrinth file. Es wird durch resetlabyrinth() in die // oeffentliche labyrinth-variable kopiert // das labyrinthoriginal hat vertauschte X und Y coordinaten! // dies macht das Einlesen einfacher char labyrinth_original[80][80]; // die "gebrauchs-version" des labyrinths. Wenn // zeichen geschrieben werden, wird diese Version veraendert char labyrinth[80][80]; lab;

11 Blatt 8, Aufgabe 2 Zeichen schreiben/lesen char zeichenanposition(int x, int y) { return lab.labyrinth[x][y]; void setzezeichenanposition(char zeichen, int x, int y) { lab.labyrinth[x][y] = zeichen; if (zeichenanposition(x,y) == 'X') {... setzezeichenanposition('s', x, y); Es wird nicht überprüft, ob die Operationen erlaubt sind. Das ist ihre Aufgabe. Zum Beispiel soll das schreiben nur in leere Felder möglich sein.

12 Blatt 8, Aufgabe 2 Die rekursive Lösung bool sucheweg(int sx, int sy, int zx, int zy) { // wir sind auf dem ziel gefunden if (sx == zx && sy == zy) { return true; // Diese Feld ist nicht leer. // Hier geht es nicht weiter. if (zeichenanposition(sx, sy)!= ' ') { return false; // versuche Schritt nach rechts setzezeichenanposition('>', sx, sy); if (sucheweg(sx+1, sy, zx, zy)) return true; // versuche Schritt nach links // versuche Schritt nach unten // versuche Schritt nach oben // nicht erfolgreich von diesem Feld aus setzezeichenanposition('.', sx, sy); // return false; Wenn wir schon am Ziel sind, können wir true zurück geben. Wenn das Startfeld nicht leer ist, können wir false zurückgeben. Danach versuchen wir alle 4 Himmelsrichtungen. Wichtig: Markiere erfolglose Felder mit. oder ähnlich, damit von da aus nicht mehr gesucht wird. Auch wichtig: Sie können annehmen, dass das Labyrinth begrenzt ist mir X.

13 Blatt 8, Aufgabe 3 Telefonbuch int main() { eintrag * buch = 0;! // Erstelle leeres Telefonbuch // Ermoeglicht dem Benutzer die naechste Aktion zu waehlen int wahl = 1; while (wahl!= 0) { // Erleutere die Wahlmoeglichkeit cout << "Was moechten Sie als naechstes tun?" << endl; cout << "0: Programmende" << endl; cout << "1: Eintrag erstellen" << endl; cout << "2: Telefonbuch ausgabe" << endl; cout << "3: Eintrag loeschen" << endl << endl; cin >> wahl; cin.ignore(); // Rufe je nach Wahl die richtige Funktion auf switch (wahl) { case 0: deletebuch(buch); break; case 1: addeintrag(buch); break; case 2: printbuch(buch); break; case 3: deleteeintrag(buch); break; default: cout << "keine gueltige Angabe" << endl; return 0; Die main Funktion hat nur zum Zweck, den Programmablauf zu bestimmen. Die eigentliche Funktionalität ist in die Fuktionen deletebuch, addeintrag, printbuch, deleteeintrag ausgelagert

14 Blatt 8, Aufgabe 3 void addeintrag(eintrag * &node); void deletebuch(eintrag * &node); void printbuch(eintrag * node); void deleteeintrag(eintrag * &node); Man beachte die Signatur mit Parameter Typ eintrag * & Traversieren der Liste notwendig void deletebuch(eintrag * &node) { eintrag * temp; // Gehe durch die verkettete Liste und loesche jeden Eintrag while (node!= 0) { temp = node; node = node->next; delete temp; Nicht vergessen, den Speicherplatz wieder freizugeben.

15 Blatt 7, Aufgabe 4 Turtle Graphics Siehe Demo!

16 Blatt 7, Aufgabe 5 Raytracing Bildebene und Objekte werden in einer 3D Darstellung modelliert. Vom Augpunkt werden dann die Schnittpunkte vieler Halbgeraden berechnet. Raytracing findet prominente Anwendung in der 3D Computergraphik.

17 Blatt 7, Aufgabe 5 Das Framework Sie müssen nur die Datei main.cpp aus dem Ordner framework bearbeiten. Die Datei framework7.zip auf der Kurshomepage enthält alles, was sie brauchen.wenn Sie alles richtig gemacht haben, dann schreibt das Programm eine Datei out.ppm. Dies ist eine Bilddatei. Sie können die.ppm Dateien mit Gimp (Windows, Linux) oder ToyViewer (OS X) anschauen. Datenstruktur für Vektoren, Farben und Strahlen typedef float[3] Vector3f; typedef Vector3f color_rgb; struct ray { Vector3f p; // Punkt Vector3f d; // Richtung ;

18 Blatt 7, Aufgabe 5 /****************************************************************************** * Funktion write_picture(color_rgb( ) * * Schreibt ein Bild(Array aus Farben) in out.ppm im PPM-Format * * Eingabeargumente: Array pic, das aus Elementen mit 3 Farben (RGB) besteht * * Rueckgabewerte: kein3e * ******************************************************************************/ void write_picture(color_rgb * pic); pic ist ein Zeiger auf ein Feld, welches das Bild darstellt (kann man eindimensional oder mehrdimensional machen). /****************************************************************************** * Funktion generate_ray() * * Generiert die den Strahl fuer den Pixel (x,y) * * Eingabeargumente: Koordinaten x, y. Kameramodel model * * Rueckgabewerte: Strahl welcher durch den Pixel verlaeuft * ******************************************************************************/ ray generate_ray(int x, int y, camera_model model); Rückgabewert ist eine Instanz von struct ray.

19 Blatt 7, Aufgabe 5 a) int main() { Vector3f pos(-4,0,1); Vector3f lookat(0,0,1); Vector3f up(0,0,1); camera_model camera; camera = init_camera(pos, lookat, up,1); color_rgb rot(1,0,0); color_rgb gruen(0,1,0); color_rgb blau(0,0,1); color_rgb gelb(1,1,0); color_rgb schwarz(0,0,0); color_rgb weiss(1,1,1); Zuerst ausprobieren ein Bild zu schreiben. Grösse des Bildes: const int res_x = 256; const int res_y = 256; color_rgb *pic =...; // Allen Bildpunkten blau zuweisen write_picture(pic); return 0;

20 Blatt 7, Aufgabe 5 b) Strahl mit Ebene schneiden. Ebene soll durch Funktion fixiert sein (xy-ebene). float int_plane(ray strahl, Vector3f &normale) { // Position der Flaeche (s. Aufgabenstellung Vector3f plane_n(0,0,1); float s=0; // Nomale ist immer die Flaechennormale normale = plane_n; // Formel (s. Aufgabenstellung) if (plane_n.dot(strahl.d) == 0) { // Schnittpunkt im unendlichen return -1e30; else { return (s-plane_n.dot(strahl.p))/plane_n.dot(strahl.d); Einzige benötigte Operation ist Vektorprodukt: Vector3f a(1,1,1); Vector3f b(1,0,0); a.dot(b); // gibt float zurück b.dot(a); // ist äquivalent

21 Blatt 7, Aufgabe 5 c) float int_sphere(ray strahl, Vector3f &normale) { // Position der Kugel Vector3f c(0,0,0.7); // Radius float r=1.2; // Vektor vom Strahlursprung zum Zentrum der Kugel Vector3f dst = strahl.p - c; // Loesen der quadratischen Gleichung // t*d + p - c ^2 - r^2 = 0 // = d ^2*t^2 +2d*(p-c)*t + p-c ^2 - r^2 = 0 // a1*t*t+b1*t+c1 // a1 = d*d = 1 // b1 = 2*d*dst // c1 = dst*dst -r*r float b1 = 2*dst.dot(strahl.d); float c1 = dst.dot(dst)-r*r; float d1 = b1*b1-4*c1; float t = d1 > 0? (- b1 - sqrt(d1))/2 : -1.1; Strahl mit Kugel schneiden. Kugel soll durch Funktion fixiert sein (c=(0,0,0), r=1.2). Normale muss berechnet werden! // Normale auf der Kugel ist der // Schnittpunkt - Zentrum normale = strahl.p + t*strahl.d - c; normale.normalize(); return t;

22 Blatt 7, Aufgabe 5 d) for(int y = 0; y < res_y; y++) for(int x = 0; x < res_x; x++) { strahl = generate_ray(x,y,camera); Endresultat: farbe = schwarz; // Hintergrund ist sehr weit weg t_closest = 1e30; t = int_sphere(strahl,normale); if (t>0.0 && t< t_closest) { // Die Kugel wird getroffen. // Die Farbe wird rot, die mit der // Beleuchtung skaliert wird. farbe = rot;//*(-1*strahl.d.dot(normale)); // AUFGABE C) farbe = rot*(-1*strahl.d.dot(normale)); // Entfernung wird gespeichert t_closest = t; t = int_plane(strahl,normale); if (t>0.00 && t< t_closest) { // Die Flaeche ist am naechsten. Farbe wird gelb farbe = gelb; // AUFGABE C) farbe = gelb*(-1*strahl.d.dot(normale)); t_closest = t; // Dem Pixel wird die Farbe zugewiesen pic[y*res_x+x] = farbe;

23 Rekursion Funktionen rufen sich selbst oder wechselseitig auf. Rekursion ist gleich mächtig wie Iteration. Abbruchbedingung wichtig Beispiel: Ackermann Funktion a(0,m) := m +1 a(n +1, 0) := a(n, 1) unsigned int a(unsigned int n, unsigned int m){ if (n == 0) return m + 1; if (m == 0) return a(n,1); return a(n, a(n + 1, m)); a(n +1,m+ 1) := a(n, a(n +1,m)) Wächst extrem schnell: a(3,13) wird auf heutigen Rechnern schon sehr lange dauern. a(4,4) grösser als die Anzahl der Atome im Uniersum.

24 Binomialkoeffizient Implementieren Sie die Funktion binom! Überlegen Sie sich mögliche Probleme und die Effizienz Ihrer Variante. A n k := n! k!(n k)! B n k := 0, if n<k, 1, if n = k or k =0, n 1 k + n 1 k 1, if n>k,k>0 C n k := 0, if n<k, 1, if n k, k =0, if n k, k > 0 n k n 1 k 1 unsigned int binom(unsigned int n, unsigned int k);

25 Binomialkoeffizient Variante A unsigned int fac(unsigned int n) { if (n == 0) return 1; return n * fac(n-1); unsigned int binom(unsigned int n, unsigned int k) { return fac(n) / fac(k) / fac(n-k); Nachteil: Die Zahlen, die als Zwischenresultate berechnet werden, sind viel grösser als das Resultat. Frühzeitiger integer-überlauf.

26 Binomialkoeffizient Variante B unsigned int binom(unsigned int n, unsigned int k) { if (n < k) return 0; if (n == k k == 0) return 1; return binom(n-1, k) + binom(n-1, k-1); Nachteil: Viele Werte werden mehrfach berechnet. Diese Rekursion ist sehr ineffizient. Verbesserung: Speichern Sie die schon berechneten Werte (Pascalsches Dreieck). Sogenanntes Dynamisches Programmieren. Dies braucht jedoch mehr Speicher...

27 Binomialkoeffizient Variante C unsigned int binom(unsigned int n, unsigned int k) { if (n < k) return 0; if (k == 0) return 1; return n * binom(n-1, k-1) / k; Vorsicht: Wir müssen zuerst multiplizieren und dann erst durch k dividieren. Ansonsten ist das Resultat sehr wahrscheinlich falsch wegen der ganzzahligen Division.

28 Prüfungsaufgabe Die Funktion kum3 soll die kumulative Summe der Argumente berechnen und zurück geben. Das erste Argument bleibt unverändert, das zweite Argument soll die Summe von a und b sein. Das dritte Argument c soll zum Ende die Summe aller Argumente zu Beginn sein. 1. Eignet sich eine gegebene Signatur für die Implementierung? 2. Falls Ja, dann implementieren Sie die entsprechende Funktion. void kum3(int * const a, int * const b, int * const c); void kum3(int a, int b, int c); void kum3(const int *a, const int *b, const int *c); void kum3(int &a, int &b, int &c);

29 Prüfungsaufgabe void kum3(int * const a, int * const b, int * const c); void kum3(int a, int b, int c); void kum3(const int *a, const int *b, const int *c); void kum3(int &a, int &b, int &c); Implementierung: void kum3(int * const a, int * const b, int * const c){ *b += *a; *c += *b; void kum3(int &a, int &b, int &c) { b += a; c += b;

Informatik 1 ( ) D-MAVT F2010. Klassen. Yves Brise Übungsstunde 9

Informatik 1 ( ) D-MAVT F2010. Klassen. Yves Brise Übungsstunde 9 Informatik 1 (251-0832-00) D-MAVT F2010 Klassen Aufgabennachschub Informatik für Mathematiker und Physiker (251-0847-00) von Bernd Gärtner gehalten im Wintersemester. http://www.ti.inf.ethz.ch/ew/courses/info1_09/

Mehr

Informatik 1 ( ) D-MAVT F2010. Rekursion, Signaturen. Yves Brise Übungsstunde 8

Informatik 1 ( ) D-MAVT F2010. Rekursion, Signaturen. Yves Brise Übungsstunde 8 Informatik 1 (251-0832-00) D-MAVT F2010 Rekursion, Signaturen Nachbesprechung Blatt 6 Aufgabe 1 - Strukturen und Zeiger Genau die Variablen angeben, die sich geändert haben. Implizite Initialisierung ergänzt

Mehr

Informatik 1 ( ) D-MAVT F2010. Funktionen. Yves Brise Übungsstunde 7

Informatik 1 ( ) D-MAVT F2010. Funktionen. Yves Brise Übungsstunde 7 Informatik 1 (251-0832-00) D-MAVT F2010 Funktionen Nachbesprechung Blatt 5, Aufgabe 1 Pseudocode im Allgemeinen gut gelöst. Vergleiche mit Musterlösung. Bubblesort Vergleiche der Reihe nach Paare im unsortierten

Mehr

Informatik 1 D-ITET Herbstsemester 2009 Übungstunde 8. Gruppe 7 ETZ F91 / 17-19h. Stefan Lienhard

Informatik 1 D-ITET Herbstsemester 2009 Übungstunde 8. Gruppe 7 ETZ F91 / 17-19h. Stefan Lienhard Informatik 1 D-ITET Herbstsemester 2009 Übungstunde 8 Gruppe 7 ETZ F91 / 17-19h Stefan Lienhard stefalie@ee.ethz.ch Übersicht (Nachbesprechung Übung 6) (Nachbesprechung Übung 7) Theorie: Rekursion Vorbesprechung

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Klausur 1. August 2008 1. Dynamische Datenstrukturen und objektorientierte Programmierung (45 Punkte) Gegeben sei eine Datenstruktur mit folgendem Aufbau struct lelem { int w;

Mehr

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. Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 6 Pkt.) a) Erklären

Mehr

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. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 4 Pkt.) Gegeben

Mehr

Informatik 1 ( ) D-MAVT F2011. Klassen. Yves Brise Übungsstunde 10

Informatik 1 ( ) D-MAVT F2011. Klassen. Yves Brise Übungsstunde 10 Informatik 1 (251-0832-00) D-MAVT F2011 Klassen Übungsbetrieb Es gibt noch eine Übung 11 (7.5 Punkte ist trotzdem die Testatgrenze) Testate bestätige ich euch per Mail Es gibt noch 3 weitere Übungstermine,

Mehr

Programmierung für Mathematik (HS13)

Programmierung für Mathematik (HS13) software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 11 1 Aufgabe: Codeverständnis 1.1 Aufgabenstellung Notieren Sie, was der folgende Code ausgeben würde, wenn er so in einer

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung

Mehr

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

Hochschule Darmstadt Informatik-Praktikum SS 2018 EIT Bachelor 3. Aufgabenblatt Funktionen - Unterprogramme Ziel ist die Aufteilung eines Programms in Funktionen und Dateien Aufgabe 3: Diese Aufgabe ist die Weiterentwicklung von Aufgabe 2. Es ist ein Programm zu erstellen, in welchem der Anwender aus einer Anzahl

Mehr

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

Hochschule Darmstadt Informatik-Praktikum WS 2016/2017 WIng Bachelor 4. Aufgabenblatt Modularisierung, Funktionen, Unterprogramme Ziele sind das Arbeiten mit Funktionen, sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 4: Diese Aufgabe basiert auf der Aufgabe 3.

Mehr

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, 13.00-14.45 Uhr Bearbeitungszeit: 105 Minuten Schalten Sie ihr Mobiltelefon aus. Bei der Klausur ist als einziges

Mehr

Praxis der Programmierung

Praxis der Programmierung Dynamische Datentypen Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Dynamische Datentypen 2 Dynamische Datentypen

Mehr

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

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Informatik 1 ( ) D-MAVT F2011. Pointer, Structs. Yves Brise Übungsstunde 6

Informatik 1 ( ) D-MAVT F2011. Pointer, Structs. Yves Brise Übungsstunde 6 Informatik 1 (251-0832-00) D-MAVT F2011 Pointer, Structs Organisatorisches Übungsstunde 20110413 Da ich abwesend bin, bitte Gruppe von David Tschirky besuchen. Mittwoch, 20110413, 13:15-15:00 Uhr, VAW

Mehr

Informatik I (D-ITET)

Informatik I (D-ITET) //009 Informatik I (D-ITET) Übungsstunde 8, 6..009 simonmayer@student.ethz.ch ETH Zürich Besprechung/Vertiefung der Vorlesung [..009] ArrayStack Ausgezeichnet Einige haben s etwas kompliziert gemacht clear()

Mehr

Informatik 1 ( ) D-MAVT F2010. Letzte Übungsstunde. Yves Brise Übungsstunde 12

Informatik 1 ( ) D-MAVT F2010. Letzte Übungsstunde. Yves Brise Übungsstunde 12 Informatik 1 (251-0832-00) D-MAVT F2010 Letzte Übungsstunde Evaluation S3 Frage zu Assistierenden INFK Anz. Der/die Assistent/in war fachlich k.ä. 0 kompetent 1 0 2 0 3 0 4 23% 3 5 77% 10 MW = 4.8 SA =

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine

Mehr

Intensivübung zu Algorithmen und Datenstrukturen

Intensivübung zu Algorithmen und Datenstrukturen Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

Klausur Informatik WS 2012/13

Klausur Informatik WS 2012/13 Klausur Informatik WS 2012/13 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweies: Voraussetzung für die Teilnahme ist das Bestehen

Mehr

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

Ziele sind das Arbeiten mit Funktionen (Modularisierung, Parameterübergabe), sowie - Reihentyp (Array) Ziele sind das Arbeiten mit Funktionen (Modularisierung, Parameterübergabe), sowie - Aufgabe 3: Diese Aufgabe baut auf der 2. Aufgabe auf und erweitert diese. Die Funktionalität der 2. Aufgabe wird also

Mehr

Informatik 1 ( ) D-MAVT F2010. Pointer, Structs, Sortieren. Yves Brise Übungsstunde 6

Informatik 1 ( ) D-MAVT F2010. Pointer, Structs, Sortieren. Yves Brise Übungsstunde 6 Informatik 1 (251-0832-00) D-MAVT F2010 Pointer, Structs, Sortieren Aufgabe 1.1 Werden die Variablen später noch gebraucht? for (double d = 13, double e = 0;...) {... Ja... dann e vorher deklarieren. In

Mehr

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

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Zeigern, sowie Records und Funktionen Aufgabe 5: Diese Aufgabe basiert auf der Aufgabe 4. Es ist ein Programm zu erstellen, in welchem der Anwender aus einer Anzahl möglicher

Mehr

Delegates. «Delegierter» Methoden Schablone Funktionszeiger. Dr. Beatrice Amrhein

Delegates. «Delegierter» Methoden Schablone Funktionszeiger. Dr. Beatrice Amrhein Delegates «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen 2 Definition 3 Definition Ein Delegat

Mehr

if ( Logischer Operator ) { } else { Anweisungen false

if ( Logischer Operator ) { } else { Anweisungen false if ( Logischer Operator ) { Anweisungen true else { Anweisungen false Bedingte Anweisungen Operatoren verknüpfen Variable zu neuen Ausdrücken, wir unterscheiden Arithmetische Operatoren Berechnung von

Mehr

Kapitel 7: Rekursion. Inhalt. Rekursion: Technik Rekursion vs. Iteration

Kapitel 7: Rekursion. Inhalt. Rekursion: Technik Rekursion vs. Iteration Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Inhalt Rekursion: Technik Prof. Dr. Günter Rudolph Fakultät

Mehr

Informatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5

Informatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5 Informatik 1 (251-0832-00) D-MAVT F2010 Schleifen, Felder Nachbesprechung Blatt 3 Aufgabe 1 ASCII... A > a Vorsicht: Lösen Sie sich von intuitiven Schlussfolgerungen. A ist nicht grösser als a, denn in

Mehr

Einführung in die Programmierung Wintersemester 2010/11

Einführung in die Programmierung Wintersemester 2010/11 Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Rekursion Inhalt Rekursion: Technik Rekursion

Mehr

Informatik B von Adrian Neumann

Informatik B von Adrian Neumann Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000

Mehr

HS Ravensburg-Weingarten Schriftlich Prüfung Programmieren

HS Ravensburg-Weingarten Schriftlich Prüfung Programmieren HS Ravensburg-Weingarten Schriftlich Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 08:00 10:00 Uhr (120 min) Aufgabenblätter 12 Seiten (einschl. Deckblatt) erreichbare Punktzahl 58 zugelassene

Mehr

9. Vektoren. (auch Felder/array)

9. Vektoren. (auch Felder/array) 9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die

Mehr

Übungen zur Vorlesung EINI (WS 2010) Blatt 11

Übungen zur Vorlesung EINI (WS 2010) Blatt 11 Martin Apel Informatik VI, GB5/R 431; Tel.: 4775 Nicola Beume Informatik XI, OH14/R 233; Tel.: 7704 Jürgen Mäter Informatik IV, GB5/R 402; Tel.: 2411 Dortmund, den 14. Januar 2011 Übungen zur Vorlesung

Mehr

DAP2 Praktikum Blatt 1

DAP2 Praktikum Blatt 1 Fakultät für Informatik Lehrstuhl 11 / Algorithm Engineering Prof. Dr. Petra Mutzel, Carsten Gutwenger Sommersemester 2009 DAP2 Praktikum Blatt 1 Ausgabe: 21. April Abgabe: 22. 24. April Kurzaufgabe 1.1

Mehr

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: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2009, 16. Juli 2009 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:

Mehr

HS Ravensburg-Weingarten Schriftlich Prüfung Programmieren

HS Ravensburg-Weingarten Schriftlich Prüfung Programmieren HS Ravensburg-Weingarten Schriftlich Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 08:00 10:00 Uhr (120 min) Aufgabenblätter 16 Seiten (einschl. Deckblatt) erreichbare Punktzahl 58 zugelassene

Mehr

Sprachkonstrukte Verzweigungen und Array-Strukturen

Sprachkonstrukte Verzweigungen und Array-Strukturen Sprachkonstrukte Verzweigungen und Array-Strukturen Dr. Beatrice Amrhein Überblick Verzweigungen o if/else o switch/case Array-Strukturen o Vektoren und Matrizen 2 Verzweigungen 3 Verzweigungen: if/else

Mehr

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

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe Aufgabe 6: Häuser verwalten - dynamisch Für ein Schneeräumungsunternehmen soll ein Programm zur Verwaltung von Häuserlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Haus die wichtigsten

Mehr

2 Programmieren in Java I noch ohne Nachbearbeitung

2 Programmieren in Java I noch ohne Nachbearbeitung 1 2 Programmieren in Java I noch ohne Nachbearbeitung 2.1 Was sind Programme? Eingabe = Verarbeitung = Ausgabe Die Eingabe kann sein Konstanten im Quelltext; Kommandozeilenparameter oder interaktive Eingabe

Mehr

Informatik I (D-ITET)

Informatik I (D-ITET) Informatik I (D-ITET) Übungsstunde 2, 5.10.2009 ETH Zürich? Übungsgruppenwechsel? Abgabe der Übungen... Bis Mo, 24:00 Theorie: Programme: per mail oder auf Papier.cpp Datei per mail Bin euch noch Demos

Mehr

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 7 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übung 5 Besprechung/Vertiefung der Vorlesung Vorbesprechung Übung 7 Aufgabe 1:

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

Mehr

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

C++ Teil 5. Sven Groß. 12. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16 C++ Teil 5 Sven Groß IGPM, RWTH Aachen 12. Nov 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 12. Nov 2014 1 / 16 Themen der letzten Vorlesung Eingabestrom, Verhalten von cin Namensräume Live Programming

Mehr

Grundlagen der Informatik 12. Strukturen

Grundlagen der Informatik 12. Strukturen 12. Strukturen Strukturen und deren Komponenten Strukturen im Projekt Dynamisch erstellte Strukturen Strukturen und Operatoren Strukturen und Funktionen Einfach verkettete Liste Grundlagen der Informatik

Mehr

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

C++ Teil 5. Sven Groß. 16. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16 C++ Teil 5 Sven Groß 16. Nov 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 16. Nov 2015 1 / 16 Themen der letzten Vorlesung Namensräume Live Programming zu A2 Gleitkommazahlen Rundungsfehler Auswirkung

Mehr

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

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16 C++ Teil 4 Sven Groß IGPM, RWTH Aachen 30. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 4 30. Apr 2015 1 / 16 Themen der letzten Vorlesung Funktionen: Definition und Aufruf Wert- und Referenzparameter,

Mehr

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

Hochschule Darmstadt Informatik-Praktikum SS 2017 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe Aufgabe 5: Bücher verwalten Für das Literaturverzeichnis einer Abschlussarbeit soll ein Programm zur Verwaltung von Bücherlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Buch die

Mehr

Probeklausur: Programmieren I

Probeklausur: Programmieren I Probeklausur: Programmieren I WS09/10 Erlaubte Hilfsmittel: keine Lösung ist auf den Klausurbögen anzufertigen. (eventuell Rückseiten nehmen) Bitte legen Sie einen Lichtbildausweis und den Studentenausweis

Mehr

C/C++-Programmierung

C/C++-Programmierung 1 C/C++-Programmierung Speicherverwaltung, 0, const Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Speicherverwaltung

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen

Mehr

Vorlesungsprüfung Programmiersprache 1

Vorlesungsprüfung Programmiersprache 1 Vorlesungsprüfung Programmiersprache 1 Termin der Prüfung: 1) Di 20.03.2018 16:15 17:00 HSB 3 2) Di 15.05.2018 16:15 17:00 HSB 3 3) Di 12.06.2018 16:15 17:00 HSB 3 Stoffgebiete: 1) Ganzzahltypen: char,

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2009/0 : Technik vs. Iteration Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund 2 Definition (einfache,

Mehr

Programmieren in C++

Programmieren in C++ Fakultät Elektronik und Infor matik Studiengang Infor matik Programmieren in C++ Vorlesung im Sommersemester 2018 Prof. Dr. habil. Christian Heinlein 2. Übungsblatt (22. März 2018) Aufgabe 2: Lange vorzeichenlose

Mehr

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit

Mehr

einlesen n > 0? Ausgabe Negative Zahl

einlesen n > 0? Ausgabe Negative Zahl 1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen

Mehr

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

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang

Mehr

Einführung in die Programmierung Wintersemester 2017/18

Einführung in die Programmierung Wintersemester 2017/18 Einführung in die Programmierung Wintersemester 2017/18 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Rekursion Inhalt Rekursion: Technik Rekursion

Mehr

Bachelorprüfung: Programmieren I

Bachelorprüfung: Programmieren I Bachelorprüfung: Programmieren I WS09/10 Erlaubte Hilfsmittel: keine Lösung ist auf den Klausurbögen anzufertigen. (eventuell Rückseiten nehmen) Bitte legen Sie einen Lichtbildausweis und den Studentenausweis

Mehr

4.2 Programmiersprache C

4.2 Programmiersprache C 4.2.1. Elementare Datentypen (signed) int, unsigned int, (signed) short (int), unsigned short (int), (signed) long (int), unsigned long (int) Elementare Datentypen für ganze Zahlen mit oder ohne Vorzeichen.

Mehr

Übung zur Vorlesung EidP (WS 2018/19) Blatt 4

Übung zur Vorlesung EidP (WS 2018/19) Blatt 4 Lutz Oettershagen Jurij Kuzmic Dortmund, den 8. November 2018 Übung zur Vorlesung EidP (WS 2018/19) Blatt 4 Block gelb Es können 4 Punkte erreicht werden. Abgabedatum: 15. November 2018, 2:59 Uhr Hinweise

Mehr

Wenn... dann... if (condition) statement. if (kontostand < 0) System.out.println("Oops..."); false. condition. true. statement

Wenn... dann... if (condition) statement. if (kontostand < 0) System.out.println(Oops...); false. condition. true. statement Wenn... dann... if (condition) statement condition false true statement if (kontostand < 0) System.out.println("Oops..."); 31 ... sonst... if (condition) statement1 else statement2 condition false true

Mehr

Klausur Programmieren 2 SS 2016

Klausur Programmieren 2 SS 2016 Klausur Programmieren 2 SS 2016 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweise: Formulieren Sie Ihre Lösungen auf dem Aufgabenblatt

Mehr

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

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik Seite 1 von 7 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 4 Pkt.) Gegeben

Mehr

Arrays (Felder/Vektoren)

Arrays (Felder/Vektoren) Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff

Mehr

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

Inoffizielle Lösung zur Informatik I Prüfung Frühlingssemester 2010 Freitag, 13. August May 23, 2011 Inoffizielle Lösung zur Informatik I Prüfung Frühlingssemester 2010 Freitag, 13. August 2010 May 23, 2011 Informatik I, FS 2010, 1. Vordiplom Aufgabe 3 double sqrt(double s) double x_old,x_new; x_n initalisieren

Mehr

Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom bis zum 4.6.

Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom bis zum 4.6. Programmierstarthilfe SS 2010 Fakultät für Ingenieurwissenschaften und Informatik 6. Blatt Für die Woche vom 31.5. bis zum 4.6.2010 (KW 22) Organisatorisches Diese Woche führen wir Methoden ein und behandeln

Mehr

Funktionen: Rückgabewert

Funktionen: Rückgabewert Funktionen: Rückgabewert Jede Funktion in C++ (außer Konstruktoren und Destruktoren siehe später) MUSS einen Rückgabewert-Typ vereinbaren. Gibt sie nichts zurück, muss der Rückgabetyp void sein. Jede return-anweisung

Mehr

Lösungen Übung 5. Programmieren in C++ 1. Aufgabe. #include <iostream.h> #include <stdarg.h>

Lösungen Übung 5. Programmieren in C++ 1. Aufgabe. #include <iostream.h> #include <stdarg.h> Lösungen Übung 5 1. Aufgabe #include int max(int anzarg, int a, int b,...) // Hilfsvariable für variable Parameter va_list argumente; va_start(argumente,b); // "b" letzter Parameter der Funktion,

Mehr

Probeklausur Name: (c)

Probeklausur Name: (c) Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume

Mehr

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

Hochschule Darmstadt Informatik-Praktikum WS 2017/2018 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe Aufgabe 5: Häuser verwalten Für ein Schneeräumungsunternehmen soll ein Programm zur Verwaltung von Häuserlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Haus die wichtigsten Informationen

Mehr

Einführung in die Programmierung Wintersemester 2011/12

Einführung in die Programmierung Wintersemester 2011/12 Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while

Mehr

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

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

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

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 15 Pkt.) Was liefert

Mehr

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!

Mehr

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

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe. Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende

Mehr

Kontrollfragen Mikrocontroller Programmiersprache C H1203 Felix Rohrer

Kontrollfragen Mikrocontroller Programmiersprache C H1203 Felix Rohrer Block 1 1. Welcher Wert hat w? int w = 034; 28 (Dezimal) 034 wird als Octal interpretiert 34oct = 28dec 2. Wie lauten die Ergebnisse? unsigned int a = 3, b = 5, c = 7; unsigned int x, y, z; x = a == 3;

Mehr

Annehmende Schleife do while

Annehmende Schleife do while Annehmende Schleife do while Schleife mit nachfolgender Bedingungsprüfung: annehmende Schleife B S Mit B wird eine Bedingung (logischer Ausdruck) bezeichnet, S ist ein Strukturblock. Zuerst wird S ausgeführt,

Mehr

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

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon

Mehr

Informatik. Strukturen und Aufzählungstypen. Vorlesung

Informatik. Strukturen und Aufzählungstypen. Vorlesung Informatik Vorlesung 06 Strukturen und Aufzählungstypen 03. Dezember 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Datentypen Die bisher benutzten Datentypen waren

Mehr

Zeiger und dynamischer Speicher

Zeiger und dynamischer Speicher Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Zuletzt aktualisiert: 09.12.2013, 07:49 Uhr

Mehr

Vorsemesterkurs Informatik Übungsaufgaben. Tag 4a - Python

Vorsemesterkurs Informatik Übungsaufgaben. Tag 4a - Python Vorsemesterkurs Informatik Übungsaufgaben Tag 4a - Python Aufgabe 1: Listen Mache dich im Python-Interpreter mit dem Umgang mit Listen vertraut. Kapitel 2.6 im Skript (s.40) enthält nützliche Informationen.

Mehr

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)

Tag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Methoden Deklaration

Mehr

Informatik 1 ( ) D-MAVT F2010. Kontrollanweisungen 1, ASCII. Yves Brise Übungsstunde 3

Informatik 1 ( ) D-MAVT F2010. Kontrollanweisungen 1, ASCII. Yves Brise Übungsstunde 3 Informatik 1 (251-0832-00) D-MAVT F2010 Kontrollanweisungen 1, ASCII Inhalt Ziele: Prüfungsaufgabe Festigung & Repetition Kontrollstrukturen Bemerkung zu Übungsabgabe: Wenn möglich die Zeilenlänge in Dateien

Mehr

Dynamische Datentypen

Dynamische Datentypen Dynamische Datentypen Tupel und Folgen o Wertebereich eines Structs / einer Klasse: T1 T2... Tk Werte sind k-tupel Tupel und Folgen o Wertebereich eines Structs / einer Klasse: T1 T2... Tk Werte sind k-tupel

Mehr

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

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems 4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um

Mehr

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

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5 Zentrum für Angewandte Informatik Köln Arbeitsgruppe Faigle / Schrader Universität zu Köln Lösungen zum Übungsblatt 3 Programmierkurs C++ Nils Eissfeldt und Jürgen Gräfe. November 001 Aufgabe 5 Innerhalb

Mehr

Informatik I (D-ITET)

Informatik I (D-ITET) Ablauf Informatik I (D-ITET) Übungsstunde 5, 26.10.2009 simonmayer@student.ethz.ch ETH Zürich Nachbesprechung Übung 3 Besprechung/Vertiefung der Vorlesung [21.10.2009] Vorbesprechung Übung 5 2.c) Test

Mehr

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente

Mehr

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

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 7. Funktionen Einleitung Nach dem Prinzip Divide and Conquer bietet es sich an, größere Aufgaben in kleinere Teile zu unterteilen. Anweisungsblöcke,

Mehr