むりせず♪なまけず? ~ぷろくらすてぃねいたーの言い訳雑記~

よた ときどき .NET  by 刈歩 菜良 CTP

目次

ニュース

C# VB.NET掲示板
C#, VB.NET 掲示板

わんくま同盟ブログ
わんくま同盟ブログ

Web アプリケーションを簡単編集できる無償ツール WebMatrix ダウンロードはこちら

あわせて読みたい

日記カテゴリ

書庫

Blog 利用状況

「なぜわからないのか」を推測するにも限度があるよね

いんすぱいあーどばい 中さんの記事「なぜわからないのかがわかった。。。かな?」

イントラをやっていると想像を絶する初心者の方からマニアックな方までいろいろな方がいらっしゃいます。

「~コントロール(TextBoxコントロールとかLabelコントロールとかのコントロールって用語を指して)って何をコントロールするんですか?」
とか、
「変数ってどうなると変化する数なんですか?」
とか、
言葉の定義で引っかかって、いつまでたってもそれにはまってる受講生がごくごくまれにいます。つまり、なぜ「コントロール」と呼ぶのか、なぜ「変数」と呼ぶのか。

そこまでは「なぜわからないのか」を推測するのはかな~り困難です(もちろん頑張りますが、上記お二人は結局2,3日経ってもすっきりしなかった模様)。

~コントロールの「コントロール」っていうのは単に「部品」って言う意味。

「変数」ってのはデータを格納する単なる箱。

ぢゃあ、なかなか納得してくれないんですよね。

 

しかし、目からうろこなことを聞かれることもよくあるので、色々な視点があるというのを理解するにはと~っても勉強になったりします。

たとえば、
x = 10;
の = は数学で使われる = とは全然意味が違うんですよぉ~。とか。
こんなのあまりにも当たり前すぎて、全く意識しないですよね。

 

# そういえば、その昔日本語がしゃべれない方が英語の通訳さんと一緒に受講しに来たことがあった。その通訳さん「変数」を「strange number」って訳してました。って、こらー!\(`o'")
# はい、それとなく説明中に「変数、いわゆる ばりあぶる ですね。」って教えてあげました。
# てか、同時通訳するんなら基本用語ぐらいはチェックしてきて~や。

投稿日時 : 2007年1月12日 11:09

Feedback

# re: 「なぜわからないのか」を推測するにも限度があるよね 2007/01/12 13:01 囚人

「変数」ってイケない邦訳ワースト n に入っちゃいますね。variable number なんだから「変値」の方がまだマシっす。
strange number …。ある意味正しい…。

# re: 「なぜわからないのか」を推測するにも限度があるよね 2007/01/12 21:47 Jitta

> x = 10;
> の = は数学で使われる = とは全然意味が違うんですよぉ~。とか。
 このときばかりは、VB の出番ですね。
Let x = b | Set x = b
x を b に等しくする

> 「変数ってどうなると変化する数なんですか?」
「変わる数」としてしまったのが間違いですね。「数を変えられる物」

> 「~コントロールって何をコントロールするんですか?」
コントロールを動詞でしか使っていないことが原因ですかね。名詞でもあるのに。

# re: 「なぜわからないのか」を推測するにも限度があるよね 2007/01/12 23:10 刈歩 菜良

囚人さん
> 「変値」の方がまだマシっす。
なるほど!
それに良く考えたら変数に入れるのって数とは限らないですねぇ。いや、突き詰めたら全部01なんですけどね。

Jittaさん
> Let x = b | Set x = b
> x を b に等しくする
う~ん、でも、きょうびLetとかSetとか書く人いないから微妙なような。
それに、
Let x = x + 1
x を x + 1 に等しくする
って、やっぱり一般的にはありえない。
エッシャーの不思議絵ぐらいありえない。
だって、x に x + 1 の値を入れた時点で x と x + 1 は等しくなくなっちゃう。

なので、こんなときはPascal
x := b
x に b を代入する。
ですね。

# re: 「なぜわからないのか」を推測するにも限度があるよね 2007/01/14 20:38 Jitta

> x := b
> x に b を代入する。
あ、なるほどそうか。

# re: 「なぜわからないのか」を推測するにも限度があるよね 2007/02/21 21:55 シャノン

ふと、
:=
っていう記号は、数学においても「代入」という意味で使われているのか?
ってのが気になったんですが…どうなんでしょ?

# re: 「なぜわからないのか」を推測するにも限度があるよね 2007/02/21 22:09 シャノン

なぜそんなことを聞くかというと、
「数学では=は等値なのに、Cではそうではないから紛らわしい」「Pascalでは=は等値を表し、より直感的なので、この点ではCより優れている」とCを批判する人がいる(そういう本を読んだことがある)のに対し、「そう言うからには:=も数学と同じ意味なんだろうな? え?」って思ったから。
:=が数学的には代入という意味を持たず、Pascalがそういう意味を持たせているだけだとしたら、「Cでは=に代入という意味を持たせた」というだけのことで、優劣なんかないと思うから。

で、調べた。
http://ja.wikipedia.org/wiki/%E6%95%B0%E5%AD%A6%E8%A8%98%E5%8F%B7%E3%81%AE%E8%A1%A8
> 「A := X」は、A という記号の意味するところを、X と定義することである。

うーむ。代入か。代入なのか。

そもそも、プログラミングで言う「代入」と、数学で言う「代入」は意味が違うよなぁ。

数学の代入は、「見た目が違うが中身は同じもの」を表す。って、等値と同じ意味じゃないか。
プログラミングの代入は「中身を変えること」を表す。
x = x + 1;
はCの代入文だが、これを「数学的な代入」で考えると鼻から悪魔が出る。「私は嘘つきだ」という文と同じ、自己言及矛盾を起こす。
もちろん、
x := x + 1
と書いても何も変わらない。

結論:代入記号に関してPascalが優れているということはない。

# re: 「なぜわからないのか」を推測するにも限度があるよね 2007/02/21 22:37 シャノン

前言撤回。考え直す。

# re: 「なぜわからないのか」を推測するにも限度があるよね 2007/03/01 0:34 刈歩 菜良

お!
いつの間にこんなとこにコメントがふえとる。
気づきませんでしたわ。(^^ゞ

代入の記号に関しては引っかかるのはプログラミング始めての方だけだと思うので、優劣までは話が及ばないような...
(^^ゞ

タイトル
名前
Url
コメント