サンプルのプログラムを見ると、一行に一命令しか書いてないけど、日本語の文章みたいに、つなげて書くことは出来ないの?
いえいえ、日本語のように、各命令を「。」で区切れば、いくつでも命令を書くことが出来ます。ただし、プログラムを、文章のように書いてしまうと、プログラムが見づらくなります。もし、間違ったプログラムを書いてしまったときに、誤りを見つけるのが難しくなります。プログラムは、出来る限り見やすく、分かりやすく書くことが重要です。
昔、BASICをちょっとかじったことがあるんだけど、BASICって、「変数=関数名(引数,引数)」みたいな書き方が出来るよね。ひまわりはそんな風に書けないの?
書けます。『適当な数=乱数(10)』と、書けば、変数『適当な数』に、0〜9のどれかの乱数が得られます。
最近、ひまわりの、プログラムの、点の、打ち方に、慣れてしまって、文章を、書くとき「、」が多くなって、しまいます。どうして、「、」で、単語を、区切らないといけないの?改良できないの?
日本語の曖昧さ(=文脈の誤訳)を排除するため、プログラムを単純に保つため、と、難しい問題をクリアするために、文節で区切ることが、必要でした。今後、本来の日本語の意味を解釈して実行できるようなプログラム言語も開発されると思いますが、現段階では、プログラムの実行速度が遅くなって、実用的でないので、このような形に落ち着いています。
以下のプログラムの通貨形式に変換が、上手くいきません。
’誤りのあるプログラム
計算結果 = 5000 + 2000。
計算結果を、通貨形式に変換。
「計算結果は{計算結果}です」と、表示。
これは、ひまわり独特のクセによるものです。ひまわりは、命令を実行すると、特殊変数の「それ」に答えを返すという特徴があります。よって、上のプログラムを正しく書き直すと、以下のように書かなければなりません。
BASICや、他の言語を知っている人には、そんなのおかしいと思うかもしれませんが、ひまわりでは、この方が一般的です。ですが、どうしても嫌だと思ったら、普通のプログラム言語のように、以下のように書くことも出来ます。どの書き方が良くて、どの書き方が悪いというのは、ありませんので、読みやすい書き方で書いてください。
’正しいプログラム
計算結果 = 5000 + 2000。
計算結果を、通貨形式に変換。
「計算結果は{それ}です」と、表示。’←変更箇所それについての解説は、「それ」について学ぶを参照してください。
’BASICや、C言語風なプログラム
計算結果 = 通貨形式に変換(5000 + 2000)。
「計算結果は{計算結果}です」と、表示。'←変更箇所
「」と、『』は、違うものなのなの?また、以下のプログラムで、変数Aの内容が表示されません。
’正しくないプログラム
変数A=777
『答えは、{変数A}』と、言う。
「」と、『』は、違うものです。「」の中では、変数名を{}で括ると、その内容を展開しますが、『』の中では、{}を、展開しません。マニュアルの、文字列展開の規則を見てください。→文字列について
配列変数に値を追加したいのだけど、どうやったらいいの?
ひまわりの配列は、CSV形式、つまり文字列で管理されています。そのため、配列変数の最後に値を追加した場合は、以下のように書くと最後へ値を追加できます。
また、要素数を調べ、その番号に書き込む方法もあります。
配列A#0=「0行目」
配列A#1=「1行目」
配列A#2=「2行目」
配列A=配列A&「3行目\n」
配列Aと、言う。
配列A#0=「0行目」
配列A#1=「1行目」
配列A#2=「2行目」
CNT=要素数(配列A)。
配列A#CNT=「追加した行」
配列Aを、表示。
配列変数へ、『配列変数#0=「 test」』のように書いても、先頭の半角空白文字がトリムされてしまう。どうして?対処方法は?
ひまわりの配列は、CSV形式なので、配列から値を得る時には、余分なスペースは、トリムしてしまうという機能があります。考えようによっては、お節介な機能ですが、便利な場合が多いので、こういう仕様になっています。
全角文字の空白を使うか、適当な、"_"のような記号にしておいて、出力時に、置換する方法もあります。
裏技としては、配列を使わないで、擬似配列変数を使う方法もあります。
擬似配列番号=3
変数の値=「 test」
「変数名{擬似配列番号}={値}。」を、ひまわりする。
夜中に大量のファイル変換の自動処理をさせているのだが、時々、プログラムのエラーが発生する。なんとか、エラーをスキップさせる方法はないか。
ひまわりには、エラー処理機構がついていますので、それを利用するか、プログラムの開始時に『エラーを無視』と書いておけば、エラーを無視して実行を継続します。