投稿

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 = '')  …

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

イメージ
2024/3/12(火) N88-BASICでサイコロの出目の和 (4回目)   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を避けるため (積…)/(積…)とならない様に 積除を交互に行うなどの工夫をしています     ■ 動作 dice004.basを走らせ 出目の数1~dのdと サイコロの数nを入力すると 各出目の和(n~nd)となる場合の数を グラフなどで表示します OVやError表示が出る時は Over flowにより計算不能という事になりますので 値を小さくして下さい   VL,NL,XL-BASICとdlg~.zip(dice004.bas)は このブログ(以下のリンク)から ダウンロードできます https://ulprojectmail.blogspot.com Readme.txtを読んで遊んで下さい

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

イメージ
2024/3/6(水) N88-BASIC,Pythonプログラミング入門 (1回目)   ■ 環境(Windows上) ▼ Python コマンド プロンプト または powershell のどちらでも良いので起動します Windowsの検索(ここに入力して検索)で探せます   python(Enter)を入力すると起動します インストールされていなければダウンロードページ が開きます(Windows10で確認済み) 指示に従いインストールして起動して下さい   以後、コマンド プロンプト(DOS窓)で解説します (Pythonはあまり良く分からないので簡単な事しか 説明出来ません)   ▼ N88-BASIC ここでは互換BASICのNL-BASICを使用します (一番下のリンク先からダウンロードして下さい) (他のBASICでも可能な場合もあります) NLBasic01.exeをダブルクリックすると起動します     ■ 簡単な計算を行って見る ▼ Pythonを起動した状態で >>>_ の状態で 1+2(Enter) と入力(1 + 2 Enterキーを順に押す)すると 3 が表示されます a = 5(Enter) a = a + 1(Enter) a(Enter) と入力すると 6 が表示されます a = a + 1は 右辺(5+1=6)を左辺(a)に代入という意味なので aは6になる   ▼ N88-BASIC(NL-BASIC)を起動した状態で ? 1+2(Enter) と入力すると  3 が表示されます 式の先頭に?(表示命令)を付ければ結果表示されます a = 5(Enter) a = a + 1(Enter) ? a(Enter) と入力すると  6 が表示されます   ▼ 式 細かな違いがありますが共通項を説明します 四則演算(和差積除は+-*/) 例 1+2 1+2*(3+4) (1+2+3+4+5+6)/6 など いろいろな計算をして見て下さい (BASICは値を表示する時は?が必要)     ■ 簡単なプログラムを走らせて見る ▼ Pythonのプログラムをメモ帳で作る 変数の使い方の練習の為あえて複雑にしています (いろいろ試して見て下さい) ファイル名py001.py print('1 + 2 =')

メモ (5回目)

2024/3/3(日) メモ (5回目)   昼の12時は午前12:00?それとも午後12:00?   日本では 午前0~11~12と考えて午前12時は昼 午後0~11~12と考えて午後12時は夜   欧米では 午前12~1~11AMで0は12表記なので12AMは夜 午後12~1~11PMで0は12表記なので12PMは昼   つまり 夜中の12:00は午後12:00、12:00AM(a.m.) 昼間の12:00は午前12:00、12:00PM(p.m.) です   しかし 正午~(午後)を午前12:00~午前12:59~午後1:00~と 表示すると午後なのに午前表示となり混乱しますが   正午~(午後)を午後12:00~午後12:59~午後1;00~と 表示するとしっくりきます (または午後0:00~午後0:59~午後1;00~と表示するか)   アナログ時計やデジタル時計の12時間表記では 0~11時表記ではなく12~1~11時の表記になり しかもデジタル時計では昼間の12時を午後12:00と 表記されますので 個人的には 昼を午前12:00とする日本の法律を変えて 昼を午後12:00とした方が良いと思います     過去記事 https://ulprojectmail.blogspot.com/2021/11/n88-basicclock1.html N88-BASICでアナログ時計  

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

イメージ
2024/3/1(金) N88-BASICでサイコロの出目の和 (3回目)   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を避けるため (積…)/(積…)とならない様に 積除を交互に行うなどの工夫をしています     ■ 動作 dice003.basを走らせ 出目の数1~dのdと サイコロの数nを入力すると 各出目の和(n~nd)となる場合の数を 表示します OVやError表示が出る時は Over flowにより計算不能という事になりますので 値を小さくして下さい     VL,NL,XL-BASICとdlg~.zip(dice003.bas)は このブログ(以下のリンク)から ダウンロードできます https://ulprojectmail.blogspot.com Readme.txtを読んで遊んで下さい    

メモ (4回目)

2024/2/29(木) メモ (4回目)   BASICの行番号やGOTO文について   ■  N88-BASIC互換VL,NL,XL-BASICの行番号について Windowsのメモ帳等のスクリーンエディタで 行番号の無いプログラムを書き(ラベル使用、ERL不使用) LOAD命令で読込ませると行番号が自動付加されます SAVE "ファイル名",N で行番号を取り除いて保存できます     ■ BASICの行番号について BASICが作られた頃のはメモリーや速度などの 制限でラインエディタ(1行入力方式)が主流でした   MS-DOS時代以降のスクリーンエディタ(画面入力方式) なら行番号入力は必要有りませんが ラインエディタでは編集する行を知るために 行番号が必要でした 現在の恵まれた環境からは想像しにくいですが     ■ GOTO文について(BASIC, C, アセンブラ) CPU (コンピュータ) は機械語 ( アセンブラ ) で 動いています アセンブラ は 条件分岐 ( BASI CのIFとGOTO) が無ければ CPUを制御 できません   BASICにはGOTOに 代わる 命令FORやWHILEなど も 用意されており アセンブラよりも分かり易い プログラムが書けます (構造化プログラミング)   GOTOよりFORやWHILEを使う方が分かり易い プログラム が 書 けるという意味が いつのまにか GOTO自体が 悪者扱いされるようになり ました   アセンブラやBASICは 書き方によってた 分かり易くも 悪く も出来ます GOTO(分岐命令)は悪者ではなく 使い方 次第 です