#!/usr/bin/env python # coding: utf-8 # # Übungsblatt 11 # *Schreiben Sie in dieses Feld Ihren Vornamen, Namen und Matrikelnummer.* # #### Übung 1: Schaltjahr (1 Punkt) # # Implementieren Sie die Funktion ```is_leap_year``` welche eine Jahreszahl als Argument entgegennimmt und ```True``` zurückgibt, falls es sich bei dem Jahr um ein Schaltjahr handelt. Ansonsten soll ```False``` zurückgegeben werden. Zur Erinnerung: ein Schaltjahr ist ein Jahr welches durch 4 teilbar ist, aber nicht zugleich durch 100. Also ist 2004 ein Schaltjahr, 1900 aber nicht. # In[1]: def is_leap_year(year): pass # # #### Übung 2: DNA (1 Punkte) # # Implementieren Sie die Funktion ```is_valid_DNA```, welche einen Text (String) als Argument entgegennimmt und prüft ob dieser ausschliesslich aus den Zeichen *A C G* und *T* besteht. Wenn dies der Fall ist wird ```True``` ansonsten ```False``` zurückgegeben. # In[2]: def is_valid_DNA(text): pass # Der folgende Aufruf sollte True ergeben # is_valid_DNA("ACGTTA") # und dieser False # is_valid_DNA("AYGBA") # #### Übung 3: Datumsklasse (5 Punkte) # # Implementieren Sie eine Klasse ```Date```, die ein Datum repräsentiert. Mit dem Aufruf ```Date(DAY, MONTH, YEAR)``` soll dabei ein neues Datum erstellt werden können. Dabei stehen `DAY`, `MONTH` und `YEAR` für den Tag, den Monat und das Jahr, welche jeweils als Zahlen repräsentiert werden. So wäre ```Date(13, 2, 1999)``` ein gültiger Aufruf. # # Implementieren Sie eine Methode ```is_valid```, welche ```True``` zurückgibt, wenn die Instanz ein gültiges Kalenderdatum repräsentiert. Zum Beispiel ist der 30.12.2012 ein gültiges Datum, aber der 31.2.2020 nicht. Sie müssen dabei Schaltjahre nicht berücksichtigen. # # Implementieren Sie eine Methode ```is_less_than```, welche ```True``` zurückgibt, wenn das in der Instanz repräsentierte Datum kleiner ist als ein als Argument übergebenes Datum. Anonsten soll ```False``` zurückgegeben werden. # In[3]: # Hier kommt Ihre Klasse hin # ##### Übung 4: Magisches Quadrat (3 Punkte) # # Ein magisches Quadrat ist eine quadratische Matrix, für die die Summe jeder Zeile, jeder Spalte und der beiden Diagonalen denselben Wert ergibt. Implementieren Sie die Funktion ```is_magic_square``` die eine quadratische Matrix, repräsentiert als Liste von Listen entgegennimmt und ```True``` zurückgibt, falls es sich um ein Magisches Quadrat handelt. Ansonsten soll ```False``` zurückgegeben werden. # In[4]: def is_magic_square(matrix): pass # Die folgenden Aufrufe sollten True ergeben # is_magic_square([[2, 7, 6], [9, 5, 1], [4, 3, 8]]) # is_magic_square([[1, 1], [1, 1]]) # In[ ]: