Stochastische Prozesse Betriebswirtschaftliche Fragestellungen (Pseudo-)Zufallszahlen Markov Prozeß Warteschlangen M/M/1-Prozeß Simulation Objektorientierte Programmierung Prof. Dr. Dr. J. Hansohm Marktanteilsentwicklung 5 Waschmittelmarken Ariel, Dash, Persil, Omo, Tandil anfangs gleicher Marktanteil von 20 % nächste Periode kaufen 60 % Ariel-Kunden wieder Ariel und jeweils 10 % Dash, Persil, Omo und Tandil Dash-Käufer entsprechend 10%, 50%, 20%, 10%, 10% Persil-Käufer entsprechend 10%, 10%, 70%, 5%, 5% Omo-Käufer entsprechend 10%, 10%, 0%, 40%, 40% Tandil-Käufer entsprechend 15%, 15%, 15%, 15%, 40% Wie entwickeln sich die Marktanteile? Prof. Dr. Dr. J. Hansohm Instandhaltungsplanung 2 Maschinen M1, M2 technisch voneinander unabhängig Wartung von einer einzelnen Person bei zufälliger Störung M1 hat Vorrang vor M2 bei der Behebung von Störfällen Störanfälligkeit von M1 von 2,5 % für die nächste Minute Störanfälligkeit von M2 von 5 % für die nächste Minute Behebung der Störung mit 20 % Wahrscheinlichkeit in der nächsten Minute Wieviel % der Gesamtzeit laufen beide Maschinen? Prof. Dr. Dr. J. Hansohm Lagerhaltung Nachfrage nach einem Gut N (100, 30) - verteilt Lieferzeit 5 Tage, Auffüllung sofort wirksam Fehlmengen werden nachgeliefert Fehlmengenkosten 1 GE pro Tag (=ZE) und ME Lagerkosten 0,1 GE pro Tag und ME Bestellkosten 20 GE unabhängig von der Menge Welches ist die optimale (s, S)-Politik? Prof. Dr. Dr. J. Hansohm Personaleinsatz 18 Kfz-Mechaniker in einer Autowerkstatt zur Reparatur von Kundenwagen ca. alle 30 min benötigt ein Mechaniker ein Ersatzteil Abfertigung bei der Materialausgabe dauert ca. 5 min Wieviel Beschäftigte sollten in der Materialausgabe eingesetzt werden? Prof. Dr. Dr. J. Hansohm Abfertigung Autobahntankstelle mit 4 Universalzapfsäulen Fahrzeuge, die warten müssen, stehen auf einer Wartefahrbahn vor den Zapfsäulen. Wie groß ist die durchschnittliche (maximale) Warteschlange? Wie viel trägt die Abfertigungsdauer zur Warteschlange bei? Prof. Dr. Dr. J. Hansohm Zufallszahlen Zufallszahlen aus dem Intervall (0, 1) gleichverteilt Andere Verteilung durch Transformation Generierung von (0, 1)-gleichverteilten "Zufallszahlen" durch Pseudozufallszahlen mittels algorithmischer Berechnung Generierung von (0, 1)-gleichverteilten echten Zufallszahlen durch spezielle Hardware Prof. Dr. Dr. J. Hansohm Pseudozufallszahlen 4 letzten Ziffern der internen Uhr geteilt durch 10000 Midsquare (John v. Neumann) 4-ziffrige Zahl quadrieren, die mittleren 4 Ziffern nehmen (und durch 10000 teilen) z.B. 3917 3428 7511 4151 2308 multiplikative Kongruenzmethode yi+1 = a · yi mod m (i-te Zufallszahl yi/m) z.B. a=7, m=10000, yo=3917: 7419 1933 3531 Prof. Dr. Dr. J. Hansohm Pseudo- und echte Zufallszahlen Genauigkeit ist beschränkt z.B. 0,31253 wird nie realisiert Werden alle Möglichkeiten getroffen? Wann wiederholt sich die Reihe? Ist die Verteilung annähernd gleich? Sind aufeinanderfolgende Zahlen regellos? Prof. Dr. Dr. J. Hansohm Zufallszahlentests Pokertest Run-Test Chi-Quadrat-Test Kovarianzen graphisches Bild Prof. Dr. Dr. J. Hansohm Chi-Quadrat Test Bilde u Zufallszahlen 1 1 2 0 x , x ,... r r r Bilde r gleiche Teilbereiche Zähle, wie viel Zufallszahlen in dem r-ten Teilbereich liegen. Diese Zahl sei gleich uk Bilde Testwert 2 u uk r r v asymptotisch 2 r 1 u k 1 r u (möglichst r 5, 5, u 30. Fraktil der 2 verteilung r 2 1 annä hernd ~ x 2u 1 mit ~ x Fraktil der N(0,1) verteilung) 2 Prof. Dr. Dr. J. Hansohm Zahlentheorie m p1e1 p2e2 ... pkek l pe Pr imzahlzerlegung 2 e1 für p 2, e 1 oder e 2 e2 2 für p 2, e 2 ( p 1) p e1 sonst l (m) kgV l p1e1 ,..., l pkek Prof. Dr. Dr. J. Hansohm Periodenlänge-multiplikative Kongruenzmethode Sei yo und m teilerfremd und die kleinste natürliche Zahl s mit as = 1 mod m ist gleich l(m), dann ist auch die Periodenlänge der Kongruenzmethode gleich lm) z.B. a = 3 mod 8 (5 mod 8), m = 2e (e 3): yO = 1 mod 4 (3 mod 4): alle Zahlen 4k + 1 (4k + 3) werden getroffen z.B. m = 231 - 1 Primzahl, a 0 mod m: alle Zahlen 1, ..., m-1 werden getroffen Prof. Dr. Dr. J. Hansohm Erzeugung nicht gleichverteilter Zufallszahlen Sei u eine (0,1)-gleichverteilte Zufallszahl z = (b-a) · u + a ist (a, b)-gleichverteilt z = Trunc (r · u) + 1 ganzzahlig gleichverteilt zwischen 1 und r z = F-1(u) ist F-verteilt für stetiges F und berechenbares F-1 z.B. mit F(x) = 1-exp (-lx) für x 0, 0 sonst ist z = -(1/l)ln(u) exponentialverteilt { Prof. Dr. Dr. J. Hansohm Multiplikaltive Kongruenzmethode als ASM-Rout. //multi_y *= multi_a; //multi_y = multi_y&32767; #ifndef WIN32 __asm { mov ax,multi_y ;//multi_y in den Akkumulator mul multi_a ;//multipliziere mit multi_a and ax,7FFFh ;//setze höchstes Bit auf 0 mov multi_y,ax ;//schreibe Akkumulator auf multi_y } return multi_y; #endif Prof. Dr. Dr. J. Hansohm Modulo 2^31-1 Berechnung als ASM-Rout. //multi_y *= multi_a; //addiere Rest + Multiplikator //wenn > 2^31-1 dann ziehe 2^31-1 ab #ifdef WIN32 __asm { mov eax,multi_y ;//multi_y in den Akkumulator mul multi_a ;//multipliziere mit multi_a shld edx,eax,1 ;//schiebe edx nach links und fülle mit höchstem Bit von eax auf and eax,7FFFFFFFh ;//lösche höchstes Bit in eax (ist jetzt letztes Bit in edx) and edx,7FFFFFFFh ;//lösche höchstes Bit in edx add eax,edx ;//addiere Multiplikator (edx) und mod 2^31 (eax) jno WEITER ;//kein Überlauf bei Addition ==> O.K. add eax,80000001h ;//ziehe 2^31-1 ab WEITER: mov multi_y,eax ;//schreibe Akkumulator auf multi_y } return multi_y; #endif Prof. Dr. Dr. J. Hansohm Zufallszahlen - Verfahren von Elkins const unsigned int maxpos=32767; const unsigned int f1=179; const unsigned int f2=183; const unsigned int f3=182; const unsigned int m1=32771; const unsigned int m2=32779; const unsigned int m3=32783; Periodenlänge über 2 Milliarden 3 x multiplikative Kongruenzmethode do { do { do start_x=(start_x*f1)%m1; while (start_x-- > maxpos); start_y=(start_y*f2)%m2; } while (start_y-- > maxpos); start_z=(start_z*f3)%m3; } while (start_z-- > maxpos); return (start_x+start_y+start_z)&maxpos; Zufälligkeit durch Ausnahmeregel Prof. Dr. Dr. J. Hansohm Verwerfungsmethode Sei f Dichtefunktion einer stetigen Verteilung mit f(0) f(y) M für y (a,b) und f(y) = 0 für y (a, b) Ausgehend von einer Folge von Paaren (0,1)gleichverteilter Zufallszahlen (x1, x2), (x3, x4), ... wähle man z = a + (b-a) x2k-1 falls x2k f (a+(b-a)x2k-1)/M ansonsten verwerfe man das Paar (x2k-1, x2k) Die Folge zk der aus den nicht verworfenen Paaren gebildeten Zufallszahlen ist dann verteilt mit der gewünschten Dichte f Prof. Dr. Dr. J. Hansohm Verwerfungsmethode - Begründung P(Y1 <= z | Y2 <= f(Y1)) = P(Y1 <= z, Y2 <= f(Y1)) / P(Y2 <= f(Y1)) = F(z) z für F(z) = 1/((b - a) M) f(y) dy a und Y1 (a,b)-gleichverteilt, Y2 (0,M)-gleichverteilt Prof. Dr. Dr. J. Hansohm Spezialfall - Normalverteilung ist so ist X N(0,1)-verteilt, sX + mN(m,s) -verteilt ui - 6 annähernd N(0,1)-verteilt nach i=1 dem zentralen Grenzwertsatz (bei (0,1)-Gleichverteilung ist m= 1/2, s2 = 1/12) (Box & Muller) z1 = -2 ln(u1) sin(2p u2), z2 = -2 ln(u1) cos(2p u2) 12 sind N(0,1)-verteilt und unabhängig, wenn u1, u2 unabhängig Prof. Dr. Dr. J. Hansohm Spezialfall - Permutation u sei(0,1)-gleichverteilt und a1, ..., an Reihenfolge i = n, n-1, ..., 1 j = Trunc (i * u) + 1 vertausche aj mit ai obige Prozedur liefert eine zufällige Permutation Zufällige Auswahl von k Elementen aus a1, ..., an durch Permutationsbildung und Wahl der ersten k Elemente Prof. Dr. Dr. J. Hansohm Einplanen per zufälliger Reihenfolge für i=1, ..., n ermittle Zufallszahl aus [0, 1] bestimme hieraus eine Permutation plane in dieser Reihenfolge ein vergleiche Ergebnis mit dem bisher besten Ergebnis und speichere es u.U. Prof. Dr. Dr. J. Hansohm Stochastische Modelle (1) Beispiel 1: Die Waschmittelmarken Ariel, Dash, Persil, Omo, und Tandil teilen sich den Markt zu jeweils gleichen Teilen (20% Marktanteil). Aus Haushaltspennals wurde ermittelt, daß 60% der Ariel-Käufer in der nächsten Periode wieder Ariel kaufen und jeweils 10% die Marke Dash, Persil, Omo und Tandil. Für die Dash-Käufer lauten die Zahlen 10 %, 50 %, 20%, 10 %, 10 %. Für die Persil-Käufer lauten die Zahlen 10 %,10 %, 70 %, 5 %, 5 %. Für die Omo-Käufer lauten die Zahlen 10 %, 10 %, 0 %, 40 %, 40 % und für die Tandil-Käufer 15 %, 15 %, 15 %, 15 % und 40 %. Wie entwickelt sich der Marktanteil von Ariel, Dash, Persil, Omo und Tandil unter den obigen Voraussetzungen bei der zugrundegelegten Kundschaft? Prof. Dr. Dr. J. Hansohm Stochastische Modelle (2) Beispiel 2: In einer neuen Fabrikationshalle sollen zwei Maschinen gleichen Typs mit einer erwarteten Lebensdauer von jeweils 10 Perioden aufgestellt werden. Die Maschinen werden dann von einem Mechaniker gewartet, der in einer Periode genau eine Maschine reparieren kann, die dann in der nächsten Periode wieder einsatzbereit ist. Das Management überlegt, ob es sinnvoll ist, eine dritte Maschine anzuschaffen. Dies wäre dann zu erwägen, wenn die Wahrscheinlichkeit, daß gar keine dieser beiden Maschinen in einer Periode einsatzbereit ist, größer als 5 % ist. Prof. Dr. Dr. J. Hansohm Transitionsgraphen Ariel Dash 2 Maschinen o.K. 1 Maschine o.K. Persil 0 Maschinen o.K. Omo Tandil Prof. Dr. Dr. J. Hansohm Definitionen Ein stochastischer Prozeß S ist eine Folge von Zufallsvariablen Xt; d.h. S = {X1, ..., Xt, ...} Ein stochastischer Prozeß heißt diskret, wenn T = {1,...}. Ein diskreter stochastischer Prozeß wird auch Kette genannt. Prof. Dr. Dr. J. Hansohm Markov-Kette Eine homogene Markov-Kette ist durch die Angabe der Übergangsmatrix P = (pij)n,n mit pij = Wahrscheinlichkeit, daß sich das System in der nächsten Periode im Zustand zj befindet, wenn es sich in der jetzigen im Zustand zi befindet, und der Angabe des "Anfangszustandes" P(0)T = (p1(0), ..., pn(0)) mit 0 pi(0) 1, Si pi(0) = 1 eindeutig bestimmt. Prof. Dr. Dr. J. Hansohm Markow-Kette - Beispiel 1 Ariel Dash Persil Omo Tandil P A D P O T 0,6 0,1 0,1 0,1 0,15 (0,2 0,1 0,5 0,1 0,1 0,15 0,2 0,41 0,2 0,7 0 0,15 0,2 0,1 0,1 0,05 0,4 0,15 0,2 0,1 0,1 0,05 0,4 0,4 0,2) Prof. Dr. Dr. J. Hansohm Markow-Kette - Beispiel 2 Maschinen o.k. 2 1 0 mit 0 p P 2 (1-p)2 1-p 0 (1 1 2p(1-p) p 1 0 0 p2 0 0 0) Prof. Dr. Dr. J. Hansohm Berechnung der nächsten Verteilungen P P P,P2 P P P P P allgemein: P(t+1)T = P(t)T PP(0)T Pt+1 Grenzverteilung P lim { P(t) | t } stationäre Verteilung PT P= PT Jede Grenzverteilung ist stationär Jede stationäre Verteilung ist auch Grenzverteilung zu ihrer eigenen Startverteilung Es existiert immer eine stationäre Verteilung Prof. Dr. Dr. J. Hansohm Ergodizität (1) Eine homogene Markow-Kette heißt ergodisch, wenn es genau eine stationäre Verteilung gibt und diese Grenzverteilung zu jeder Startverteilung ist. Berechnung einer stationären Verteilung: PT = PT PPT (P- E) = 0 mit PT = (p1, ..., pn), Si pi = 1 Prof. Dr. Dr. J. Hansohm Ergodizität (2) Beispiel 2 L = 1/p mit L = Lebensdauer; d.h. erwarteter Wert der Anzahl der Perioden, die die Maschine ohne Wartung läuft und mit Ausfallwahrscheinlichkeit p p = 1/10 = 0,1 und 0,81 0,18 0,01 P 0,9 0,1 0 PT = (p1, p2, p3) 0 1 0 - 0,19 p1 + 0,9 p2 =0 p2 = 0,19/0,9 p1 = 0,2111 p1 0,18 p1 - 0,9 p2 + p3 = 0 0,01 p1 - p3 = 0 p3 = 0,01p1 p1 + p 2 + p3 = 1 p1 + 0,2111p1 + 0,01p1 =1 p1 = 1/1,2211 = 0,819 p2 = 0,173, p3 = 0,008 Prof. Dr. Dr. J. Hansohm Ergodizität (3) Fazit: In 81,9 % aller Perioden laufen beide Maschinen in 17,3 % aller Perioden wird gerade eine repariert in 0,8 % aller Perioden ist der Mechaniker überfordert Prof. Dr. Dr. J. Hansohm Ergodensatz Sei P eine Matrix von Übergangswahrscheinlichkeiten mit der Eigenschaft, daß für irgendeine Potenz Pk von P diese eine Spalte mit nur positiven Elementen enthält {Pm |m } = W Jede Zeile von W ist der gleiche Vektor wT Jede Komponente von w ist positiv lim P ist dann ergodisch und w ist die stationäre Verteilung Prof. Dr. Dr. J. Hansohm Lagerhaltungsproblem Nachfrage: 0, 1, 2, 3 (z.B. Ersatzteile, die kaputt gehen) Verteilung: 20% (0), 50% (1), 20% (2), 10% (3) Kosten: Bestellkosten cB (pro Bestellung) Lagerkosten (-satz cL) (pro Mengeneinheit und Tag) Fehlmengenkosten (-satz cF) (pro Mengeneinheit und Tag) Politiken: (q, Dt) (s, q) (s, S) nach Dt Zeiteinheiten wird eine Bestellung von q Einheiten getätigt wenn Bestand < s, dann bestelle q Stück wenn Bestand < s, dann fülle bis S auf, d.h. bestelle S - Bestand + nicht erfüllte Nachfrage abzüglich bestellter, aber noch nicht eingetroffener Mengen Prof. Dr. Dr. J. Hansohm Beispiel (s, S)-Politik Lager Nachfrage Bestand Zustand Bestellung Lager Neu 2 2 2 2 3 3 3 3 3 (0,1) 2 (0,2) 1 (0,5) 0 (0,2) 3 (0,1) 2 (0,2) 1 (0,5) 0 (0,2) -1 0 1 2 0 1 2 3 z1 z2 z3 z4 z2 z3 z4 z5 4 3 2 0 3 2 0 0 3 3 3 2 3 3 2 3 (s, S)-Politik mit s=1 und S=3 Anfangszustand: Lager gefüllt (Zustand z5) Prof. Dr. Dr. J. Hansohm Ergebnis des Markov-Prozeß (s, S)-Politik z2 0,1 0,1 0,1 0,2 0,1 0 z3 0,2 0,2 0,2 0,5 0,2 0 z4 0,5 0,5 0,5 0,2 0,5 0 z5 0,2 0,2 0,2 0 0,2 1 Bestandsentwicklung 1,2 1 Wahrscheinlichkeit z1 z2 z3 z4 z5 Anfang z1 0 0 0 0,1 0 0 z1 0,8 z2 0,6 z3 z4 0,4 z5 0,2 0 0 1 2 3 4 5 10 15 20 25 Periode z1 0 1 2 3 4 5 10 15 20 25 stat. Lösung 0 0 0,042 0,0465 0,04431 0,03815 0,0384623 0,03846154 0,03846154 0,03846154 0,03846154 z2 0 0,1 0,291 0,276 0,26256 0,13815 0,1384623 0,13846154 0,13846154 0,13846154 0,13846154 z3 0 0,2 0,699 0,6672 0,63369 0,31445 0,31538689 0,31538461 0,31538462 0,31538462 0,31538462 z4 0 0,5 0,465 0,4431 0,42192 0,38555 0,38461311 0,38461539 0,38461538 0,38461538 0,38461538 z5 1 0,2 0,282 0,2628 0,2505 0,1237 0,12307541 0,12307693 0,12307692 0,12307692 0,12307692 Prozeß ist ergodisch Prof. Dr. Dr. J. Hansohm Simulation versus analytische Lösung Theorie klare deduktive Lösung, Veränderung der Ausgangsgrößen anhand der Veränderung der Eingangsgrößen gut studierbar ev. starres Modell, ev. wesentliche Anforderungen der Realität nicht berücksichtigt Simulation komplexe, realitätsnähere Modelle behandelbar Abhängigkeit der Ausgangsgrößen durch die Eingangsgrößen nur durch experimentelle Vorgehensweise erfahrbar Prof. Dr. Dr. J. Hansohm Warteschlangen Ankunftsstrom Warteraum Abfertigung Abgangsstrom Klassifizierung nach Kendall (1951) und Lee(1966): Art des Zugangsprozesses / Art des Abgangsprozesses / Anzahl Schalter : (max. Anzahl im System / Abfertigungsdisziplin) z. B.: M/M/1:(/FIFO) für Markov-Ankunfts- und Abgangsprozeß, einen Schalter, unendlich großen Warteraum, First In First Out Prof. Dr. Dr. J. Hansohm Ankunft als Markov-Prozeß Annahme: Kundenreservoir unendlich kein Engpaß bei der Warteschlange (Warteraum) Wahrscheinlichkeit, daß einer kommt unabhängig davon, ob kurz vorher einer kam oder lange vorher keiner kam Zeitspanne Dt klein genug, so daß höchstens einer kommt T = durchschnittliche Zeit zwischen zwei Ankünften Zustände: a0 = keiner, a1 = einer, a2 = 2 im System, etc. Übergang: aiai = 1-Dt/T, aiai+1 = Dt/T, sonst = 0 Start von a0: nach mDt Zeiteinheiten ergibt sich Zustand an, wenn n mal einer gekommen ist und m-n mal keiner gekommen ist ( m) n P m Dt n Dt m n ( ) (1 ) T n T n ( l t ) m e lt für n! mDt t und l 1 T Poisson-Verteilung Prof. Dr. Dr. J. Hansohm Abfertigung als Markov-Prozeß Analog zum Ankunftsprozeß. Betrachtet man Ankunft und Abgang, so anan-1:(1-lDt) mDt anan: (1-lDt) (1- mDt) anan+1: lDt(1- mDt) Hieraus ergibt sich eine dreibandige Übergangsmatrix, die durch fortgesetzte Multiplikation mit sich selbst im Diagonalenbereich immer breiter wird. Der Markov-Prozeß ist demnach ergodisch. Stationäre Lösung w = (w0, w1, ..., wN) ergibt: wi = l/m wi-1 und damit wn = (l/m)n w0 und wegen w0 + w1 + ... + wN =1 wn = pn(1-p)/(1-pN+1) für p= l/m Für N : w0 = 1-p, wn = pn(1-p) mit p = l/m und pn als Wahrscheinlichkeit, daß n oder mehr Personen im System sind Prof. Dr. Dr. J. Hansohm Warteschlangenkenngrößen mittlere Anzahl von Elementen im System L=p/(1-p) mittlere Anzahl von Wartenden im System Lw=p2/(1-p) mittlere Anzahl von Elementen am Schalter L-Lw=p (durchschnittliche Auslastung) mittlere Verweilzeit im System Z=1/(m(1-p)) mittlere Wartezeit Zw=p/(m(1-p)) Prof. Dr. Dr. J. Hansohm Warteschlange - Beispiel An einem Postamt mit einem Schalter wird eine mittlere Bedienzeit von 2 min und eine Warteschlange von durchschnittlich 3,2 Personen ermittelt. Es wird ein M/M/1 -Prozeß unterstellt. Wie hoch ist: die mittlere Abfertigungsrate die mittlere Ankunftsrate die Wahrscheinlichkeit, daß niemand am Schalter wartet die Wahrscheinlichkeit, daß mehr als 2 Personen warten die mittlere Anzahl von Personen im System die mittlere reine Wartezeit Prof. Dr. Dr. J. Hansohm Konzept der Objektorientierung Umweltausschnitt Programmstruktur 1:1 Prof. Dr. Dr. J. Hansohm Stadien der objektorientierten Entwurfstechnik Objektorientierte Analyse OOA Objektorientiertes Design OOD Objektorientierte Programmierung OOP Prof. Dr. Dr. J. Hansohm Wertpapiere, Auswahl gebräuchlichster Typen Stammaktie Vorzugsaktie Straightbond Zerobond laufende Tilgung mit festem Plan laufende Tilgung durch Annuität Prof. Dr. Dr. J. Hansohm Wertpapiere - Strukturierung Portfolio Strukturierung der Wertpapiertypen Part-of Wertpapier Gen-Spec Aktie Stamm Anleihe Vorzug Straight Bond Endfällig ZeroBond Getilgt. Anleihe Fester Plan Annuit. Plan Prof. Dr. Dr. J. Hansohm Eigenschaften objektorientierter Entwurfstechnik Abstraktion Einkapselung Entwickler bestimmt Zusammenspiel zwischen Funktion und Daten Vererbung Komm. d. Nachrichten Prof. Dr. Dr. J. Hansohm Objektorientierte Programmiersprachen SIMULA 67 CLOS OBERON C++ SMALLTALK EIFFEL (ADA) Prof. Dr. Dr. J. Hansohm Klassendefinition in C++ (1) class PORTFOLIO { public: virtual double wert(); virtual double verzinsung(); // . // . private: Liste wertpapierliste; }; Prof. Dr. Dr. J. Hansohm Klassendefinition in C++ (2) class Wertpapier { public: char* emittent; int wkn; double kaufkurs; long int kaufzeit; double nennwert; double aktuellerkurs; double stückelung; virtual double wert() { return aktuellerkurs; }; // inline virtual double verzinsung()=0; //pure }; Prof. Dr. Dr. J. Hansohm Klassendefinition in C++ (3) class Aktie : public Wertpapier { public: double dividendenhöhe; long int dividendenzeitpunkt; virtual double wert(); virtual double verzinsung(); }; Prof. Dr. Dr. J. Hansohm Implementation in C++ (1) #include "Portflio.h" double Portfolio::wert() { double summe = 0; Wertpapier w; for (wertpapierliste.anfang(); !wertpapierliste.ende(); wertpapierliste++) { w = wertpapierliste.gebe_wertpapier(); summe += w.wert() * wertpapierliste.gebe_anzahl(); } return summe; } Prof. Dr. Dr. J. Hansohm Implementation in C++ (2) double Aktie::verzinsung() { return dividendenhöhe / kaufkurs; } Prof. Dr. Dr. J. Hansohm