ขนาดวิดีโอ: 1280 X 720853 X 480640 X 360
แสดงแผงควบคุมโปรแกรมเล่น
เล่นอัตโนมัติ
เล่นใหม่
40年以上前の機種なのにコメント欄が詳しすぎて凄すぎる。
みなさんの知識に驚くばかりです!私の知識は、ほぼゼロですけど、みなさんからお教えいただいています。
30行のSTEPのところの値が「カンマ」じゃなく「ドット(小数点)」なのは、for文のループ処理が、Nの値を0.1刻みで-20から5まで増やしていくという処理内容なのですが、BASIC言語では小数値の整数部分がゼロの時はそのゼロを省略できるという文法になっているためです(つまり、0.1と指定されたのと同じ意味)。 カンマは、一般的な命令では、複数のパラメタを区切るときに使われます。なので、STEPのところにカンマで区切られた複数のパラメタが指定されていると認識されて、実行時にエラー表示になったと考えられます。
なるほどです!ご丁寧にご解説いただきありがとうございます。大変勉強になります。「.」の意味、「,」の使い方、役割、理解できました。私は全然BASICのことはわかっておりませんが、少しづつ学んで覚えていきたいと思います。今後ともどうぞよろしくお願いいたします。
positionはグラフィックの書き始めの位置をずらす命令ですね。マイナスから始まるデータのグラフを書きたいときなどに使うんですかね。SC-3000のグラフィック座標は左上を起点にxが0 〜255、yが0~191の広さを持っています。x座標だけに限って言うと、30行の繰り返し命令と、40行の計算から、xは−100から150まで増加します。そこをpositionで右に100ずらしてるので、実質xは0から250、すなわちSC-3000のほぼ横幅一杯を移動するということになるのだと思います。ややこしいので、positionを使わず、計算で起点が0になるように補正しておいたほうがわかりやすい気がします。偉そうに長々とすみません。
ご解説、ご助言いただきまして、ありがとうございます。全くのど素人なので、大変助かります。POSITIONを使わない方法もあるんですね。なるほど〜。今後もご助言いただけましたら幸いです。
11:00 20行 POSITION の最後のパラメータ(Yの描画方向パラメータ)は変えず、0 のままならエラーにならず右から左へsin波を描けると思います。両方1にするなら、20 POSITION (100, 100),1,1ならエラーにならないかと。何でエラーになったかというと、そのBASICの命令の仕様はよく知りませんが、かっこの中の値は原点の指定かと思います。40行の式から、sin(x) の最小値は-1、最大値は1 なので、Yの最小値は0、最大値は100 になります。ハードウェアの仕様により、縦方向に指定できる値は0~191 の範囲でなければなりません。Yの方向パラメータを0として下に増加にしたときは、原点+最大値 = 50+100 = 150 で範囲内ですが。Yの方向パラメータを1として上に増加にしたときは 原点ー最大値 = 50-100 = -50 で範囲外です。Yの原点を100にすれば、原点-最大値 = 100-100 = 0 で範囲内です。コンピューターのグラフィックの座標は左上を原点としてXは右に増加、Yは下に増加の場合が多いです。Yの方向パラメータを1として上に増加にしたときは+ - が逆になる。
電子ブロック、電気回路以外にもBASICにも精通されており、本当にすごいです!ご解説、ご助言いただきありがとうございます。SINとかX,Yとか登場するだけで私の思考回路が停止してしまいます。お恥ずかしながら、電子ブロック同様にBASICの知識ゼロです。ご助言を参考に試していきたいと思います。今後ともどうぞよろしくお願いいたします。
インタープリターだからマルチステートメントにすれば若干速くなるというので、やたらと:(コロン)で命令文を繋げる入力が多かった。結局、アセンブラでやらないと流れるように動かないので一部の処理をアセンブラ、マシン語で作ってBASICからCALLするようにすれば動作は高速化する。とは言え8ビットだから限界はある。
とてもお詳しいですね。驚きました。ご解説いただきましたが、プログラムど素人の私にとっては、全くわからず...です。(汗)これから、少しづつ慣れていきたいと思います。ありがとうございます。
シャレオツなエラーの動画😅
ありがとうございます。そんな大したものではございませんが、そう言っていただけると大変嬉しいです。動画制作の励みになります。今後ともどうぞよろしくお願いいたします。
40年以上前の機種なのにコメント欄が詳しすぎて凄すぎる。
みなさんの知識に驚くばかりです!
私の知識は、ほぼゼロですけど、みなさんからお教えいただいています。
30行のSTEPのところの値が「カンマ」じゃなく「ドット(小数点)」なのは、for文のループ処理が、Nの値を0.1刻みで-20から5まで増やしていくという処理内容なのですが、BASIC言語では小数値の整数部分がゼロの時はそのゼロを省略できるという文法になっているためです(つまり、0.1と指定されたのと同じ意味)。 カンマは、一般的な命令では、複数のパラメタを区切るときに使われます。なので、STEPのところにカンマで区切られた複数のパラメタが指定されていると認識されて、実行時にエラー表示になったと考えられます。
なるほどです!ご丁寧にご解説いただきありがとうございます。大変勉強になります。
「.」の意味、「,」の使い方、役割、理解できました。
私は全然BASICのことはわかっておりませんが、少しづつ学んで覚えていきたいと思います。
今後ともどうぞよろしくお願いいたします。
positionはグラフィックの書き始めの位置をずらす命令ですね。
マイナスから始まるデータのグラフを書きたいときなどに使うんですかね。
SC-3000のグラフィック座標は左上を起点にxが0 〜255、yが0~191の広さを持っています。
x座標だけに限って言うと、30行の繰り返し命令と、40行の計算から、xは−100から150まで増加します。
そこをpositionで右に100ずらしてるので、実質xは0から250、すなわちSC-3000のほぼ横幅一杯を移動するということになるのだと思います。
ややこしいので、positionを使わず、計算で起点が0になるように補正しておいたほうがわかりやすい気がします。
偉そうに長々とすみません。
ご解説、ご助言いただきまして、ありがとうございます。全くのど素人なので、大変助かります。
POSITIONを使わない方法もあるんですね。なるほど〜。
今後もご助言いただけましたら幸いです。
11:00 20行 POSITION の最後のパラメータ(Yの描画方向パラメータ)は変えず、0 のままならエラーにならず右から左へsin波を描けると思います。両方1にするなら、
20 POSITION (100, 100),1,1
ならエラーにならないかと。何でエラーになったかというと、
そのBASICの命令の仕様はよく知りませんが、かっこの中の値は原点の指定かと思います。
40行の式から、sin(x) の最小値は-1、最大値は1 なので、Yの最小値は0、最大値は100 になります。
ハードウェアの仕様により、縦方向に指定できる値は0~191 の範囲でなければなりません。
Yの方向パラメータを0として下に増加にしたときは、原点+最大値 = 50+100 = 150 で範囲内ですが。
Yの方向パラメータを1として上に増加にしたときは 原点ー最大値 = 50-100 = -50 で範囲外です。
Yの原点を100にすれば、原点-最大値 = 100-100 = 0 で範囲内です。
コンピューターのグラフィックの座標は左上を原点としてXは右に増加、Yは下に増加の場合が多いです。
Yの方向パラメータを1として上に増加にしたときは+ - が逆になる。
電子ブロック、電気回路以外にもBASICにも精通されており、本当にすごいです!
ご解説、ご助言いただきありがとうございます。
SINとかX,Yとか登場するだけで私の思考回路が停止してしまいます。
お恥ずかしながら、電子ブロック同様にBASICの知識ゼロです。ご助言を参考に試していきたいと思います。
今後ともどうぞよろしくお願いいたします。
インタープリターだからマルチステートメントにすれば若干速くなるというので、やたらと:(コロン)で命令文を繋げる入力が多かった。
結局、アセンブラでやらないと流れるように動かないので一部の処理をアセンブラ、マシン語で作ってBASICからCALLするようにすれば動作は高速化する。
とは言え8ビットだから限界はある。
とてもお詳しいですね。驚きました。
ご解説いただきましたが、プログラムど素人の私にとっては、全くわからず...です。(汗)
これから、少しづつ慣れていきたいと思います。ありがとうございます。
シャレオツなエラーの動画😅
ありがとうございます。
そんな大したものではございませんが、そう言っていただけると大変嬉しいです。
動画制作の励みになります。今後ともどうぞよろしくお願いいたします。