Übungen zu C++ Kapitel 3

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

Algorithmen, Datenstrukturen und Programmieren I WS 2001/2002

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

Funktionen in JavaScript

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

C++ - Kontrollstrukturen Teil 2

einlesen n > 0? Ausgabe Negative Zahl

Programmierkurs Java

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

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

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

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

Programmierstarthilfe SS 2009 Fakultät für Ingenieurwissenschaften und Informatik 4. Blatt Für die Woche vom bis zum 22.5.

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

Musterlösung zur 6. Übung

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

pue06 November 25, 2016

Bestandteile eines C++ Programms

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

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

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

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

Angewandte Mathematik und Programmierung

Funktionen in JavaScript

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

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: 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.

Einführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe

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

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

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und

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

Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek 25. März 2011

Klausur in Programmieren

Aufgaben zur Klausurvorbereitung / Musterlösung

Ein kleiner Blick auf die generische Programmierung

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

Verwenden Sie für jede Aufgabe die C++ IDE von Eclipse (pro Aufgabe ein Projekt).

Anweisungsblöcke (dazu zählen auch Programme) werden in geschweifte Klammern eingeschlossen.

Aufgabenblatt: Methoden - rekursiv

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. Nachname: Vorname: Matr.-Nr.

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

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

Funktionen und Arrays in C

Labor Software-Entwicklung 1

Programmieren in C(++) und Mathematica - Übungen 2 SS 2018

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

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

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

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

JAVA - Rekursion

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

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

Schriftlicher Test zu C++ (90 Minuten) VU Einführung ins Programmieren für TM. 22. Juni 2012

1. Die rekursive Datenstruktur Liste

Klausur in Programmieren

Programmiertechnik Übungen zu Klassen & -methoden

Kasparov versus Deep Blue. Till Tantau. Institut für Theoretische Informatik Universität zu Lübeck

Grundlegende Programmstrukturen sind Sequenzen, Schleifen und Entscheidungen.

Ausgabe:

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

Tutorial 05: Musterlösungen für die Klausuraufgaben.

Java Übung. Übung 3. Werner Gaulke. 2. Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Name: Matrikelnr : Aufgabe 1: (ca. 8 Punkte )

Algorithmen und Programmierung

C Spickzettel: Was haben wir bisher von C verwendet?

Übungen zu C++ Kapitel 1

Aufgabenblatt 4. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:

Praktische Informatik I Wintersemester 2005/2006 Abgabe: 23. November 2005

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

if ( Logischer Operator ) { } else { Anweisungen false

2. Unterprogramme und Methoden

Inhalt. 7 Rekursionen Eine unendliche Geschichte Fakultät Türme von Hanoi Dr.

Annehmende Schleife do while

Aufgaben zum C/C++ Kurs

EPROG 2.Teilprüfung. Aufgabe 1:

Grundlagen der Informatik

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

JAVA - Methoden - Rekursion

6. Zeiger Allgemeines Definition eines Zeigers

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren.

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Hochschule Darmstadt Informatik-Praktikum SS 2018 EIT Bachelor 4. Aufgabenblatt Dateiverarbeitung, Funktionen, Records

Klassenvariablen, Klassenmethoden

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Die Klasse java.lang.object. Thorsten Treffer

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

2. Variablen, Kontrollstrukturen, Rekursion

Unterprogramme. Unterprogramme

Aufgabenblatt 2. Kompetenzstufe 2. Allgemeine Informationen zum Aufgabenblatt:

Informatik I (D-ITET)

Pseudo-Programmiersprache

06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen

Klausur in Programmieren

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

Transkript:

Übungen zu C++ Kapitel 3 Aufgabe 1 Gib jeweils den Funktionskopf für die folgenden Funktionen an! a) Die Funktion Hypotenuse übernimmt zwei double-variable Seite1 und Seite2 und liefert ein double-ergebnis zurück. b) Die Funktion Minimum soll aus den drei integer-werten i1, i2, i3 den kleinsten integer- Wert zurückliefern. c) Die Funktion int2double soll aus einer integer-zahl i eine double-zahl machen. Aufgabe 2 Gib jeweils einen Funktionsprototyp an: a) Für die Funktion in 1a) b) Für die Funktion in 1b) c) Für die Funktion in 1c) Aufgabe 3 Suche in jedem der Programmausschnitte die Fehler und gib mögliche Korrekturen an. a) produkt * = c; int g(void) cout «" Ich bin im Innern der Funktion g" «endl; int h(void) cout «" Ich bin im Innern der Funktion h" «endl; b) int Summe(int x, int y) int result ; result = x + y; c) void f(double a) ; int a; cout «a «endl ; 1

