dポイントプレゼントキャンペーン実施中!

以下の画像の7から始まる素数表がありますが、プログラミング(BASIC言語)で作られているのですが、画像の解説をお願いできないでしょうか?すみませんが。

「素数表について。」の質問画像

質問者からの補足コメント

  • うーん・・・

    ①はなぜあなたはそう思ったのでしょうか?ご教授下さい。すみませんが。

    No.7の回答に寄せられた補足コメントです。 補足日時:2021/01/19 19:43
  • うーん・・・

    5, 7, 11, 13, 17の5個までが登録されるようにして。というように考えるとどうなるのでしょうか?
    ご教授下さい。すみませんが。

    No.17の回答に寄せられた補足コメントです。 補足日時:2021/01/22 16:56
  • うーん・・・

    #14の54行で、フラグを立てるのは分かるのですが、この場合のフラグは何なのでしょうか?ご教授下さい。すみませんが。

    No.22の回答に寄せられた補足コメントです。 補足日時:2021/01/22 22:57
  • うーん・・・

    同じく#14のプログラミングの所です。

    No.26の回答に寄せられた補足コメントです。 補足日時:2021/01/23 09:47
  • うーん・・・

    すみません。
    ここです。
    5行目の間違いだと思うのですが。
    Link: http://codepad.org/Oxfd5gz9

    No.34の回答に寄せられた補足コメントです。 補足日時:2021/01/26 03:58

A 回答 (38件中11~20件)

> #14のプログラムで、sが6以上になることはないということでしょうか?


> l=5なので。

そんなのもここでわざわざ質問するような事じゃないです。
従って答えません。
デバッガは使ってみましたか?
貴方が見た通り、です。
l=5の時にsが6以上になる事があるのかどうか、

「自分で実際に目で確かめて」

ください。

デバッガで確認すれば済む事をわざわざ質問せんで下さい。
    • good
    • 0
この回答へのお礼

では、P∧2 で、超えるもので、(P+ 2)∧2 ー 1になるのが、なぜ、− 1をするのでしょうか?ご教授下さい。すみませんが。

お礼日時:2021/01/24 14:15

> クリアならセット、セットならクリアということはどういうことでしょうか?



ステータスレジスタの実例:
https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86 …

実際はこんなの、コード読んだ時点で想像出来なきゃダメ、なんですけどね。
    • good
    • 0
この回答へのお礼

#14のプログラムで、sが6以上になることはないということでしょうか?
l=5なので。ご教授下さい。すみませんが。

お礼日時:2021/01/24 04:39

> 例えば、s=3であれば、満杯のl=5まで行い、F1をセットにするまで行うということでしょうか?



そんなのは自分で実行してみて確かめて下さい。

良い方法を教えますよ。
十進BASICには「デバッガ」と言う機能があります。
実行ボタンの右隣、縦縞の矢印ボタンがデバッガの起動ボタンです。
こいつを押すとデバッガウィンドウが立ち上がり、ステップ実行、が出来ます。

十進BASIC 最新版 概要 (このページの一番下にデバッガを開いた状態の写真アリ):
https://hp.vector.co.jp/authors/VA008683/basic02 …

ステップ実行、と言うのは、プログラムを全部いきなり実行せず、プログラムを1行1行づつ実行していきます。なおかつ、変数の値がどういう風に変化していくのか実際に見る事が出来る。
#14 のプログラム内で使われてる変数は次の通り。

L = 5
配列P(L)
配列A(3)
S
N
F0
F1
I

これがプログラムが一行一行実行されるに従って、どう変化していくのか全て見せてくれます。
百聞は一見に如かず、なんで、実際これ動かして動きを確かめて下さい。
なおかつ、十進BASICはこの辺はなかなか痒いトコに手が届いていて、「プログラム上のどの行が実行された時にどの変数の値が変わったのか」ログまで自動で取ってくれる機能がある。
ログを保存して自分で分析してみましょう。

> それと、64行から67行は、どういう意味でしょうか?

これもねぇ・・・。tknakamuriさんが#10で説明してくれてたでしょ?

> 5より大きい素数は、2の倍数でも、3の倍数ではありませんから
> 6で割って余りが 1 か 5 の数が素数の候補となります。
> #2飛び/4飛びのくり返しでインクリメントする
> 全部調べるより、調べる数が 1/3 になって効率があがるということです。

せっかく親切に説明してくれた人がいたんだから、そういう人の好意を無にしちゃいけない。
全然理解してない、って事じゃないですか。

> #2飛び/4飛びのくり返しでインクリメントする

フラグF0はF0=0からスタートしますが、プログラムが20->69と進む度にF0 = 1 -> F0 = 0 -> F0 = 1 .... と交互に切り替わっていく。どうしてんな事してるのか、と言うとnの値を2増やすか、4増やすか、の指標にする為です。
言い換えるとF0 = 0の時にはnは2増える、F0 = 1のときにはnは4増えると。
そのフラグF0の切り替えを記述してるのが64から68です。

