Pascalの宿題は俺にやらせろ!!Part2
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
550:光速エスパー世代774RR 07/08/04 17:37:26 function disp(source : string) : string; var i : integer; c : char; begin for i := 1 to length(source) do begin c := source[i]; if c in ['a'..maxvar] then pusht(c) else if c in ['&', '|', '#', '¥'] then term(c) end; disp := popt end; push, pop類はスタックを実装している。RPNだから単純なスタックマシンで 好きなだけ複雑な式を計算させられる。calcが手抜きパーザで、変数名を見ると スタックに値を積み、演算子を見ると、opeで演算を行いスタックトップに値を残す。 最後にpopすれば式全体の値になる。 変数空間を舐めるのはSetVarSetで、0から始まる2^変数個の整数を生成して、 得られた整数の各ビットを変数の値に代入している。 551:光速エスパー世代774RR 07/08/04 17:54:07 for i := 1 to powerof(ord(maxvar) - ord('a') + 1) do はこれでもいいけど、 for i := 0 to pred(powerof(ord(maxvar) - ord('a') + 1)) do の方が見栄えがいいな。 「変数空間を舐めるのはSetVarSetで、0から始まる2^変数個の整数を生成して、 得られた整数の各ビットを変数の値に代入している。」は 「変数空間を舐めるために、0から始まる2^変数個の整数を生成して、得られた 整数の各ビットをSetVarSetで各変数の値に代入している。」
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5190日前に更新/280 KB
担当:undef