d) void Produkt(void) int a,b,c, Ergebnis; cout «" Gib drei ganze Zahlen ein: "; cin» a» b» c; Ergebnis = a * b * c; cout «" Das Produkt ist " «Ergebnis; return Ergebnis; Aufgabe 4 Die mathematische Standardfunktion floor(x) liefert die größte ganze Zahl (als double Größe) zurück, die kleiner oder gleich x ist. Damit können Zahlen auf eine bestimmte Zahl von Dezimalen gerundet werden. So rundet z. B. die Anweisung y = floor (x * 100 + 0.5) /100 auf zwei Dezimalstellen. Schreibe ein C++ Programm, das vier Funktionen definiert, welche jeweils eine Zahl x runden: a) runde2ganz(zahl) b) runde2zehntel(zahl) c) runde2hundertstel(zahl) d) runde2tausendstel(zahl) Für jede eingegebene Zahl soll das Programm auf eine ganze Zahl, eine, zwei und drei Dezimalstellen runden. Aufgabe 5 a) Warum ist die rand-funktion hilfreich, um Glücksspiele zu simulieren? b) Wozu ist die srand-funktion gut? c) Warum muss man oft die Zufallszahlen von rand z. B. mit der %-Funktion modifizieren? Aufgabe 6 Schreibe Anweisungen, welche Integer-Zufallszahlen der Variablen n in den angegebenen Bereichen zuweisen. a) 1 n 2 b) 1 n 100 c) 0 n 9 d) 3 n 11 2

Aufgabe 7 Schreibe eine Funktion, welche auf dem Bildschirm ein Quadrat aus * darstellt. Die Breite des Quadrats (Anzahl der *), soll der Funktion mit dem integer Parameter Seite übergeben werden. Beispiel: Wenn Seite den Wert 4 hat, soll die Funktion folgendes Quadrat darstellen: Aufgabe 8 Schreibe eine Funktion, welche die kleinste von drei double-zahlen zurückliefert. Aufgabe 9 Eine natürliche Zahl n nennt man eine vollkommene Zahl, wenn ihre Teilersumme, die Zahl selbst ausgenommen, gleich n ist. Beispiel: 6 = 1 + 2 + 3. Schreibe eine Funktion vollkommen, die überprüft, ob eine Zahl vollkommen ist. Bestimme mit einem C++ Programm alle vollkommenen Zahlen zwischen 1 und 1000. Aufgabe 10 Primzahlen sind solche natürlichen Zahlen n 1, die nur sich selbst als Teiler haben (2, 3, 5, 7, 11, 13, 117, 19, 23, 29, 31, 37,... ). Schreibe eine Funktion, die überprüft, ob eine natürliche Zahl prim ist. Verwende diese Funktion in einem C++ Programm, das alle Primzahlen zwischen 1 und 10000 ausgibt. Hinweis: Wie viele Zahlen sind zu testen, um sicher zu gehen, dass alle Primzahlen gefunden wurden? Aufgabe 11 Schreibe eine Funktion, die eine integer Zahl mit umgekehrter Ziffernfolge zurückgibt. Beispiel: Die Zahl 7632 wird als 2367 zurückgegeben. Aufgabe 12 Schreibe eine Funktion ggt, welche den größten gemeinsamen Teiler zweier natürlicher Zahlen bestimmt. 3

