forループのカウンター変数を2つ使いたい

解決


yTake  2011-08-19 17:56:34  No: 40857  IP: 192.*.*.*

たびたびお世話になっています。
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ループを更に入れ子にしてもダメだと思います。
あくまで同時にカウントアップさせたいので。


何か良い方法があるのでしょうか?

よろしくお願い致します。

編集 削除
yTake  2011-08-19 18:28:09  No: 40858  IP: 192.*.*.*

自己レスです。
すみませんでした。解決しました。

for文に入る前に、m,nを初期化し、単純に、m,nをインクリメントすれば良いと判明しました。

C言語等だと、カウンター変数を増やせたと思ったので、こだわり過ぎました。

編集 削除
yTake  2011-08-19 21:29:46  No: 40859  IP: 192.*.*.*

閉め忘れでした。

編集 削除
yTake  2011-08-21 21:55:37  No: 40860  IP: 192.*.*.*

閉めたつもりでしたが、閉まってませんでした。


改めて、解決です。お騒がせしました。

編集 削除
NAMETAKE  2011-08-23 16:26:11  No: 40861  IP: 192.*.*.*

ループは一つで済むのでは?
for i := 51 to 80 do
    Move(MatrixB[i][51], MatrixA[i-50][1], SizeOf(MatrixB[i][51])*30);

編集 削除