Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lehrkraefte:blc:informatik:ffprg1-2020:oop [2021/03/26 16:43] michael.greminger [Teil 1] |
lehrkraefte:blc:informatik:ffprg1-2020:oop [2021/03/26 18:02] (current) michael.greminger |
||
---|---|---|---|
Line 4: | Line 4: | ||
=== Präsentation === | === Präsentation === | ||
- | {{lehrkraefte: | + | {{lehrkraefte: |
=== Aufgabe 1 === | === Aufgabe 1 === | ||
Line 134: | Line 134: | ||
<hidden Lösungsvorschlag> | <hidden Lösungsvorschlag> | ||
- | Kommt bald ;-) | + | <code python> |
+ | from datetime import datetime | ||
+ | |||
+ | class Konto: | ||
+ | def __init__(self, | ||
+ | self._inhaber = i | ||
+ | self._kontostand = k | ||
+ | self._buchungen = [] | ||
+ | |||
+ | def inhaber(self): | ||
+ | | ||
+ | |||
+ | def kontostand(self): | ||
+ | return self._kontostand | ||
+ | |||
+ | def kontostandDatum(self, | ||
+ | datum = datetime.strptime(dString, | ||
+ | index = len(self._buchungen) | ||
+ | betrag = self._kontostand | ||
+ | while index >= 0 and datum < self._buchungen[index].datum(): | ||
+ | betrag = betrag - self._buchungen[index].betrag() | ||
+ | index = index - 1 | ||
+ | return betrag | ||
+ | |||
+ | def addBuchung(self, | ||
+ | b = Buchung(b, d) | ||
+ | self._buchungen.append(b) | ||
+ | self._kontostand += b.betrag() | ||
+ | |||
+ | class Buchung: | ||
+ | def __init__(self, | ||
+ | | ||
+ | | ||
+ | |||
+ | def betrag(self): | ||
+ | | ||
+ | |||
+ | def datum(self): | ||
+ | return self._datum | ||
+ | |||
+ | |||
+ | k1 = Konto(" | ||
+ | k1.addBuchung(100, | ||
+ | k1.addBuchung(200, | ||
+ | k1.addBuchung(300, | ||
+ | print k1.kontostand() | ||
+ | print k1.kontostandDatum(" | ||
+ | print k1.kontostandDatum(" | ||
+ | print k1.kontostandDatum(" | ||
+ | print k1.kontostandDatum(" | ||
+ | </ | ||
</ | </ | ||
Line 140: | Line 190: | ||
=== Präsentation === | === Präsentation === | ||
- | {{lehrkraefte: | + | {{lehrkraefte: |
=== Aufgabe 5 === | === Aufgabe 5 === | ||
Line 147: | Line 197: | ||
<hidden Lösungsvorschlag> | <hidden Lösungsvorschlag> | ||
- | Kommt bald ;-) | + | <code python> |
+ | from datetime import datetime | ||
+ | |||
+ | class Konto: | ||
+ | def __init__(self, | ||
+ | self._inhaber = i | ||
+ | self._kontostand = k | ||
+ | self._buchungen = [] | ||
+ | |||
+ | def inhaber(self): | ||
+ | | ||
+ | |||
+ | def kontostand(self): | ||
+ | return self._kontostand | ||
+ | |||
+ | def zinssatz(self): | ||
+ | return 0.035 | ||
+ | |||
+ | def kontostandDatum(self, | ||
+ | datum = datetime.strptime(dString, | ||
+ | index = len(self._buchungen) | ||
+ | betrag = self._kontostand | ||
+ | while index >= 0 and datum < self._buchungen[index].datum(): | ||
+ | betrag = betrag - self._buchungen[index].betrag() | ||
+ | index = index - 1 | ||
+ | return betrag | ||
+ | |||
+ | def addBuchung(self, | ||
+ | b = Buchung(b, d) | ||
+ | self._buchungen.append(b) | ||
+ | self._kontostand += b.betrag() | ||
+ | |||
+ | class Supersparkonto (Konto): | ||
+ | def __init__(self, | ||
+ | Konto.__init__(self, | ||
+ | |||
+ | def zinssatz(self): | ||
+ | abgehoben = 0 | ||
+ | for b in self._buchungen: | ||
+ | if b.betrag() < 0: | ||
+ | abgehoben += 1 | ||
+ | zins = Konto.zinssatz(self) | ||
+ | if abgehoben < 3: | ||
+ | zins += 0.01 | ||
+ | return zins | ||
+ | |||
+ | class Buchung: | ||
+ | def __init__(self, | ||
+ | | ||
+ | | ||
+ | |||
+ | def betrag(self): | ||
+ | | ||
+ | |||
+ | def datum(self): | ||
+ | return self._datum | ||
+ | |||
+ | |||
+ | k1 = Supersparkonto(" | ||
+ | k1.addBuchung(-100, | ||
+ | k1.addBuchung(-200, | ||
+ | print k1.zinssatz() | ||
+ | k1.addBuchung(-300, | ||
+ | print k1.zinssatz() | ||
+ | |||
+ | </ | ||
</ | </ | ||
Line 157: | Line 272: | ||
<hidden Lösungsvorschlag> | <hidden Lösungsvorschlag> | ||
- | Kommt bald ;-) | + | <code python> |
+ | from datetime import datetime | ||
+ | |||
+ | class Konto: | ||
+ | def __init__(self, | ||
+ | self._inhaber = i | ||
+ | self._kontostand = k | ||
+ | self._buchungen = [] | ||
+ | |||
+ | def inhaber(self): | ||
+ | | ||
+ | |||
+ | def kontostand(self): | ||
+ | return self._kontostand | ||
+ | |||
+ | def zinssatz(self): | ||
+ | return 0.035 | ||
+ | |||
+ | def kontostandDatum(self, | ||
+ | datum = datetime.strptime(dString, | ||
+ | index = len(self._buchungen) | ||
+ | betrag = self._kontostand | ||
+ | while index >= 0 and datum < self._buchungen[index].datum(): | ||
+ | betrag = betrag - self._buchungen[index].betrag() | ||
+ | index = index - 1 | ||
+ | return betrag | ||
+ | |||
+ | def addBuchung(self, | ||
+ | b = Buchung(b, d) | ||
+ | self._buchungen.append(b) | ||
+ | self._kontostand += b.betrag() | ||
+ | |||
+ | def jahresAbschluss(self): | ||
+ | self.addBuchung(self.kontostand() * self.zinssatz(), | ||
+ | |||
+ | class Supersparkonto (Konto): | ||
+ | def __init__(self, | ||
+ | Konto.__init__(self, | ||
+ | |||
+ | def zinssatz(self): | ||
+ | abgehoben = 0 | ||
+ | for b in self._buchungen: | ||
+ | if b.betrag() < 0: | ||
+ | abgehoben += 1 | ||
+ | zins = Konto.zinssatz(self) | ||
+ | if abgehoben < 3: | ||
+ | zins += 0.01 | ||
+ | return zins | ||
+ | |||
+ | class Buchung: | ||
+ | def __init__(self, | ||
+ | | ||
+ | | ||
+ | |||
+ | def betrag(self): | ||
+ | | ||
+ | |||
+ | def datum(self): | ||
+ | return self._datum | ||
+ | |||
+ | |||
+ | k1 = Supersparkonto(" | ||
+ | k1.addBuchung(-100, | ||
+ | k1.addBuchung(-200, | ||
+ | k1.addBuchung(-300, | ||
+ | print k1.kontostand() | ||
+ | k1.jahresAbschluss() | ||
+ | print k1.kontostand() | ||
+ | </ | ||
</ | </ | ||