2014-12-08 41 views
-1

指示─初始化用環和式

在區域爲類的實例變量的數組:

  • 聲明一個整數變量來保存的音符的數量,將它設置到13
  • 聲明並分配一個大小爲13的GuitarString對象的數組。 注意:確保刪除原始實例變量(stringA和stringC)。
  • 聲明的類型字符串的票據陣列,大小的13
  • 初始化筆記陣列具有以下13個值: 「C」, 「C#」, 「d」, 「d#」, 「E」, 「F」, 「F#」, 「G」, 「G#」, 「A」, 「A#」, 「B」, 「H」 在main方法:

初始化GuitarString的主陣列爲整個八度。 您必須使用循環,而不是十三個單獨的語句。 記得分配每個吉他弦與新。 使用以下公式計算每個字符串的頻率: double frequency = 440.0 * Math.pow(1.05956,index - 9); p12.strings [index] = new GuitarString(frequency);

這裏被索引的映射上面所示: 0 - 中間C( 「C」) 1 - C#上面中央C( 「C#」) 2 - d以上中間C( 「d」) 3 - 中間C上方的D#(「D#」) 4 - E上方中間C(「E」) 中間C上方5-F(「F」) 中間C上方6 - F#(「F#」)012 - G16 - - - - - 以上中間C(「G」) 8 - 中間C以上的G#(「G#」) 9 - A以上中間C(「A」) 10 - A#中間C以上(「A#」) 11 - C(「B」) 12 - 高C(「H」)

上述筆記表示鋼琴的一個倍頻程從中央C以高C.

我的代碼 -

public class P12 { 



int numNotes = 13; 
GuitarString[] GuitarString = new GuitarString[13]; 
public String[] strings = new String[]{"C", "C#","D","D#","E","F","F#","G","G#","A","A#","B","H"}; 



public static void main(String[] args) { 

    // Instantiate object 
    P12 p12 = new P12(); 



    for(int index = 0; index <= p12.numNotes; index++){ 
     double frequency = 440.0 * Math.pow(1.05956, index - 9); 
     p12.strings[index] = new GuitarString(frequency); 
    } 

我的問題是我如何初始化循環內的GuitarString陣列和使用給定的式?

+1

看來,你的老師希望你創建GuitarString的一個新的對象類型,而不是當我改變它,使一個新的對象,我得到創建的字符串 – frenchDolphin 2014-12-08 01:08:59

+0

的數組:「類型不匹配:無法從GuitarString轉換爲字符串「 – OC22 2014-12-08 01:11:55

+0

無關的注意事項:我意識到您的教師是說那個筆記H等於中間C的人,但H實際上等同於筆記B:http://en.wikipedia .ORG /維基/ B_%28musical_note%29。以防萬一任何音樂家遇到這個帖子。 – 2014-12-08 01:12:24

回答

0

試試這個:

public class P12 { 

int numNotes = 13; 
public GuitarString[] gStrings = new GuitarString[13]; 
public String[] strings = new String[]{"C", "C#","D","D#","E","F","F#","G","G#","A","A#","B","H"}; 

public static void main(String[] args) { 

    // Instantiate object 
    P12 p12 = new P12(); 

    for(int index = 0; index <= p12.numNotes; index++){ 
     double frequency = 440.0 * Math.pow(1.05956, index - 9); 
     p12.strings[index] = new p12.GuitarString(frequency); 
    } 
} 

private class GuitarString { 

    double freq; 

    GuitarString(double frequency) { 
     freq = frequency; 
    } 

}