• ベストアンサー

BASIC言語について。

数学のLET文は、なぜ、左辺と右辺は等しいという意味ではないのでしょうか?例えば、LET A =2なら、Aは2に等しいという意味だと思うのですが。長方形の面積は、LET S=A*Bなら、面積Sは、A*Bに等しいという意味になると思うのですが。=は、等しい以外に何か意味があるのでしょうか?教えていただけると幸いなのですが。

質問者が選んだベストアンサー

  • ベストアンサー
  • kon555
  • ベストアンサー率52% (1758/3375)
回答No.5

>>変数Aは適宜変わるということでしょうか その通りです。変わるというか「変える事が出来る」ですね。 要は『変数』とはメモ帳のようなものだと思ってください。Aというメモ帳が存在し、最初は何も書いていない空白です。 そこに「A=2」と指示が来ます。Aを2とせよ、という指示ですので、空白だったAというメモ帳に「2」が書き込まれます。 次に「A=A+1」という指示がきます。AをA+1とせよ、という指示です。これでAというメモ帳は、書かれた「2」に1を足して「3」に書き換わります。 また必要に応じてメモ帳は幾らでも増やせますので、中身も含めてコピーしたいなら「B=A」「C=A」のようにして増やす事もできます。 そしてメモ帳はそのまま置いておいて、また必要な時に参照したり書き換えたりします。 例えば「Aというメモ帳を見て3未満なら〇〇しろ。そうでなければ××しろ。ただしBがAと等しいならCに1を足せ」というような指示を複雑に絡み合わせることで、プログラムというのは色んな動作が可能になったりします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (7)

  • wormhole
  • ベストアンサー率28% (1622/5659)
回答No.8

数学にLET文というものはありませんが。 >数学のLET文は、なぜ、左辺と右辺は等しいという意味ではないのでしょうか? BASICのLET文は変数への代入命令として定義されているからです。

全文を見る
すると、全ての回答が全文表示されます。
  • gamma1854
  • ベストアンサー率54% (287/524)
回答No.7

※「C」の話で恐縮ですが、 Cのプログラムソースにおいて、「等号」は「代入演算子」です。 つまり、右辺式の値を左辺の変数に代入します。(私がよく使う「C」、「UBASIC」ではそうです)。 したがって、a=a+1, a=a*3 のように”数学"では変な式がごく普通に使われます。 ( a++; a*=3; などとかきますが)

全文を見る
すると、全ての回答が全文表示されます。
  • Dr_Hyper
  • ベストアンサー率41% (2482/6031)
回答No.6

プログラムが上から下へ向かうときに LET A = 2 とでてきたら,その時点でA = 2になります。 おそらく代入とか言った方が分かりやすい人が多いのでそう言われていますが, あなたの考え方では,このときA =2 です。 LET ~は ~(数式)にしなさいの意味で,イコールは数学のイコールと別に何ら変わりありませんよ。 この時点では A =2 です。 次に A=3 とでてきたら,その時点でAは3になります。 ただ,数学では説けない文字式がでてくるので,マニュアルには必ずしも左辺と右辺は等しいとは限らないと言ってるのでは無いですか? 例えば LET A = A+2 というものがあれば,数学的にはおかしいですよね? でもプログラミングの場合これは合っています。 この行番号を通過する度にAが2ずつ増えていく命令として使えるからです。 なので分かりやすく AにAの値に2を足したものにしなさい。という解釈をさせます。

全文を見る
すると、全ての回答が全文表示されます。
  • tmys10
  • ベストアンサー率36% (338/930)
回答No.4

> 数学のLET文は、 数学にLET文が存在するのでしょうか。数学で等号は"数式 = 数式"のように使われ、これを「等式」と呼びます。 BASIC言語で等号は複数の意味に使われます。IFなどの比較式の文脈で"="は比較演算子であり、"LET a = b"で"="は代入命令の一部です。COBOLで代入文は"MOVE b TO a"と書きますが、この"TO"に当たります。 同じ記号を異なる意味で使うのは良くなくて、PASCAL言語では代入命令を":="としましたし、C言語では比較演算子の方を"=="としました。

全文を見る
すると、全ての回答が全文表示されます。
  • bakansky
  • ベストアンサー率48% (3502/7245)
回答No.3

