プログラミングBASIC言語について。

■ このスレッドは過去ログ倉庫に格納されています
0001コルム2019/11/13(水) 18:01:32.00ID:S19WmO/6
古い数学Bで、プログラミングのBASIC言語の教科書や参考書を持っている方がいましたら、少しずつで、いいので、用語の解説と用語と文法をわかりやすく教えていただけると幸いなのですが。すみません。教えていただけると幸いなのですが。

0142コルム2019/11/19(火) 21:09:07.85ID:wj+a2QEW
すみません。従ってというのは、どういう事でしょうか?でした。すみません。

0143コルム2019/11/19(火) 21:10:34.69ID:wj+a2QEW
133番の質問に答えていただけると幸いなのですが。すみません。

0144132人目の素数さん2019/11/19(火) 21:13:41.20ID:U8pvikvZ
あおりですねw

0145132人目の素数さん2019/11/19(火) 21:32:23.12ID:bS7ZfYbY
LET MK$ = "おま〇こ" !代入演算子 "おま〇こ" を MK$ という文字列を収容できる箱(変数)に入れなさい。
LET TP$ = "ちんぽ" !代入演算子 "ちんぽ" を TP$ という文字列を収容できる箱(変数)に入れなさい。
IF MK$ = TP$ THEN !関係演算子 MK$ と TP$(に収容した文字列)が等しければ
PRINT "人類破滅"
ELSE
PRINT "人類安泰"
END IF

END
LET 文の = は代入演算子
IF 文の = は関係演算子

まったく違う機能を = に与えているから、確かにわかりにくい。
関係演算子が数学における = に相当するが,

0146132人目の素数さん2019/11/19(火) 21:33:07.28ID:bS7ZfYbY
 まったく違う機能を = に与えているから、確かにわかりにくい。
 一応、関係演算子が数学における = に相当するがそれは、IF文、DO〜LOOP文など条件を伴う命令といっしょに塚割るときに限る。単に
  A = 100
と書いたら、それは
  LET A = 100
と解釈される。

0147132人目の素数さん2019/11/19(火) 21:34:23.62ID:bS7ZfYbY
インデントしてないので見にくい。連投スマヌ。

LET MK$ = "おま〇こ"  !代入演算子  "おま〇こ" を MK$ という文字列を収容できる箱(変数)に入れなさい。
LET TP$ = "ちんぽ"   !代入演算子  "ちんぽ" を TP$ という文字列を収容できる箱(変数)に入れなさい。
IF MK$ = TP$ THEN    !関係演算子  MK$ と TP$(に収容した文字列)が等しければ 
  PRINT "人類破滅"
ELSE
  PRINT "人類安泰"
END IF

END
LET 文の = は代入演算子
IF 文の = は関係演算子

 まったく違う機能を = に与えているから、確かにわかりにくい。
 一応、関係演算子が数学における = に相当するがそれは、IF文、DO〜LOOP文など条件を伴う命令といっしょに塚割るときに限る。単に
  A = 100
と書いたら、それは
  LET A = 100
と解釈される。

0148132人目の素数さん2019/11/19(火) 21:39:16.61ID:bS7ZfYbY
すまん、すまん

> IF文、DO〜LOOP文など条件を伴う命令といっしょに塚割るときに限る。

 IF文、DO〜LOOP文など条件を伴う命令といっしょに使うときに限る。

0149132人目の素数さん2019/11/19(火) 21:55:19.75ID:5WYwl7vl
>>133
>条件式には、数学記号しか使えないという決まりにした
まあ、無理せず、単に「BASICではそう決めた」ということでリンク先の比較表を覚えればいいと思うぞ
BASICは、等価演算子と代入演算子が同じ「=」なので不親切といえば不親切なんだろうね

ちょっと説明すると、君の言う数学記号が何かは知らないが、要するに「条件式」とは「結果として真偽値を返す式」であり、
「0」「1」も立派な「条件式」だ
ちなみに、「0」を「偽」、「0」以外を「真」、とする言語が多い

百聞は一見にしかず
君に足りないのは「実際に実行する」という行為だ
以下の3つのプログラムを実際に実行し、結果を報告してくれ

100 IF 0 THEN PRINT "真" ELSE PRINT "偽"
110 END

