09/12/22 10:24:43
スレリンク(tech板:309番)
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク): URLリンク(ime.nu)
# ●基本課題 2c(数式データの基本操作)
# 算術式の値を変えずに括弧をくくり直す簡単な式変形を考える.例えば,式
# (1+(2+3))
# (a*(b*c))
# ((i*x)+((j*y)+(k*z)))
# の括弧を左にくくり直すと,それぞれ,次の式になる.
# ((1+2)+3)
# ((a*b)*c)
# (((i*x)+(j*y))+(k*z))
# 括弧を左にくくり直せる (A+(B+C)) や (A*(B*C)) の形の算術式を
# ((A+B)+C) や ((A*B)*C) の形にする式変形は,式に対応する木を
# 「左に転回」する変形と捉えられる(下図).
#
# URLリンク(www.cs.info.mie-u.ac.jp) → URLリンク(www.cs.info.mie-u.ac.jp)
#
# この操作を実行する関数 rotate_left_exp()(exp.c にある)を完成させよ.
# この関数を使い,可能な場合にだけ算術式の括弧を左にくくり直す関数
# assoc_left() を ex2.c に作って動作確認せよ.