//Autor: Edinger Judith
//MatNr: 0125265
//BspNr: 1166
//Beschreibung: Note wird eingegeben, ihre Frequenz berechnet und ausgegeben
import eprog.*;

public class testen {

	private static String [] noten = {"c","cis","d","dis","e","f","fis","g","gis","a","ais","h"};
	private static int[] frequenzen = {65,69,73,78,82,87,92,98,104,110,117,123};
	
	private static String eingabe;
	private static char kleinbuchst = 'a'; //erster kleinbuchstabe
	
	static public String perform() {
		String sAusgabe = "";
		
		eingabe=EprogIO.readWord();
		boolean gross = eingabe.charAt(0)<kleinbuchst;
		
		int strichanzahl = 0;		//beinhaltet wieviel strich die note hat.
		while ((eingabe.endsWith("'")) && (eingabe.length()>1)) {	//wenn strich am ende des string, dann
			strichanzahl++;			//strichanzahl +1 und string um eins kürzen
			eingabe=eingabe.substring(0,eingabe.length()-1);
		}
		
		int note = -1;			//beinhaltet den index der eingegebenen note.
		for (int i=0; i<12;i++) 	//checken ob und welche note eingegeben wurde
			if (noten[i].equals(eingabe.toLowerCase())) note=i;
		
				
		if (note>-1 && strichanzahl<4 && !(gross && strichanzahl>0)) {
			if (gross) {
				sAusgabe += frequenzen[note];
			} else {
				sAusgabe += okt_freq(frequenzen[note],strichanzahl+1);
			}
		} else {
			sAusgabe += "FALSCHE EINGABE";
		}
		return sAusgabe;
	}
	
	static public int okt_freq(int freq, int oktaven) {
		return (int)(freq*Math.pow(2,oktaven));
	}
	
}