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

解決


yTake  2011-08-20 02:56:34  No: 40857

たびたびお世話になっています。
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-20 03:28:09  No: 40858

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

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

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


yTake  2011-08-20 06:29:46  No: 40859

閉め忘れでした。


yTake  2011-08-22 06:55:37  No: 40860

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

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


NAMETAKE  2011-08-24 01:26:11  No: 40861

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加