# BMI指数判定


文字サイズ=13
母艦について
  W=300
  H=400
  母艦を中央移動
  タイトル=「BMI判定」

Label1とはラベル
Label1について
  W=79
  H=40
  X=7
  Y=25
  テキスト=「身長=」
  
身長とはエディタ
身長について
  W=71
  H=27
  X=63
  Y=21
  キー離した時は
     結果表示

Label2とはラベル
Label2について
  W=79
  H=40
  X=7
  Y=55
  テキスト=「体重=」
  
体重とはエディタ
体重について
  W=71
  H=27
  X=63
  Y=55
  キー離した時は
     結果表示

Label3とはラベル
Label3について
  W=79
  H=40
  X=150
  Y=25
  テキスト=「Cm (センチ)」
  
Label4とはラベル
Label4について
  W=79
  H=40
  X=150
  Y=55
  テキスト=「Kg (キロ)」

Label5とはラベル
Label5について
  W=266
  H=206
  X=12
  Y=118
  Label5=空

● 結果表示
   BMI=((体重)/((身長/100)^2))の整数部分
   Label5=「あなたのBMI指数は{BMI}です。」


              母艦のようす。




      ラベルは文字を表示するために用いる







       エディタを追加。
    エディタは、入力ボックスの役割をする。




完成図



















結果が表示される


プログラムの仕組み

● 結果表示
   BMI=((体重)/((身長/100)^2))の整数部分
   Label5=「あなたのBMI指数は{BMI}です。」   

この部分は、プログラムを起動させただけでは、実行されない部分。
身長や体重がなにも記入されていないのに
BMI指数を計算させても意味がないからだ。
さらに、身長や体重の値が書き換えられた場合には
再計算させる必要がある。
では、どういう場合に実行されるのかというと・・
  
キー離した時は
     結果表示
のように、指定されている条件下でのみ実行される。
Label5という名称のラベルの部品は、初期状態ではテキストが空だが、
結果表示の実行された場合、そのテキストは

あなたのBMI指数は{BMI}で す。  となる。


なでしこの文法ではインデント(字下げ)が重要な意味を持っている。

プログラムが起動すると、 インデントされていない行だけが高速に実行され、インデントされている
行は、一旦無視される。
その後、インデントされている行が、その条件に応じてのみ、実行される仕組みになっている。



さて、なでしこでは、括弧の使い方が大変重要なので、注意しておく必要がある。

なでしこでは、特に以下に示す3種類の括弧について使い方を覚えておかないと、とんでもないことになってしまう。


1   2重カギ括弧の場合

『    』 --- これで囲まれている中身は全部文字として扱われ、100%絶対に変数として扱われない。
          この中に変数を書き入れたとしても、それは、変数として扱われず、単純に文字として扱われてしまう。

    例    『****30+{X}@(^^);』
          
          ****30 +{X}@(^^);    

2   カギ括弧の場合 及び、 
カギ括弧の中に中括弧がある場合

    例    「今日は{今日}です」 を表示

          今日は2009/01/20です

            
2   カギ括弧の場合


     例    「今日は今日です」 を表示

          
今日は今日です           
          


「    」 --- これで囲まれている中身は文字として扱われるが、「  {  }   」 、中括弧の中だけは
          「   」で囲まれていることの影響を逃れて、変数が変数として処理される。


ちなみに、 
 {  }   をカギ括弧の中に入れないで使用されることは禁止されており、エラーが出る。
中括弧は必ずカギ括弧の内部で使用すること。 これは、なでしこの掟である。






普通、 「   」 で囲まれている部分は、 文字列として扱われるのだが、

たとえ、
「   」 で囲まれていても、

{BMI}  のように、 {  } で 囲まれた中に変数が書き込まれている場合は

変数が、 変数としての役割を発揮する。

ためしに、
Label5=「あなたの BMI指数は{BMI}です。」  ではなく、
Label5=「あなたのBMI指数はBMIです。」 とした場合は
「   」の文字列通りに結果が表示されてしまう。






以下  実験1 実験2  実験3 を 比較しよう




実験1

「文字列です」を言う



実験2

「Xです」を言う



実験1 と 実験2 は まったく同じ結果だ。
「」 で囲まれた部分が、文字列として扱われている。


実験3

X=50
「僕の年齢は{X}です。」


実験3 は、 「  文字列 { 変数 } 文字列 」 のように、 文字列と変数が同居している場合に
変数の部分は、変数の中身を取り出して表示させる方法を示す。


最後に、

もし、変数だけを表示させたい場合は、以下のようにする。


X=50
Xを言う







話が変わるが
念のため、もうひとつだけ、最後に説明しておきたいことがある。


Label5とはラベル
Label5について
  W=266
  H=206
  X=12
  Y=118
  Label5=空


このような書式について、ご存知ない方がおられるかも知れませんが

Label5とはラベル
そのW=266
そのH=206
そのX=12
そのY=118
そのテキスト=空

とまったく同じです。

Label5とはラベル
Label5のW=266
Label5のH=206
Label5のX=12
Label5のY=118
Label5のテキスト=空

と書いてもよろしい。
















inserted by FC2 system