3146 Akkord kleinstes Intervall von Toenen
Kategorie:Musik
Klasse:mittel
Eingabe:siehe Spezifikation
Ausgabe:siehe Spezifikation
Abzugebende Files: Akkord.txt, Akkord.java, *.java , 260.txt, 556.txt

Kurzbeschreibung:

Drei Musiknoten werden eingelesen; das kleinste Intervall und die Frequenzen des Dur\Dreiklanges auf dem ersten eingegebenen Ton werden berechnet.

Allgemeine Hinweise:

Aufgabenstellung:

Ihr Programm soll drei Strings einlesen, die jeweils eine Musiknote enthalten. Das Intervall der beiden Töne, die am nächsten zueinander liegen, soll ermittelt werden.

Der gesamte Tonbereich ist in Oktaven gegliedert. Jede Oktave besteht aus den zwölf Tönen C, Cis, D, Dis, E, F, Fis, G, Gis, A, Ais und H.

Die Oktaven sind folgendermßen angeordnet:

Name der Oktave Schreibweise der Töne
große Oktav C Cis D Dis E F Fis ...
kleine Oktav c cis d dis e f fis ...
eingestrichene Oktav c' cis' d' dis' e' f' fis' ...
zweigestrichene Oktav c'' cis'' d'' dis'' e'' f'' fis'' ...
dreigestrichene Oktav c''' cis''' d''' dis''' e''' f''' fis''' ...

Dabei enthält die große Oktave die tiefen und die dreigestrichene Oktave die hohen Töne.

Je zwei nebeneinanderliegende Töne einer Oktave (z.B. dis und e) liegen genau einen Halbton auseinander.

Die Intervalle zwischen zwei Tönen sind wie folgt definiert:

Name Abstand in Halbtonschritten
Prim0 HTS
kleine Sekund1 HTS
grosse Sekund2 HTS
kleine Terz3 HTS
grosse Terz4 HTS
kleine Quart5 HTS
grosse Quart6 HTS
Quint7 HTS
kleine Sext8 HTS
grosse Sext9 HTS
kleine Sept10 HTS
grosse Sept11 HTS
Oktave12 HTS

Beachten Sie, daß das "ß" hier durch "ss" ersetzt wurde.

Weiters sollen Sie den Dur\Dreiklang auf dem ersten der drei eingegebenen Töne ermitteln. Nehmen sie diesen Ton als Grundton des Dreiklanges. Anschließend müssen Sie die beiden Töne finden, die vom Grundton eine große Terz sowie eine Quint entfernt sind (jeweils nach oben). Berechnen Sie nun gemäß der Erstrundenspezifikation die Frequenzen dieser drei Töne.

Eingabedaten:

Lesen Sie drei Strings ein, die jeweils eine Note enthalten. Dieser soll eine Note in der oben angebenen Schreibweise enthalten. Beachten Sie, daß nur der Anfangsbuchstabe groß sein darf (dies markiert eine Note der großen Oktav) und daß in diesem Fall auch keine Hochkommas folgen dürfen.

Der erste Ton soll zwischen C und dis''' liegen; die beiden anderen zwischen zwischen C und h'''.

Das kleinste Intervall zwischen diesen drei Tönen darf nicht größer als eine Oktave sein.

Ausgabedaten:

Bei korrekten Eingabedaten soll Ihr Programm den Namen des kleinsten Intervalls zwischen den drei Tönen gemäß der oben stehenden Tabelle ausgeben. Weiters sollen die Frequenzen der drei Töne des Dreiklangs (in aufsteigender Reihenfolge) ausgegeben werden.

Trennen Sie den Intervallnamen und die Frequenzen durch Leerzeichen und geben Sie am Ende einen Zeilenvorschub aus.

Fehlerbehandlung:

Sind die eingegebenen Daten nicht korrekt, so soll Ihr Programm die Meldung "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben. Lesen Sie aber auf jeden Fall alle drei Strings ein, auch wenn schon vorher ein Fehler auftritt.

Beispiele:

Eingabedaten
C f'' A

h h c'

Ausgabedaten
grosse Sext 65 82 98

Prim 246 312 368


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

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