EPROG-LU - Aufgabe 1170 (Erbanlagen von Wunderblumen)
1170 |
Erbgang |
Erbanlagen von Wunderblumen |
Kategorie: | Biologie |
Klasse: | mittel |
Eingabe: | Strings |
Ausgabe: | Strings |
|
Abzugebende Files: Erbgang.txt, Erbgang.java |
Kurzbeschreibung:
Zwei Strings, die die Erbanlagen von Wunderblumen beinhalten sollen, werden eingelesen; die Erbanlagen der Kreuzung dieser Wunderblumen werden ermittelt.
Allgemeine Hinweise:
-
Ihr Programm darf nur genau jene Ausgabedaten liefern, die in der Spezifikation
verlangt werden. Die Ausgaben Ihres Programmes werden automatisch mit
Referenzdaten verglichen; etwaige Abweichungen führen zu Punkteabzügen!
-
Testen Sie Ihr Programm vor der Abgabe mit der mitgelieferten Eingabedatei.
Geben Sie Ihre Lösung erst ab, wenn die Ausgaben Ihres Programmes mit der
ebenfalls mitgelieferten Ausgabedatei übereinstimmen! Testen Sie Ihr
Programm auch mit anderen Eingabedaten.
-
Verwenden Sie nur das von uns mitgelieferten Package eprog
für Ihre Ein/Ausgaben. Programme, die Packages oder Klassen ausserhalb der verwendeten Übungsumgebung (Java2, Standard Edition, Version 1.5.0) verwenden, können von uns
nicht getestet werden und werden mit 0 Punkten bewertet!
-
Schreiben Sie Ihr Programm möglichst allgemein und kommentieren Sie es gut.
Erstellen Sie weiters eine übersichtliche und verständliche Dokumentation.
Damit erhöhen Sie Ihre Chancen, daß andere Studenten in den nächsten Runden
Ihr Programm wählen und Ihnen damit zu Zusatzpunkten verhelfen!
Aufgabenstellung:
In diesem Programm sollen zwei verschieden(oder auch gleich)-färbigblühende
Wunderblumen gekreuzt werden. (Es handelt sich um einen "intermediären Erbgang", d.h. alle Farben sind gleichwertig; es gibt keine speziell dominante
Farbe.) Als Farben sind erlaubt: ROT(R), BLAU(B), GELB(G); und deren Farbkombinationen: VIOLETT(RB bzw. BR), ORANGE(RG bzw. GR), GRUEN(GB bzw. BG).
Es werden also zwei Buchstabenkombinationen verlangt (wie z. B. "RR BG"), die
jede für sich die Chromosome einer Wunderblume darstellt (RR = zwei Chromosome
mit Anlage "Rot"; BG = ein Chromosom mit Anlage "Blau", ein Chromosom mit Anlage "Gelb"). Nun wird jedes Chromosom einer Wunderblume mit denen der
anderen Wunderblume kombiniert, was als Ergebnis vier neue Wunderblumen mit
bestimmten Farbanlagen liefert (in unserem Beispiel: RB, RG, RB, RG).
Besteht jetzt die Eingabe aus nur reinerbigen Blumen, d.h. es sind lediglich
die reinen Grundfarben rot, blau, gelb (RR, BB, GG) bei der Eingabe vorgekommen, dann handelt es sich um die "Parentalgeneration" und es wurde das
erste Mendelsche Gesetz angewandt, um die "erste Filialgeneration" zu erhalten.
Wurde irgendeine Kombination mit zumindest einer spalterbigen (d.h. die
Chromosome haben verschiedene Farbanlagen z. B. "GR") Wunderblume eingegeben,
so handelt es sich um das zweite Mendelsche Gesetz. Die Eingabe ist dabei
schon die erste Filialgeneration und es wurde die "zweite Filialgeneration"
erzeugt.
Die Ausgabe soll die vier neuen Wunderblumen mit ihren Farbanlagen und die
entsprechende Ziffer (1 oder 2) für das angewandte Gesetz liefern. Beachten
Sie bitte, daß die Reihenfolge von Bedeutung ist.(Das erste Chromosom der
ersten Blume muß zuerst mit dem ersten Chromosom der zweiten und dann mit dem
zweiten Chromosom der zweiten Blume kombiniert werden, anschließend muß das
zweite Chromosom der ersten Blume mit dem ersten und zweiten der zweiten Blume
kombiniert werden.)
Eingabedaten:
Lesen Sie zwei Strings ein, die jeweils die Erbanlage einer Wunderblume beschreiben sollen. Diese Strings müssen in Großbuchstaben eingegeben werden.
Als gültige Eingabe sind nun ausschließlich folgende Großbuchstabenkombinationen anzusehen: RR, BB, GG, RB, BR, RG, GR, GB und BG.
Ausgabedaten:
Bei korrekten Eingabedaten soll Ihr Programm die Erbanlagen der vier neuen
Wunderblumen in der oben genannten Reihenfolge ausgeben. Weiters soll die
Ziffer 1 ausgegeben werden, wenn das erste Mendelsche Gesetz angewendet wurde
und 2, wenn das zweite Mendelsche Gesetz angewendet wurde.
Trennen Sie die einzelnen Teile der Ausgabe durch jeweils ein Leerzeichen und
geben Sie am Ende einen Zeilenvorschub aus.
Fehlerbehandlung:
Sämtliche Eingabedatensätze sind immer vollständig einzulesen.
Generell wird bei fehlerhaften Eingabedatensätzen nur eine einzige Fehlermeldung erzeugt, weitere Berechnungen werden nicht mehr durchgeführt.
Sind die eingegebenen Daten inhaltlich nicht korrekt oder erfüllen nicht die
Bedingungen, so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.
Beispiele:
Ausgabedaten
|
RR RG BR BG 2
RG RG RG RG 1
|
Testen:
Diese Beispiele dienen nur zur Verdeutlichung der Spezifikation und
müssen nicht korrekt formatiert sein. Die korrekte Formatierung entnehmen Sie
bitte dem mitgelieferten Outputfile. Zum Testen Ihrer Lösung
können Sie aus den mitgelieferten Eingabedaten wie folgt eine Ausgabedatei
erzeugen:
java Erbgang < Erbgang.i1 > Erbgang.out1
Das erzeugte File Erbgang.out1 können Sie dann mit dem mitgelieferten Outputfile Erbgang.o1 vergleichen.