= という記号は、ほとんどのプログラミングの言語においては、「代入する」 という意味を持たせています。A のような変数を指定した場合、メモリー上に数値を記録すべき領域が確保されます。そこに、ある数値を入れて記憶させる場合に = という記号が用いられます。代入してしまえば、普通の算数や数学と同様に、たとえば A = 2 ということになります。「A = 2 という状態にせよ」 という命令だと考えてもいいかもしれないt思います。たしか BASIC では LET は省略できたのではないかと思いますが、LET は英語の let から来ているので、一種の 「命令文」 を作る語です。だから BASIC における LET A = 2 というのも 「命令」 なのです。 でも、たとえば 「もし A が 2 という値を持つ変数であったなら、次の処理を実行せよ」 という命令を書く時にはどうするんだ、という疑問がわくかもしれません。BASIC ではどうだったか、もう数十年前のことで記憶が定かではありませんが、IF A == 2 THEN ... のような書き方をしたかもしれません。多くのプログラミング言語において 「A と B が等しい」 ということを表すのに = を2つつなげて == という記号を用いているようです (ただし、初心者のうちはよく間違えそうですが)。 S = A * B を計算する場合に、A および B という変数に数値 (値) が代入されていれば、正しく計算されるはずです。その計算結果は S という変数に 「代入」 されます。その場合、A も B も S も 「変数」 に過ぎないので、その後で新たに A や B に別の数値を代入することが出来るので、その時には S の値も新しくなります。つまり、たとえば S = 180 であっても、その S は 180 という値と常に等しいわけではありません。その値が変更される可能性はあるわけです。だから = 「等しい」 とはいえないということでもあります。

zasx1098
質問者

補足

A =2の場合は、変数は、Aの中身は2とせよという命令ということでしょうか?3でも4でもいくらでもなるから、LETは、等しいという意味にはならないということでしょうか?教えていただけると幸いなのですが。すみません。

全文を見る
すると、全ての回答が全文表示されます。
  • kon555
  • ベストアンサー率52% (1758/3375)
回答No.2

どうも数学的にも変数(要はxとかyとか点pとか)の宣言みたいですね。 http://neos21.hatenablog.com/entry/2018/06/05/080000 この辺りはBASICに限らず様々なプログラムでそうですが、=は「〇〇とせよ」という命令だと解釈しましょう。 A =2の場合は「Aは2と等しい」ではなく「Aという変数の中身は2とせよ」です。 例えば A=A+2は数学的には全く意味不明ですが、プログラム的には「Aという変数の中身はA+2とせよ」なので、Aという変数自体に2を加算する事になります。

zasx1098
質問者

お礼

変数Aは、2を代入せよということですが、変数Aは、2とせよという命令であって、変数Aの中身は、3でも4でも良いので、等しいとは言えないということでしょうか?教えていただけると幸いなのですが。すみません。

zasx1098
質問者

補足

つまり、変数Aは適宜変わるということでしょうか?教えていただけると幸いなのですが。すみません。

全文を見る
すると、全ての回答が全文表示されます。
  • f272
  • ベストアンサー率46% (8035/17170)
回答No.1

