Name text Box 1 Name text Box 2






プログラム例 フォーム定義 Name: text. Box 1 Name: text. Box 2 Name: button 1 Name: button 2 Name: button 3 Name: button 4 Name: button 5 Name: list. Box 1 Name: button 6 Name: button 7 Name: text. Box 3
![プログラム例 ①データ宣言と表示処理 public int[][] Set = new int[3][]; public void 表示() { string S; プログラム例 ①データ宣言と表示処理 public int[][] Set = new int[3][]; public void 表示() { string S;](http://slidetodoc.com/presentation_image_h2/4afcc0c48fbfc98b14358b1f1ed150c0/image-7.jpg)
プログラム例 ①データ宣言と表示処理 public int[][] Set = new int[3][]; public void 表示() { string S; list. Box 1. Items. Clear(); foreach(int[] A in Set) { if(A. Length==0) S="[]"; else { S=""; foreach(int X in A) S += X. To. String()+", "; S = "[" + S. Substring(0, S. Length-2)+ "]"; } list. Box 1. Items. Add(S); } }
![プログラム例 ②初期値の設定 private void button 1_Click(object sender, System. Event. Args e) { Set[0]= new プログラム例 ②初期値の設定 private void button 1_Click(object sender, System. Event. Args e) { Set[0]= new](http://slidetodoc.com/presentation_image_h2/4afcc0c48fbfc98b14358b1f1ed150c0/image-8.jpg)
プログラム例 ②初期値の設定 private void button 1_Click(object sender, System. Event. Args e) { Set[0]= new int[3]{1, 2, 3}; Set[1]= new int[0]{}; Set[2]= new int[4]{4, 5, 6, 7}; 表示(); }
![プログラム例 ③集合SにXが入っているか // 集合SにXが入っているかどうか private bool Set. Member(int X, int[] S) { for(int i=0; プログラム例 ③集合SにXが入っているか // 集合SにXが入っているかどうか private bool Set. Member(int X, int[] S) { for(int i=0;](http://slidetodoc.com/presentation_image_h2/4afcc0c48fbfc98b14358b1f1ed150c0/image-9.jpg)
プログラム例 ③集合SにXが入っているか // 集合SにXが入っているかどうか private bool Set. Member(int X, int[] S) { for(int i=0; i<S. Length; i++) if(X==S[i])return true; return false; } private void button 2_Click(object sender, System. Event. Args e) { int EL=int. Parse(text. Box 1. Text); int ID=int. Parse(text. Box 2. Text); if(ID>=0 && ID<=2) Message. Box. Show(Set. Member(EL, Set[ID]). To. String()); }
![プログラム例 ④要素追加 // 集合SにXを追加 private int[] Add. Member(int X, int[] S) { if(Set. Member(X, プログラム例 ④要素追加 // 集合SにXを追加 private int[] Add. Member(int X, int[] S) { if(Set. Member(X,](http://slidetodoc.com/presentation_image_h2/4afcc0c48fbfc98b14358b1f1ed150c0/image-10.jpg)
プログラム例 ④要素追加 // 集合SにXを追加 private int[] Add. Member(int X, int[] S) { if(Set. Member(X, S)) return S; int[] S 2=new int[S. Length+1]; for(int i=0; i<S. Length; i++) S 2[i]=S[i]; S 2[S. Length]=X; return S 2; } private void button 3_Click(object sender, System. Event. Args e) { int EL=int. Parse(text. Box 1. Text); int ID=int. Parse(text. Box 2. Text); Set[ID]=Add. Member(EL, Set[ID]); 表示(); }
![プログラム例 ⑤要素削除 // 集合SからXを削除 private int[] Del. Member(int X, int[] S) { if(!Set. Member(X, プログラム例 ⑤要素削除 // 集合SからXを削除 private int[] Del. Member(int X, int[] S) { if(!Set. Member(X,](http://slidetodoc.com/presentation_image_h2/4afcc0c48fbfc98b14358b1f1ed150c0/image-11.jpg)
プログラム例 ⑤要素削除 // 集合SからXを削除 private int[] Del. Member(int X, int[] S) { if(!Set. Member(X, S))return S; int[] S 2=new int[S. Length-1]; int ii=0; for(int i=0; i<S. Length; i++)if(S[i]!=X) S 2[ii++]=S[i]; return S 2; } private void button 4_Click(object sender, System. Event. Args e) { int EL=int. Parse(text. Box 1. Text); int ID=int. Parse(text. Box 2. Text); Set[ID]=Del. Member(EL, Set[ID]); 表示(); }
![プログラム例 ⑥和集合 // S 1とS 2の和集合 private int[] Set. Union(int[] S 1, int[] S プログラム例 ⑥和集合 // S 1とS 2の和集合 private int[] Set. Union(int[] S 1, int[] S](http://slidetodoc.com/presentation_image_h2/4afcc0c48fbfc98b14358b1f1ed150c0/image-12.jpg)
プログラム例 ⑥和集合 // S 1とS 2の和集合 private int[] Set. Union(int[] S 1, int[] S 2) { int[] S = S 2; foreach (int EL in S 1) S = Add. Member(EL, S); return S; } private void button 5_Click(object sender, System. Event. Args e) { int ID 1=int. Parse(text. Box 2. Text); int ID 2=int. Parse(text. Box 3. Text); Set[ID 1]=Set. Union(Set[ID 1], Set[ID 2]); 表示(); }
![プログラム例 ⑦積集合 // S 1とS 2の積集合 private int[] Set. Intersection(int[] S 1, int[] S プログラム例 ⑦積集合 // S 1とS 2の積集合 private int[] Set. Intersection(int[] S 1, int[] S](http://slidetodoc.com/presentation_image_h2/4afcc0c48fbfc98b14358b1f1ed150c0/image-13.jpg)
プログラム例 ⑦積集合 // S 1とS 2の積集合 private int[] Set. Intersection(int[] S 1, int[] S 2) { int[] S = new int []{}; foreach (int EL in S 1) if(Set. Member(EL, S 2))S = Add. Member(EL, S); return S; } private void button 6_Click(object sender, System. Event. Args e) { int ID 1=int. Parse(text. Box 2. Text); int ID 2=int. Parse(text. Box 3. Text); Set[ID 1]=Set. Intersection(Set[ID 1], Set[ID 2]); 表示(); }
![プログラム例 ⑧差集合 // S 1とS 2の差集合 private int[] Set. Difference(int[] S 1, int[] S プログラム例 ⑧差集合 // S 1とS 2の差集合 private int[] Set. Difference(int[] S 1, int[] S](http://slidetodoc.com/presentation_image_h2/4afcc0c48fbfc98b14358b1f1ed150c0/image-14.jpg)
プログラム例 ⑧差集合 // S 1とS 2の差集合 private int[] Set. Difference(int[] S 1, int[] S 2) { int[] S = new int []{}; foreach (int EL in S 1) if(!Set. Member(EL, S 2)) S = Add. Member(EL, S); return S; } private void button 7_Click(object sender, System. Event. Args e) { int ID 1=int. Parse(text. Box 2. Text); int ID 2=int. Parse(text. Box 3. Text); Set[ID 1]=Set. Difference(Set[ID 1], Set[ID 2]); 表示(); }



プログラム例 フォーム定義 Name: button 2 Name: text. Box 1 Name: text. Box 2 Name: button 1 Name: button 8 Name: lbl. Dsp 1 Name: lbl. Dsp 2 Name: button 3 Name: button 4 Name: button 5 Name: button 9 Name: lbl. Dsp 3 Name: button 6 Name: button 7

プログラム例 ①データ宣言と表示処理 Bit. Array my. BA 1 = new Bit. Array(10, false); Bit. Array my. BA 2 = new Bit. Array(10, false); Bit. Array my. BA 3 = new Bit. Array(10, false); private string Bit列(Bit. Array A) { string S=""; for(int i=0; i<A. Length; i++) { if(A[i]) S += "1"; else S +="0"; } return S; } private void 表示() { lbl. Dsp 1. Text=Bit列(my. BA 1); lbl. Dsp 2. Text=Bit列(my. BA 2); lbl. Dsp 3. Text=Bit列(my. BA 3); }

プログラム例 ②Form 1_Load,要素追加,要素削除 private void Form 1_Load(object sender, System. Event. Args e) { 表示(); } private Bit. Array Add. Member(Bit. Array BA, int Member) { Bit. Array B=BA; if(Member < BA. Length) B[Member]=true; return B; } private Bit. Array Delete. Member(Bit. Array BA, int Member) { Bit. Array B=BA; if(Member < BA. Length) B[Member]=false; return B; }

プログラム例 ③コマンド処理(その1) // BA 1に要素を追加 private void button 1_Click(object sender, System. Event. Args e) { my. BA 1=Add. Member(my. BA 1, int. Parse(text. Box 1. Text)); 表示(); } // BA 2に要素を追加 private void button 2_Click(object sender, System. Event. Args e) { my. BA 2=Add. Member(my. BA 2, int. Parse(text. Box 2. Text)); 表示(); } // BA 1に要素があるかどうか? private void button 3_Click(object sender, System. Event. Args e) { Message. Box. Show(my. BA 1[int. Parse(text. Box 1. Text)]. To. String()); } // BA 2に要素があるかどうか? private void button 4_Click(object sender, System. Event. Args e) { Message. Box. Show(my. BA 2[int. Parse(text. Box 2. Text)]. To. String()); } // BA 1 Or BA 2 private void button 5_Click(object sender, System. Event. Args e) { Bit. Array A=(Bit. Array)my. BA 1. Clone(); my. BA 3=A. Or(my. BA 2); 表示(); }

プログラム例 ④コマンド処理(その2) // BA 3 = BA 1 And BA 2 private void button 6_Click(object sender, System. Event. Args e) { Bit. Array A=(Bit. Array)my. BA 1. Clone(); my. BA 3=A. And(my. BA 2); 表示(); } // BA 3 = BA 1 - BA 2 private void button 7_Click(object sender, System. Event. Args e) { Bit. Array A=(Bit. Array)my. BA 1. Clone(); Bit. Array B=(Bit. Array)my. BA 2. Clone(); my. BA 3=A. And(B. Not()); 表示(); } // BA 1から要素の削除 private void button 8_Click(object sender, System. Event. Args e) { my. BA 1=Delete. Member(my. BA 1, int. Parse(text. Box 1. Text)); 表示(); } // BA 2から要素の削除 private void button 9_Click(object sender, System. Event. Args e) { my. BA 2=Delete. Member(my. BA 2, int. Parse(text. Box 2. Text)); 表示(); }
- Slides: 21