Dr. M. Grabert Abteilung Angewandte Informationsverarbeitung 21. November 2001
Johannes Mayer Blatt 4


Uni-Logo



Objektorientierte Programmierung mit C++ (WS 2001/2002)


Abgabetermin: 22. November 2001

6 Endlich fertig! (10 Punkte)

Sie haben erfolgreich Ihr Studium beendet und sind froh, es endlich geschafft zu haben. Gratuliere! Das ist ja auch eine Leistung. Nun geht's endlich los mit dem Berufsleben. Am ersten Arbeitstag begrüßt Sie Ihr Chef gleich persönlich und sagt: ,, Schön, dass Sie da sind. Wir haben da nämlich ein Problem für einen Mathematiker mit Programmierkenntnissen. Und da hab' ich natürlich sofort an Sie gedacht. Und außerdem haben Sie ja auch von Objektorientierung eine Ahnung. Dann ist das Ganze für Sie ja ein Kinderspiel, nicht wahr! Also: Wir haben tausend verschiedene Stellplätze in unserem Lager. Wieviele Möglichkeiten gibt es eigentlich, unsere Waren zu lagern, wenn auf jedem einem Platz genau eine Ware lagert? Ich hab' von meinem Studium da noch so 'ne dunkle Ahnung, dass das wohl etwas mit der Fakultät zu tun hat - nein, nicht mit der für Mathematik, oder so, sondern mit der mathematischen! Na, das kriegen Sie doch locker raus. Außerdem haben wir noch zwei ganz große Zahlen:

a = 437126568088199322221531093992681680292255135889347272
    793142525738932129765481395774330739364283702105495918
    167180870335630234794888178058034034942524901390649773
    135897528619263112248521
b = 856572819620880044442447278942064239828036082950049805
    477762946438216943311117552526407306054570280412531298
    828437326941230867502237021161939914313647243498788655
    858622732834457132989677148326203924560311074871462722
    389629243239810751013863939268822009572313261108536188
    711684947825436264030303664622617392013714687318464880
    497281240722722445776663586579288181928821514478734370
    7864038601
Von diesen Zahlen brauchen wir unbedingt den ggT. Sie müssen wissen, dass das Rechnen mit großen Zahlen ein Steckenpferd von mir ist. Na, dann schreiben Sie doch mal ein kleines C++-Programm mit dem wir dann die beiden Problemchen lösen können.`` Na, war das Studium nicht schön, da sind Sie noch vor solchen Problemen verschont gewesen, aber Sie wollten ja unbedingt schon arbeiten. Tja, da kann man wohl nichts machen. Ach ja, beim Hinausgehen sagt Ihr Chef noch zu Ihnen, dass Sie sich doch überlegen sollten, wieviele Nullen die Zahl $1000!$ am Ende besitzt. Wenn Sie Ihm dies erklären könnten, wäre er Ihnen sehr dankbar. Das wäre doch die Gelegenheit, bei Ihrem neuen Chef (Tutor) Eindruck zu schinden.
Sie erinnern sich jetzt doch noch an die C++-Vorlesung von Matthias Grabert. Dort haben Sie doch gelernt, wie man sogar Operatoren für eigene Datentypen ,,überladen`` kann. Na das bietet sich doch für diesen Fall perfekt an. Da schreiben Sie einen Datentyp für beliebig große Integer-Zahlen mit den zugehörigen Operatoren. Damit können Sie dann die beiden Problemchen lösen. Und außerdem macht das sicher einen sehr guten Eindruck auf Ihren neuen Chef, der dann ein wenig mit großen Zahlen herumspielen kann. Dazu müssen Sie aber mindestens die 4 Grundrechenarten implementiert haben, also Addition, Subtraktion, Multiplikation und Division. Na, vielleicht klappt's dann ja schon bald mit der ersten Gehaltsaufbesserung. Also, machen Sie sich am besten gleich an die Arbeit. Das schöne ist ja, dass sie in einem Team arbeiten. Ihre Kollegen warten doch sicher schon darauf, dass Sie ihnen etwas zu tun geben. Also verteilen Sie gleich mal die Aufgaben in Ihrem Team, dann geht's schneller und Sie machen sich sofort Freunde unter den neuen Kollegen! :-))

P.S.: Ihr Chef sieht Ihre erste Aufgabe wohl als Test Ihrer Fähigkeiten an und würde Ihnen wohl keine Punkte geben, wenn sie nicht das komplette Programm selbst schreiben! ;-)


Viel Spass und Erfolg!


Johannes Mayer, 2001-11-21