- Quadratische Gleichung
Erstellen Sie ein Programm zur Lösung der quadratischen Gleichung
basierend auf obigem Beispiel
root
- Die Koeffizienten
A,B,C von standard-input lesen
- try-catch im rufenden Programm um auf die exceptions
sinnvoll
zu reagieren.
- Idiotensichere Fakultät
Modizfizieren Sie ihre Funktionen zur Berechnung der Fakultät so, dass kein
Überlauf mehr auftreten kann, d.h. lösen Sie eine exception aus
throw ("Number too large")
wenn der Wert zu gross wird.
Hinweis: Mit
LONG_MAX oder
DBL_MAX
(definiert in limits.h bzw. float.h)
kann man die Grenzen der Zahlenbereiche abfragen. Jetzt muss man nur noch überlegen wie man's
programmiert
ohne dass zunächst die Grenze überschritten wird.
- Template
Falls Sie Templates zum erstenmal sehen sollten Sie erstmal mit
Funktionen üben:
Schreiben Sie Template Funktionen um , ,
Min(),
Abs() zu
berechnen.
- Zahlen sortieren
In der Datei
numbers.dat
finden Sie eine Liste mit 100 Fließkommazahlen.
Ein Beispiel zum Einlesen aus Datei ist in
iovec.cpp
.
- Poker simulieren
Mit
vector und dem
random_shuffle Algorithmus kann man leicht Spiele
simulieren, und damit die Wahrscheinlichkeit für bestimmte Kombinationen
abschätzen (ohne sich in den Feinheiten der Kombinatorik zu verirren).
Simulieren Sie z.B. das Pokerspiel, was ist die Wahrscheinlichkeit ein
Full-House auf die Hand zu bekommen ?
Lösungsbeispiel:
(html,
source),
- Function Object zum Dreier-Vektor sortieren
Container und Algorithmen funktionieren auch für eigene
Klassen/Objekte. Testen Sie das speichern in vector und sortieren
mit zufällig erzeugten Dreier-Vektoren:
#include <vector> // vector headers
#include <cstdlib>
#include "myvec.hxx"
using namespace std;
int main()
{
vector<My3Vector> vvec; // empty <My3Vector> vector
for ( int i = 0; i<200; i++ ) {
// create random three-vectors
My3Vector p( rand()*10./(RAND_MAX+1.0),
rand()*10./(RAND_MAX+1.0),
rand()*10./(RAND_MAX+1.0) );
// add My3Vector at the end of the vector
vvec.push_back( p );
}
// sort My3Vectors
// ...
// output
Erstmal das direkte sortieren ausprobieren, dann Function Object benutzen
und nach x oder y Komponente sortieren.
(My3Vector
Header myvec.hxx
und
code myvec.cxx.)
- Vorwahl-Map
In der Datei
vorwahl.txt
stehen alle Vorwahlen und zugehörige Orte in Deutschland.
Lesen Sie die ein, speichern Sie's in einer Map und machen damit ein kleines
Programm das zu einer gegebenen Vorwahl den Ort ausgibt, und umgekehrt.
Ein Beispiel zum Zeilen-weisen Einlesen aus Datei ist in
vorwahl.cpp
.
- Genom Projekt
Eine DNA Sequenz kann als Array von N Char Werten dargestellt
werden (N sehr gross). Das Problem ist nun wiederkehrende Strukturen zu finden,
d.h. Patterns der Länge M, wobei M fix und klein ist.
In der Datei genom.txt
finden Sie einen Abschnitt einer solchen
DNA Sequenz. Überlegen Sie Algorithmen um signifikant häufige Patterns für
vorgegebene Länge M zu finden.
Lösungsbeispiel:
(html,
source),
Human Genome Project:
html