xDNCLの文法

戻る

数は整数と実数が区別される。小数部分を含まない数は整数とする。例:3.0は実数

文字列は「」または""で囲む。

真偽値はTRUEとFALSEのどちらかである。

変数の宣言

プログラムの冒頭で使う変数を宣言することができる。 現在の設定では 変数には整数,実数,文字列,真偽の型がある。

変数名の後に番号をいれた[ ]をつけて配列を使うことができる。 a[n]と宣言した場合,使える添字の範囲は現在の設定ではとなる。 二次元以上の配列はa[1,2]などのように使う。

計算

四則計算

+,-,×,*,÷,/,%が使える。*は掛け算,/は割り算,%は割り算の余り(整数どうしに限る)を表す。 整数どうしの割り算では設定によって/と÷の挙動が違うことがある。 現在の設定では

条件式

=,≠,!=,>,<,≧,>=,≦,<=が使える。!=は≠,>=は≧,<=は≦とそれぞれ同じである。 条件式を「または」「かつ」でつないだり,「でない」を後置することで否定することができる。 ただし「または」「かつ」「でない」を使った条件は左から順に評価される。

文字列結合

「と」で文字列を結合することができる。数値は文字列に変換してから結合される。 例:「こん」と「にちは」→「こんにちは」。1と2→12

関数

次のような関数を使うことができる。文字列の位置や番号は0から始まる。

関数意味使用例
abs(《値》)絶対値abs(-3)→3
random(《整数》)乱数random(5)→0以上5以下の乱数(整数)
ceil(《実数》)小数部分切り捨てceil(3.5)→3
floor(《実数》)小数部分切り上げfloor(3.5)→4
round(《実数》)小数部分四捨五入round(3.5)→4
sin(《実数》)三角関数のサイン(単位はラジアン)sin(0)→0
cos(《実数》)三角関数のコサイン(単位はラジアン)cos(0)→1
tan(《実数》)三角関数のタンジェント(単位はラジアン)tan(0)→0
sqrt(《実数》)ルートsqrt(2)→1.414…
log(《実数》)自然対数log(10)→2.302…
exp(《実数》)指数関数(底は自然対数の底)exp(1)→2.718…
pow(《実数》,《実数》)累乗pow(2,3)→8
length(《文字列》)文字列の長さ(文字数)length(「こんにちは」)→5
length(《配列》)配列の長さlength({1,2,3,4,5})→5
append(《文字列》,《文字列》)文字列結合append(「Wa」,「PEN」)→「WaPEN」
split(《文字列》)文字列の分割(配列を返す)split(「ABC」)→[「A」,「B」,「C」]
split(《文字列》,《文字列》)文字列の分割(配列を返す)split(「A,BC」,「,」)→[「A」,「BC」]
substring(《文字列》,《開始位置》)部分文字列(最後まで)substring(「こんにちは」,2)→「にちは」
substring(《文字列》,《開始位置》,《長さ》)部分文字列(長さ指定)substring(「こんにちは」,2,1)→「に」
extract(《文字列》,《区切文字列》,《番号》)部分文字列(区切り文字列指定)extract(「a:b:c:d」,「:」,2)→「c」
insert(《文字列》,《位置》,《文字列》)文字列挿入insert(「こんは」,2,「にち」)→「こんにちは」
replace(《文字列》,《位置》,《長さ》,《文字列》)文字列置換replace(「こんにちは」,2,2,「ばん」)→「こんばんは」

代入

《変数》←《値》
        

代入

{ }や[ ]を使って,配列にまとめて値を代入することができる。

整数 a[6]
a←
        

入力

《変数》を入力する
        

代入

出力

《値》を表示する
        

代入

《値》を改行無しで表示する
        

代入

《値》に配列を指定すると,配列の全要素が表示される。

分岐(選択)

もし《条件》ならば
|
を実行する
        
もし《条件》ならば
|
を実行し,そうでなければ
|
を実行する
        

代入

ループ

前条件・後条件

《条件》の間,
|
を繰り返す
        

代入

繰り返し,
|
を,《条件》になるまで実行する
        

代入

増やしながら・減らしながら

《変数》を《値》から《値》まで《値》ずつ増やしながら,
|
を繰り返す
        

代入

《変数》を《値》から《値》まで《値》ずつ減らしながら,
|
を繰り返す
        

代入

グラフィック関係などの命令

(x,y)は中心の座標(x,y)は楕円に外接する長方形の左上の座標
命令英語表記補足
描画領域開く(《幅》,《高さ》)gOpenWindow1つしか開けない
描画領域閉じる()gCloseWindow
描画領域全消去()gClearWindow
線色設定(《赤》,《緑》,《青》)gSetLineColor各色の数は0〜255
塗色設定(《赤》,《緑》,《青》)gSetFillColor
文字色設定(《赤》,《緑》,《青》)gSetTextColor
線太さ設定(《太さ》)gSetLineWidth
文字サイズ設定(《サイズ》)gSetTextSize
文字描画(《文字列》,《x》,《y》)gDrawText(x,y)は文字列の左下の座標
点描画(《x1》,《y1》)gDrawPoint
線描画(《x1》,《y1》,《x2》,《y2》)gDrawLine
矩形描画(《x》,《y》,《幅》,《高さ》)gDrawBox(x,y)は矩形の左上の座標
矩形塗描画(《x》,《y》,《幅》,《高さ》)gFillBox
円描画(《x》,《y》,《半径》)gDrawCircle
円塗描画(《x》,《y》,《半径》)gFillCircle
楕円描画(《x》,《y》,《幅》,《高さ》)gDrawOval
楕円塗描画(《x》,《y》,《幅》,《高さ》)gFillOval
弧描画(《x》,《y》,《幅》,《高さ》,《開始角》,《終了角》,《閉じ方》)gDrawArc(x,y)は楕円に外接する長方形の左上の座標
角度の単位は度
閉じ方は0:閉じない,1:弦,2:半径
弧塗描画(《x》,《y》,《幅》,《高さ》,《開始角》,《終了角》,《閉じ方》)gFillArc
《ミリ秒数》 ミリ秒待つ(今はタイミングがおかしい)
変数を確認する全変数を表示する

関数・手続きの定義

注意:関数や手続きを定義したプログラムについては,フローチャートの実装がまだできていない。 この状態で間違ってフローチャートを変更するとプログラムがごそっと消えてしまうので, 関数や手続きを定義するプログラムではフローチャートの表示をしないことをお勧めします。

関数 hoge(x)
|…
|《値》を返す
関数終了
    
手続き hoge(x)
|…
|手続きを抜ける
|…
手続き終了
    

関数は値を返さないとエラーになる。手続きは値を返すことができない。 関数・手続きともに,引数を取らない場合であってもカッコが必要(定義するときも呼び出すときも)。

注意:この文法はPENのxDNCLと若干違います。