
7.3 ビットベクトルによる集合 |
||||
|
|
||||
| // データ宣言 BitArray myBA1 = new BitArray(10,false); BitArray myBA2 = new BitArray(10,false); BitArray myBA3 = new BitArray(10,false); // 表示 private string Bit列(BitArray A) { string S=""; for(int i=0;i<A.Length;i++) { if(A[i]) S += "1"; else S +="0"; } return S; } private void 表示() { lblDsp1.Text=Bit列(myBA1); lblDsp2.Text=Bit列(myBA2); lblDsp3.Text=Bit列(myBA3); } // 初期表示 private void Form1_Load(object sender, System.EventArgs e) { 表示(); } // 要素設定 private BitArray AddMember(BitArray BA,int Member) { BitArray B=BA; if(Member < BA.Length) B[Member]=true; return B; } // 要素の削除 private BitArray DeleteMember(BitArray BA,int Member) { BitArray B=BA; if(Member < BA.Length) B[Member]=false; return B; } // BA1に要素を追加 private void button1_Click(object sender, System.EventArgs e) { myBA1=AddMember(myBA1,int.Parse(textBox1.Text)); 表示(); } // BA2に要素を追加 private void button2_Click(object sender, System.EventArgs e) { myBA2=AddMember(myBA2,int.Parse(textBox2.Text)); 表示(); } // BA1に要素があるかどうか? private void button3_Click(object sender, System.EventArgs e) { MessageBox.Show(myBA1[int.Parse(textBox1.Text)].ToString()); } // BA2に要素があるかどうか? private void button4_Click(object sender, System.EventArgs e) { MessageBox.Show(myBA2[int.Parse(textBox2.Text)].ToString()); } // BA1 Or BA2 private void button5_Click(object sender, System.EventArgs e) { BitArray A=(BitArray)myBA1.Clone(); myBA3=A.Or(myBA2);表示(); } // BA3 = BA1 And BA2 private void button6_Click(object sender, System.EventArgs e) { BitArray A=(BitArray)myBA1.Clone(); myBA3=A.And(myBA2);表示(); } // BA3 = BA1 - BA2 private void button7_Click(object sender, System.EventArgs e) { BitArray A=(BitArray)myBA1.Clone(); BitArray B=(BitArray)myBA2.Clone(); myBA3=A.And(B.Not());表示(); } // BA1から要素の削除 private void button8_Click(object sender, System.EventArgs e) { myBA1=DeleteMember(myBA1,int.Parse(textBox1.Text)); 表示(); } // BA2から要素の削除 private void button9_Click(object sender, System.EventArgs e) { myBA2=DeleteMember(myBA2,int.Parse(textBox2.Text)); 表示(); } |