Aufgabe 13 Schreibe ein Programm, das den Münzwurf simuliert. Die Münze soll hundertmal geworfen werden. Bei jedem Wurf soll Kopf bzw. Zahl ausgegeben werden. Am Schluss soll die Anzahl für Kopf und Zahl ausgegeben werden. Das Programm soll die Funktion MuenzWurf aufrufen, welcher kein Parameter übergeben wird, die aber die Zahlenwerte 0 bzw. 1 zurückliefert. Aufgabe 14 Schreibe für Grundschüler ein C++ Programm zur Einübung der Multiplikation der ganzen Zahlen 1, 2,... 9. Verwende die rand Funktion. Mache fünf Beispiele und zähle die richtigen Ergebnisse. Sind alle Ergebnisse richtig, dann lobe den Schüler mit Sehr gut, andernfalls ermuntere ihn zu weiteren Übungen mit Du brauchst noch mehr Übungen!. Aufgabe 15 Ratespiel Schreibe ein C++ Programm, das folgendes Ratespiel simuliert: Das Programm bestimmt eine Zufallszahl zwischen 1 und 1000. Der Spieler rät eine Zahl. Das Programm meldet: Bingo, Treffer, deine Zahl ist zu klein, deine Zahl ist zu groß. Solange der Spieler die Zahl nicht erraten hat, soll das Programm in einer Schleife das Ratespiel weiterführen. Aufgabe 16 Modifiziere das Ratespiel in 15) so, dass das Programm die Anzahl der Rateversuche addiert. Wenn der Spieler nicht mehr als 10 Versuche braucht, dann soll Du kennst den Trick oder hast Glück gehabt! ausgegeben werden. Wenn der Spieler mehr als 10 Versuche braucht, dann soll Du müsstest es eigentlich schneller schaffen! ausgegeben werden. Aufgabe 17 Turm von Hanoi Nach einer alten Legende standen einmal drei goldene Säulen vor einem Tempel in Hanoi. Auf einer Säule befanden sich n=100 Scheiben, jedesmal eine kleinere auf einer größeren Scheibe. Ein alter Mönch bekam die Aufgabe, den Scheibenturm von Säule 1 nach Säule2 unter folgenden Bedingungen zu transportieren: Es darf jeweils nur die oberste Scheibe von einem Turm genommen werden. Es darf niemals eine größere Scheibe auf einer kleineren liegen. Wenn der Mönch seine Arbeit erledigt habe, so berichtet die Legende weiter, dann werde das Ende der Welt kommen. Belastet mit dieser schweren Aufgabe setzte sich der alte Mönch in seinen Tempel und meditierte. Bald wurde ihm klar, dass er für seine Aufgabe auch die dritte Säule benötigte und er die Aufgabe in drei Schritten lösen kann: 4

1. Transportiere den Turm, bestehend aus den oberen 99 Scheiben (n-1) von Säule 1 nach Säule 3. 2. Transportiere die letzte, größte Scheibe von Säule 1 nach Säule 2. 3. Transportiere zum Schluss den Turm von 99 Scheiben (n-1) von Säule 3 nach Säule 2. a) Schreibe ein C++ Programm, um für den Mönch das Problem zu lösen. Verwende eine rekursive Funktion mit vier Parametern: Anzahl der zu bewegenden Scheiben Nummer der Säule, auf der die Scheiben ursprünglich liegen Nummer der Säule, auf die die Scheiben gestapelt werden sollen Nummer der Säule, welche als Zwischenlager benutzt werden soll Um z. B. drei Scheiben von Säule 1 nach Säule 3 zu transportieren, soll das Programm folgende Anweisungen ausgeben: 1 3 (d. h. trage die oberste Scheibe von Säule 1 nach Säule 3) 1 2 3 2 1 3 2 1 2 3 1 3 b) Wie lange wird der alte Mönch etwa brauchen, um seine Aufgabe zu erledigen? Aufgabe 18 Schreibe ein C++ Programm, das ein Funktionstemplate min benutzt, um die kleinste von zwei Zahlen zu bestimmen. Teste das Programm mit integer und double Zahlenpaaren. 5