A 回答 (3件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
それは.... とても面倒だと思う. 事実上コンパイラ (というかインタプリタ) を作るのと同じなので, そっち系の本を漁った方が早いかもしれない.
簡単にいうと,
・「3-1=」という文字列から「3」「-」「1」「=」と分解する (字句解析)
・その分解結果から「3 から 1 を引くんだ」と理解する (構文解析)
・理解した結果に基づいて実際に計算
という手順を踏むことになります.
この回答への補足
以下のようなプログラムを作ってみたのですが、どうでしょうか。
character(10)::a(4)
integer::b,i
real(8)::aa,bb,c
do i=1,4
read*,a(i)
enddo
read(a(1),*) aa
read(a(3),*) bb
b=ichar(a(2))
if(b==43) then
c=aa+bb
else if(b==45) then
c=aa-bb
else if(b==42) then
c=aa*bb
else if(b==47) then
c=aa/bb
endif
print*,c
end
No.3
- 回答日時:
こんな感じでよいのでしょうか?
2数の足し算のみにしか対応していません.
他の四則演算や複雑な数式を利用するためには,もう少し手を加える必要があります.
program bc
implicit none
character(len=100) c
integer i,j,io,n
read(*,*) c
n=len_trim(c)
io=index(c,"+")
read(c(1:io-1),*) i
read(c(io+1:n-1),*) j
if(iachar(c(n:n)) == iachar("=")) then
write(*,*) i,"+",j,"=",i+j
end if
end program bc
有難う御座います。
同じようにして割り算をしてみたのですが、index(c,"/") しても0になって値が出てきません。なぜでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
EXCELなどで「返す」という表現
-
CとFORTRANの計算速度はどちら...
-
C++ でファイルを消す関数(??)
-
バッチファイルでウインドウを...
-
Javaでのある数の小数点乗に...
-
機械の扱える最も0に近い実数は?
-
連立一次方程式を解くプログラム
-
C言語で、べき乗の計算をするプ...
-
連立方程式を解くプログラムを...
-
c言語でsinx=0(0<x<5)をニュー...
-
Excel VBAの残業時間の合計計算...
-
変化させるセルが変化しない
-
コピーマクロを「値のみコピー...
-
SNRの計算の仕方
-
四則演算プログラム(入力式の...
-
剰余の計算方法
-
引き放し法による除算アルゴリ...
-
科学計算
-
C言語で、べき乗の計算方法につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
排他的論理和 BCC(水平パリテ...
-
VBAの再計算が反映されない件に...
-
バッチファイルでウインドウを...
-
変化させるセルが変化しない
-
EXCELなどで「返す」という表現
-
傾いた四角形内の範囲の条件式
-
エクセルで特定のセルのみを任...
-
CとFORTRANの計算速度はどちら...
-
Visual C++でdebugとreleaseで...
-
モジュラス103の計算とは何でし...
-
なぜオーバーフローになるので...
-
VB6で正確なミリ秒を計測したい...
-
VBでReplace
-
引き放し法による除算アルゴリ...
-
matlabで計算終了
-
CRC8を教えてください
-
VBAで関数をつくる
-
Excel VBAの残業時間の合計計算...
-
等高線を計算したい
おすすめ情報