新しく発言する EXIT インデックスへ
分数同士の加減乗除のプログラム

  分数同士の加減乗除のプログラム morino 2005/02/11 20:48:49 
  有理数モードを使うと自分で通分、約分をプ... 青木太一 2005/02/12 06:53:55 
   ├青木さんありがとう もりの 2005/02/12 09:13:36 
   ├あれれ もりの 2005/02/12 10:32:06 
   └青木さんへ もりの 2005/02/12 23:25:21 
    └なんのことやらわかりません。もっと詳細に... 青木太一 2005/02/14 10:23:18 
     └あ、もしかして。実行するとユーザーが数式... 青木太一 2005/02/14 10:29:43 
      └ふたつの数字を もりの 2005/02/14 12:42:16 
       └1.特に入力を受けるプログラムにはせず、ソ... 青木太一 2005/02/14 14:45:14 
        └アドバイスありがとう もりの 2005/02/14 15:25:33 

  分数同士の加減乗除のプログラム morino 2005/02/11 20:48:49  ツリーへ

分数同士の加減乗除のプログラム 返事を書く
morino 2005/02/11 20:48:49
十進で 分数同士の加減乗除 のプログラムはできるのでしょうか?

できれば 答えは 約分し

仮分数で表示しますか? 帯分数で表示しますか?

と 答えの出し方を選択できるとうれしいです。

よろしくお願いします。^^

  有理数モードを使うと自分で通分、約分をプ... 青木太一 2005/02/12 06:53:55  ツリーへ

Re: 分数同士の加減乗除のプログラム 返事を書く
青木太一 2005/02/12 06:53:55
有理数モードを使うと自分で通分、約分をプログラムしなくていいので楽できます。
----
option arithmetic rational
call kabun( 3/4 +7/11 )
call taibun( 3/4 + 7/11 )
print
call kabun( 1/4 +7/11 )
call taibun( 1/4 + 7/11 )
print
call kabun( 7/12 -101/15 )
call taibun( 7/12 -101/15 )

sub kabun(f)
print "仮分数:";f
end sub

sub taibun(f)
print "帯分数:";
LET f$=str$(f)
LET slash_pos=pos(f$,"/")
LET numer=val(f$(1:slash_pos-1)) !分子
LET denom=val(f$(slash_pos+1:len(f$)))!分母
print int(numer/denom);"+";mod(numer,denom);"/";denom
end sub
END
----
実行結果----
仮分数: 61/44
帯分数: 1 + 17 / 44

仮分数: 39/44
帯分数: 0 + 39 / 44

仮分数:-123/20
帯分数:-7 + 17 / 20
----
帯分数の表示は面倒なので「符号あり整数 + 正の分数」という表示にしました。
本当の帯分数の表記とは違うかな。

   ├青木さんありがとう もりの 2005/02/12 09:13:36  ツリーへ

Re: 有理数モードを使うと自分で通分、約分をプ... 返事を書く
もりの 2005/02/12 09:13:36
青木さんありがとう

対分数の表示は本当のものとはちがいますが
説明するときにはセマンテックが大事なので
とてもいいとおもいます
来週6年生の練習問題を指導しますので
そのとき試しにつかってみますね
もし普通の帯分数の表示もできれば
ありがたい


   ├あれれ もりの 2005/02/12 10:32:06  ツリーへ

Re: 有理数モードを使うと自分で通分、約分をプ... 返事を書く
もりの 2005/02/12 10:32:06
あれれ
青木さんの作ってくれたプログラム
貼り付けてやってみたら
うごかない

入力まちになってしまいました

僕のやり方がいけないのかな?

僕のパソコンはwin98
バリュースターnxですが・・・

xpでもやってみたいと思いますが
??

   └青木さんへ もりの 2005/02/12 23:25:21  ツリーへ

Re: 有理数モードを使うと自分で通分、約分をプ... 返事を書く
もりの 2005/02/12 23:25:21
青木 さんへ

実行すると書き込み禁止になって
しまうので
どうしたら入力できるの?

    └なんのことやらわかりません。もっと詳細に... 青木太一 2005/02/14 10:23:18  ツリーへ

Re: 青木さんへ 返事を書く
青木太一 2005/02/14 10:23:18
なんのことやらわかりません。もっと詳細に状況を書いてください。
十進BASICで私のコードを実行しようとすると、「書き込み禁止」というエラーダイアログが出るのですか?
「書込み禁止」だけでなくもっと他に何か書いてありませんか?

たとえば、以下のプログラムではエラーが出ますか?
二つのそれぞれについてお答えください。
プログラム1
print 10+1/2
END

プログラム2
option arithmetic rational
print 10+1/2
END

     └あ、もしかして。実行するとユーザーが数式... 青木太一 2005/02/14 10:29:43  ツリーへ

Re: なんのことやらわかりません。もっと詳細に... 返事を書く
青木太一 2005/02/14 10:29:43
あ、もしかして。実行するとユーザーが数式の入力を促されるようなプログラムをご想像ですか?
そういうプログラムではありません。実行するとコードに埋め込まれて書かれた計算い終了するだけです(「入力待ち」にはならないはず)。
埋め込まれているのは
「3/4 +7/11」
「1/4 +7/11」
「7/12 -101/15」
私が書いたプログラムでは上の三つの数式です。
他の数式を計算したかったらエディタで直接コードをいじって処理したい数式を書き換えてください。
(私の想像が間違っていたらごめんなさい)

      └ふたつの数字を もりの 2005/02/14 12:42:16  ツリーへ

Re: あ、もしかして。実行するとユーザーが数式... 返事を書く
もりの 2005/02/14 12:42:16
ふたつの数字を
いろいろかえて
計算したいんです
どこをなおせばいいのかな?

       └1.特に入力を受けるプログラムにはせず、ソ... 青木太一 2005/02/14 14:45:14  ツリーへ

Re: ふたつの数字を 返事を書く
青木太一 2005/02/14 14:45:14
1.特に入力を受けるプログラムにはせず、ソースコード中の数式を直接いじる。

2.inputを使う。
 分数の形では数値を入力できないようなので、分子分母を分けて入力したり、文字列として与えるなどの工夫が必要。

        └アドバイスありがとう もりの 2005/02/14 15:25:33  ツリーへ

Re: 1.特に入力を受けるプログラムにはせず、ソ... 返事を書く
もりの 2005/02/14 15:25:33
アドバイスありがとう

でも自分ではリライトできないかも

プログラム例があると
できるかもしれませんね


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。