新しいアカウントで始めました。

身の回りの出来事や写真が中心です。

前回のローマ数字に変換のプログラムを少し直しました。

2024-03-15 09:15:57 | C#、VBなど

22行目と24行目を直したのですが、幾らか良くなったですかね?依然としてcntを使うという

混乱の元凶が存在してます。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Dive into Python3の例題、数値をローマ数字に変換する。VBで書いたら、汚いコードになりました。

2024-03-14 20:21:45 | C#、VBなど

VBでもタプルは使えそうですが、昔はなかったと思うので、配列2個を使ったのですが

意外と面倒で、これがいけない原因なんでしょうね?

インデックスで参照してますので。

Dive into Pythonの例の、半分くらい、もっと少ないかも知れません。

多分合ってるとは思います。あとは、スッキリ書けると良いのですが…。

Visual Studio 2022でも文字化けしてます。

調べてみます。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Visual BasicでLINQを、その3。

2023-06-20 22:50:36 | C#、VBなど

Whereの書き方が、EndsWth(".vb")例えば、".vb"で終わる場合。

ホルダーの情報を得たくなりますが…。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Visual BasicでLINQを、その2。

2023-06-20 08:57:59 | C#、VBなど

C#の例ではvar posnumとありますが、VBでもVariant型は有ったと思いましが、Dim以外は使えない、様です。

これもわかり易い例です。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Visual BasicでLINQを、その1。

2023-06-18 22:08:58 | C#、VBなど

先ずは、分かりやすいところから。

whereとselectを少し変えてみます。

何かどこかでみたような感じの構文ですね。

BardにLazyについて聞いたのですが、コードはどこか違うようですね。

12行目でエラーですが、どうしたら良いのか?です。

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Visual BasicでFunctionのリターンにはReturnも使える。

2023-06-18 10:07:29 | C#、VBなど

「人間は考える葦である」では、Function名に代入形式らしいです。cametanさんによれば。下では、FunctionのリターンでReturnを使ってみましたが、行けますね。

 Bardの意見では、Visual Basicの関数型はLINQが使われるみたいなことでしたので、少しやってみようかと思います。参考書は「独習C#第3版」に少し例が載ってます。Visual Basicと C#は、多分ですが、兄弟みたいなものですので、LINQ自体の書き方は同じみたいです。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

これって関数型でプログラミングしたと言えます?

2023-06-15 14:19:45 | C#、VBなど

 九九の表です。コップ本に命令形と関数型プログラミングの例がありました。出来るだけ忠実にVBで置き換えたつもりです。関数型でプログラミングしたと言えるでしょうか?変数を使った時点で、違います、という事でしょうか?

6行目から23行目は、命令形の例です。関数型の例では、(多分、一応)Functionだけ使ってますが…。

コメント (5)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

VB2010から自動実装Propertyが使えるそうです?

2023-06-14 16:26:40 | C#、VBなど

前回の例に自動実装プロパティを使いましたが…。

 Public Propertyから始まるメンバ変数m_Name、m_YearはPublicな変数とどこが違うの?setter、getterは自動実装されているということですが。Propertyを削除しても動けば、Publicな変数と変わらない、という事でしょう。

17行目にm_Name()、m_Year()と"()”が付いてましたが、変数名なので”()”は要りませんね。後は全く同じです。Public Propertyって何?

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

前回の続きです。前回は解析まで、今回は値を入れてみます。

2023-06-13 21:10:55 | C#、VBなど

a=10, b=20,c=30,d=40,e=50,f=60となってます。

メンバ変数がPublicでないと駄目だったと思います。Propertyにすれば、Privateになるのかもしれません。

pushは文字列なので、計算するときはIntに戻します。

VBの場合は、Chr、Ascを使いこなさないと、C言語みたいに書けない。今も混乱しているかもしれません。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

前回の例題の次ですが…。四苦八苦してました。クラスのインスタンスの配列の初期化どうする?VB。

