第10講 関数の学習
第12話 トレースの続きその2
|
j |
0 |
1 |
2 |
3 |
i |
|
0 |
1 |
6 |
11 |
16 |
1 |
15 |
12 |
5 |
2 |
2 |
8 |
3 |
14 |
9 |
3 |
10 |
13 |
4 |
7 |
|
|
|
l |
0 |
1 |
2 |
3 |
k |
|
0 |
1 |
6 |
11 |
16 |
1 |
15 |
12 |
5 |
2 |
2 |
8 |
3 |
14 |
9 |
3 |
10 |
13 |
4 |
7 |
|
i |
j |
セル内の数字 |
|
0 |
0 |
1 |
k |
l |
セル内の数字 |
0 |
0 |
1 |
0 |
1 |
6 |
0 |
2 |
11 |
0 |
3 |
16 |
1 |
0 |
15 |
1 |
1 |
12 |
1 |
2 |
5 |
1 |
3 |
2 |
2 |
0 |
8 |
2 |
1 |
3 |
2 |
2 |
14 |
2 |
3 |
9 |
3 |
0 |
10 |
3 |
1 |
13 |
3 |
2 |
4 |
3 |
3 |
7 |
|
0 |
1 |
6 |
k |
l |
セル内の数字 |
0 |
1 |
6 |
0 |
2 |
11 |
0 |
3 |
16 |
1 |
0 |
15 |
1 |
1 |
12 |
1 |
2 |
5 |
1 |
3 |
2 |
2 |
0 |
8 |
2 |
1 |
3 |
2 |
2 |
14 |
2 |
3 |
9 |
3 |
0 |
10 |
3 |
1 |
13 |
3 |
2 |
4 |
3 |
3 |
7 |
|
0 |
2 |
11 |
k |
l |
セル内の数字 |
0 |
2 |
11 |
0 |
3 |
16 |
1 |
0 |
15 |
1 |
1 |
12 |
1 |
2 |
5 |
1 |
3 |
2 |
2 |
0 |
8 |
2 |
1 |
3 |
2 |
2 |
14 |
2 |
3 |
9 |
3 |
0 |
10 |
3 |
1 |
13 |
3 |
2 |
4 |
3 |
3 |
7 |
|
0 |
3 |
16 |
k |
l |
セル内の数字 |
0 |
3 |
16 |
1 |
0 |
15 |
1 |
1 |
12 |
1 |
2 |
5 |
1 |
3 |
2 |
2 |
0 |
8 |
2 |
1 |
3 |
2 |
2 |
14 |
2 |
3 |
9 |
3 |
0 |
10 |
3 |
1 |
13 |
3 |
2 |
4 |
3 |
3 |
7 |
|
1 |
0 |
15 |
k |
l |
セル内の数字 |
1 |
0 |
15 |
1 |
1 |
12 |
1 |
2 |
5 |
1 |
3 |
2 |
2 |
0 |
8 |
2 |
1 |
3 |
2 |
2 |
14 |
2 |
3 |
9 |
3 |
0 |
10 |
3 |
1 |
13 |
3 |
2 |
4 |
3 |
3 |
7 |
|
1 |
1 |
12 |
k |
l |
セル内の数字 |
1 |
1 |
12 |
1 |
2 |
5 |
1 |
3 |
2 |
2 |
0 |
8 |
2 |
1 |
3 |
2 |
2 |
14 |
2 |
3 |
9 |
3 |
0 |
10 |
3 |
1 |
13 |
3 |
2 |
4 |
3 |
3 |
7 |
|
1 |
2 |
5 |
k |
l |
セル内の数字 |
1 |
2 |
5 |
1 |
3 |
2 |
2 |
0 |
8 |
2 |
1 |
3 |
2 |
2 |
14 |
2 |
3 |
9 |
3 |
0 |
10 |
3 |
1 |
13 |
3 |
2 |
4 |
3 |
3 |
7 |
|
1 |
3 |
2 |
k |
l |
セル内の数字 |
1 |
3 |
2 |
2 |
0 |
8 |
2 |
1 |
3 |
2 |
2 |
14 |
2 |
3 |
9 |
3 |
0 |
10 |
3 |
1 |
13 |
3 |
2 |
4 |
3 |
3 |
7 |
|
2 |
0 |
8 |
k |
l |
セル内の数字 |
2 |
0 |
8 |
2 |
1 |
3 |
2 |
2 |
14 |
2 |
3 |
9 |
3 |
0 |
10 |
3 |
1 |
13 |
3 |
2 |
4 |
3 |
3 |
7 |
|
2 |
1 |
3 |
k |
l |
セル内の数字 |
2 |
1 |
3 |
2 |
2 |
14 |
2 |
3 |
9 |
3 |
0 |
10 |
3 |
1 |
13 |
3 |
2 |
4 |
3 |
3 |
7 |
|
2 |
2 |
14 |
k |
l |
セル内の数字 |
2 |
2 |
14 |
2 |
3 |
9 |
3 |
0 |
10 |
3 |
1 |
13 |
3 |
2 |
4 |
3 |
3 |
7 |
|
2 |
3 |
9 |
k |
l |
セル内の数字 |
2 |
3 |
9 |
3 |
0 |
10 |
3 |
1 |
13 |
3 |
2 |
4 |
3 |
3 |
7 |
|
3 |
0 |
10 |
k |
l |
セル内の数字 |
3 |
0 |
10 |
3 |
1 |
13 |
3 |
2 |
4 |
3 |
3 |
7 |
|
3 |
1 |
13 |
k |
l |
セル内の数字 |
3 |
1 |
13 |
3 |
2 |
4 |
3 |
3 |
7 |
|
3 |
2 |
4 |
|
3 |
3 |
7 |
|
void f2(void){
char i;
char j;
char k;
char l;
String^ w=L"";
char h=0;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
for(k=i;k<4;k++){
for(l=j;l<4;l++){
if((k!=i) | (l!=j)){
if(a[i][j]==a[k][l]){
h=1;
break;
}
}
}
if(h==1)break;
}
if(h==1)break;
}
if(h==1)break;
}
if(h==0)label2->Text=L"数字の重複はありませんでした。";
if(h==1)label2->Text=L"数字の重複がありました。";
}
4次元のfor文全体にわたって、if文の条件の条件a[i][j]==a[k][l]を満たさず、
if(a[i][j]==a[k][l]){
h=1;
break;
}
は1度も実行されません。したがって、char h=0で初期化されていたhは変更されずh=0のままです。
よって、if(h==0)label2->Text=L"数字の重複はありませんでした。";より『数字の重複はありませんでした。』と表示されます。
|
j |
0 |
1 |
2 |
3 |
i |
|
0 |
1 |
6 |
11 |
16 |
1 |
15 |
12 |
5 |
2 |
2 |
8 |
3 |
14 |
9 |
3 |
10 |
13 |
4 |
7 |
|
|
|
l |
0 |
1 |
2 |
3 |
k |
|
0 |
1 |
6 |
11 |
16 |
1 |
15 |
12 |
5 |
2 |
2 |
8 |
3 |
14 |
9 |
3 |
10 |
13 |
4 |
7 |
|
そして、すべての組み合わせ(1,6)、(1,11)、・・・、(4,7)の120通りすべてあることをご確認ください。
120通りは16C2=(16×15)/(2×1)=120通りの計算からも確認できます。また、下の表からも確認できます。
|
01 |
06 |
11 |
16 |
15 |
12 |
05 |
02 |
08 |
03 |
14 |
09 |
10 |
13 |
04 |
07 |
01 |
|
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
06 |
|
|
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
11 |
|
|
|
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
16 |
|
|
|
|
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
15 |
|
|
|
|
|
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
12 |
|
|
|
|
|
|
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
05 |
|
|
|
|
|
|
|
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
02 |
|
|
|
|
|
|
|
|
○ |
○ |
○ |
○ |
○ |
○ |
○ |
○ |
08 |
|
|
|
|
|
|
|
|
|
○ |
○ |
○ |
○ |
○ |
○ |
○ |
03 |
|
|
|
|
|
|
|
|
|
|
○ |
○ |
○ |
○ |
○ |
○ |
14 |
|
|
|
|
|
|
|
|
|
|
|
○ |
○ |
○ |
○ |
○ |
09 |
|
|
|
|
|
|
|
|
|
|
|
|
○ |
○ |
○ |
○ |
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
○ |
○ |
○ |
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
○ |
○ |
04 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
○ |
07 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
したがって、
void f2(void){
char i;
char j;
char k;
char l;
String^ w=L"";
char h=0;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
for(k=i;k<4;k++){
for(l=j;l<4;l++){
if((k!=i) | (l!=j)){
if(a[i][j]==a[k][l]){
h=1;
break;
}
}
}
if(h==1)break;
}
if(h==1)break;
}
if(h==1)break;
}
if(h==0)label2->Text=L"数字の重複はありませんでした。";
if(h==1)label2->Text=L"数字の重複がありました。";
}
のプログラムで過不足がないことがわかります。
第11話へ 第13話へ
初心者のためのJava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすい vb 入門 vba 入門 基礎から応用まで 第1部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