今日のテーマ   日々改造 (^_^;)         
[記事リスト(ツリー表示)]  [ 返信 ]   [新着記事] [最新50] [ワード検索] [過去ログ]

タイトル Re: オリジナルの prime.bas のソース
投稿日: 2024/03/10(日) 18:50
投稿者としき
参照先http://toshiki.la.coocan.jp/
 番 号 11156    11150 番 konno さんへのコメント    コメント数 2

> オリジナルの prime.bas のソースはこれだけです。

なるほど、MODって関数なんですね。
N88-BASICでは演算子なんですけどね。

> INPUT n
> IF MOD(n,2)=0 THEN
>   IF n=2 THEN PRINT "素数" ELSE PRINT "合成数"
> ELSE
>   FOR i=3 TO SQR(n) STEP 2
>     IF MOD(n,i)=0 THEN EXIT FOR 
>   NEXT i
>   IF i<=SQR(n) THEN PRINT "合成数" ELSE PRINT "素数"
> END IF
> END

これをそのままN88-BASICに移植すると、こんな感じかなぁ。
実行していないので、そのまま動くかどうかはわかりません。

100 INPUT N
110 IF N MOD 2=0 THEN 120 ELSE *ELSE1
120     IF N=2 THEN PRINT "素数" ELSE PRINT "合成数"
130     GOTO *ENDIF1
140 *ELSE1
150     I=3
160     WHILE (I<=SQR(N)) AND (N MOD I<>0)
170         I=I+2
180     WEND 
190     IF I<=SQR(N) THEN PRINT "合成数" ELSE PRINT "素数"
200 *ENDIF1
210 END

解説すると

・MODは演算子に変更した。
・110行目のTHENの行番号は省略できたかもしれない。
 つまり、NULLの行番号が許容されるのなら、その場合は単に次の行に制御が移る。
・ループの脱出条件が複数あるので、FORループからWHILEループに変更した。


> TurboBasic で同じやり方はわからなかったので、自分なりに改造したのが以下

TurboBasicって、MOD関数またはMOD演算子ってないんですか?
あと、NEXTの後ろの変数って省略できないんですか?
でもコンパイラ言語だからあんまり関係ないのか。
8ビットのBASICのころは、NEXTの後ろの変数を省略するとマイクロ秒の単位で速く
なると信じられていて、だから私も省略するのが癖になっているのですよ。
高速化といえば、最初のFORの直下のIF文。
これはループの中に入れておくのはもったいない。
だって、1回しか比較する必要がないものを何回も比較することになるわけだから。

> i=2:gosub PRINT i;:c=c+1		' 2 素数
> FOR i=3 TO n 

こんな感じで十分だと思う。

    - No.11156 一括表示へ   -   コメント元:11150 一括表示へ  -    [ 返信 ]    [引用無し] pre