2023-06-13 08:41:42 | C#、VBなど

実行画面は同じ。

 Class Hensuを作ってみました。前回の例だと、配列prioしか無いので、変数例えばa,b,c,d,e,fの値を入れる場所がない!。Class Hensuでもprioは使うので、それにvalを追加して、そこに値を入れてみましょう。8行目、単なる配列だと、グローバル変数かな、としてのprioは使えます。今は使わないので、コメントアウトします。Class Hensuは10行目から25行目まで。忘れてましたが、メンバ変数がここではPublicで指定してますが、本来ならPropertyを使うのかもしれません。

ここで四苦八苦していたのが、29行目で配列を作ったつもりでも、aryHensu(0)をデバッグで見るとNothingなんです?。なんとかたどり着いた30行目のヒントから肝の32行目に、至ってようやくClass Hensuのインスタンスの配列を初期化出来ました。実際にvalへ値をセットして、計算するとこは、これからです。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

逆ポーランド記法を使う式の解析、ネタ本は前と同じですが、VBで書いてみました。

2023-06-10 09:30:24 | C#、VBなど

問題は上、回答はしたです。

 73行から80行と87行から95行は、C言語だとwhile (( dt = pop() ) != '(')と書けるんですが、VBでは多分駄目でしょう。それとC言語だと'¥0’を文字列の最後の目印に使ってますが、VBだと多分エラーになるようです。C言語のほうがVBよりは進化しているんですかね。ポインタでは混乱します。C#だと通常使わないですよね。 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

電卓プログラムその4。

2023-06-08 00:09:49 | C#、VBなど

 この電卓プログラムでは、変数はaからzまでです。前回はSelect Caseだったのでaからe迄でしたが、今回Select Caseを使わなくていいので、aからzになりました。VBも型が煩いときもありますね。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

電卓プログラムその3。

2023-06-07 10:46:56 | C#、VBなど

少し長いので、WPに貼り付けています

C言語の命令をVBで書いてます。出来るだけネタ本に沿うように。

C言語みたいに'a'-'a'とか'b'-'a'が出来れば、Select Caseの嵐いならないと思いますが…。

電卓プログラムとありますが、Basicインタープリタに近い、関数電卓みたいなものですかね。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

電卓プログラムその2。

2023-06-05 22:49:49 | C#、VBなど

取り敢えず、出来たところまで。

 変数は今のところは、a,b,c,d,eの5文字だけ。C言語だとcharとintの区別があまり無いはず。VBだとその辺が厳しくて、variの添字にchar(vname) - char('a')みたいに、aなら0で、zなら25,つまりvari(0)からvari(25)でaからzまでの変数とするとこが上手く行かない。仕方なくSelect Caseでその場しのぎです。(笑)

 原因不明ですが、計算が入ると、例えばc=a+bみたいに、でstack underになります。operateで2回popしてますが、どうも1個しかpushしていない感じです。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

林晴比古著「C言語による実用アルゴリズム入門」から電卓プログラムをVBで出来るかあ?

2023-06-04 21:51:31 | C#、VBなど

 まだデバッグ途中です。トークン解析までは、例題のとおり出来ました。a8の意味はaは変数という意味です。a=b+c*(200-100)の解析とprint a+300の解析と最後にendで終了。

使っているenumと構造体、グローバル変数。使いすぎかも。ネタ本に忠実にしてますが、原本ではポインタだらけですが、それを配列と添字に変えるのが面倒。

コメント部分はこれからです。

以下はデバッグこれから。

C言語がネタ本ですので、VBで直すのは、楽でないですし、もっと楽にやる方法があると思います。トークンの解析が面倒ですね。この例では変数はアルファベット一文字。a=100を例にとっても、=を読み込まないとaという変数が決まらない。多分。それをBasic流にa = 100みたいに書くことにすれば、split出来るので楽かもしれません。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする