第10講 関数の学習
第11話 トレースの続き
|
j |
0 |
1 |
2 |
3 |
i |
|
0 |
16 |
13 |
1 |
8 |
1 |
9 |
11 |
12 |
3 |
2 |
5 |
6 |
7 |
14 |
3 |
12 |
2 |
4 |
15 |
|
|
|
l |
0 |
1 |
2 |
3 |
k |
|
0 |
16 |
13 |
1 |
8 |
1 |
9 |
11 |
12 |
3 |
2 |
5 |
6 |
7 |
14 |
3 |
12 |
2 |
4 |
15 |
|
i |
j |
セル内の数字 |
|
0 |
0 |
16 |
k |
l |
セル内の数字 |
0 |
0 |
16 |
0 |
1 |
13 |
0 |
2 |
1 |
0 |
3 |
8 |
1 |
0 |
9 |
1 |
1 |
11 |
1 |
2 |
12 |
1 |
3 |
3 |
2 |
0 |
5 |
2 |
1 |
6 |
2 |
2 |
7 |
2 |
3 |
14 |
3 |
0 |
12 |
3 |
1 |
2 |
3 |
2 |
4 |
3 |
3 |
15 |
|
0 |
1 |
13 |
k |
l |
セル内の数字 |
0 |
1 |
13 |
0 |
2 |
1 |
0 |
3 |
8 |
1 |
0 |
9 |
1 |
1 |
11 |
1 |
2 |
12 |
1 |
3 |
3 |
2 |
0 |
5 |
2 |
1 |
6 |
2 |
2 |
7 |
2 |
3 |
14 |
3 |
0 |
12 |
3 |
1 |
2 |
3 |
2 |
4 |
3 |
3 |
15 |
|
0 |
2 |
1 |
k |
l |
セル内の数字 |
0 |
2 |
1 |
0 |
3 |
8 |
1 |
0 |
9 |
1 |
1 |
11 |
1 |
2 |
12 |
1 |
3 |
3 |
2 |
0 |
5 |
2 |
1 |
6 |
2 |
2 |
7 |
2 |
3 |
14 |
3 |
0 |
12 |
3 |
1 |
2 |
3 |
2 |
4 |
3 |
3 |
15 |
|
0 |
3 |
8 |
k |
l |
セル内の数字 |
0 |
3 |
8 |
1 |
0 |
9 |
1 |
1 |
11 |
1 |
2 |
12 |
1 |
3 |
3 |
2 |
0 |
5 |
2 |
1 |
6 |
2 |
2 |
7 |
2 |
3 |
14 |
3 |
0 |
12 |
3 |
1 |
2 |
3 |
2 |
4 |
3 |
3 |
15 |
|
1 |
0 |
9 |
k |
l |
セル内の数字 |
1 |
0 |
9 |
1 |
1 |
11 |
1 |
2 |
12 |
1 |
3 |
3 |
2 |
0 |
5 |
2 |
1 |
6 |
2 |
2 |
7 |
2 |
3 |
14 |
3 |
0 |
12 |
3 |
1 |
2 |
3 |
2 |
4 |
3 |
3 |
15 |
|
1 |
1 |
11 |
k |
l |
セル内の数字 |
1 |
1 |
11 |
1 |
2 |
12 |
1 |
3 |
3 |
2 |
0 |
5 |
2 |
1 |
6 |
2 |
2 |
7 |
2 |
3 |
14 |
3 |
0 |
12 |
3 |
1 |
2 |
3 |
2 |
4 |
3 |
3 |
15 |
|
1 |
2 |
12 |
k |
l |
セル内の数字 |
1 |
2 |
12 |
1 |
3 |
3 |
2 |
0 |
5 |
2 |
1 |
6 |
2 |
2 |
7 |
2 |
3 |
14 |
3 |
0 |
12 |
|
プログラム再掲
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"数字の重複がありました。";
}
比べられるセルi=0,j=0 比べるセルk=3,l=1のときにif文の条件a[i][j]==a[k][l]を満たし、if文
if(a[i][j]==a[k][l]){
h=1;
break;
}
が実行され、h=1となります。そして、一番内側のfor(l=j;l<4;l++)文が強制終了されます。
さらに、
if(h==1)break;
}
if(h==1)break;
}
if(h==1)break;
によって、for(k=i;k<4;k++)文、for(j=0;j<4;j++)、for(i=0;i<4;i++)の順にfor文が強制終了されて、
if(h==1)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 |
|
この場合でトレースしてみましょう。
第10話へ 第12話へ
初心者のためのJava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすい vb 入門 vba 入門 基礎から応用まで 第1部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