100 IF 10-50 THEN PRINT "真" ELSE PRINT "偽"
110 END

100 LET A=2
110 LET B=2=2
120 PRINT 2
130 PRINT 2=2
140 PRINT A
150 PRINT B
160 END

0150132人目の素数さん2019/11/20(水) 00:14:26.93ID:CL6rQH0V
なんでこんな物分かり悪い人がプログラミング独学でやろうとしてるんですか?

テストもないならやらなくていいですよね

テストあるなら先生に聞きましょう

0151132人目の素数さん2019/11/20(水) 05:21:44.11ID:y6NHwbsU
>>1
LET X = 1
FOR I = 1 TO 10
PRINT I;":";X
LET X = X + 2
NEXT I
を実行すると
1 : 1
2 : 3
3 : 5
4 : 7
5 : 9
6 : 11
7 : 13
8 : 15
9 : 17
10 : 19

LET X = 1
FOR I = 1 TO 10 STEP 2
PRINT I;":";X
LET X = X + 2
NEXT I
を実行すると
1 : 1
3 : 3
5 : 5
7 : 7
9 : 9

0152132人目の素数さん2019/11/20(水) 06:01:44.95ID:JfEbcWmY
>>149
何でバカ相手に必死なの?
オマエもバカなの?

0153132人目の素数さん2019/11/20(水) 07:30:15.83ID:vXk//xRQ
>>1
プログラム
https://mevius.5ch.net/tech/

板あるよ

0154132人目の素数さん2019/11/20(水) 21:33:58.11ID:l+tWAaQ9
【今どきのBASIC 第2段】

Dim A As LongLong
A = (2 = 2) : Msgbox A
を実行したら、-1と表示された。
まぁワィの思った通り。想定内だ。

だから、
Dim B As Boolean
B = (2 = 2) : Msgbox B
を実行すれば、-1と表示されるハズ
しか〜し、ワィよりVBAスゴイことに
true と表示しやがった。想定外だ。

未来のBASICなら、
その内、「真」と表示しそうだ。
これは、まっ冗談だが、

BooleanかLetかのBASICの判断力は、
人間を超えたワィの判断をも超えてた

0155132人目の素数さん2019/11/20(水) 21:54:14.09ID:y6NHwbsU
DECLARE EXTERNAL SUB solve
INPUT PROMPT "a = ":a
INPUT PROMPT "b = ":b
INPUT PROMPT "c = ":c

WHEN EXCEPTION IN
  CALL solve(a,x,b,y,c)
  PRINT "x = ";x
  PRINT "y = ";y
USE
  PRINT "解なし"
END WHEN
END

EXTERNAL SUB solve(a,x,b,y,c)
IF b=0 THEN
  IF MOD(c,a)=0 THEN
   LET x=c/a
   LET y=0
  ELSE
   CAUSE EXCEPTION 999
  END IF
ELSE
  LET q=INT(a/b)
  LET r=MOD(a,b)
  CALL solve(b,u,r,v,c)
  LET x=v
  LET y=u-q*v
END IF
END SUB

0156132人目の素数さん2019/11/20(水) 22:08:10.37ID:DTpwtmSI
>>154
>BooleanかLetかのBASICの判断力は、
いやいや、変数が、LongLongの時は「-1(つまり、真)」、Booleanの時は「true(真)」
なのだから君の指定したデータ型の通りでは?

>>149で出した俺の例は以下の方がよかったかもね
これなら「LET A=2」としているのだから「PRINT A」で「2」が表示されるのはすぐ分かる

100 LET A=2
110 LET B=A=5
120 PRINT A
130 PRINT B
140 END


ちなみに、LongLongで「-1」が返ってくるのでは、IFを使わない以下の技は使えないな

100 INPUT "A=";A
110 INPUT "B=";B
120 LET X=A*(A>=B)+B*(A<B)
130 PRINT "A=";A;" B=";B;" X=";X
140 END

0157132人目の素数さん2019/11/20(水) 22:51:35.11ID:l+tWAaQ9
>>156
なるほど、しかし、
125 X = -X
を追加するだけで、上手くいくと思う

