3150 Erb Kreuzung von Wunderblumen
Kategorie:Biologie
Klasse:leicht
Eingabe:siehe Spezifikation
Ausgabe:siehe Spezifikation
Abzugebende Files: Erb.txt, Erb.java, *.java , 169.txt, 300.txt

Kurzbeschreibung:

Zwei Strings, die die Erbanlagen von Wunderblumen beinhalten sollen, werden eingelesen; die Erbanlagen der Kreuzung dieser Wunderblumen werden ermittelt.

Allgemeine Hinweise:

Aufgabenstellung:

In Ihrem Programm sollen zwei verschieden- (oder auch gleich-) färbigblühende Wunderblumen gekreuzt werden. Eingegeben werden nur die Anfangsbuchstaben der Farbanlage der beiden Chromosome einer Blume. Als gültige Eingabe sind sowohl Großbuchstaben als auch Kleinbuchstaben erlaubt.

Je nach Eingabe des Anwenders kann es sich um einen "intermediaeren Erbgang" (d.h. alle Farben sind gleichwertig) oder um einen "dominanten Erbgang" (d.h. eine Farbe ist dominant) handeln, wobei dominante Farben in Großbuchstaben eingegeben werden müssen, während fuer gleichwertige Farben die entsprechenden Anfangsbuchstaben in Kleinbuchstaben vorgesehen sind.

Als Farben sind erlaubt: ROT(r), BLAU(b) und GELB(g) sowie deren Farbkombinationen: VIOLETT(rb bzw. br), ORANGE(rg bzw. gr), GRUEN(gb bzw. bg).

Es wird jedes Chromosom einer Wunderblume mit denen der anderen Blume kombiniert, wobei auf die richtige Reihenfolge geachtet werden muß. (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 der zweiten Blume und zuletzt das zweite der ersten Blume mit dem zweiten der zweiten Blume kombiniert werden.)

Sie sollen nun folgendes unterscheiden:

Werden nur die reinen Grundfarben rot, blau oder gelb eingegeben, müssen Sie sowohl das 1. als auch das 2. Mendelsche Gesetz anwenden; d.h. Sie kombinieren zuerst die Eingabe richtig, und kombinieren von den vier (gleichen) erhaltenen Blumen wiederum zwei miteinander (2. Mendelsches G.) (und zwar die erste und zweite Wunderblume!). Das Ergebnis soll(en) nur die Blume(n) nach Anwendung beider Gesetze sein! Weiters schreiben Sie "1 2" fuer 1. und 2. Mendelsches Gesetz.

Handelt es sich bei der Eingabe nicht in beiden Fällen um reine Grundfarben, sollen Sie nur das 2. Mendelsche Gesetz verwenden und dies anschreiben ("2").

Zusätzlich können dominante Farben in der Eingabe vorkommen. Es handelt sich nur um dominante Farben (und damit um richtige Eingaben), wenn bei gemischtfärbigen Blumen der Buchstabe der dominanten Farbe entweder an erster Stelle gefolgt von einem anderen Kleinbuchstaben oder an zweiter Stelle mit vorangehendem anderen Kleinbuchstaben steht (z. B.: Rb, rB, ... aber nicht: BR,...); (Bei reinen Grundfarben kann die "Dominanz" entweder in beiden Großbuchstaben oder auch nur in einem ausgedrueckt sein (z. B.: RR, GG, Rr, gG...).

Wurde ein dominanter Erbgang durchgefuehrt, geben Sie bei der Ausgabe "d" aus, ansonsten "i" fuer intermediärer Erbgang. Bei der Ausgabe nach einem dominantem Erbgang sollen nun die Buchstabenkombinationen, die noch dominante Farben (d.h. Großbuchstaben) enthalten, in die entsprechenden richtigen Kleinbuchstabenkombinationen umgewandelt werden. (z. B.: BG -> bg, Rb -> rr, Gg -> gg, Br -> bb).

Allgemein gilt, daß Blumen mit genau gleichen Farben nur einmal ausgegeben werden sollen (Und zwar an der ersten Stelle, an der sie auftreten, und in der dort ermittelten Schreibweise), daß jedoch eine Zahl vor der Buchstabenkombination die Gesamtanzahl der identen Blumen angeben muß. (ACHTUNG: gb entspricht bg ! Daher: statt "gg gb bg bb" ist "gg 2gb bb" auszugeben!)

Eingabedaten:

Lesen Sie zwei Strings ein, die jeweils die Erbanlage einer Wunderblume beschreiben sollen. Diese Strings müssen in Groß- oder Kleinbuchstaben eingegeben werden (mit der oben geschriebenen Bedeutung). Es sind nur solche Strings zulässig, die aus genau zwei der folgenden Buchstaben bestehen: r, g, b, R, G, B. Dominante Farben müssen an der ersten Stelle im String stehen.

Ausgabedaten:

Bei korrekten Eingabedaten soll Ihr Programm die Erbanlagen der neuen Wunderblumen in der oben genannten Reihenfolge ausgeben. Gleiche Wunderblumen sollen nur einmal vorkommen und die Häufigkeit durch eine direkt vorangestellte Ziffer markiert werden.

Weiters soll die Ziffer 1 ausgegeben werden, wenn das erste Mendelsche Gesetz angewendet wurde und 2, wenn das zweite Mendelsche Gesetz angewendet wurde.

Schließlich soll "i" ausgegeben werden, wenn es sich um einen intermediären Erbgang handelt und "d", wenn es ein dominanter Erbgang ist.

Trennen Sie die einzelnen Teile der Ausgabe durch jeweils ein Leerzeichen und geben Sie am Ende einen Zeilenvorschub aus.

Fehlerbehandlung:

Bei ungültigen Eingaben geben Sie die Meldung "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub aus.

Lesen Sie aber auf jeden Fall beide Strings ein, auch wenn schon der erste fehlerhaft ist.

Beispiele:

Eingabedaten
GG Rg

bb gg

Ausgabedaten
2gr 2gg 2 d

bb 2bg gg 1 2 i


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 Erb < Erb.i1 > Erb.out1

Das erzeugte File Erb.out1 können Sie dann mit dem mitgelieferten Outputfile Erb.o1 vergleichen.