システムプログラム'01 演習問題(2)


その 1

例題: 演算子順位法による構文解析のプログラムをコンパイルして実行してみてください。 これは、1+2*3のような入力を受け取って、その答を計算するプログラムです。 そしてこの例題を参考にして、次の問題をやってください。
  1. (難易度 A)引き算(-)と割り算(/)にも対応した計算プログラムを作成せよ。(単項演算子の-は考慮しなくて良い。)

  2. (難易度 B)1. に加えて、さらに累乗の演算子(^)にも対応した計算プログラムを作成せよ。
    ただし ^は右結合(例えば 2^2^3は、2^(2^3)、つまり 256のこと)で、 */よりも、優先順位が高いものとする。 (ちなみに ^で累乗の演算子を表わすのは、Fortranなどの記法で、 C言語では、^は累乗を計算する演算子ではない。 xの y乗を計算する Cの関数は double pow(double x, double y)である。 この関数を使うには #include <math.h>が必要である。)
これで物足りない人は
  1. (難易度 B)入力された通常の記法の算術式の、 逆ポーランド記法を出力するプログラムを作成せよ。
もやってください。
システムプログラムのホームページ
Koji Kagawa (kagawa@eng.?????)