0158132人目の素数さん2019/11/21(木) 04:48:55.53ID:iveQ585w
板違いだろ
死ねよキチガイ共

0159132人目の素数さん2019/11/21(木) 09:30:35.23ID:YQl+ziuO
そうだ。ここは、数学板だった
まずは、数学の話をする。

数学では(-1)の二乗と1の二乗は同じ値
∵ ドッチも1になるぅ \(^o^)/
∵ マイナス同志を掛けるとプラス

さて、BASIC言語のお話に戻すとする
変数aの二乗は、a^2 だ。だから
論理式(A>=B)の二乗は(A>=B)^2 かも
怪しく感じるかも知れんが、直感で
BASICはバカ正直に計算するハズ。

だから>>156の120行目のは
以下の改善で更に万能だ。

【改善前】
120 LET X=A*(A>=B)+B*(A<B)
【改善後】
120 X=A*(A>=B)^2+B*(A<B)^2

trueが1でも、-1でもドッチでもOKだ

【蛇足】
N88-BASICの、REFERENCE MANUAL
では、真は(-1) との旨の記載であった

【蛇足2】
マトモな教科書にはアリエナイ
プログラムです。
お行儀を重視なら、で
ELSEが使えるBASICなら、
120 IF A>=B THEN X=A ELSE X=B

でも、でも、でも、
120 X=A*(A>=B)^2+B*(A<B)^2
の方が短いゼ。ワィの勝ち\(^o^)/

0160132人目の素数さん2019/11/21(木) 13:17:29.66ID:YQl+ziuO
【続き】
ちょっとまてよ、短いなら
120 X=A:IF A<B THEN X=B
だな。
古いBASICの数学Bのとほぼ同じだ

古い教科書スゴイ。古いBASIC最高
短いと、手作業でも直ぐ入力できる。
だからヤッパリ教育用プログラムは、
古いBASICで、決まりだね。サイコー
古いBASIC ダイースキ♡

0161132人目の素数さん2019/11/21(木) 21:05:55.58ID:CU5xYZAQ
120 X=A-(B-A)*(A<B)

0162132人目の素数さん2019/11/22(金) 14:32:53.61ID:4AjXEqkN
>>1 は理解することをとっくにあきらめたかなwww

0163132人目の素数さん2019/11/22(金) 15:45:09.18ID:hjhgi2wO
ただの荒らしがスレを立てた
おまいらはもてあそばれた

0164132人目の素数さん2019/11/22(金) 17:05:50.72ID:4AjXEqkN
 いや、きょうもここで馬鹿さらしとるぞwwwwwwwwww
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14216457024
 熱心に回答してくれている人がいるけど、反応がないところを見るとわからんのだろうね。
 とにかくこいつ、まともな日本語が使えないのだ

0165132人目の素数さん2019/11/22(金) 22:47:58.24ID:w+XKWy3W
>>164
あれあれ。荒らしだとおもっていたけど、本格的にわかっていないのか。
どうも、自分が分からない事を的確に文章にできないカンジ。

IF B>X THEN LET X=B

だと、 IF と THEN の間は、条件文と言って、数学の式と同じように書けるんだよね。
THEN の後は、命令文が来るから、数学と同じように書けず。

LET X=B

などの命令が来るわけだ。

0166132人目の素数さん2019/11/22(金) 22:55:02.25ID:c20D3FD3
オマイラ、板違いには厳しいけど、マルチポストには寛容なのな

0167132人目の素数さん2019/11/23(土) 09:08:51.81ID:O3W630pv
>>164
結構多い理系でも、初心者は、
100 A = 66
110 A = A + 600
120 PRINT A
は 666 なのだが、
数学的に考えちゃって、
「A = A + 600となる実数解なし、故に
 110 A = A + 600 は、意味不明」
って感じ
110 LET A = A + 600
でも納得できないようだ。

因みに
等差数列、公差3は、数学的には
A(n+1) = A(n)+3 だけど
これをプログラムさせると素朴にも
何と、配列 DIM A(10) を定義し、
FOR N = 1 TO 9
A(N+1) = A(N) + 3
NEXT
とプログラミングする。

FOR I = 1 TO 10
LET A = A + 3
NEXT
は、文法的に間違ってるとのこと

理解してもらうのに半年位かかる

0168132人目の素数さん2019/11/23(土) 09:52:55.26ID:jFQnXbOI
 なるほど。
 プログラミングは習うより慣れろみたいなところがあるから
>>151 みたいなことをいろいろやって感覚的に慣れる方がいい。

 ま、普通の人が半年かかるのなら、>>1 は3年くらいはかかりそうだな。

0169132人目の素数さん2019/11/23(土) 12:14:46.68ID:vWC11xsn
半年かかるとかw
それはただのバカだろ

0170132人目の素数さん2019/11/23(土) 12:32:02.93ID:wNqmJrRJ
>>167
逆にブログラマ上がりの奴が数学の問題をやるとき A = A + 3 の感覚で同じ記号を使い回す(そして間違う)からたちが悪い

奇数芸人がその一例
フェルマー芸人も恐らくその感覚だろう

0171132人目の素数さん2019/11/23(土) 12:52:18.66ID:vWC11xsn
>>170
そんな特殊や奴らを例に出してプログラマを一括りにするとかw
アホ丸出し

0172132人目の素数さん2019/11/23(土) 13:04:15.07ID:JfJVZi5A
>>170
いやむしろ逆だろう
プログラマは A = A + 3 を実行する前と後の A の違いは正しく認識する
正しく認識してなければプログラマとしてやっていけん
連中はそれらを混同するから間違う

0173132人目の素数さん2019/11/23(土) 13:22:34.18ID:CTwpDezf
ブログというボケにマジレス、だったりしてw

0174132人目の素数さん2019/11/23(土) 21:27:02.21ID:X1uWY7Z1
そうかも知れないが、たまに馬鹿になったり、同じレベルで話するのもいいじゃないか。

説明は同レベルで接しないと納得しない。

0175コルム2019/11/24(日) 18:47:31.50ID:4sGQqEPr
つまり、IF条件式THEN命令の文で、LETが命令 で、条件式は、>などを使うということを覚えるしかないということでしょうか?教えていただけると幸いなのですが。すみません。

0176コルム2019/11/24(日) 18:48:22.32ID:4sGQqEPr
こんにちは。

0177132人目の素数さん2019/11/24(日) 18:51:22.11ID:P8BRgFcr
ひつこいw

0178132人目の素数さん2019/11/24(日) 19:43:39.86ID:4QKX+gcl
>>175
 現状ではBASICに限らずプログラミング言語のマスターはあきらめたほうがよい。
 知恵袋やokwaveで、あれだけ丁寧な回答をもらっていて、それで理解できないと
いうことは、日本語の読解力、文章の作成能力が極めて貧弱であることを意味する。
 自分の思っていることをきちんとした文章にできないようでは、プログラミングなんて
夢のまた夢である。コンピュータは一面では気が利かないマシンなので、命令文の
スペル1つ間違っただけで正常に動かない。

 掲示板の問答で毎回毎回

   教えていただけると幸いなのですが。すみません。

のような情けないことを書いていると、こいつは痴呆であると判断されても仕方がない。
質問は簡潔で、きちんとまとまった文章にしなければならない。
 そのためにも小学校高学年以降高校三年までの国語の教科書を手に入れ、きちん
とした日本語を学ぶべきだ。

 また質問の中に
  「こういうプログラムを作ってください」
などと平気で書くのは非常識極まる態度である。日常生活における常識というものも
身につけよう。

0179132人目の素数さん2019/11/24(日) 19:46:34.50ID:dycdHi8O
>>175
その通りです。覚えるしか無いというのはその通りなんだけど、ホントは納得して欲しいんだけどね。

0180132人目の素数さん2019/12/02(月) 09:22:38.97ID:ljHVrsIS
https://okwave.jp/qa/q9685268.html
> なんでも良いので、BASIC言語のプログラムを作って、
> また、どの様なプログラムを書いたのかも教えていただけると幸いなのですが。
> すみません。かなりの負担がかかる質問ですので、答えられる範囲でいいです。
 歴史的な愚か者だな

0181132人目の素数さん2019/12/07(土) 07:30:41.38ID:DX1aO2Ap
>>175
だからプログラム板あるからそっちで聞けばいい

