• ベストアンサー

HSPで、listboxによって代入されたインデックス番号を演算子に直

HSPで、listboxによって代入されたインデックス番号を演算子に直す方法がわかりません…。 例) ランダムに4つの数字を発生させて… 9 [+,-,*,/] 1 [+,-,*,/] 3 [+,-,*,/] 5 = 18 このとき選択された演算子が正しいかどうかを判断するプログラムを作りたいのですが 選択された演算子のインデックス番号を変数で受け取ったのはいいのですが、そのあとにどうすればいいのかわかりません…。 関数を使うのでしょうか?詳しくご説明お願いします。

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

  • ベストアンサー
回答No.1

 きっちり考えた訳ではないですが、参考になれば。  まず、演算子のリスト内容を保持する変数を左から「list.0、list.1、list.2」とすることにしましょう。  その保持変数には[+,-,*,/]=[0,1,2,3]となっていると思います。なので、ifでlist.n(nは変数)の種類によって計算方法を変えてあげればいいと思います。  更に言うなら、数字部分も変数(number.nなど)にしてしまえば、list.nを計算する時、number.nとnumber.n-1 を計算すればよいことになります。これでrepeat~loopを使えば楽になります。  後は、計算し終わった事を保持する変数を用意したり(list.nが-1の時、その間の数値は計算したとしてもいいかもしれません)、list.nの計算する順番を×、÷を優先するなどですかね。  ソースは面倒なので書きませんが、プログラムをつくる参考にでもなってくれれば幸いです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • サルでもわかる 代入演算子 PHP

    只今、PHPの講義を受講しています。 しかし、私は数学の頭でしかなく、「代入演算子」の理解ができません。 ”なぜ、イコールに違う数字を使っちゃうの?”と、 脳みそに”?”だらけです。 講師もあまり深く突っ込んでもらわずに 「こういう物」と、覚えちゃってください。などと、言います。 私としては、理屈が成り立っていないのに、覚えられる訳がないのです。と、 少し立腹ぎみなのですが、ここは抑えて自分で解決しようと思ったのですが、 やはり、理解できません。 ちなみに、過去に他のプログラム言語を学んだことはありません。 どうか、この数学あたまに代入演算子を理解させる方法をご伝授ください。

    • ベストアンサー
    • PHP
  • プログラミング【代入演算子】

    テキストブックを読んでいます。(数学が大の苦手です) 複合代入演算子についてなのですが、テキスト解説には、 int y = 10; int y += 15; System.out.println("y="+y); というプログラムがあるとします。この場合の実行結果の数字は「y=15」でした。 全く意味がわかりません。 int y = 10というのは[y=10」で、int y = 15 に当てはめると、 10+15=25ではないのですか? どのように計算すれば「u=15」が出てくるのか知りたいです。 恥ずかしながら、宜しくお願いします。

    • ベストアンサー
    • Java
  • operator代入演算子のやり方で疑問が

    C++の勉強をしています。 そこでoperatorを使うことをやっているんですが、この演算子、引数を二つつけるとエラーになります。クラス内で定義するとこうなります。 ですがグローバルで定義するとエラーが出力されません。 何故なんでしょうか? 戻り値の関係でしょうか?  class Complex { public: Complex() { } public: // これはエラー、この演算子関数のパラメータが多すぎますと出力される const Complex operator+(const Complex x, const Complex y) { } }; // これはでない・・・ const Complex operator+(const Complex x, const Complex y) { } 上記のプログラムだと、下に書いてある代入演算子は問題ありません。 なぜこうなるんでしょうか? ご教授お願いします。

  • 複数の演算子を選択する場合の処理

    複数の演算子を選択するプログラムがあり、選択する演算子によって計算方法を変えたいのですが、このときに今やっている方法はifの条件分岐にて処理を行っておりますが、演算子は変数に代入できないのでしょうか? 例えばべき乗を選択した場合は 変数= ^ また、これと同じく代入演算子の場合も 変数= ^= という方法があれば教えていただきたいです。 よろしくお願いいたします。

  • 数字の分割方法について

    お世話になります。 変数$numに1~16までの数字をランダムに区切らずに代入した時、 この変数$numの値を1つずつ取り出す関数、もしくは処理方法はございますでしょうか?? ■例■ $num = 12378910; $Num = ホニャララ関数($num); echo $Num[6] "10" もしお分かりになる方がおられましたら、 ご教授をお願い申し上げます。

    • 締切済み
    • PHP
  • PHPを使って、クイズを作りたいと思っています。

    PHPを使って、クイズを作りたいと思っています。 テキストファイルに「,(コンマ)」で区切ったものを用意します。 問題,選択肢1,選択肢2,選択肢3,正解の選択肢の番号 という形で保存する予定です。 そしてそのファイルをPHPで読みこむのですが、 ランダム変数を使って、ランダムな数字を一つ選びます。 その数字の行を一行読み込み、後は、 $question,$choices1,$choices2,$choices3,$answer という形で変数に代入し、問題ページに埋め込みたいのですが…、 やり方を教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • objectから数値を取り出すには?

    flashMX2004のactionscriptについてです。 あるユーザー定義関数の中で作った変数をあとから利用しようとしても、 その中身自体はパスを指定して参照できるのですが、 その中身を用いた演算や、ほかの変数に値を代入することがどうしてもできず、困っています。 具体的には、まず、ユーザー定義関数A内で配列haiAおよびhaiBを定義して、 そこにそれぞれ1~10の重複しないランダムな数字を格納しています。 そして別のユーザー定義関数B内で別の配列haiCを用意して、 for文を使いhaiC[i]=haiA[i]+haiB[i]を実行したいのですが、 これを記述してもこの時haiAおよびhaiBがobject型(typeofによる)であるためか、 うまく演算をしてくれません。trace(haiC)としても、NaNが返ってきます。 trace(haiA)だとちゃんと数値が出力されるのですが、 これを使った演算などのみうまくいかない状態です。 配列を定義した直後に適当な数値を代入して演算してみるとうまくいくので、 object型とやらになっているのは ランダム生成&代入のプロセスに原因があるような気がするのですが、よく分かりません。 いまいち概念を理解しておらず、わかりにくい説明で大変恐縮ですが、 お気づきの点等ありましたらアドバイスよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • getchar,isalphaについて

    C言語を習いはじめてまもない者です。getcharとisalphaについて教えてください。  まず、getcharから。この関数は、キーボードから文字を一文字ずつ読み、読み出した文字を返す。といった働きをするそうですが、この関数を用いて、取り込んだ文字をなぜか、int型で宣言した変数に代入しています。(例:int aなどのaに取り込んだ文字を代入している。)なぜ、文字を取り込んでいるのに、intで宣言した変数に代入すのでしょうか?charで宣言した変数に代入しなくていいのですか?  次に、isalphaについてです。この関数は、変数に代入されている文字が数字か文字かを判断して、文字が入力されていると、0以外の値を返す関数だそうです。しかし、この関数も、変数の宣言がintです。なぜ、charではなくintで宣言するのでしょうか?

  • ランダムで数を表示するには

    C言語を覚えたてなんですが 計算や変数を代入などは本にやり方が書いてあってわかったのですが たとえばサイコロやルーレットのプログラムを作るとして 1~6の数字がランダムででるようなプログラムをつくるには どうすればいいのでしょうか? また1が50%で、2が25%、3が10%で4~6が5%づつとか 出る確率を設定することとかも出来るのでしょうか?

  • C言語の演習問題(C言語)について質問です。

    以下のプログラムは数字と演算子を配列に入れているプログラムです。 このプログラムを式を入れて四則演算のみで計算させるプログラムを作成してるのですがご指導お願いできますか? 例:8/3*3enterkey 答え:8 変数の型は変更しないで行うとの指示のことなので、変数は増やしても構いませんが、変えないでお願いします。 http://codepad.org/Iks8CtjT