OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

計算結果がものすごく多いんですが。。。

  • すぐに回答を!
  • 質問No.208625
  • 閲覧数78
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 100% (3/3)

今、画像処理のプログラムを作成中です。
それで、このような計算式がありまして、
Hue = (b-g) * (pai/3)
Hueの計算結果がたくさんあって、数にして311,040個。
(Hueの単位は度で、0°~360°までです。)
それで、その結果を配列にいれたいんです。
どうやって配列を作ればいいのか分かりません。
どなたか分かる方、詳しく教えて下さい!!
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル13

ベストアンサー率 26% (267/1014)

>大いに疑問です。
大丈夫みたいですよ。

Option Explicit
Option Base 0

Private Sub Command1_Click()
Dim x(311040) As Double
Dim idx As Long

For idx = 0 To 311040
x(idx) = idx + 1
Next idx

Debug.Print x(0) + x(311040)
MsgBox x(0) + x(311040)
End Sub

Debug.Print と MsgBox は、デバッグ環境、exeにコンパイルしたもの、両方で確認したという意味です。
#ちなみに、最適化もなかなかのもんです。

>Basicの配列のメモリーへの実装方法
 詳しく知らないのですが、VBの変数はすべて格納領域へのポインタのようです。Variant型なんてのは、相当複雑なことをやっているようです。
 インテル系CPUは、80386(だったか)あたりから、ディスクリプタテーブルを採用しているので、大容量のメモリ領域を擬似的に連続領域のように扱えるコンパイラを作成できます。恐らくVBもそうなのでしょう。

>隔世の感あり。
 たしかに、おっしゃるとおりです。
DISK-BAISCのランダムアクセスファイルで8インチFDにPUT,GETしたり、2kBの中にBASICインタプリタを詰め込んでいたTINY-BASICのころは、まるで石器時代の幻ようです。

>メモリーがふんだんに使えるようになると
 先日もショップで高校生が「ハードディスクは、30GBじゃたりない」と話していて、ハリ倒してやろうかと思いました。

若者がベテランに「Cの構造体って、C++のクラスみたいなもんですか?」と質問したっていう笑えないジョークもあるくらいで・・・

#かくいう私は、すでに老兵です。
補足コメント
butt-head

お礼率 100% (3/3)

すいません。私の説明が悪かったです。
計算結果は311,040個なんですが、それらの全部の値は0°~359°の計360個の配列に分けて入れたいんです。
例えば、Hue=2.6なら小数点以下は切り捨てて、まずHue=2にします。
それを2°の配列に格納し、カウントしていく。
3110,40個の値がそれぞれ入ってしまった後、2°は何個あったか分かるようにしたいんです。
この説明で大丈夫でしょうか?
よろしくお願いします!!
投稿日時 - 2002-01-31 16:30:23
お礼コメント
butt-head

お礼率 100% (3/3)

ykkw2001さんのを参考にさせて頂いて何とかできました!!
しかし、パソコンが古いため計算がめっちゃ遅いです。
学校の研究室なので我慢するしかありません(;;)
いろいろ書いてくださってありがとうございました★
投稿日時 - 2002-01-31 18:50:12
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル13

ベストアンサー率 26% (267/1014)

dim hue(311040) as double hue(311040)=99.99 msgbox hue(311040) 「こんなんじゃダメだ」ってことなの? ...続きを読む
dim hue(311040) as double
hue(311040)=99.99
msgbox hue(311040)

「こんなんじゃダメだ」ってことなの?
お礼コメント
butt-head

お礼率 100% (3/3)

すいません。ちょっと言い方間違ってました。。。(><)っっ
投稿日時 - 2002-01-31 16:57:25


  • 回答No.2
レベル14

ベストアンサー率 28% (4323/15244)

回答者のルーチンが動くことは確認しました。しかしメモリー容量の 関係から1~例えば320、000個の配列に全て空きなく数をセットして行った時、エラーにならないと言えるでしょうか。大いに疑問です。 Basicの配列のメモリーへの実装方法をご存知の方教えてください。  メモリーが今のように利用できなかった少し前までは、配列では なく、レコードとして、外部記憶装置(Disk)に記録し、それを読んで処理し ...続きを読む
回答者のルーチンが動くことは確認しました。しかしメモリー容量の
関係から1~例えば320、000個の配列に全て空きなく数をセットして行った時、エラーにならないと言えるでしょうか。大いに疑問です。
Basicの配列のメモリーへの実装方法をご存知の方教えてください。
 メモリーが今のように利用できなかった少し前までは、配列では
なく、レコードとして、外部記憶装置(Disk)に記録し、それを読んで処理していたと思います。DOS-Basicの固定長ランダムファイルのようなものを使うべきでないのでしょうか。Get #1,nのn=320000とすれば320000番目のレコードの内容が変数(フィールド)にセットされる仕組みがあれば、a=b(320000)と同じではないでしょうか。
ただ処理時間の点で格段の差はあるでしょうが。配列にデータを
セットする時も、多量の場合はDiskファイルから読みこんでいませんか。
VBにもPUT,GETステートメントは残されているようです。
メモリーがふんだんに使えるようになると。この質問と
回答者のようなのが当たり前になるのでしょうね。
4Kのメモリーのコンピュターを見聞きしていた者にとって
隔世の感あり。
お礼コメント
butt-head

お礼率 100% (3/3)

まだVB初心者なので説明が上手くできていなかったみたいです。。。
すいませんでした。
投稿日時 - 2002-01-31 17:01:51
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