- 関連一覧ツリー (先頭の番号をクリックするとツリー全体を一括表示します)
11135.TurboBasicで素数を表示カウントする PRIME2.EXE - konno 24/03/05-00:40
11137.Re: TurboBasicで素数を表示カウントする PRIME2.EXE - としき 24/03/05-13:22
┃┗11140.Re^2: TurboBasicで素数を表示カウントする PRIME2.EXE - konno 24/03/05-15:56
┃┗11147.Re^3: TurboBasicで素数を表示カウントする PRIME2.EXE - としき 24/03/07-02:18
┃┗11149.Re^4: TurboBasicで素数を表示カウントする PRIME2.EXE - konno 24/03/07-22:28
┃┗11160.Re^5: TurboBasicで素数を表示カウントする PRIME2.EXE - としき 24/03/12-12:32
┃┣11162.Re^6: TurboBasicで素数を表示カウントする PRIME2.EXE - konno 24/03/12-23:45
┃┗11164.Re^6: TurboBasicで素数を表示カウントする PRIME2.EXE - としき 24/03/17-17:26
┃┗11170.Re^7: TurboBasicで素数を表示カウントする PRIME2.EXE - としき 24/03/22-23:15
┃┗11172.Re^8: N88-BASICで素数を表示カウントする PRIME88.BAS - としき 24/03/24-15:59
┃┣11173.Re^9: N88-BASICで素数を表示カウントする PRIME88.BAS - konno 24/03/25-02:00
┃┃┣11174.Re^10: N88-BASICで素数を表示カウントする PRIME88.B.. - としき 24/03/25-23:13
┃┃┃┗11175.PRIME88.BAS で 「169=素数?」問題 - konno 24/03/26-20:11
┃┃┃┣11177.Re: PRIME88.BAS で 「169=素数?」問題解決か - konno 24/03/27-22:56
┃┃┃┗11192.Re: PRIME88.BAS で 「169=素数?」問題 - としき 24/04/05-02:07
┃┃┃┗11195.Re^2: PRIME88.BAS で 「169=素数?」問題 - konno 24/04/06-02:05
┃┃┃┣11198.Re^3: PRIME88.BAS で 「169=素数?」問題 - としき 24/04/06-11:27
┃┃┃┗11199.Re^3: PRIME88.BAS で 「169=素数?」問題 - としき 24/04/06-14:51
┃┃┃┗11200.Re^4: PRIME88.BAS で 「169=素数?」問題 - としき 24/04/06-23:09
┃┃┃┗11202.Re^5: PRIME88.BAS で 「169=素数?」問題 - としき 24/04/07-01:17
┃┃┃┗11203.Re^6: PRIME88.BAS で 「169=素数?」問題 - konno 24/04/07-20:41
┃┃┃┗11204.Re^7: PRIME88.BAS で 「169=素数?」問題 - konno 24/04/08-01:46
┃┃┃┗11205.Re^8: PRIME88.BAS で 「169=素数?」問題 - としき 24/04/08-12:28
┃┃┃┗11206.SQRの単精度と倍精度の表示検証ソース - konno 24/04/08-23:33
┃┃┃┗11207.Re: SQRの単精度と倍精度の表示検証ソース - としき 24/04/09-15:06
┃┃┃┗11208.Re^2: SQRの単精度と倍精度の表示検証ソ.. - konno 24/04/09-22:44
┃┃┃┗11209.Re^3: SQRの単精度と倍精度の表示検証ソ.. - としき 24/04/10-17:44
┃┃┃┣11210.Re^4: SQRの単精度と倍精度の表示検証.. - konno 24/04/10-21:56
┃┃┃┃┗11211.Re^5: SQRの単精度と倍精度の表示検証.. - としき 24/04/10-23:25
┃┃┃┃┗11213.Re^6: SQRの単精度と倍精度の表示検.. - konno 24/04/11-20:13
┃┃┃┗11215.Re^4: SQRの単精度と倍精度の表示検証.. - としき 24/04/13-01:13
┃┃┃┗11216.Re^5: SQRの単精度と倍精度の表示検証.. - konno 24/04/13-22:03
┃┃┃┗11218.Re^6: SQRの単精度と倍精度の表示検.. - としき 24/04/14-12:14
┃┃┃┗11219.Re^7: SQRの単精度と倍精度の表示検.. - konno 24/04/15-01:15
┃┃┃┗11220.Re^8: SQRの単精度と倍精度の表示.. - としき 24/04/15-13:56
┃┃┃┗11221.Re^9: SQRの単精度と倍精度の表示.. - konno 24/04/16-00:04
┃┃┃┗11222.Re^10: SQRの単精度と倍精度の表.. - としき 24/04/16-12:22
┃┃┃┗11223.Re^11: SQRの単精度と倍精度の.. - konno 24/04/16-23:58
┃┃┃┗11224.Re^12: SQRの単精度と倍精度の.. - としき 24/04/17-02:14
┃┃┃┗11225.Re^13: SQRの単精度と倍精度.. - konno 24/04/17-23:21
┃┃┣11176.Re^10: N88-BASICで素数を表示カウントする PRIME88.B.. - konno 24/03/27-00:26
┃┃┃┣11178.Re^11: N88-BASICで素数を表示カウントする PRIME88... - としき 24/03/28-00:43
┃┃┃┃┗11179.SQRの計算式 - konno 24/03/30-15:58
┃┃┃┃┗11180.Re: SQRの計算式 - としき 24/03/30-23:41
┃┃┃┃┗11184.Re^2: SQRの計算式 - konno 24/03/31-22:26
┃┃┃┗11182.Re^11: N88-BASICで素数を表示カウントする PRIME88... - としき 24/03/31-15:48
┃┃┗11181.Re^10: N88-BASICで素数を表示カウントする PRIME88.B.. - としき 24/03/31-14:09
┃┗11183.Re^9: N88-BASICで素数を表示カウントする PRIME88.BAS - としき 24/03/31-16:08
┃┗11185.Re^10: N88-BASICで素数を表示カウントする PRIME88.B.. - konno 24/04/01-00:27
┃┣11186.T98-NEXT でN88BASIC検証 - konno 24/04/02-00:16
┃┗11187.Re^11: N88-BASICで素数を表示カウントする PRIME88... - としき 24/04/03-16:20
┃┗11189.Re^12: N88-BASICで素数を表示カウントする PRIME88.. - konno 24/04/04-01:01
┃┗11191.Re^13: N88-BASICで素数を表示カウントする PRIME8.. - としき 24/04/04-12:15
┃┗11194.Re^14: N88-BASICで素数表示の問題 - konno 24/04/06-01:40
┃┗11197.Re^15: N88-BASICで素数表示の問題 - としき 24/04/06-11:26
11150.オリジナルの prime.bas のソース - konno 24/03/07-22:43
11156.Re: オリジナルの prime.bas のソース - としき 24/03/10-18:50
11158.Re^2: オリジナルの prime.bas のソース - konno 24/03/11-00:45
┃┗11159.Re^3: オリジナルの prime.bas のソース - としき 24/03/12-02:16
┃┗11161.MOD と ¥ の有効範囲 - konno 24/03/12-22:45
┃┗11165.Re: MOD と ¥ の有効範囲 - konno 24/03/18-00:36
┃┗11166.Re^2: MOD と ¥ の有効範囲 - としき 24/03/20-01:44
┃┗11167.Re^3: MOD と ¥ の有効範囲 - konno 24/03/21-00:00
┃┗11168.Re^4: MOD と ¥ の有効範囲 - としき 24/03/21-11:14
┃┗11171.Re^5: MOD と ¥ の有効範囲 - konno 24/03/24-00:08
11163.Re^2: オリジナルの prime.bas のソース - としき 24/03/17-17:09
11169.Re^3: オリジナルの prime.bas のソース - としき 24/03/22-23:02

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)   [引用無し]
おなまえ 
Eメール 
タイトル 
メッセージ auto soft pre(図表、プログラム) ※折り返さずに改行を入れてね
 参照先 
 暗証キー (英数字で8文字以内)
 プレビュー          

- 以下のフォームから自分の投稿記事を修正・削除することができます -
   処理   記事No   暗証キー
    [ページトップへ] [管理用]