Gunther Heidemann Stefan Kurtz Universit¨at

Werbung
Gunther Heidemann
Stefan Kurtz
Universität Technische
Bielefeld
Fakultät
Übungen zur Vorlesung
Algorithmen & Datenstrukturen I
Wintersemester 2001/2002
Aufgabe 3.1 (2 Punkte) Es seien zwei Nukleotidsequenzen u und v gleicher Länge gegeben. Implementieren Sie in Haskell eine Funktion hammingabstand, die die Anzahl der Positionen
berechnet, an denen in u und v verschiedene Nucleotide stehen.
Aufgabe 3.2 (4 Punkte) In der zellulären DNA ist ein Teil der C-Nukleotide durch Anhängen einer
Methylgruppe markiert.
(1)
Erweitern Sie den Haskell-Datentyp DNA so, dass auch methylierte C-Nukleotide dargestellt
werden können.
(2)
Definieren Sie in Haskell eine Funktion fracCm, die den prozentualen Anteil der methylierten C-Nukleotide (relativ zu allen C-Nukleotiden) in einer gegebenen DNA-Sequenz liefert.
Aufgabe 3.3 (6 Punkte) Ebenso wie die Musik hat auch die Sprache eine innere Struktur, nach der
ein Satz konstruiert wird. Da die Beschreibung der Struktur beliebiger Sätze der deutschen Sprache
sehr kompliziert werden kann (ein ganzer Forschungszweig in der Linguistik beschäftigt sich mit
dem Problem von Syntax und Grammatik), betrachten wir zunächst nur sehr einfach strukturierte
Hauptsätze:
Ein einfacher Hauptsatz besteht aus einer Nominalphrase und einer Verbalphrase.
Eine Verbalphrase besteht aus einem Verb und einer Nominalphrase.
Eine Nominalphrase besteht aus einem Artikel, keinem oder mehreren Adjektiven und einem
Nomen.
In dem Satz die Frau konstruiert das blaue breite Regal“ ist
”
konstruiert das blaue breite Regal“ eine Verbalphrase
”
das blaue breite Regal“ eine Nominalphrase
”
die Frau“ eine Nominalphrase
”
(1)
Entwickeln Sie einen Haskell-Datentyp, der die innere Struktur von einfachen Hauptsätzen
(wie oben beschrieben) darstellen kann. Es sollten Sätze mit den folgenden Wörtern darstellbar sein: der“, rote“, Mann“, streicht“, die“, Frau“, breite“, konstruiert“, das“,
”
”
”
”
”
”
”
”
”
grosse“, Regal“, blaue“. Sie können dabei die Worte auch mit Grossbuchstaben beginnen
”
”
”
lassen.
(2)
Geben Sie den Satz der breite Mann streicht das grosse rote Regal“ in ihrer Darstellung an.
”
Welches Problem ergibt sich mit dem Satz das grosse Regal streicht die blaue Frau“?
”
(3)
Aufgabe 3.4 (6 Punkte) Die Codons (T,A,A), (T,G,A) und (T,A,G) sind Stopcodons.
(1)
Können sich 2 Stopcodons überlappen? Geben Sie eine Begründung für Ihre Antwort.
(2)
Definieren Sie formal (nich notwendigerweise in Haskell) den Begriff der Überlappung von
Nukleotidsequenzen. Ihre Definition könnte so beginnen: Zwei Nukleotidsequenzen x und y
überlappen, genau dann wenn ...
(3)
Definieren Sie in Haskell eine Funktion stopCodonZahl, die die Anzahl der Stopcodons
in einer Nukleotidsequenz und in ihrem komplementären Gegenstrang bestimmt. Beispiel:
dna2 enthält kein Stopcodon und dna3 enthält 3 Stopcodons, nämlich TAG und TGA auf
dem Vorwärtsstrang und TAA auf dem Gegenstrang.
dna2 = [A,A,A,T,T,T]
dna3 = [A,C,G,A,T,C,G,A,T,A,G,C,G,G,G,A,T,G,A,T,T,A]
Abgabe der Lösungen: Mittwoch, 21. November 2001 zu Beginn der Vorlesung.
Bitte alle Namen der Gruppenmitglieder, den Termin Ihrer Übungsgruppe und den Namen des
Tutors auf dem Deckblatt angeben.
Auf der Web-Seite
http://www.techfak.uni-bielefeld.de/techfak/ags/pi/lehre/AuDIWS01/
finden sich weitere Informationen zur Vorlesung und zu den Übungen, sowie elektronische Versionen der Übungsblätter.
Herunterladen