投稿

NEWS

2024/4/17(水) VL,NL,XL-BASIC(ver~28u4) ダウンロードページに 不具合情報追加しました    2024/4/16(火 ) BEEP(ネットで見つけた記事のLIST) を公開しました    2024/3/26(火 ) N88-BASIC,Pythonプログラミング入門 (3回目) を公開しました

BEEP

イメージ
2024/4/16(火)   BEEP   小5がノートに手書きでプログラミング、35年後に実行してみたら https://withnews.jp/article/f0240414002qq000000000000000W08k10201qq000026805A の記事のプログラムを N88-BASIC(86)互換NL-BASICで動かしました   10 CONSOLE ,,, 1, 1: CLS 20 FOR I=0 TO 20 30   A = INT(RND(1) * 6) + 1 40   LOCATE I, 0: COLOR A: PRINT CHR$(&HE9) 50   BEEP 60   FOR N=0 TO 100: NEXT 70   LOCATE I, 0: COLOR A: PRINT " " 80 NEXT 90 COLOR 7 上記LISTをCtrl+cでコピーし NL-BASICの画面でAlt+vでペースト出来ます   N88-BASIC互換 VL,NL,XL-BASI Cは 以下のリンクからダウンロードできます https://ulprojectmail.blogspot.com Readme.txtを読んで遊んで下さい

PC-98の下線

イメージ
2024/4/9(火) PC-98の下線 PC-98の下線が4dotズレている理由   縦線とで枠を書く為だと思いますので書いてみました   下記リストをコピー(100~220+1行(改行)までを選んでCtrl+c)し NL-BASICの画面でペースト(Alt+v)します 画面クリアしてLISTで表示 RUNで動きます   100 ' PC-98の下線が4dotズレているので縦線とで枠を書いてみました 110 ' Alt+shift+eでbeep最大音量,Alt+F1でリセットで起動音 120 ' メモ帳のリストをCtrl+cでコピーし、Alt+vでぺーストしました 130 def fna(x, y) = (x + y*80)*2: def fnc(c, a) = c*32 + a 140 def seg=&ha200: out &h68,0 150 x1 = 1: y1 = 0: x2 = 15: y2 = 3: cl = 5 160 for x=x1   to x2-1 170   poke fna(x, y1), fnc(cl, &h09): poke fna(x, y2), fnc(cl, &h09) 180 next 190 for y=y1+1 to y2-1: 200   poke fna(x1, y), fnc(cl, &h11): poke fna(x2, y), fnc(cl, &h11) 210 next 220 poke fna(x1, y2), fnc(cl, &h19): poke fna(x2, y2), fnc(cl, &h11)     N88-BASIC互換 VL,NL,XL-BASI Cは 以下のリンクからダウンロードできます https://ulprojectmail.blogspot.com Readme.txtを読んで遊んで下さい  

N88-BASIC,Pythonプログラミング入門 (3回目)

イメージ
2024/3/31(日) N88-BASIC,Pythonプログラミング入門 (3回目)   n!を求める   ■ 初めに ▼ 表記 N88-BASICは以後BASICと省略する事にします またBASICの命令は小文字で書いても 自動で大文字に変換されます   ▼ nの階乗(n!)     n n! = Πi = 1×2× … ×(n-1)×n       i =1 = n(n-1)(n-2) … 1   1~nまで自然数が書かれたカードn枚の 並べ方の場合の数は 1  枚目はn  枚から1つ選ぶのでn  通り 2  枚目はn-1枚から1つ選ぶのでn-1通り … n-1枚目は残り2枚から1つ選ぶので2通り n  枚目は残り1枚から1つ選ぶので1通り よって n通り×(n-1)通り× … ×1 = n!通りになる   n = 3の時 1, 2, 3から選ぶ 1番 2番 3番目 1    2    3 1    3    2 2    1    3 2    3    1 3    1    2 3    2    1 3 × 2 × 1 = 6通り     ■ コード ▼ Python print('nの階乗n!を求める') n = int(input('n = ')) if n < 0:     exit() k = 1 for i in range(2, n+1):     k *= i     #--- k = k * i print(f'{n}! = {k}')   ▼ BASIC 10 DEFDBL K    '--- K~の桁を増やす(倍精度) 20 PRINT "nの階乗n!を求める" 30 INPUT "n = ", N 40 IF N < 0 THEN END 50 K = 1 60 FOR I=2 TO N 70   K = K * I '--- K *= Iとは書けない 80 NEXT 90 PRINT STR$(N); "! = "; K   ■ 説明 ▼ Python 整数型の桁数は実質無制限なのでnが 大きくても計算できます (*は×、/は÷です)   ▼ BASIC デフォルトの型(単精度実数)は7桁ほど

