文字列機能
「文字列」の基本機能は「文字列の操作.clk」をご覧ください。概略がお分かりになると思います。
「文字列」はカルキングにとって重要なプログラム要素です。いろいろなプログラミング言語にも文字列が存在しま
す。カルキングも基本的考え方は同じですが、表記法、内容、操作方法で異なる点があります。
単純な数値計算では文字列型を導入する必要はありません。しかし応用を考えますと文字列型の導入が大変便
利であることに気付かれるでしょう。
week1=sunday
代入定義
week2=monday
代入定義
このweek1、week2への代入はエラーになります。しかし文字列を使えば
代入定義
代入定義
この二つの代入は正しく実行できます。計算すると以下のようになります。
計算
計算
このような機能は、表に計算式を使って文字をセットしたり、ある種のシステム関数のパラメータのセットや
システム関数の計算結果を文字列で返したりするときに利用されます。条件式での比較等にもしばしば
利用されます。
(1)表記法
キーボードから任意に画面上に作成した任意の長さを選択して文字列にできます
!"#$%&'()^\{}+*<>_?
代入定義
計算
拡張添字を用いた計算
制御記号に関してはUnicodeの一部に可視の記号が含まれています。これを文字列として扱えます。
(2)カルキングには文字列はありますが、c言語のような一文字の「文字」はありません。
'A'
(3)空文字列
文字列を要素とする配列を作ったり、文字列の指定個所を削除するのに使います。
代入定義
代入定義
計算
(4)文字列の連結
+記号を使って文字列を連結できます。
代入定義
代入定義
代入定義
計算
&記号を使っても文字列を連結できます。
代入定義
計算
(5)文字列の構成要素
文字列の構成要素として数式が使えます。この点が多くのプログラミング言語の文字列型とまったく異なる点
です。
代入定義
s3のそれぞれの要素を求めてみます。
最後の7番目に関しては少し奇異に感じられるかもしれません。
カルキングでは文字列の一部を削除できますが、左の可変括弧と隣の分数を削除できません。
これは可変括弧が左右で対になっているからです。
このように文字列の一部を添字で参照できます。上記のs3の文字列の更に詳細は、
組み込み関数decompose_stringを使って分解して、参照することになります。
decompose_string関数のパラメータとして書けるのは、文字列配列の添字として切り出される式に
限ります。
(6)文字列の計算結果の表示法
上記文字列の計算は単に計算の意味の確認のために行いました。実際の使用場面で文字列を使ってみま
す。
はじめに売り上げ表を作成します。縦は月ごとの売上、表は製品とします。
一行目に1月、2月、3月と直接書き込まずに、計算式を使って書き込んでみましょう。
試み1
代入定義
これを実行するとエラーメッセージが出ます。
これを正しくするには
試み2
1月を文字列にします。次に代入定義します。
ここで”記号は好ましくありません。次が"記号を除く操作です。
試み3
右辺の1月の文字列を絶対値記号で囲みます。
絶対値記号をつけると、文字列の表示の際、”記号を表示しません。
これで意図どおりの設定ができました。
代入定義
上記の表に各月を計算式でセットしてみます。文字列変換記号の使い方も同時に示します。
方法1
このスクリプトのいずれかの文字をマウスクリックして、ファンクションキ
ーのF7で実行すると、1月から12月の文字がセットされます。
(7)プログラム実行中のメッセージの出し方
画面中の指定した場所への文字列の出し方
(a)print関数の活用
メッセージを文字列変数に代入する。
【代入定義】
表示位置の指定
【代入定義】
この 2270 はこのページの境界線の座標値で、マウスを境界線に移動したとき
に表示されます。1090はマウスの目標の座標表示値です。これらはPCの環境
で変わります。
【代入定義】
(b)表に書き込む。
表の罫線に関しては点線等だけでなく、罫線の色を白色にすれば見かけ上は消えます。
1行1列の表にしてプログラムからその表に書き込みます。
少し技巧的ですがかなり汎用的に利用できます。
(c)message_dialog関数の利用
【代入定義】
【代入定義】
message_dialog関数の実行によってダイアログ画面が表示されます。
message_dialog関数は関数グラフ作成時には実行されません。
(8)文字列を処理するライブラリ関数
関数名  get_frame_string(x)
引数    x:フレームID
フレームID で指定した式や文をカルキングの文字列として取り出します。
この数式のフレームIDは 157 (プロパティに表示されている)
【代入定義】
計算して結果を確認
【計算】
関数名   decompose_string(x)
引数       x:文字列
引数で指定した数式(文字列)をより基本の数式に分解します。 文字列として見たとき1単位の文字列です。
5は平方根を表します
【計算】
【計算】
35は行列を表します。