0182132人目の素数さん2019/12/07(土) 20:00:54.15ID:a1+2X48S
今後期待されている言語 rust では let 文が大復活しているね。

BASIC から LET 文を、簡略化の為に削除したのは、 BASIC の目的が分かっていない。

0183132人目の素数さん2019/12/10(火) 23:40:54.01ID:eZkFvW8X
 p が奇素数であることが仮定されているだけで、x、y、z、r が何か仮定されていない。
 これだけで数学の証明としては失格。よって以後の証明は数学的価値がない。

 pが奇素数ならば、
  x^p + y^p = z^p
は、自然数の組(x,y,z)を持たないことを証明するのだから x、y、z は当然自然数と仮定しなければならない。したがって
  z = x + r
と置いたときの r は整数である。r が実数だと言うのならここでそう宣言すべきである。しかし、r が実数なら
  z = x + r
より、少なくとも x か z のどちらかは必ず実数となる。これは x、y、z を自然数と仮定したことに反するので、以後の証明はまったくムダである。

  r^(p-1){(y/r)^p-1} = p{x^(p-1)+…+r^(p-2)x} ………(3)
から
> (3)はr^(p-1)=pとなるので、r=p^{1/(p-1)}となる。
とは断定できない。
  A = r^(p-1)
  B = {(y/r)^p-1}
  C = p
  D = {x^(p-1)+…+r^(p-2)x}
と置いたとき
  AB = CD ⇒ A = C
が成り立つという戯けたことを言っているわけで、それが間違いであるのは
  4×3 = 6×2
の反例からも明らかである。

0184132人目の素数さん2019/12/20(金) 02:22:38.59ID:yiLw1Jz8
2245
しろ@huwa_cororon 11月27日
苦節6ヶ月、初満点&一等賞です!
https://twitter.com/huwa_cororon/status/1199593474128896000
https://twitter.com/5chan_nel (5ch newer account)

0185132人目の素数さん2019/12/20(金) 12:55:11.23ID:PmZ/hS5B
【AB = CD ⇒ A = C の真偽】

・それら4つのA、B、C、Dは、
 命題(より厳密に論理値)とみなす
・A∧Bは、AとBの論理積で、
 掛算的なのでABと略記しちゃう
 C∧Dも、同様とする
なら、
 AB = CD ⇒ A = C は 正解。
 なお、等しいとは、論理値が等しい
 という意味で、命題の文字列が
 一致という意味ではない。

以上 戯言かも

0186132人目の素数さん2019/12/20(金) 17:41:58.12ID:PmZ/hS5B
そうだ、突然ですが、
論理値のtrueを内部表現で-1
とすることも多いけど、
+1の方が何か好きだな。理由は、

true ∧ true = true ∵自明
(-1) * (-1) = -1 なんて変だし。
電子回路的に速度的に有利だと言う
話は聴いたことあるが、信じない

論理値は、英語でbooleanであり、
ブーリアンと発音する。何だか、
怪しい宇宙生命体って感じの発音だ

0187132人目の素数さん2019/12/23(月) 20:48:52.06ID:kAUhf7t7
-1は論理積の単位元

0188132人目の素数さん2020/01/01(水) 13:47:40.35ID:7iznW7ZQ
藤林丈司

0189132人目の素数さん2020/01/04(土) 15:14:57.24ID:lak6cspA
BASIC言語の初歩部分の基本文法すらできないやつが、
コンピュータ言語とか無理だから、あきらめろ、

10年学んでも分数が繰り返し理解できない奴の原理と同じでそれは根本的に
分数にアレルギー反応しているだけ、それは信じるか信じないかの話と同じよ、
3秒あれば住むレベルの認知が分からないいっているのは、「理解したくない」という
本質を表現しているのと何の違いもない。

0190132人目の素数さん2020/01/04(土) 16:25:51.27ID:kVrbH8XM
むかむかし電機大出版局が出してる本がわかりやすかった

0191132人目の素数さん2020/01/05(日) 01:00:52.19ID:vL/Fe2N6
初めて買ったPC(もどき)がMSXでした。(富士通FM-X)
そのマシンでBASICとタッチタイピングに慣れ親しみました。

真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ

■ このスレッドは過去ログ倉庫に格納されています