自作言語でFizzBuzz問題
折角OsoScriptが動いたので、FizzBuzzプログラムを組んでみようと思います。題して「自作言語でFizzBuzz問題」です。
現在、OsoScriptがサポートしている演算子は下記です。
四則演算子
+ , - , * , /
命令
命令はprint命令を付けました。
print(文字); , printn(文字);
printは文字を表示します。printnは文字を表示して改行します。
文字は変数か、""もしくは''で囲まれた文字が指定できます。また、文字は空白で区切っていくつでも並べることができます。これで、文字変数の12バイト制限もとりあえずクリアしています。
構文
構文は、if、for、whileです。
FizzBuzz問題を解くOsoScript
#[------------------------------ FizzBuzz問題 -------------------------------#] #------グローバル変数----------- global F ="Fizz"; global B ='Buzz'; #------------------------------- #メインルーチン #------------------------------- function main() { local max = 15; printn( F B "問題を" '解きます' ); fizzbuzz( max ); #fizzbuzz関数呼び出し while( true ){} #無限ループ } #------------------------------- #fizzbuzz関数 #------------------------------- function fizzbuzz( z ) { local y = "です"; local a[0] = 3; local a[1] = 5; local x; for( x=1, x<=z, 1 ){ if( x<a[0] ){ if( x<a[1] ){ printn( x " " y ); } else{ printn( B " " y ); a[1] = a[1] + 5; } } else{ a[0] = a[0] + 3; if( x<a[1] ){ printn( F " " y ); } else{ printn( F B " " y ); a[1] = a[1] + 5; } } } }
配列も確認したかったので、強引に配列も使ってみました。
上のスクリプトを実行すると下記が表示されました。
FizzBuzz問題を解きます
1 です
2 です
Fizz です
4 です
Buzz です
Fizz です
7 です
8 です
Fizz です
Buzz です
11 です
Fizz です
13 です
14 です
FizzBuzz です
ということで、構文的にエラーの無いスクリプトなら動くようです。
本当にやりたいこと
(ブログの終わりにやりたいことを書いておきたいと思います)
- 求職活動・・・このブログで興味を持った人一声かけてください。m(_ _)m
- Androidプログラム
- Web系のプログラム