他の人が書いてくれた事もキチンと読みましょう。
    • good
    • 0
この回答へのお礼

クリアならセット、セットならクリアということはどういうことでしょうか?
ご教授下さい。すみません。語彙力がなくて。#14です。

お礼日時:2021/01/23 11:19

> s,n ,l などに数字を代入してやるときに、例えばどんな数字がいいのか?ということなのですが。

やはり、意味不明でしょうか?ご教授下さい。

いや、別にテキトーに変えたければ変えてもイイんじゃないですか?
lは所詮登録配列の大きさなんで、大きくすればそれだけ登録される素数が増えるだけ、です。
基本的にsは変えられない。これは素数登録用の配列のインデックスを表していて、素数だ、と判明した数値をp(1)から順番に登録していきます。
まぁ、でもテキトーに変えてどうなるか見てみるのも実験、なんでね。好きにしてみれば良いでしょう。
p(1)を7、nを11、とズラシてみると、途端に素数じゃない数値が現れる。その辺も実験で試してみるのは構いません。

いずれにせよ、プログラムを書き換えたから、と言って別にコンピュータが爆発する、なんつー事もないんで、改造はご自由に。
色々手元で動いてるのを見てみないと理解なんざ出来ませんからね。
この回答への補足あり
    • good
    • 0
この回答へのお礼

例えば、s=3であれば、満杯のl=5まで行い、F1をセットにするまで行うということでしょうか?ご教授下さい。それと、64行から67行は、どういう意味でしょうか?すみません。自分の本くらい理解したいのですが。もし、よろしければ、ご教示願います。

お礼日時:2021/01/23 09:31

> #14のプログラムを実際の数字を入れて、動かすとどうなるのでしょうか?


> 例でいいので、何か数字を入れて、具体的にご教授下さい。すみませんが。
> やはり、自分で適当な数字を入れればわかることでしょうか?

実際の数字を入れて?
何を言ってるんだかサッパリ分かりません。
このプログラムは入力なんて無いですよ?
今の言い方で言うと単なるスクリプトです。
実行すれば問答無用で結果が出ます。

それよりも、実際に動かしてみましたか?
手元で動くFullBASICの処理系のダウンロードリンクも紹介した筈です。
自分で#14のプログラムを打ち込んでまずは実行してみる。
実行せずに今までの質問の連投をしてたとしたら、それこそとんでもない話です。
    • good
    • 0
この回答へのお礼

s,n ,l などに数字を代入してやるときに、例えばどんな数字がいいのか?ということなのですが。やはり、意味不明でしょうか?ご教授下さい。

お礼日時:2021/01/23 00:14

> では、#14のプログラムは、55行のENDIFは、53行を閉じるということでしょうか?ご教授下さい。

すみませんが。

同じこと何回言わせれば理解出来るんですか?
もうその辺は、わざわざ説明する程じゃないでしょう。
もう何回か書きましょうか?

IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。

対応するIFとEND IFが分かれば一発で分かる話です。
いい加減、自分で少しは考えましょう。

そして貴方は「すみませんが」って言いながらちっともすみません、とは思ってません。自分のアタマで考えようとしていない。
こういうのを慇懃無礼、って言うんですよ。

> #14の54行で、フラグを立てるのは分かるのですが、この場合のフラグは何なのでしょうか?ご教授下さい。すみませんが。

素数の記録(配列p)が満杯になったら立つフラグでしょ?F1が立ったらもはや配列pにそれ以上素数は記録出来ないので、その辺の記録作業(算法5)をスキップせよ、って言ってるんでしょ。
と言うか、それこそ貴方の持ってる本に書いてる事じゃないですか。

「持ってる本に書かれてる文章を理解する」

事を最低限やって下さい。そんなもん、今ここで質問するような内容じゃない。
何度も言うけど、貴方は理解力が無いのは確かだけど、本も悪い。
理解力が無い人間と書き方の悪い本の相性は最悪です。
もう、その本使うの止めた方が良いでしょうね。
    • good
    • 0
この回答へのお礼

#14のプログラムを実際の数字を入れて、動かすとどうなるのでしょうか?
例でいいので、何か数字を入れて、具体的にご教授下さい。すみませんが。
やはり、自分で適当な数字を入れればわかることでしょうか?

お礼日時:2021/01/22 23:56

> #14のプログラミングの40の所で、GOTO60である場合、60に飛ぶから、56で自然と、


>END ifになるということでしょうか?ご教授下さい。すみませんが。

全然違います。
何ですか、「自然と、END ifになる」ってのは。

何度も言わせないで下さい。ホント、結構理解力が無いですねぇ。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
これで何回目ですか?同じ事質問してますよね。
もう何回か繰り返しましょうか?

IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。
IFで始まってEND IFで終わる、ってのはFullBASICでIF文を使う時の約束事です。決まりです。構文です。

キチンと読んで下さい。
    • good
    • 0
この回答へのお礼