N88-BASICでサイコロの出目の和 (5回目)

イメージ
2024/3/26(火) N88-BASICでサイコロの出目の和 (5回目)   n個のサイコロ(d面)の出目の和がkとなる場合の数 (diceの理論値のグラフ表示、縦線追加)   ■ 解説 https://ulprojectmail.blogspot.com/2021/11/n88-basicpc.html N88-BASICで順列組合せ   https://ulprojectmail.blogspot.com/2024/02/dice-3.html サイコロの出目の和 (3回目) https://ulprojectmail.blogspot.com/2024/02/dice-4.html サイコロの出目の和 (4回目)   より 理論値 [(k-n)/d] Σ(-1) r ( k-rd-1 P n-1 )n/{(n-r)!r!} r=0 を Over flowを避けるため (積…)/(積…)とならない様に 積除を交互に行うなどの工夫をしています     ■ 動作 dice005.basを走らせ 出目の数1~dのdとサイコロの数nを入力すると 各出目の和(n~nd)となる場合の数を グラフなどで表示します OVやError表示が出る時は Over flowにより計算不能という事になりますので 値を小さくして下さい     VL,NL,XL-BASICとdlg~.zip(dice005.bas)は このブログ(以下のリンク)から ダウンロードできます https://ulprojectmail.blogspot.com Readme.txtを読んで遊んで下さい  

VL-BASICのMMLによる自動演奏2(再掲載)

2024/3/23(土)   VL-BASICのMMLによる自動演奏2(再掲載)   VL-BASIC(N88-BASIC互換?)の MML(Music Macro Language),拡張PLAY文(MPU PLAY) による自動演奏の 過去記事の再掲載です (多少変えてあります)   過去記事 https://ulprojectmail.blogspot.com/2021/05/vl-basicmmlplay.html VL-BASICのMML(PLAY)による自動演奏   おまけ(音源の違いによる比較) https://ulprojectmail.blogspot.com/2021/09/mml.html MML     ライオン(May'n/中島 愛)のMML(PLAY)自動演奏2 https://youtu.be/ZP7lCQgZWH4   sister's noise (fripSide)のMML(PLAY)自動演奏2 https://youtu.be/oecK8e8On3A   only my railgun (fripSide) のMML(PLAY)自動演奏2 https://youtu.be/IjMKnZlQATM   コネクト (ClariS) のMML(PLAY)自動演奏2 https://youtu.be/7xc2AVDR_jU   夏祭り (JITTERIN'JINN)のMML(PLAY)自動演奏2 https://youtu.be/Qf1ACXzghvU   Get Wild (TM NETWORK)のMML(PLAY)自動演奏2 https://youtu.be/HavxrmFuAi4

N88-BASIC,Pythonプログラミング入門 (2回目)

イメージ
2024/3/15(金) N88-BASIC,Pythonプログラミング入門 (2回目)   1~nまでの自然数の和を求める   ■ 初めに ▼ 表記 N88-BASICは以後BASICと省略する事にします (他のBASICでも動くかもしれません) またBASICの処理(命令など)は小文字で書いても 自動で大文字に変換されます   ▼ 和の公式を使う方法 n = 10のとき S = 1 + 2 + … + 10 = 1 + 2 + 3 + 4 + 5 +10 + 9 + 8 + 7 + 6 = (10+1)×10/2 = 11 × 5 = 55 = (n+1)n/2 よって    n S = Σi      i =1 = 1 + 2 + … + n-1 + n = n(n+1)/2   ▼ 順番に足す方法 sum = 1 sum = sum + 2 … sum = sum + n のように1~nまでを順に足すことで求まります   この方法は和を積に変えると階乗になり 応用が効きます   今回は練習もかねて順に足す方法で求めます     ■ コード ▼ Python print('1~nまでの自然数の和') n = int(input('n = ')) if n < 0:     exit() sum = 1 for i in range(2, n+1):     sum = sum + i print(f'1 ~ {n} までの和は {sum} です')     ▼ BASIC 10 PRINT "1~nまでの自然数の和" 20 INPUT "n = ", N 30 IF N < 0 THEN END 40 SUM = 1 50 FOR I=2 TO N 60   SUM = SUM + I 70 NEXT 80 PRINT "1 ~"; N; "までの和は"; SUM; "です"     ■ 説明 ▼ print pythonの表示処理です print('文字')            … 文字を表示して改行 print('文字', end = '')  …