画面写真みると、「ダイレクトモード」で一行一行打ち込んでるみたいですが、プログラムは「EDIT」ボタンを押して編集モードにしてから打ち込んでくださいね。
全部打ち込んだら start ボタン押して実行。
エラーがでると思うので、
下画面の上部に並んでる [FILES][LOAD"][SAVE"][LIST E..][RUN]
の LIST E をタッチします。
そうするとエラーのあった行に飛ぶから、サンプルとよーく見比べて間違いを修正します。
そしたらまた start ボタン。
この繰り返し。
がんばれ!
1そうだね プレイ済み
真摯にアドバイスしている人々に対し
「盲いたる民(目の見えない民=愚民)」
とはあまりに失礼な言い草では??
「衆人皆酔ひ、我独り醒めたり」の屈原気取りですか?
誤りを認めず、強弁を重ねるごとに、自身の価値を下げ続けている事が理解できませんか?
重要なことは「最後に発言した者が勝ち」的な、ちっぽけな自尊心を守ることではなく、他人の言うことに真摯に耳を傾けることでは?
「六十にして耳順う」と言いますが、まだ耳が従う年齢じゃないのかな?
議論に不利になると急にひらがなで書いたりルビ振ったりするんですね。
「難しい漢字理解できる俺スゲェ!! 哀れな MIKI には理解できないだろうから、ルビふってやるか。俺親切!!」
といったところでしょうかね? 反論できなくなって「おまえのかあちゃんでべそ」と言い出す小学生みたいですよ。
2そうだね プレイ済み
正弦波を再生します。
option strict
option defint
var n=16384, x[n], i
for i = 0 to n - 1
x[i] = sin(i * 1024 / n * 2 * pi()) * 13 + 127.5
next
wavseta 224, 127, 127, 127, 127, x, 69
bgmplay "@d-24 t60 @224 o4 c&c&c&c&c&c&c&c&"
ここ参照
https://miiverse.nintendo.net/posts/AYMHAAACAAADVHkP77VM1g
0そうだね プレイ済み
最初の階段上がって x ボタン押したら
Undefined function in 0:2533
で止まりました。
n% = 2
_evh_xbt$[n%] = "__MSG2"
みたい
0そうだね プレイ済み
def にする時は、中で使う変数は全部宣言した方がいいですよ。
def chiruno(a,b)
var c$ = str$(a + b)
var c0 = instr(c$, "0")
:
var c = c0 + ..
var d = a + b
という感じ。
0そうだね プレイ済み
sort 命令は c/c++ 言語で書かれているのに対して、
自作はインタープリタなわけだから、
要素数 n が小さければ sort命令 >> 自作 でしょうね。
ただ、sort命令のアルゴリズムしだいでは(例えば単純ソートとかね) n が大きくなれば sort命令 < 自作 となることもあるでしょう。
2そうだね プレイ済み
>ただ goto は使わないので、必ず先頭から順に「実行」されるので、
あ、間違った!!「メインのコードは必ず最後に書くので、以下同文」でした。例えば
var ... 'global
'module (1)
var ...
def ...
'module (2)
var ...
def ...
'main
var ...
main
原体験が Pascal なので、ワンパスコンパイラに優しいコードを書く習慣が見に染み付いてる(苦笑
0そうだね プレイ済み
いかさん>『プチコン3号丈の話を仕て居る訳では有りません』と書いた筈です。
よく読み返してね
https://miiverse.nintendo.net/posts/AYIHAAAEAACHVRTty-MGcw
最初のコメントで何の断りもなく
「論理値の演算には論理演算子が必要と成ります」
と断言してるじゃないの。
最初に一言「ある種の言語では」と断りいれておけば何の問題もないが、
私に指摘されて後出しで「プチコンの話じゃない」と言い訳してきただけですね。
一事が万事この調子。
用語含め、初心者にデタラメを教えるのは、何も教えないことの何倍も罪深い。
やめてね。
4そうだね プレイ済み
サンプラちっくなプログラム
var x[0]
xon mic
bgmstop
micstart 2, 0, 1
wait 30
micsave x
wavseta 224, 127, 127, 127, 127, x, 69
bgmplay "@d-24 t60 @224 o4 l8 cdefgab<c"
最後の行、l8 は「エル八」です。「十八」じゃないよ。くわしくは↓参照。
https://miiverse.nintendo.net/posts/AYMHAAACAAADVHkP77VM1g
1そうだね プレイ済み
あ、チューナーか!!
だと、測定した中心周波数と、それに近い基準音の周波数との比を求め、対数表示してやる必要がありますね。
? log(中心周波数 / 基準音の周波数, pow(2, 1/12)) * 100
でセント単位の表示が可能です。
0そうだね プレイ済み
>> は「算術シフト」で 31bit 目が 30bit 目にコピーされます。
B% = B% >> 1 を
B% = (B% >> 1) and &h7fffffff
として 31bit 目に 0 を入れてやれば、「論理シフト」となり、 b% の符号で分岐する必要がなくなります。
あまさとさんのコードはバグってるので、おーみのみのさんのコードをベースにすればいいと思います。
1そうだね プレイ済み
1 入力波形を fft して周波数ごとの成分を求めます。
2. 周波数ごとに絶対値を求め
3. その最大値を求めます。ピークの前後1点も加味したほうがいいでしょう。
key=x3e3rxdx file=w で 2 までは実装してあるから 3 を追加すればいいんじゃないかなあ??
0そうだね プレイ済み
あまさとさん
同様のコード書いて、動かないので頭抱えて調べてみたってのが今回の顛末です。
? f(0)
end
var n = 8, x[n]
def f(i)
return x[i] ' Type mismatch!!
end
みたいな。
1そうだね プレイ済み
みむさん
その「事前チェック」のことを社長は「内部的な実行コードへ変換」と言ってるのだと思います。
>変数の登録だけをして型や内容を決めないのは、DEFでも起こりますね。
out の B もそうか!!
def で異なる型を受け取るために、ここで A の型を決めるわけにいかないのでしょう。それに引きずられてというか、同じ処理するために、グローバル変数でも決まらない仕様になってるのかなあと想像します。
>コードの途中でDIM/VARを書かれるんですか??
モジュールちっくに書くときは、モジュールごとの先頭で変数宣言します。ただ goto は使わないので、必ず先頭から順に「実行」されるので、
var n = 8, x[n]
というコードが常に期待通りに動きます。
1そうだね プレイ済み
Hi Weiss S.! Nice to meet you!!
I know you because SpidaMario often spoke of you :)
0そうだね プレイ済み
実際にサンプルコードを打ち込んで実行してみましたか?
最初はエラーばかりで嫌になると思いますが、そこは乗り越えなければならない壁です。
最初から大きなプログラムは書けないので、短いプログラムから少しずつ試してください。
0そうだね プレイ済み
プチコンはワンパスコンパイラです。
1. コンパイル
(a) コンパイラ指定(option)を探しながら
(b) 変数があれは変数表に登録して(ただしこの段階ではスカラか配列かは決めない)
(c) 命令などは対応するマシンコード(java みたいな中間コード)を生成する。
2. 実行
コンパイルされたマシンコードをインタープリタが実行します。
0そうだね プレイ済み