[BlueLeaf1336]> PROBLEMS> GlyphGraph>
| history | TOP |
2004/04/14:作成
2004/04/15:更新。解放処理が適当すぎたのでソース削除。
| overview | TOP |
無謀ココに極まれり、というわけで新シリーズ「グラフ計算機(?)を作ろう」です。まず始めに断っておかなければならないのは、(今はどうか知りませんが、かつてはアップルメニューの中にあった)「グラフ計算機」とは全くコレッポッチも耳糞ほども関係のないモノだということです。それからいくらでも高速高機能な奴が作成されています。
ですが、いつものとおり、自分で作りたいというわけです。
名前の由来ですが、グラフグラフグラフ...ぐりとぐら...ぐりふぐらふ...GlyphGraph...。みたいな感じで。いつも名前がちょっとヨイカンジの奴は本体がしょぼくなりがちで、名前も適当な奴は本体がしょぼくなりがちで、どちらにしても本体はアレです。
とりあえずの目標(妄想ともいいます)では
ダウンロードファイル:20040414GlyphGraph.zip(173,576bytes)
何が楽しいのか全く分からない画面。とりあえずてっぺんの文字列を解析して演算子とか数値とか判断して再構成したのが2段目で3段目は逆(?)ポーランド記法で書いたものです。3段目はあってるのかどうか分かりません。
上の実行画面は、次のコードで処理しています。
procedure TForm1.Button1Click(Sender: TObject);
var
Exp: TTokenizer;
Node: TNode;
begin
try
Exp := TTokenizer.Create(Edit1.Text);
Node := Exp.GetExp();
Exp.Free;
Edit2.Text := Node.PrintExp();
Edit3.Text := Node.PrintPolish();
Node.Free;
except
;
end;
end;
まあ、その、クラスにまとめて解析やらなんやらをやってますよ、ということです。それから、文法的に変な場合は例外が発生します、見事に。
今のところは、「^ =」に対応していないので、それをやるとして、実際の計算をやる必要があります。そこまでやってはじめてグラフに...となるはずなのでまだまだですね。
| EOF | TOP |