では、#14のプログラムは、55行のENDIFは、53行を閉じるということでしょうか?ご教授下さい。すみませんが。

お礼日時:2021/01/22 22:35

> ①Yesの場合に何も実行する必要がない場合は,…条件を逆にすればよい。


とはどういうことでしょうか?

IF {条件1} THEN
 {ブロック1}
ELSE
 {ブロック2}
END IF

{ブロック2}が無い場合、

IF {条件1} THEN
 {ブロック1}
END IF

と書けば良い。
反面、{ブロック1}が無い場合、

IF {条件1} THEN

ELSE
 {ブロック2}
END IF

と言う書き方は許されないので、{条件1}を反転させて(これを例えば!{条件1}と表現するとすれば)

IF !{条件1} THEN
 {ブロック2}
END IF

と書けば良い、って話ですよ・・・・・・。
・・・・・・正直、これくらい質問せんでも理解してほしいトコですが。

> ②#14の、51,52 は、40のブロック 2 に当たるところということで、合っていますでしょうか?

51、52だけじゃないです。53、54、55も含めて全て40の{ブロック2}です。

・・・実際問題、そのクソヘナチョコな本が「算法4」「算法5」って分けてるのがロジックの「塊」として考えると大間違いで、実際は「算法4」と「算法5」は一続きの処理です。つまり本当はまとめて書かないとならない。
だから「算法5」は

> そうでなければ

と言うロジック記述としてはおかしなトコから始まってる。それがBASICで言うELSEなんだけど、そもそもIF文と独立して存在出来ません。
だから何度も言いますが・・・いや、もはや決定事項だな。その本はクソです。
この回答への補足あり
    • good
    • 0
この回答へのお礼

#14のプログラミングの40の所で、GOTO60である場合、60に飛ぶから、56で自然と、
END ifになるということでしょうか?ご教授下さい。すみませんが。

お礼日時:2021/01/22 21:59

> #14で、56のEND ifはどういう意味でプログラムされているのでしょうか?


> ご教授下さい。すみませんが。

貴方、全部質問しようとしてます?
既に構文の解説もしてるんで、「どういう意味でプログラム」もクソもないんですが。
IFではじまればEND IFで閉じる、と。「どういう意味」もクソも「構文だ」と言ってますよね?構文って意味分かります?「そういう書き方の約束事だ」と言う事です。

・・・実際BASIC知らないんでしょ。知らないままにこの本読んでるのは・・・土台無理ゲーな気がしますけどねぇ。

56行のEND IFは40行のIFを閉じている。それだけ、ですよ。
    • good
    • 0
この回答へのお礼

あなたの貼ってくれたURLで、質問があり、
①Yesの場合に何も実行する必要がない場合は,…条件を逆にすればよい。
とはどういうことでしょうか?
②#14の、51,52 は、40のブロック 2 に当たるところということで、合っていますでしょうか?
以上2点についてご教授下さい。すみませんが。

お礼日時:2021/01/22 20:43

> ENDIFと、ELSEの意味は、何でしょうか?



うーむ、こうなると、その本でのBASICの解説さえ信用おけなくなってくる。

ISO/JIS FullBASICの構文だと、ifで始まったセクションはendifで終わる、と言う構文になっています。
こういう言語はたまにあって、例えば大学で研究に良く使われるFORTRAN、MATLABなんかのプログラミング言語でもそうなっています(BASICは特に、FORTRANの影響を受けている)。
「何でしょうか?」じゃなくって単なる構文ですね。
elseは条件節で(ifで定義された条件の)「それ以外」に何か実行したい場合使う「キーワード」です。これもプログラミング言語ではフツーなんですが・・・・・・。ホントにその本、BASICキチンと解説してんのかよ。

詳しい説明は次のページを読んでください。

5. 条件分岐:単純IF文・IF~END IF構文,条件の書き方:
http://www.tmd.ac.jp/artsci/math/nakaguti/basic/ …

> ?#14のプログラムの56の ifと小文字になっていますが、IFの間違いですよね?

どっちでもいいです。
ISO/JIS FullBASICの仕様では、記述されるリテラル(つまりプログラムを書いてる文字)は大文字でも小文字でもどっちでも構いません。何ならiFって書いてもIfって書いても構いません。
こういうのをcase insensitiveな言語、と言います。大文字・小文字に区別がない。プログラムを全部大文字で書こうが小文字で書こうが構わない、と言うのが仕様が要求してる事です。
このテのプログラミング言語は、他にPascalやCommon Lisp等があります。
一方、case sensitiveな言語の代表格がC言語やPythonです。当然ifとIFは全然違うので、ifをIFと記述したらエラーになります。
言語によってこの辺の特性が違うので、いずれにせよ、BASICでは気にしないで構いません。
    • good
    • 0
この回答へのお礼

#14で、56のEND ifはどういう意味でプログラムされているのでしょうか?
ご教授下さい。すみませんが。

お礼日時:2021/01/22 19:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!