StrCmp( - コマンドリファレンス

Casio Basicプログラミング - コマンドリファレンス
<コマンドリファレンス・トップ>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

2018/01/16

[純正 / C.Basic] [FX / CG]


StrCmp(




文字列を比較して、一致するかどうかを判定する。

(書式) StrCmp("<文字列1>","<文字列2>")
"<文字列1>" と "<文字列2>" が一致すれば 0 を返し、一致しない時は -1 か 1 を返す。

文字列を比較する際、文字列の先頭から文字コードを比較し、文字コードが異なる最初の文字が見つかった時、文字列1の方が大きければ 1 を返し、小さければ -1 を返す。その後の文字コードの比較は行わない。

(キープレス) [SHIFT]-[VARS](PRGM) [F6](▷) [F6](▷) [F1](STR) [F3](Cmp)

(例)
 StrCmp("ABC123","ABc456" )
※ 2つの文字列が一致せず、-1 を返す。頭から文字コードを比較して最初に一致しないのが C と c で、左側にある C の文字コードが c よりも小さいので -1 を返す。C / c の後の 123 と 456 を比較すれば 右側が大きくなるが、ここは比較していない。

(例)
  If StrCmp(Str 1,"OK"):Then
  Locate 1,1,"OK"
  Else
  Locate 1,1,"NG"
  IfEnd
Str 1 が "OK" ならば OK と表示、そうでなければ NG と表示する。




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 



keywords: プログラム関数電卓、Casio Basic、C.Basic、プログラミング

リンク集 | ブログ内マップ





関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

Casio Basic プログラミング

Casio Basic プログラミング

随時追記・修正します
初版: 2018/01/07
追記・修正: 2018/01/16


Casio Basicプログラミング - 目次 -


プログラミングの楽しさは、自分で書いたコードが動作するのを目の当たりにする時だと思う。確実に動作するコードがあれば、それを利用して楽にプログラムが書けて楽しい。そこで、これまで "逆引き Casio Basic" で掲載してきたものを含め、より基礎的なものを追加して、"Casio Basicプログラミング" としてまとめてゆくことにする。

Casio Basicプログラミングは、"基礎編"、"実用編"、"コマンドリファレンス編" の3部構成にする。

純正Casio Basic については、fx-5800P、fx-9860Gシリーズ、fx-CGシリーズが対象。
C.Basic (アドイン版Casio Basic) については、C.Basic for FX の対象が fx-9860Gシリーズ、C.Basic for CG の対象が fx-CGシリーズとなる。

なお、C.Basic について簡単に説明すると、これは純正Casio Basic の互換動作を目指した上で、純正コマンドの機能を拡張したり新たなコマンドが用意されていて、100%純正コマンドだけで書いたコードでも驚くほど速く実行でき、さらに拡張コマンドや独自コマンドを使えば純正Casio Basicでは実現できないプログラムを書ける。グラフィックスコマンドについては極めて高速動作するプログラムが書ける(純正Casio Basicとの対比)。

但し、C.Basic は純正Casio Basicの全てのコマンドに 100%対応してはおらず、特にグラフ機能コマンド (電卓に備わっている各種グラフ描画機能をマクロ的に利用するコマンド) は僅かに対応するに留まる。これらマクロ的なコマンド以外のグラフィックスコマンドを利用するプログラミングは、現行の C.Basic で十分に楽しめると思う。

具体的に対応する機種は、新世代 Casio Basic を搭載した下記のものだ。互いに移植性は比較的高い。
<新世代Casio Basic搭載機>
  - fx-5800P
  - fx-9860G (OS Ver 2 以降)
  - fx-9860GII
  - fx-CG10
  - fx-CG20
  - fx-FD10 Pro
  - fx-CG50

対応機種については、fx-5800P は "5800P"、fx-9860Gシリーズは "FX"、fx-CGシリーズは "CG" と表記する。 

Casio Basicプログラミング - 目次 -

コマンドリファレンス編

 [純正 / C.Basic] コマンドリファレンス・トップ


基礎編

文字列処理

 [C.Basic] DATEから年月日を取り出す [FX / CG]
  ※DATEコマンドで表示される年月日情報から年だけまたは月だけを取り出したい


実用編

ファイル入出力

 [C.Basic] BMPファイルのロード [FX / CG]
  ※ビットマップファイルをロードして描画したい


入力処理
      
 
[純正 & C.Basic] キーリピート抑制 [5800P / FX / CG]
  ※キーリピートを抑制する 

 [純正 & C.Basic] 矢印キーの判別 [5800P / FX / CG]
  ※4つの矢印キーのうち、どれが押されたかを判別する 

 [純正 & C.Basic] 矢印キーで項目選択(1) [5800P / FX / CG]
  ※矢印キーを使って項目を選択する(1) 

 [純正 & C.Basic] 矢印キーで項目選択(2) [5800P / FX / CG]
  ※矢印キーを使って項目を選択する(2) 

 [純正 & C.Basic] キー押下でプログラムをコントロールしたい [5800P / FX / CG]
  ※プログラムの一旦停止や実行をキー押下でコントロールしたい

 [純正 & C.Basic] テンキーでメニュー選択させたい [5800P / FX / CG]
  ※テンキーでメニュー選択させるプログラムを作りたい

 [純正 & C.Basic] キー長押しでメニュー選択させたい [5800P / FX / CG]
  ※メニュー選択機能で、同じキーの長押しにより2つ目の選択肢を与えたい


出力処理

 [純正 & C.Basic]  命令を Basic コマンドに置き換えたい [5800P / FX / CG]  
   命令 を Basic コマンドに置き換えて、fx-5800 と fx-9860GII 互換のコードを書く


計 算

 [純正] fx-5800P で Mod を使いたい [5800P]
  ※fx-9860GII (グラフ関数電卓)の 除算の余りが得られる Mod 関数を fx-5800P で実現する

 [純正 & C.Basic] 整数の桁数を求めたい [5800P / FX / CG]
  ※Locate コマンドを用いて、正しい場所に数値を表示するために 「整数の桁数」 を求める


処理速度

 [純正] プログラムを速くしたい [5800P]
  ※Casio Basic特有の内部処理に基づいて、プログラムを速くする対策を行う




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 



keywords: CasioBasicプログラミング入門プログラム関数電卓

リンク集 | ブログ内マップ
関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

Pol( / Rec( - コマンドリファレンス

Casio Basicプログラミング - コマンドリファレンス
<コマンドリファレンス・トップ>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

2018/01/16

[純正 / C.Basic] [FX / CG]


Pol( / Rec(




極座標と直交座標の間で座標変換する。

(書式) Pol(x座標値,y座標値)
(x座標値, y座標値) を極座標に変換した結果を List Ans [動径, 偏角] に格納する。実行時の角度単位設定 Deg, Rad, Gra が反映される。変換結果の偏角(θ)は -180°<θ≦180° (Deg設定時)の範囲、Rad、Gra 設定時は相当する角度範囲になる。

(キープレス) [OPTN] [F6](▷) [F5](ANGLE) [F6](▷) [F1](Pol()

(例)
 Pol(14,20.7)
※ 直交座標 (14, 20.7) を極座標に変換する。

(例)
  Deg
  14→X
  20.7→Y
  Pol(X,Y)
  List Ans[1]→r
  List Ans[2]→θ
  Locate 1,1,"Pol(X,Y)"
  Locate 1,2,"r="
  Locate 3,2,r
  Locate 1,3,"θ="
  Locate 3,3,θ
※ 変換結果 r=24.98979792、θ=55.92839019 が得られる。



(書式) Rec(動径,偏角)
(動径, 偏角) を直交座標に変換した結果を List Ans [x座標値, y座標値] に格納する。実行時の角度単位設定 Deg, Rad, Gra が反映される。

(キープレス) [OPTN] [F6](▷) [F5](ANGLE) [F6](▷) [F2](Rec()

(例)
 Rec(25,56)
※ 極座標 (25, 56) を直交座標に変換する。

(例)
  Deg
  25→r
  56→θ
  Rec(r,θ)
  List Ans[1]→X
  List Ans[2]→Y
  Locate 1,1,"Rec(r,θ)"
  Locate 1,2,"X="
  Locate 3,2,X
  Locate 1,3,"Y="
  Locate 3,3,Y
※ 変換結果 X=13.97982259、Y=20.72593931 が得られる。





応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 



keywords: プログラム関数電卓、Casio Basic、C.Basic、プログラミング

リンク集 | ブログ内マップ





関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

文字列変数 Str - コマンドリファレンス

Casio Basicプログラミング - コマンドリファレンス
<コマンドリファレンス・トップ>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

2018/01/15

[純正 / C.Basic] [FX / CG]


文字列変数 Str




文字列変数は、Str 1 ~ Str 20 が使える。

(書式) Str n
n は1 ~ 20。

(キープレス) [VARS] [F6](▷) [F5](Str)

(例) "ABcd"→Str 1
※ 文字列 ABcd を 文字列変数 Str 1 に格納する。

(例) Str 1→Str 2
※ 文字列変数 Str 1 を Str 2 に代入する。

(例)
  "Hello World"→Str 1
  Locate 3,4,Str 1
※ テキスト座標(3, 4)に Hello World と表示する。



[C.Basic]

C.Basic では 純正Casio Basicと同様に文字列変数や文字列コマンドが使えるが、文字列の実体は行列として実装している。プレフィックス$を使えば、行列が文字列として認識される。

Str 1Str 20 は、デフォルトでは自動的にバイト型行列 Mat r ([ALPHA][x2](r)r) として確保される。全要素は 0 で初期化される。具体的にはデフォルトで {20,256}→Dim Mat r.B と自動的にバイト型行列r が初期化される。文字列の最大の文字数は255文字で、256バイト目の 0 は文字列終端として確保する必要がある。

なお、以下の純正Casio Basicの文字列コマンドを使う限り、行列を意識する必要はない。
+ (文字列の結合)
StrJoin(
StrLen(
StrCmp(
StrSrc(
StrLeft(
StrRight(
StrMid(
Exp▸Str(
Exp(
StrUpr(
StrLwr(
StrInv(
StrShift(
StrRotate(

Str変数の実体となる行列は、デフォルトの Mat r 以外の任意の行列変数を指定可能で、Str変数を使う前に指定する。
(例) '#Str A
{20,256}→Mat A.B と同じ。Str A が使えるようになる。

(例)
 ["ABC","def","1+2x3"]→Mat A.B
※ バイト型行列 MatA[3,6]を自動的に確保し、それぞれの要素に文字 (1バイト)を配置する。
 Mat A = A B C 0 0 0
      d e  f  0 0 0
      1 + 2 x 3 0
Mat A から文字列 "ABC" を利用するには、$Mat A$Mat A[1]$Mat A[1,1] とする、
 Locate 1,1,$Mat A
 Locate 1,2,$Mat A[1]
 Locate 1,3,$Mat A[1,1]
※ Mat A から文字列 "def" を利用するには、$Mat A[2]、$Mat A[2,1] とする。
 Locate 1,4,$Mat A[2]
 Locate 1,5,$Mat A[2,1]
※ Mat A から文字列 "1+2x3" を利用するには、$Mat A[3]、$Mat A[3,1] とする。
 Locate 1,6,$Mat A[3]
 Locate 1,7,$Mat A[3,1]
※ Mat A から文字列 "2x3" を取り出すには、$Mat A[3,3] とする。
 Locate 1,1,$Mat A[3,3]
     指定した行列要素からその行の末尾の終端までが文字列として利用できる。

Str変数を20個以上使えるように拡張できる。デフォルトのまま行列r ([ALPHA][x2](r)r)を拡張してより多くの文字列が使えるようになる。
(例)
  ClrMat r
  '#Str r,120
※ デフォルトの行列r を拡張して文字列を120個使えるように拡張し、Str 1 ~ Str 120 まで使える。

Str変数がインデックスで使える。
(例)
  "1"→Str 1
  "2"→Str 2
  "3"→Str 3
  "4"→Str 4
  "5"→Str 5
  "6"→Str 6

  "7"→Str 7
  For 1→C To 7

   Locate 1,C,Str C
  Next
※ 左端に上から下まで、1~7が順に表示される。




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 



keywords: プログラム関数電卓、Casio Basic、C.Basic、プログラミング

リンク集 | ブログ内マップ





関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

DATE から 年月日を取り出す - Casio Basicプログラミング

Casio Basicプログラミング
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

2018/01/07

[C.Basic] [FX / CG]

DATEコマンドで表示される情報から年だけまたは月だけの数理を取り出したい。



DATEコマンドの出力は文字列なので、そこから StrRight や Str Mid を使って、年や月に関する文字列を部分的に取り出せば良い。

例えば、年月日のそれぞれを取り出すには、以下のようにする;

・年: StrLeft(DATE,4)
・月: StrMid(DATE,6,2)
・日: StrMid(DATE,9,2)
・曜日: StrRight(DATE,3)

時間も TIMEから同様に取り出せる。


応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: プログラム関数電卓、Casio Basic、C.Basic、プログラミング

リンク集 | ブログ内マップ




関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

2018 Happy New Year

2018年元旦
SmilingDog

明けましておめでとうございます
本年もよろしくお願い致します
平成30年元旦


本年は高精細カラー液晶 fx-CGシリーズでのプログラム作りを楽めそうです。
なによりも嬉しいのは、新しい仲間と一緒に楽しみを共有できることです。

皆で見つけた情報を分かり易く公開し、
より広く共有できるようにしたいと思います。

e-Gadget 管理人
やす (Krtyski)


関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

最新記事
検索フォーム
最新コメント
カテゴリ
C# (3)
Visitors
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム電卓は、プログラムを作って、使ってナンボ!

実際に触って気づいたこと、自作プログラム、電卓プログラミングについて書いています。

なお管理人はカシオ計算機の関係者ではなく、Casio Basicが面白いと感じる1ユーザーです。


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR