こんにちは。今回もAutomateの機能を紹介していきたいと思います。前回の記事は以下です。
入力と出力
前回はHello, world!を出力しました。今回は,入力に対する処理をやってみます。
入力文字列を返す
↓まずは「INTERFACE」タブから「Dialog Input?」を選択します。
↓こんな感じで設定します。TITLEは任意,INPUT TYPEは今回はTextにします。TIMEOUTは別に設定しなくてもいいのですが今回は入れてみましょう。10秒に設定したので,入力ダイアログ表示から10秒以内に入力が完了しないと,上画像の「Input dialog」ブロックの「NO」の方に分岐してFlowが終了します。
前回同様,SHOW WINDOWにチェックを入れます。
OUTPUT VARIABLES(出力変数)は,このブロックでは入力されたテキストになります。ここでは"text"にしていますが,変数名なので好きなものでいいです。日本語も使えましたw
後々,この変数を使って出力ダイアログにメッセージを表示します。
↓前回も使った「INTERFACE」内「Dialog message」ブロックを設定します。前回と大きく違うのは,引数MESSAGEです。入力欄の右のfxを押すと,「MESSAGE = 」の形式になります。ここにさっき作った変数"text"を入れます。
ちなみに,TITLEに文字を入れた状態でfxを押して切り替えると,「TITLE = "入力されたのは"」という感じになっています。これはこれで引数TITLEに文字列を与える方法です。
TIMEOUTは適当に5秒にします。SHOW WINDOWは必要です。
↓最後に,3つのブロックをつないで完成です。
↓それでは,やってみましょう。Startを押すと入力ボックスが出てきます。「こんにちは」と入力してキーボートのエンターなり,ボックスの「OK」を押すと,変数”text”にテキスト「こんにちは」が格納されます。
↓で,次のブロックに移行して,メッセージの出力が行われます。
以上です。簡単!!!
足し算をする
今回はもう一つ,足し算をやってみましょう。
シミュレートするのはこんなプログラム
#include <stdio.h>
int main(void){
int a, b, c;
printf("a = ");
scanf("%d", &a);
printf("b = ");
scanf("%d", &b);
c = a + b;
printf("answer\n");
printf("a + b = %d", c);
return 0;
}
では,やっていきましょう。
↓まず,「INTERFACE - Dialog input?」を設定します。ポイントは,引数INPUT TYPEをNumber(整数型)にすることです。出力は"a"にしておきます。
↓もう一つ,"b"を作りますが,ここで小技発動です。といってもただのコピペです。ブロックが並ぶ画面に戻ってブロックを長押しします。で,上のコピーマーク(右から2つ目の書類が重なったマーク)を押してコピーします。
↓空いてるところを長押ししてペーストします。ペーストされたブロックをタッチして編集して,a を b に書き換えておきましょう。
↓さて,ここで答えを格納する変数cを用意します。「GENERAL」内に「Variable set」ブロックがありますので,選択して以下のように設定します。わかりやすいですね。
↓で,最後に出力ダイアログです。TITLEは適当に。肝心なのは引数MESSAGEです。fxを押して以下のように書きます。
"a + b = "は,(""で囲っているため)単なるテキストです。++は左右のオペランドを結合してテキストにする演算子です。右の変数 c には,先ほど「c = a + b」として足し算の結果を代入しているので,その値がくっつきます。
↓全部繋げたら完成です。
↓動作を確認してみましょう。Flowを開始して,「a =」のダイアログが出てくるので7を入れてみました。INPUT TYPEをNumberにしているので,キーボードが自動的に数字しか入れられないようになるかもしれません。
↓次に「b =」のダイアログが出てくるので9を入れてみました。
↓「answer」のダイアログが出てきます。ちゃんと計算できていますね。「a + b = 」の部分はテキストなので数字は入りませんよ。
今回は入力の受付と,演算子を使えることを簡単に紹介しました。それぞれのブロックの細かい解説や変数型,演算子の解説も後々紹介したいと思います。おわり。