• ベストアンサー

分数計算

質問させて頂きます。 Visual++C 2005で分数計算をする簡単なフォームアプリケーションを作りたいと思っています。 普通の計算なら□+□=■の□を入力させ、■に答えを出力する形ですが、 分数は  □   □ --- + --- = ■  □   □ と、分母と分子を別々に入力させて計算させたいのです。 また、計算方法は「+」だけではなくlistboxを作って「+ - * /」から選ばせ、かつ答えだけはLabelを用いて1つのものとして出力したいんです。(既に @ == @ の形になっている) 説明不足で申しわけありません。どうぞよろしくお願いします。

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

  • ベストアンサー
  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.4

#2 Cupperです プログラムで通分するのは難しいですよ でも、理屈が分かっていれば対処はできます 前の方も仰っているように因数分解すれば良いのですが 因数分解のアルゴリズムを質問者が正しく理解しているのか と言った問題もあるので、簡単な方法を説明します 4620を因数分解するときを考えてみてください 始めに2で割りますよね そして見事に割り切れる  4620÷2=2310 もう一度2で割ってみると、これも割り切れます  2310÷2=1155 さらに2で割ってみる…までもなく割れないことは分かりますがやってみます  1155÷2=577・・・1 割り切れなかったので、割る数を一つ増やして3で割ってみます  1155÷3=385 割り切れましたので、もう一度3で割ってみます  385÷3=128…1 割り切れませんでした 次に割る数を一つ増やして4で割ってみます…(割り切れないのは分かっていますが)  385÷4=96…1 割り切れませんので、割る数を一つ増やして5で割ってみます  385÷5=77 割り切れましたので、ひきつづき5で割ってみます   ・   ・   ・ 最終的に、2×2×3×5×7 が答えになります このようにして、割る数字を大きくしていくことで因数を見つけることができます 初めから素数で割れば良いのですが、面倒ですから割る数を1ずつ増やして行ってOK 当面はこれで十分でしょう あとは割り切れた数字を配列に並べると良いでしょう そしてその配列を比較して同じ数字があれば取り除いて 残った数字を掛け合わせると通分の完成 です あとは工夫してください  ※ ここで説明したポイント  割る数を一つずつ増やして繰り返す(どこまで増やすかは明らかですよね。割られる数までです。例の場合4620)  割り切れた数字を配列に追加する がんばってください

その他の回答 (4)

  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.5

分子と分母の最大公約数を求めて、それを割ればよいです。 最大公約数の求め方は、ユークリッド互助法を使います。 ユークリッド互助法のアルゴリズムは http://mail2.nara-edu.ac.jp/~asait/c_program/sample/euclid.htm とかが参考になるでしょう。

  • arain
  • ベストアンサー率27% (292/1049)
回答No.3

No.1です。 >問題は約分なんです。 >例えば答えが4分の2なら2分の1にして表示したく、6分の24なら4と表示したいのです。 > 手順はいろいろとありますので、方法の一例だけ。 単純に分母÷分子では約分はできない場合もある(6/10、9/24等)ので 分子を素因数分解し、その求められた値を利用し分母が割り切れるかどうかを判断します。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

分数の四則演算の方法が分からないのでしょうか? 理解しているならば、どのような手順で 計算を行なっているのかを論理的に考えてください (通分するとか約分するとか) あとは工夫するだけです。

mobsquad08
質問者

補足

説明不足ですいません。 No.1の方にも補足つけさせて頂きましたが約分でつまづいています・・・

  • arain
  • ベストアンサー率27% (292/1049)
回答No.1

それで、何がわからなくて何を教えてほしいのでしょうか? ・分母と分子を別に入力する方法 ・リストから四則演算を選択する方法 ・分数の計算方法 ・etc... 上記のプログラムを「一から全部」なら、それは丸投げですから禁止行為です。

mobsquad08
質問者

補足

あ、すいません。 計算して出力するところまでは出来ました。 問題は約分なんです。 例えば答えが4分の2なら2分の1にして表示したく、6分の24なら4と表示したいのです。 よろしくお願いします。

