ページ

ラベル 十進Basic の投稿を表示しています。 すべての投稿を表示
ラベル 十進Basic の投稿を表示しています。 すべての投稿を表示

2014年2月16日日曜日

Basic 素数計算プログラム

JIS BASICが使えるソフトなどに貼り付けてご使用ください。私は十進BASICを使いました。
十万までの素数が出力されます。
仕 組みについては、まずFor構文で数字を1ずつ代入します。代入された値よりも前にある値をひとつずつ割ってあげて、余りを調べます。余りが0、つまり割 り切れるものがあればそれは素数ではないのではじきます。これを繰り返していってどれで割っても余りが出る数を素数として出力します。処理ははじめのうち は早いですが、割る数が増えるにつれてどんどん遅くなっていきます。

素数計算機.bas

LET A=2
PRINT A
FOR A=3 TO 100000
   FOR B=2 TO A-1
      IF MOD(A,B)=0 THEN
         GOTO 100
      END IF
   NEXT B
   PRINT A
100 
    NEXT A
     
END

Basic 多角形の対角線の本数を計算する

さて、上記の通りのことをやります。計算アルゴリズムは非常に面倒な形式をとっています。というのも、多角形の対角線の本 数を求める関数が見つけられず、四角形の対角線は+2、五角形はそれに+3、六角形はそれに+4、という要領で繰り返しの作業をやってもらうプログラムで す。理屈を言ってもしょうがないのでプログラムをさっさと載せます。以下の通りです。十進Basicなどに貼り付けてご利用下さい。好きに改変してもらって結構です。

多角形の対角線の本数を算出する計算機.bas

!三角形は0本
! n角形 (3以外は) ex. 4角形 0+2=2本,五角形 2+3=5,六角形 5+4=9...

INPUT n
IF n<4 THEN
   pause "4角形以上を指定してください"
   stop
END IF

LET plus=2 !最初は2から対角線を足していくので
LET ans=0 !答えを収める

FOR A=4 TO n !三角形(つまり対角線0本)からはじめるがforの仕様でA=4(四角形から)にする
   LET ans=ans+plus
   LET plus=plus+1
NEXT A

pause STR$(ans) & "本です"

END

Basic イースターの日付を計算する

参考資料:イースターの日の決め方 http://www.geocities.co.jp/HeartLand/1987/easterdate.html

復活祭 イースターは毎年日付が変わるそうです。今年初めて知りました。
ということで、今回は十進Basicでイースターの日付を計算するプログラムを作ってみました。
ちなみに、私はクリスチャンではありません。
計算アルゴリズムは上記のサイトを参考にさせてもらいました。

イースター計算機.bas

INPUT year !求めたい年を入力
LET D=MOD(year,19) !ここから下は上記リンクの計算方法をそのまま写しました
LET D=255-D*11
DO
   IF D<51 THEN EXIT DO
   LET D=D-30
LOOP
IF D>48 THEN LET D=D-1
LET E=MOD(year+INT(year/4)+D+1,7)
LET Q=D+7-E
IF Q<=31 THEN 
   PRINT "3月"&STR$(Q) !表示(3月の場合)
ELSE
   PRINT "4月"&STR$(Q-31) !表示(4月の場合)
END IF

END