わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

本当に変数?

 いきなりですが問題です.

 y=ax-3という式において,変数はどれですか?

 さっそくですが解答です.中学で習った一次関数を想定するなら,y=ax-3という式のうち,変数はxyです.aは傾きを表す定数となります.
 なのですが,もとの式は一次関数と断っているわけではありません.yaxはいずれも変数・定数のどちらにもなり得ます.もっというと,axaxの積とせずに,axを一つの文字(そして変数)と捉えることだって可能です.
 続いてですが問題です.

 C言語でy=ax-3という式を書いたら,変数はどれですか?

 これについても解答です.この場合,変数はyとaxです.「ax」は,こういう変数名(識別子)であり,数学のaxと違って,aとxに分かれることはありません.
 といいたいところですが,Cのプログラミングにおいて,axは変数でない(そしてy=ax-3は文法的に正しい)ケースが考えられます.オブジェクト形式マクロを使って,例えば#define ax 5と書いたら,このaxは変数ではありません.むしろ自作の定数です.
 ここまでのy=ax-3について,プログラミングの授業で変数を扱う授業の予習課題(授業日の前日に締切)としたところ,Cの式でaとxを変数とする答案が多くて驚きました.
 ところで,数式のy=ax-3C言語の式のy=ax-3には,また別の違いがあります.数式のほうの「=」は等号であり,「yax-3と等しい」と読むことができるのに対し,Cの式の「=」は代入を表し,「yに,ax-3の評価値を代入する」となります.変数がまだなので,代入も未習なのでした.
 これらを考慮して,採点にあたっては,他のところ(数学とC言語での「変数」の違いの説明)で点数をつけ,式の中で変数がどれかというのは,採点の対象外にしました.