プレイ日記
サファイア nmskt4649v
何故だ… えーっと、変数に記号が入っていても、答えが数字であれば代入可能なので、inputで数式入力して、そのまま表示させようとすると、Redo from start(スタートからやり直しなさい)と表示されました。どういうことですか?また、どうしたら数式を入力して答えを表示できますか?
1そうだね
プレイ済み
返信[1]
親投稿
MIKI ifconfig
> 記号が入っていても、答えが数字であれば代入可能 この認識が間違ってます。 数値変数に数式を入力することは不可能です。 文字変数であれば数式を入力することは可能で、それをそのまま print することも可能です。 先日、数式を文字列として入力して、それを計算して答えを求める関数を公開したところです。 サファイアさんは私の関数にトラウマがあるかもですが、よかったら使ってみてください。
0そうだね
プレイ済み
返信[2]
親投稿
サファイア nmskt4649v
・何故、 a=1+3*3 Print a は可能なのに、InputしたらRedo from startになるのですか? ・MIKI★さんの関数の仕組みを教えて下さい。 ・あと、MIKI★さん。DEFを活用出来るようになった報告の投稿がありますので、良ければプレイ日記からたどって見ていただけると嬉しいです。(自慢ではなく、報告です。DEFの使い方を教えてもらったからには、報告も必要かと思いまして。)
0そうだね
プレイ済み
返信[3]
親投稿
サファイア nmskt4649v
私がMIKIさんの命令で挫折した理由は、笑ってしまうほど今ではすごいことをしていたからです。 関数の定義をせずに、VFLOADとかをしてました。(←オイ) このようなことがないように気を付けます。
0そうだね
プレイ済み
返信[4]
親投稿
ツララ LongIceSword
数値変数に代入の時点で数式なら評価されて変数の中身は数値なんですけど、文字列も受け取るINPUTはそのまま文字列の状態で代入されているので、一回数式に変換して評価するっていう過程を踏まないと数値化されないんじゃないです? 変数の型が違う時に出るエラーが、INPUTの時は一律でRedo from startと表示されてるだけな気もしますけど。 受け取る変数を文字列変数じゃなく数値変数にして文字列を入力すると、いきなりRedo from startって出ますし。
1そうだね
プレイ済み
返信[5]
親投稿
MIKI ifconfig
プログラムのソースコードに式がかけないような言語は実用にならないので、ほぼ全てのプログラミング言語で、ソースコードには自由に式が書けるようになっています。 一方で「文字列に書かれた式」を計算して値を返すような関数を持つプログラムミング言語はかなり少ないです。あれば便利なんだけどねえ。 私の実装はほぼコンパイラの教科書通りです。 ・字句解析: YYLEX(): 文字列を数値や記号に分解するところ ・構文解析: YYPARSE(): 四則演算や変数・関数呼び出しなどを理解して、対応する中間コードを生成するところ ・実行系: YYEXEC(): 生成した中間コードを実行するところ 自作 def みましたよ。すばらしいです!!
1そうだね
プレイ済み
返信[6]
親投稿
サファイア nmskt4649v
便利な関数を作り、プチコンユーザーに提供するという分かち合う考えは素晴らしいです!ありがとうございます!DLしましたので、ソースコードを見てます!
0そうだね
プレイ済み