Christoph Ott Institut für Angewandte Informationsverarbeitung 27. August 2008
Blatt 3


Uni Logo



WiMa-Praktikum/ Programmier-Praktikum (SS 2008)
Submit-Übungsaufgaben



Submit-Frist bis: Donnerstag 28. August 2008 9:15 Uhr

6 Potenzfunktion überladen, Defaultargumente und der Argumentvektor

Schreibt ein Programm power.cpp, das die Potenz $a^b$ zweier Zahlen $a$ und $b$ berechnet. Hierzu soll eine Funktion power geschrieben werden, die eine reellwertige Basis und einen ganzzahligen Exponenten entgegennimmt. In allen Fällen, in denen nur ein Argument übergeben wird, soll dieses als Basis betrachtet werden. Der Exponent soll in diesem Fall $2$ betragen. Für die Potenzberechnung gilt Folgendes:
  1. Die Potenz $x^0$ ist für eine beliebige Zahl $x$ als $1.0$ definiert.
  2. Für einen negativen Exponenten $n$ ist die Potenz $x^n$ als $(1/x)^{-n}$ definiert.
  3. Die Potenz $0^n$ für $n>0$ ergibt stets $0.0$.
  4. Die Potenz $0^n$ ist für $n<0$ nicht definiert. In diesem Fall sollte der Wert HUGE_VAL zurückgegeben werden. Diese Konstante ist in cmath.h definiert und wird in der Regel zurückgeliefert, wenn das Ergebnis zu groß für double ist.
Schreibt nun noch eine zweite Methode power, die zwei reellwertige Werte entgegennimmt und das Ergebnis der in <cmath> definierten Funktion pow zurückliefert.

Damit Eure Einreichung erfolgreich ist, müssen außerdem folgende Vorgaben erfüllt sein:

7 Quadratische Gleichungen lösen

Schreibt ein Programm quadgl.cpp, das die (reellen) Lösungen einer quadratischer Gleichung der Form $ax^2 + bx + c = 0$ berechnet. Für quadratische Gleichungen dieser Form gilt Folgendes: Euer Programm soll die Parameter $a$, $b$ und $c$ von der Standardeingabe einlesen und diese zusammen mit zwei Referenzen auf double-Variablen einer Funktion übergeben. Diese Funktion soll nichts zurückliefern, sondern lediglich die referenzierten Variablen verändern. Euer Hauptprogramm soll abschließend alle Lösungen (entweder zwei oder keine) am Bildschirm (mit 6 signifikanten Stellen) ausgeben. Eine Beispielausgab könnte folgendermaßen aussehen:
thales$ a.out
1
2
1
-1
-1
thales$
Das bedeutet für $a=1$, $b=2$ und $c=1$ ergeben sich die Lösungen $x_1=-1$ und $x_2=-1$.

Hinweis: Wie im Beispiel gezeigt, können die beiden Lösungen auch identisch sein. Das soll aber keine Rolle spielen.

Viel Erfolg!



Christoph Ott 2008-08-27