関連するQ&A

  • 繁分数の計算について

    添付画像の上の繁分数について解き方を図で説明してもらえないでしょうか。 (1)分子と分母に(3+5S)Sをかけるようなのですが計算はどうなりますか?3+5SとSは別れてるのに一緒にかけていいものなのでしょうか。どういうルールですか? (2)分母の3+にも同様に(3+5S)Sをかけるようですが計算はどうなりますか? 下の繁分数について分子と分母のEの部分が消せるみたいなのですがどうしてでしょうか?分子の分母、分母の分子はけせないのでしょうか?分子と分母の文字を消すルールを教えて下さい。 計算が苦手で調べたのですが理解できず同じ系統の質問としてまとめてしまいました。 ベストアンサーにはチップ3枚でお願いいたします。

  • エクセルで分数の通分

    教えてください。エクセルで計算結果があえて分数で出るようにしています。複数の分数の値が出た場合、直感的に数値の大小がわかるようにするために、これらの数値(分数)を通分したいのです。分子、分母を隣り合わせのセルに入力し、分母側の数値のみの最小公倍数を出し、その結果分子側の数値を導き出すという方法で視覚的には通分したように見えますが、そうするためには出てきた答えを分子、分母で入力しなおす必要があります。望むものは、出てきた複数の分数の答えを、入力しなおすことなく通分したいのです。一発関数がなければ、2~3段階の過程(式の入力等)を経ての方法でもOKです。 使用しているエクセルは2000です。 よろしくお願いします。

  • 分数の計算の仕方を教えてください

    恥ずかしながら分数の計算(足し算、引き算、割り算、掛け算)のやり方を忘れてしまいました。 今度、派遣の登録にいくのですが、その時に簡単な計算も出るようです。 友人から分数の計算もあったと聞いたので・・・。 正直、約分と通分も怪しいです。 調べてみたのですが、分数の引き算で分からないところがありました。 問題4/5-2/3(5分の4-3分の2)で私が調べたこの問題の計算式は分子と分母に同じ数をかけて 計算過程が5×3/4×3-3×5/2×5(5×3分の4×3-3×5分の2×5)=12/15-10×15(15分の12-15分の10)=2/15(15分の2)となっていました。 同じ数をかけるのは思い出せたのですが、この問題は「3」と「5」を分子と分母にかけていますが、この「3」と「5」がどこから出てきたのかイマイチ理解できなくて困ってます。 分数の計算(足し算、引き算、割り算、掛け算)のやり方と約分・通分を分かりやすく教えてください。

  • 分数を含む計算について

    ^2は2乗です。分子/分母です。・掛けるです。 1-(12/13)^2 = (1+12/13)(1-12/13) = 25/13・1/13 = 25/13^2 = 5/13 この分数計算が間違っていない場合、 左辺の 1-(12/13)^2 1- の部分が後続で 利用されていない部分や、 = 25/13^2 から、どのような計算で = 5/13  になるのか? わかりません 解説のほどよろしくお願いします。

  • 繁分数?分数÷分数がわかりません。

     本当はここに例文を書きたいのですが、書き方がわからないのでかけませんが、分数÷分数はどのように計算すれば良いですか。  分母分子ともに分数の場合です。わからないので教えてください。

  • 分数の分子にもう一つ分数が乗っている場合の計算方法について質問があります。

    分数の答えが「分数の分子のところに、もう一つ分数が乗っている」形ででてきた場合、どのように計算すればよいでしょうか? (1)(2)(3)(4)と例を書いてみたのですが、これで合っているのでしょうか?また(3)はどうなるのでしょうか?このまま書くのでしょうか?もしくは、ほかの形に直すのでしょうか? 又、このように分数の中に分数??が入っているときの名前(名称)をなんと言うのでしょうか?

  • エクセルで、分数の分子分母をそれぞれ別のセルに移動させるには。

    仕事上で、困ってます。  エクセルで、仕事のデータを入力し、エクセルのマクロVBA・関数を使って計算し、その出た答えを利用して、仕事の段取りをしていますが、データは小数で出てきますが、仕事の計算の都合上、分数に直して、計算をするのですが、エクセルの小数から、分数に直すのは、わかるのですが、分数の分子分母を、それぞれのセルに表示させてから計算させたいのですが、どなたか、分数の分子分母をそれぞれのセルに移動させる方法教えてください。

  • 分数式とその計算、がわかりません。

    --------は分母と分子を区切る線のことです。 25 * x^2 * y^2 ----------------- 30 * x * y^4 ↓ 5 * x * y ------------ 6 * y^2 ↓ 5xy ------ 6y^2 これで答えが間違っているみたいなのですが、この問題を含めて分数式を約分して既約分数式に直すやり方がわかりません。 まだ学校で教えてもらってなくて問題集を見てやってるんですが、授業までにちゃんとやり方をマスターしておきたいです。 解き方を教えて頂けませんでしょうか

  • √の計算です

    2√24-√54-√8/3=√96-√54-√8/3 =√288/3ー√162/3ー√8/3 =√118/3 √の計算ですが、一つが分数になってます。 分数の計算は分母をそろえて計算するので、分子、分母共に√3をかけました。 分数が入っているとこんがらがってしまって、これでよいのか分からなくなりました。 解き方等、よろしくお願いいたします。

  • 分数(除算)の計算 [基本]

    とある計算をしており、分数の除算とマイナスが入った計算なのですが、分母にマイナスが来ると分子と分母をひっくり返した結果となっていました。 久しぶりにこんな計算をしたもので、覚えていなかったのだろうと思います。 もし間違っていれば教えていただきたく、こちらに投稿してみました。 {5/(25/5)}/{-5(45/5)}=9/5 (=1.8) 私の計算では最後が -9/5 (-1.8)となるのですが。。。 アドバイスの程お願いします。

専門家に質問してみよう