コミュニティアイコン プチコン 非公式コミュニティ プレイ日記

アバター
ヘンルーダ ◆yprQSt4Ll9A2
2018/12/1 19:55
初めてプログラムを作って早1週間…そろそろ日常にもIF〜THEN〜命令の考え方が浸食してきたところで、プログラムの改善を図りました。これ以上は私の知識が及ばないというところまで突き詰めました。
公開キー:TJDYY3G4
前回はトピックで投稿しましたが、今回はまだ他に出来そうなことが残っているので、それを終えたら疑問と共にトピックを投稿するつもりです。
プログラム自体も大分見て呉れが良くなったと思うので、初心者のプログラムを眺めてほんわかして頂けたらと思います。

コメント

アバター
あきと 2018/12/2 20:45 ◆qGd5dQw2g3a2
落としてみました。
プログラムがグンと読みやすくなりました。コメントも細かくつけてますね。
式表示の部分もDEFで文字列の整形も細かく動いてる!
ELEMENT関数の所でアドバイスを。
似たような判定してると思いませんか?
関数の中でも別の関数を呼ぶことが出来ますよ。つまり…?
アバター
ヘンルーダ 2018/12/3 14:17 ◆yprQSt4Ll9A2
ありがとうございます。添削して頂いて本当にありがたいです。
指摘の箇所をみて考えたのですが、ELEMENTの中にSIGNを組み込むと良いでしょうか…昨日頭を使った疲れかあまりぱっとしないのですが、i1成分とij成分に分けたのはたしか符号の都合だったので…
アバター
あきと 2018/12/3 20:02 ◆qGd5dQw2g3a2
i1,j1の違いは一行しかありません。
つまりそれ以外は同じです。
サブ関数を作成して呼び出せば、まとまります。

inはi1,j1の後半の機能を持っています。
アバター
ヘンルーダ 2018/12/4 19:37 ◆yprQSt4Ll9A2
昨日は一日中頭が働かなかったのでおかしな返信をしてしまいました。すみません。
関数を改めて見直しています。思いの外改善のしようがあったのでもう少し頑張ってみます。
ところで、サブ関数というのは関数の中に入れる為の関数のことでしょうか。
アバター
ヘンルーダ 2018/12/4 20:52 ◆yprQSt4Ll9A2
改善しました。
公開キー:YKK83E91
指摘に即してはいませんが、関数を2つにすることができました。サブ関数なるものを用いることなく、ただ削っただけではありますが…
アバター
あきと 2018/12/4 23:36 ◆Bz8zeG7wRHNQ
サブ関数というのは実際に表では呼ばれないけど共通の処理がある場合などを想定していました。

ELEMENTi1 X,X$
ELEMENT_sub x,x$
~個別処理
END

ELEMENTj1 X,X$
ELEMENT_sub x,x$
~個別処理
END

ELEMNT_sub x,x$
iとjの共通処理
END

もちろんどんな風に組んでも自由なので、あくまで一例です。
アバター
ヘンルーダ 2018/12/5 3:39 ◆yprQSt4Ll9A2
な…なるほど!
感覚的には代入に似たような気がしました。それ特有の動作だけを残して、重複する部分には他から代入すれば、確かに見かけにもすっきりしますね。
本当にありがとうございます…!
アバター
ツララ 2018/12/7 14:57 ◆ArUdBYOYME1V
あきとさんが出してくれている例の
IF X!=0 THEN AND SGN(Y)!=-1 AND Y!=0 THEN ?"+";
の部分に誤字というか書式エラー含まれてるんですけど
それを指摘してないということは実際に試してみてませんね?
せっかくの「ありがとうございます」が嘘っぽく見えて残念ですね。

なんか形式に拘りすぎてて逆に論理的じゃあ無くなってる感じが・・・

あきとさんもIF文の判別式は値が0以外であれば真として分岐処理するっていうのを何故教えてあげないのかも謎ですけど。
IF X && SGN(Y)>0 && Y THEN ?"+";
と書き換えて論理演算子を教えてあげた方がよっぽどヘンルーダさんもスッキリすると思うんですけど。
ビット演算子と論理演算子の違いって、コンピュータが物理的にデータをどう処理してるのかの仕組みを考えるきっかけに丁度いいですし。

コメントを書く

この投稿にはコメントできません。

- WEB PATIO -