たびたびお世話になっています。
yTakeです。
今回は、for文でカウンター変数を2つ使いたいのですが、その様な事はできるのでしょうか?
例えば、二次元配列が二つあり、一方の配列内部の矩形領域を他方の配列へコピーする事を考えます。
MatrixA[30, 30], MatrixB[100, 100]とします。
ここで、MatrixBの(51, 51)から(80, 80)までを、MatrixAの(1,1)から(30,30)へコピーしたいのですが、
for i := 51, m := 1 to 80, 30 do
for j := 51, n := 1 to 80, 30 do
MatrixA[ m, n ] := MatrixB[ i, j ];
では、当然ダメでした。
横着し過ぎでしょうか?
ただ、forループを更に入れ子にしてもダメだと思います。
あくまで同時にカウントアップさせたいので。
何か良い方法があるのでしょうか?
よろしくお願い致します。
自己レスです。
すみませんでした。解決しました。
for文に入る前に、m,nを初期化し、単純に、m,nをインクリメントすれば良いと判明しました。
C言語等だと、カウンター変数を増やせたと思ったので、こだわり過ぎました。
閉め忘れでした。
閉めたつもりでしたが、閉まってませんでした。
改めて、解決です。お騒がせしました。
ループは一つで済むのでは?
for i := 51 to 80 do
Move(MatrixB[i][51], MatrixA[i-50][1], SizeOf(MatrixB[i][51])*30);
ツイート | ![]() |