数学にLET文などと言うものはありません。 あなたが快泳るようにBASIC言語のLET文であれば,英語のLETと同じです。左辺の変数の値を右辺の変数の値と同じにせよ,と言う意味です。言語に「なぜ」と考えても無駄です。そう決めたのです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 不等式の証明

    数学II 不等式の証明 A>0,B>0のとき、不等式(B/2A)+(2A/B)≧2を証明しなさい。 という問題なのですが、左辺を相加平均、右辺を相乗平均すると解答には書いてあるのですが意味がわかりません。 どうか詳しくお教えいただけないでしょうか? お願いいたします。

  • Javaのインスタンス化の構文のイメージができない

    こんばんは。 Javaプログラマを勉強しています。 サンプルプログラムで、オブジェクトの作成時、左辺と右辺でクラス名が異なる場合、 その一文ではどういうことが行われているのかイメージができません。 そこから原点に戻って、オブジェクトを作成する時の構文の一語一語の意味が分からなくなっています。 テキストによくある簡単な例だと、 ----------------- A a = new A(); ----------------- という構文があります。 この場合は左辺のAと右辺のAが同じであるため、このような構文が普通だと思い、ずっと理解した気になっていました。 ところが、 ----------------- class A {  … } class B extends A{  … } public class Main(){ public static void main(String[] args){  A a = new B();  … } ----------------- という構文が出てきた時、 A a = new B();  で、左辺のAと右辺のBは違っても大丈夫なの?何故違うの?どういう場合にこのような構文を使うの? などの疑問が出てきて、 そもそもインスタンス化の構文 A a = new A(); のそれぞれは何を意味しているのか判らなくなり、 どこからどうやって理解していけば良いのか途方にくれています。 aはインスタンス化したオブジェクトの変数名であることは理解しています。 左辺のAと、右辺のAとnew演算子をどう理解すれば良いのか悩んでいます。 自分も何が分からないかを上手く説明できないのですが、 よろしくお願いします。

  • 移項するということ

    こんばんは! A = B + C という式についてBを左辺に移項させると A -B = C になります。 私は学校で「移項させるときは正負を反転させて動かす」と習いました。 これは、あたかも右辺にあったBが左辺に移動したように思えます。移項という言葉からも、=をまたいで項が移動したと読み取れます。 しかし、実際には両辺に-Bを加算することによって、新たに左辺に-Bが現れただけです。 つまり何が言いたいかというと、左辺(右辺)にあるものは右辺(左辺)に移動することは出来ない。 故に、移項という表現は誤っているのではないかという質問です。

  • BASIC言語について。

    IF条件式THEN命令で、条件式には、>などが使われて、命令で、LETなどが使われると覚えた方が良いのでしょうか?教えていただけると幸いなのですが。すみません。 昔の数学Bです。教えていただけると幸いなのですが。

  • 数学の問題です。

    観覧ありがとうございます。数学の宿題が解けず、困っています。 お時間あるようでしたら1問でもいいので回答お願いします。 縦の長さが横の長さより6センチ長い長方形がある。 <1> 横を2センチ短くし、縦の長さを2倍した。すると、長方形の面積Sが50%分増加した。長方形の縦横の長さを求めなさい。 <2> <1>の状態で、長方形の長辺を内分する点をTとする(点Tに内分された辺の比をa:bとする)。 T点から短辺に平行に線を引いてできた長方形の大きいほうの面積S2が42平方センチであった。a:bを求めなさい。 お願いします。

  • 高校数学IIの不等式の証明

    a>1 , b>1のとき ab+1>a+b を証明せよ これの回答(少し省略)が 1) 左辺-右辺 2) =ab+1-a-b 3) =a(b-1)-(b-1) 4) =(a-1)(b-1) 5) a-1>0 b-1>0 6)ゆえにab+1>a+b となるのですが、なぜ3→4になるのか分かりません。(それ以外は分かりました) 本当にくだらない質問なのですが、分かりやすく教えていただけると幸いです。

  • 高校数学、定積分の有名不等式

    図のような不等式|∫(a~b)f(x)dx|≦∫(a~b)|f(x)|dxについて、 参考書に図のような曲線を考えるとき、 左辺=(-S1)+s2+-s3+s4、右辺=S1+S2+S3+S4より明らかとあるのですが、 左辺は|(-S1)+s2+-s3+s4|の間違えですよね?

  • オイラーの公式の右辺をacosx+bisinxに変えてみると

    オイラーの公式e^(ix)=cosx+ishinxの右辺をタイトルのようにacosx+bisinxと変えると左辺は(a+b)e^(ix)-(bcosx+aishinx)というような初心者には意味があるようなかたちになりますが、これは数学的に何か説明していただけるようなことですか。

  • 分数分離法

    2/{s(s+1)^2(s-2)}=a/s+(bs+c)/(s+1)^2+d/(s-2) 上の左辺の式を右の式のように、分数分離をしようとしました。(a,b,c,dは定数)結果は, a=-1,b=8/9,c=14/9,d=1/9となりました。試しに右辺を通分したのですが、左辺と一致しませんでした。間違っているのかどうか教えて下さい。

  • 次の等式を証明せよ(離散数学)

    離散数学の (A^c∧B^c)∨(B^c∧C)∨(A∧C^c)=B^cV(A∧C^c) を証明せよという問題が分かりません。 左辺だけをブール代数を用いてをどのように右辺と合わせるのか教えてください。