//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)); } }