SUBに2次元配列をわたすことが出来ません、どうするのでしょう

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
iwao

SUBに2次元配列をわたすことが出来ません、どうするのでしょう

#1 投稿記事 by iwao »

Sub Test(ByVal k As *Long)
MessageBox(0, Str$(k[0,0])+" : "+Str$(k[0,1]), "表示テスト", 0)
End Sub

Dim data0[2,2] as Long
data0[0,0]=11
data0[0,1]=22
Test(data0)
ゲスト

#2 投稿記事 by ゲスト »

タイトルと本文の利用目的を理解し、
教えてくださる方に失礼のない態度で質問されてはいかがかな?
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#3 投稿記事 by イグトランス »

私にはこうする方法しか思いつきませんでした。

コード: 全て選択

Sub Test(ByVal k As *Long, y As Long) 
MessageBox(0, Str$(k[0 * y + 0]) + " : " + Str$(k[0 * y + 1]), "表示テスト", 0) 
End Sub


Const Y = 2
Const X = 2
Dim data0[Y, X] As Long
data0[0, 0] = 11
data0[0, 1] = 22
Test(data0, Y)
Sub Test(ByRef k(Y, X) As Long)という風にすると実際にkを使おうとした所でエラーになってしまいましたし、どうやっても呼び出す所もエラーになってしまいました。
iwao

参考をコンパイルしてみました

#4 投稿記事 by iwao »

他に考えて調べていると、二次元配列は4個づつに0が入る見たいで、何か簡単に理論が解れば、つくろって見てみますが、知っている人がいたら教えてください。
tak
記事: 162
登録日時: 2005年5月31日(火) 07:49

Re: 参考をコンパイルしてみました

#5 投稿記事 by tak »

> 他に考えて調べていると、二次元配列は4個づつに0が入る見たいで、何か簡単に理論が解れば、つくろって見てみますが、知っている人がいたら教えてください。

失礼ながら、この文は僕の日本語力では解読できませんでした。
もっと適確に表現してもらえないでしょうか。

言いたいことはそれだけなのですが、ただこれだけ書き込んでも失礼なだけですし、僕なりに可能な範囲で解読してみます。
他に考えて調べていると
目的語:二次元配列について
前後関係より、進行形(~している)的な意味合いは無いと判断
二次元配列は4個づつに0が入る見たいで
解読できません。話の核となる大切な部分なのですが・・・
何か簡単に理論が解れば、つくろって見てみますが
「理論」の意味:二次元配列の理論
「つくろって見てみる」→「つくろう」と「見てみる」に分解
「つくろう」の目的語:ソースコード
「見てみる」の目的語:不明
知っている人がいたら教えてください
「知っている」の目的語:二次元配列の理論
「教えて」の直接目的語:二次元配列の理論
「教えて」の間接目的語:iwaoさん

以上の文法解釈を踏まえて、次のように解読しました。
「二次元配列について他に考え調べてみたら、二次元配列は4個づつに0が入る見たいだ。二次元配列の理論が簡単に解れば、ソースコードをつくろうが、二次元配列の理論を知っている人がいれば教えてほしい。」

ここまではなんとか解読しましたが、間違いがあれば指摘してください。
それから、下線の部分を分かり易く表現してください。
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#6 投稿記事 by イグトランス »

> Sub Test(ByRef k(Y, X) As Long)
このやり方が通るように山本様がコンパイラを改良してくれました。(しかも[]も使えるようになっていました)
ByRefを書くのは余計なようなのでSub Test(k[Y, X] As Long)と書けば良いようです。


To takさん
> 二次元配列は4個づつに0が入る見たいで
これが意味不明なのは私も同じです。なんて答えを返せばいいのか困りました。

> つくろって見てみますが
これは「作ってみますが」と書きたかったのではないでしょうか。
iwao

カンパを先月、山本さんに500円入れてよかった。

#7 投稿記事 by iwao »

Sub Test1(k[2,2] As Long)
MessageBox(0, Str$(k[0,0])+":"+Str$(k[0,1])+":"+Str$(k[1,0])+":"+Str$(k[1,1]), "表示テスト", 0)
End Sub
Dim data0[2,2] As Long
data0[0,0]= 1
data0[0,1]= 2
data0[1,1]= 3
data0[1,0]= 4
Test1(data0)
返信する