電子書籍の厳選無料作品が豊富!

とても初歩的な質問だとは思いますが宜しくお願いします。

ただいまある実験用のプログラミングをBCB6で行っているのですが、
完全に行き詰ってしまいました。

作るものの概要としては
『ボタンを押す間隔を測り、測定した時間に応じて、
2つのカテゴリーからそれぞれ登録された文字列を表示させる。』
といったものです。

文字列を100個×2カテゴリー=合計200個登録する方法、
それをランダムで表示させる方法(1度使った文字列は使わない)
をご教授いただきたいのです。
宜しくお願いします。

A 回答 (3件)

const char* Cat1[] = {


"String 1-001",
"String 1-002",
// 中略
"String 1-099",
"String 1-100"
};
const char* Cat2[] = {
"String 2-001",
"String 2-002",
// 中略
"String 2-099",
"String 2-100"
};
とすれば、0~99の乱数(rand()など)をCat1[]、Cat2[]の添字にすればランダムで文字列を選択することは出来る。
一度使ったものをどこかに記憶しておいけば、ダブらないようにも出来る。

何がしたいのかが今一理解できないの。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
いまいち僕の説明不足でしたのでもう少し詳しく説明させていただきます。

今何とかしたいと思っている部分は具体的な例を挙げると以下のようなものです。

例えば「食物」を示す名詞が100個、「鉱物」を示す名詞が100個あるとします。
次にボタン1とボタン2、メモ1があり、ボタン1を押すと「食物」を示す名詞が、
ボタン2を押すと「鉱物」を示す名詞がメモ1に表示されるとします。

プログラムを起動させるとそれぞれの100個の名詞が
それぞれのカテゴリー内でランダムに並び替えられ、
ボタン1を押すと「食物」を示す名詞が、
ボタン2を押すと「鉱物」を示す名詞が
並び替えられた順に、つまり重複せずにランダムでメモ1に表示されるようにしたいのです。

説明下手ですいません。

お礼日時:2006/09/15 14:40

#2さんの回答で問題は片付くでしょう。


Cat1[0..99]及びCat2[0..99]を並び替えた上で
先頭へのポインタ(またはoffsetを示す数値)を各個に用意。

あとは"ボタン1"押されたら
Cat1の現在地が示す値を表示して、ポインタないしoffsetをインクリメント。
"ボタン2"が押されたら、同じくCat2のポインタないしoffsetを操作。

それとも、考え方ではなく実装の仕方が分からないのかしら。
    • good
    • 0
この回答へのお礼

あらためて本を片手に見ていたら、
段々ではありますが理解できて来ました。
ありがとうございます。
早速試してみます。

お礼日時:2006/09/16 13:02

こんにちは。



 Cの乱数についての記載があるサイトを下に貼ります。

 あとは、使った文字列には印をつけて再選択するようにしたらどうでしょう。

では。

参考URL:http://kone.vis.ne.jp/diary/diaryb10.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
乱数に関してはそれほど厳密でなくて良いので、
rand()でも使おうと思っています。
ちょっとリンク先は僕には難しすぎました。
本当に申し訳ありません。

お礼日時:2006/09/15 14:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!