逆ポーランド計算

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 逆ポーランド計算

返信

by MML » 2006年5月16日(火) 18:47

返信遅れてすみません。
> 型を宣言しない場合は、内部の型がLong型なのかDouble型なのかをはっきりさせて作る方がいいと思います。
そうですよね、、、ばらばらですとエラーが出ますし、、、

> ファイルから1単語読み込んで読み込んだ内容をString型で返す関数をLoad()関数として、
> 追伸
> もちろんこのままじゃコンパイルできませんよ?
> Defined関数、SetNewDouble関数、SetNewDoubleName関数、GetNowDouble関数、Load関数等は各自で工夫して作ってみてください。

このようなすばらしいスクリプトをありがとうございます。

by konisi » 2006年5月07日(日) 17:43

型を宣言しない場合は、内部の型がLong型なのかDouble型なのかをはっきりさせて作る方がいいと思います。
Double型の方がいろいろな意味で汎用性がありますが。

ファイルから1単語読み込んで読み込んだ内容をString型で返す関数をLoad()関数として、

コード: 全て選択


Function Main()
    Dim A$ As String
    Dim B$ As String
    Dim C$ As String
    Dim D$ As String
    Dim ax As Double
    A$=Load()
    If Defined(A$)=1 then
        B$=Load()
        If B$="=" then
            B$=Load()
            C$=Load()'計算記号
            D$=Load()
            If Defined(B$)=1 And Defined(D$)=1 then
                If C$="+" then
                    ax=GetNowDouble(B$)+GetNowDouble(D$)
                ElseIf C$="-" then
                    ax=GetNowDouble(B$)-GetNowDouble(D$)
                ElseIf C$="*" then
                    ax=GetNowDouble(B$)*GetNowDouble(D$)
                ElseIf C$="/" then
                    ax=GetNowDouble(B$)/GetNowDouble(D$)
                EndIf
                SetNewDouble(A$,ax)
            ElseIf Defined(B$)=1 And D$=Str$(Val(D$)) then
                '略
            '略
            EndIf
        EndIf
    ElseIf A$="Print" then
        B$=Load()
        If Defined(B$)=1 then
            ax=GetNowDouble(B$)
        ElseIf B$=Str$(Val(B$)) then
            ax=Val(B$)
        EndIf
        Print ax
    ElseIf A$="Dim" then
        B$=Load()
        If Defined(B$)=0 then
            SetNewDoubleName(B$)
        EndIf
    EndIf
EndFunction

Do
    Main()
    If Eof(1) then Exit Do
Loop
のようにやったらいいのではないかと。
エラーコードとか随分省略して書きましたが、参考になれば幸いです。

追伸
もちろんこのままじゃコンパイルできませんよ?
Defined関数、SetNewDouble関数、SetNewDoubleName関数、GetNowDouble関数、Load関数等は各自で工夫して作ってみてください。

逆ポーランド計算

by MML » 2006年5月07日(日) 15:34

今、プログラム言語みたいなものを作っているのですが、

読み込んだあとの、計算のやり方がわかりません。

type looseな言語を作っているので
型は気にしない計算をやりたいと思っています。

何かいい方法がございましたら教えてください。

ページトップ