レファレンス

AI2連想配列

前書き

マップ、連想配列、リストなど、他の言語で呼ばれる辞書は、キーと呼ばれることが多い値を別の値に関連付けるデータ構造です。 辞書を表示する一般的な方法は、たとえばJavaScript Object Notation(JSON)を使用することです。

{ 
   "id" :    1 , 
   "name" :    "Tim the Beaver" , 
   "school" :   { 
     "name" :   "Massachusetts Institute of Technology" 
   }, 
   "enrolled" :   true , 
   "classes" :   [ "6.001" ,   "18.01" ,   "8.01" ] 
 } 

上記の例は、JSONではキー( :前に引用されたテキスト)がさまざまなタイプの値にマップできることを示しています。 許可されるタイプは、数値、テキスト、他の辞書、ブール値、およびリストです。 ブロック言語では、次のようにしてこの辞書を作成できます。

上記の辞書のブロック表現

図1 :上記のJSONコードスニペットのブロック表現。

空の辞書を作成する

create empty dictionarycreate empty dictionaryブロックは、キーと値のペアなしで辞書を作成します。 set value for keyブロックのset value for key使用して、エントリを空の辞書に追加できます。 create empty dictionaryブロックのcreate empty dictionaryは、青色のミューテーターボタンを使用してpairエントリを追加するmake a dictionaryブロックのcreate empty dictionary変えることもできます。

辞書を作る

make a dictionary作成は、事前に既知のpairのセットで辞書を作成するために使用されます。 set value for key使用して、追加のエントリを追加できset value for key 。

ペア

pairブロックは、辞書の作成に使用される特別な目的のブロックです。

キーの値を取得

get value for keyブロックのget value for key 、指定されたキーに対応する値が辞書に含まれているかどうかを確認します。 存在する場合、値が返されます。 それ以外の場合、 not foundパラメーターの値が返さnot foundます。 この動作はlookup in pairsブロックのlookup in pairsの動作に似ています。

キーの設定値

set value for keyブロックの設定値は、 dictionary指定されたkeyに対応する値をvalueに設定しvalue 。 keyのマッピングが存在しない場合、新しいマッピングが作成されます。 それ以外の場合、既存の値は新しい値に置き換えられます。

キーのエントリを削除します

delete entry for keyブロックのdelete entry for keyと、指定されたキーの辞書にあるキーと値のマッピングが削除されます。 キーのエントリがディクショナリに存在しない場合、ディクショナリは変更されません。

キーパスで値を取得

get value at key pathブロックのget value for keyブロックのget value for keyより高度なバージョンです。 特定のキーの値を取得するのではなく、データ構造内のパスを表す有効なキーと数値のリストを代わりに受け取ります。 get value for keyブロックのget value for keyを含む長さ1のキーパスでこのブロックを使用することと同等です。 たとえば、次の2つのブロックは"Tim the Beaver"返します。

複雑なデータ構造に深くネストされた値を取得するために提供されたpathを使用して、最初の辞書から開始してデータ構造をウォークします。 WebサービスからのJSONデータの処理に最適です。 最初の入力から開始して、キーパスの最初の要素を取得し、その時点でキー(入力が辞書の場合)またはインデックス(入力がリストの場合)が存在するかどうかを確認します。 その場合、そのアイテムを入力として選択し、キーパスの次の要素のチェックに進みkey path全体をたどるまで続行し、その時点でその場所にあるもの、または"not found"パラメーターを返します。 。

{ 
   "id" :    1 , 
   "name" :    "Tim the Beaver" , 
   "school" :   { 
     "name" :   "Massachusetts Institute of Technology" 
   }, 
   "enrolled" :   true , 
   "classes" :   [ "6.001" ,   "18.01" ,   "8.01" ] 
 } 

たとえば、上記のJSONディクショナリが与えられた場合、キーパスでget value at key path次のように使用すると、 "Massachusetts Institute of Technology"という結果が得られます。

get value at key path<すると、辞書とリストが混在している場合に通過する要素のインデックスを表す数値をパスに含めることができます。 たとえば、Timが取っている2番目のクラスを知りたい場合、次のことができます。

"18.01"を返します。

キーパスの値を設定

set value for key pathブロックのset value for key pathは、データ構造内の特定のキーパスの値を更新します。 キーパスのget value for key pathのミラーであり、特定のキーパスで値を取得します。 パス 、マッピングが存在しない場合に新しい値へのマッピングを作成する最後のキーを除き、 有効である必要があります。 それ以外の場合、既存の値は新しい値に置き換えられます。

キーを取得

get keysget keysは、ディクショナリ内のキーのリストを返します。

値を取得

get valuesと、辞書の値を含むリストが返されます。 リスト内の値の内容を変更すると、辞書内の値も変更されます。

辞書のキーは何ですか?

is key in dictionary? キーが辞書に存在するかどうかをテストし、存在する場合はtrueを返し、そうでない場合はfalse返しfalse 。

辞書のサイズ

size of dictionaryブロックのsize of dictionary存在するキーと値のペアの数を返します。

辞書へのペアのリスト

list of pairs to dictionaryブロックへlist of pairs to dictionaryリストは、フォームの連想リスト((key1 value1) (key2 value2) ...)を、キーをその値にマッピングする辞書に変換します。 辞書は連想リストよりも優れたルックアップパフォーマンスを提供するため、データ構造で多くの操作を実行する場合、このブロックを使用して連想リストを辞書に変換することをお勧めします。

ペアのリストへの辞書

dictionary to list of pairsへの辞書は、辞書を連想リストに変換します。 このブロックlist of pairs to dictionarylist of pairs to dictionaryによって実行される変換list of pairs to dictionaryブロックに逆変換します。

辞書のペアのリストブロックが辞書のブロックのペアのリストを逆にする方法の例

コピー辞書

copy dictionaryは、指定された辞書のディープコピーを作成します。 つまり、すべての値が再帰的にコピーされ、コピーの値を変更しても元の値は変更されません。

辞書にマージする

merge into dictionary from dictionaryブロックmerge into dictionary from dictionarymerge into dictionary from dictionary別の辞書にキーと値のペアをコピーし、ターゲット辞書のキーを上書きします。

キーパスを歩いてリストする

list by walking key pathブロックのlist by walking key pathは、 get value at key pathget value at key pathと同様に機能get value at key pathが、単一の値を返すのではなく、値のリストを作成します。 これは、指定された辞書から開始し、指定されたパスに沿ってオブジェクトのツリーをたどることによって機能します。 ただし、 get value at key pathとは異なり、そのパスは、辞書キー、リストインデックス、 walk all at levelブロックでのwalk all at levelwalk all at levelの3つの主要なタイプで構成できます。 キーまたはインデックスが提供される場合、特定のパスがツリーのそのポイントで取得されます。 walk all at levelwalk all at levelが指定されている場合、そのポイントのすべての値が連続して(幅優先)、そのポイントでパスの次の要素からウォークが継続されます。 パス全体に一致するすべての要素が出力リストに追加されます。

次のJSONとブロックを検討してください。

{ 
   "people" :   [{ 
     "first_name" :   "Tim" , 
     "last_name" :   "Beaver" 
   },{ 
     "first_name" :   "John" , 
     "last_name" :   "Smith" , 
   },{ 
     "first_name" :   "Jane" , 
     "last_name" :   "Doe" 
   }] 
 } 

global dataにJSONで表されるディクショナリが含まれている場合、キーパスブロックのlist by walking key pathリストはリスト["Tim", "Beaver"]ます。 最初に、 "people"タグの値、つまり人々のリストが選択されます。 次に、リストの最初の要素が選択されます。 最後に、Walk All at Levelブロックは、そのポイントのオブジェクトの値、つまり値"Tim"および"Beaver"ます。

リストを含むwalk all at levelで、レベルwalk all at level使用することもできます。 たとえば、次のブロックは、構造内のすべての人々の名、つまり["Tim", "John", "Jane"]ます。

このブロックは、 Web.XMLTextDecodeAsDictionaryブロックを使用して解析されたXMLでも使用できます。 次のXMLドキュメントを検討してください。

<schedule> <day> <room name= "Hewlitt" /> <room name= "Bleil" /> </day> <day> <room name= "Kiva" /> <room name= "Star" /> </day> </schedule>

次のブロックを使用して、最初の日に部屋の名前のリストを取得できます(例["Hewlitt", "Bleil"] 。

すべてのレベルで歩く

walk all at levelブロックは、キーパスをwalk all at level list by walking key pathキーパスで使用できる特殊なブロックです。 散歩中に遭遇すると、そのレベルのすべてのアイテムが探索されます。 辞書の場合、これはすべての値が訪問されることを意味します。 リストの場合、リスト内の各アイテムが訪問されます。 これを使用して、JSONオブジェクトで表されるデータベース内のすべての人の名など、辞書内のアイテムのリストから情報を集約できます。 例については、 list by walking key pathブロックをlist by walking key pathlist by walking key path参照してください。

辞書ですか?

is a dictionary? ブロックテストは、与えられたものが辞書であるかどうかを確認します。 thingが辞書の場合はtrueを返し、それ以外の場合はfalseを返しtrue 。

レファレンス

AI2の手順

プロシージャは、名前、つまりプロシージャブロックの名前で格納されている一連のブロックまたはコードです。 同じ長い一連のブロックをまとめておく必要はなく、プロシージャを作成して、一連のブロックを実行したいときはいつでもそのプロシージャブロックを呼び出すだけで済みます。 コンピュータサイエンスでは、手続きは関数またはメソッドと呼ばれることもあります。

手続きブロック

手続きは

一連のブロックをまとめてグループにまとめます。 その後、プロシージャを呼び出すことによってブロックのシーケンスを繰り返し使用できます。 手続きに引数がある場合は、ブロックのミューテーターボタンを使用して引数を指定します。 青いプラス記号をクリックすると、追加の引数をプロシージャにドラッグできます。

新しい手順ブロックを作成すると、App Inventorは自動的に一意の名前を選択します。 名前とタイプをクリックして変更できます。 アプリ内のプロシージャ名は一意である必要があります。 App Inventorでは、同じアプリ内で同じ名前の2つの手順を定義することはできません。 ブロック内のラベルを変更することで、アプリの構築中にいつでもプロシージャの名前を変更できます。 App Inventorは、関連付けられたコールブロックの名前を自動的に変更します。

プロシージャを作成すると、App Inventorによって自動的にコールブロックが生成され、それが[My Definitions]ドロワに配置されます。 プロシージャを呼び出すには、コールブロックを使用します。

手続き結果

procedure do blockと同じですが、このプロシージャを呼び出すと結果が返されます。

このプロシージャを作成した後、プラグインする必要があるコールブロックが作成されます。 これは、このプロシージャの実行結果がその呼び出しブロックに返され、その値がプラグに接続されているブロックに渡されるためです。

レファレンス

AI2変数

可変ブロック

可変ブロックには、主に5つのタイプがあります。

グローバル名をに初期化する

このブロックは、グローバル変数を作成するために使用されます。 引数としてあらゆるタイプの値を取ります。 名前をクリックすると、このグローバル変数の名前が変わります。 グローバル変数はすべてのプロシージャまたはイベントで使用されるので、このブロックは独立しています。

グローバル変数は、アプリの実行中に変更することができ、プロシージャやイベントハンドラ内でもアプリの任意の部分から参照したり変更したりできます。 このブロックの名前はいつでも変更でき、古い名前を参照している関連ブロックは自動的に更新されます。

取得する

このブロックはあなたが作成したかもしれない変数を取得する方法を提供します。

に設定

このブロックはgetと同じ規則に従います 。 スコープ内の変数のみがドロップダウンで利用可能になります。 変数vが選択されると、ユーザーは新しいブロックを添付してvに新しい値を与えることができます。

ローカル名を – に初期化する(do)

このブロックは、ブロックのDO部分で実行した手順でのみ使用される新しい変数を作成できるようにするミューテーターです。 このようにして、このプロシージャのすべての変数は、プロシージャが実行されるたびにすべて同じ値で始まります。 注:このブロックは、DOブロックであるため、下記のブロックとは異なります。を添付することができます。 文物事を行います。 このため、このブロック内に文ブロックを添付するためのスペースがあります。

このブロック内の変数はいつでも名前を変更できます。古い名前を参照するプログラム内の他の場所にある対応するブロックは自動的に更新されます。

ローカル名を – inに初期化(return)

このブロックは、ブロックのRETURN部分で実行した手順でのみ使用される新しい変数を作成できるようにするミューテーターです。 このようにして、このプロシージャのすべての変数は、プロシージャが実行されるたびにすべて同じ値で始まります。 注:このブロックは、RETURNブロックであるため、上記のブロックとは異なります。 を付けることができます。 式は値を返します。 そのため、このブロックには式を差し込むためのソケットがあります。

このブロック内の変数はいつでも名前を変更できます。古い名前を参照するプログラム内の他の場所にある対応するブロックは自動的に更新されます。

レファレンス

AI2色

カラーブロックには、主に3つの種類があります。

基本カラーブロック

これは基本的なカラーブロックです。 それは小さな正方形の形をしており、このブロックの内部に保存されている色を表す色が中央にあります。

真ん中の色をクリックすると、選択可能な70色の表がポップアップで表示されます。 新しい色をクリックすると、基本カラーブロックの現在の色が変わります。

ColorsパネルからBlocks Editor画面にドラッグした基本カラーブロックは、クリックすると同じ色のテーブルが表示されます。

色を作る


make colorは3つまたは4つの数のリストを取ります。 このリストのこれらの番号は、RGBコードの値を表します。 インターネット上で色を作るためにRGBコードが使われています。 RGBカラーチャートはこちらです。 このリストの最初の番号はコードのR値を表します。 2番目はGを表し、3番目はBを表します。4番目の値はオプションで、アルファ値または色の彩度を表します。 既定のアルファ値は100です。さまざまな値を試して、このブロックを使用して色がどのように変化するかを確認します。

分割色


スプリットカラーはメイクカラーの反対をします 。 それは色を取ります:色ブロック、色を保持する変数、または色を表すコンポーネントの1つからのプロパティで、その色のRGBコードのRGB値のリストを返します。

App Inventorでは色はどのように機能しますか?

内部的には、App Inventorは各色を単一の番号として格納します。 make colorを使用して引数としてリストを取得すると、内部的にこのリストはApp Inventorの配色を使用して変換され、数値として格納されます。 色の番号がわかっている場合は、そのColorプロパティを特定の番号に設定するだけで、希望する色を指定することもできます。 数字と色のチャートを見たい場合は、 このページをチェックしてください 。

レファレンス

AI2リスト

リストブロック

リストを理解するための追加のヘルプが必要ですか Conceptsページのメーリングリストをチェックしください。

空のリストを作成する

要素なしで空のリストを作成します。

リストを作る

与えられたブロックからリストを作成します。 引数を指定しないと、空のリストが作成されます。これを後で要素に追加できます。 
このブロックはミューテーターです。 青いプラス記号をクリックすると、リストに項目を追加することができます。

リストにアイテムを追加する

与えられたアイテムをリストの最後に追加します。 
thisとappend to listの違いは、 list to appendは項目が単一のリストとして追加されるということです。 
リストにアイテムを追加する間、個々の引数としてアイテムを取ります。 このブロックはミューテーターです。

リストにありますか?

thingがリストの要素の1つであれば、trueを返します。 それ以外の場合はfalseを返します。 リストにサブリストが含まれる場合、 
サブリストのメンバーはそれ自体がリストのメンバーではありません。 たとえば、リスト(1 2(3 4))のメンバーは1、2、リスト(3 4)です。 3と4はそれ自体リストのメンバーではありません。

リストの長さ

リスト内の項目数を返します

リストは空ですか?

リストにアイテムがない場合はtrueを返します。 それ以外の場合はfalseを返します。

ランダムなアイテムを選ぶ

リストからアイテムをランダムに選びます。

リストのインデックス

リスト内のものの位置を返します。 リストにない場合は、0を返します。 

リスト項目を選択

指定されたリストの指定されたインデックスにある項目を選択します。 最初のリスト項目は索引1にあります。

リスト項目を挿入

指定された位置にリストの項目を挿入します

リスト項目を置き換える

指定されたリストの位置インデックスに置換を挿入します。 その位置の前の項目は削除されます。

リスト項目を削除

指定された位置にあるアイテムを削除します。

リストに追加

2番目のリストの項目を最初のリストの末尾に追加します。

コピーリスト

すべてのサブリストをコピーすることも含めて、リストのコピーを作成します。

リストは何ですか?

ものがリストの場合はtrueを返します。 それ以外の場合はfalseを返します。

csv行へのリスト

リストをテーブルの行として解釈し、その行を表すCSV(コンマ区切り値)テキストを返します。 
行リストの各項目はフィールドと見なされ、結果のCSVテキストでは二重引用符で囲まれます。 項目はコンマで区切ります。 
たとえば、リスト(abcd)をCSV行に変換すると、( “a”、 “b”、 “c”、 “d”)が生成されます。 
返された行テキストの最後には行区切り文字はありません。

csv行からのリスト

テキストをCSV(カンマ区切り値)形式の行として解析して、フィールドのリストを生成します。 
たとえば、( “a”、 “b”、 “c”、 “d”)をリストに変換すると、(abcd)が生成されます。

csvテーブルへのリスト

リストを行優先形式の表として解釈し、その表を表すCSV(コンマ区切り値)テキストを返します。 
リスト内の各項目は、それ自体がCSVテーブルの行を表すリストになります。 
行リストの各項目はフィールドと見なされ、結果のCSVテキストでは二重引用符で囲まれます。 
返されるテキストでは、行の項目はカンマで区切られ、行はCRLF(\ r \ n)で区切られています。

csvテーブルからのリスト

テキストをCSV(コンマ区切り値)形式の表として解析して、それぞれがフィールドのリストである行のリストを作成します。 
行は改行(\ n)またはCRLF(\ r \ n)で区切ることができます。

ペアで検索

リストとして表される辞書のような構造で情報を検索するために使用されます。 
この操作は、3つの入力、 キー 、リストのペア 、およびnotFoundの結果を取ります。これらの結果は、デフォルトで “not found”に設定されています。 
ここでペアはペアのリスト、つまり各要素がそれ自体2つの要素のリストであるリストでなければなりません。 
ペア検索では、リストの最初の要素がキーである最初のペアが検索され、2番目のペアが返されます。 
素子。 たとえば、リストが((a apple)(d dragon)(b boxcar)(cat 100)の場合、 ‘b’を検索すると ‘boxcar’が返されます。 
リストにそのようなペアがない場合、ペアで検索するnotFoundの結果が返されます。 ペアがのリストではない場合 
ペアになると、操作はエラーを通知します。

レファレンス

AI2テキスト

テキストブロック

「」

テキスト文字列を含みます。

この文字列には任意の文字(英字、数字、またはその他の特殊文字)を含めることができます。 App Inventorでは、これはテキストオブジェクトと見なされます。

参加する

すべての入力を追加して単一の文字列を作成します。 入力がない場合は、空の文字列を返します。

長さ

文字列内のスペースを含む文字数を返します。 これは与えられたテキスト文字列の長さです。

空です

文字列に文字(スペースを含む)が含まれているかどうかを返します。 文字列の長さが0の場合はtrue、それ以外の場合はfalseを返します。

テキストを比較する

選択されたドロップダウンに応じて、最初の文字列が辞書式に<、>、または= 2番目の文字列であるかどうかを返します。

ある文字列がアルファベット順で他の文字列よりも大きい場合、その文字列は別のものより辞書的に大きいと見なされます。 基本的に、それは辞書の中でそれの後にくるでしょう。 すべての大文字は、小さいか小文字の前にあると見なされます。 は> 猫になります。

トリム

入力文字列の先頭または末尾のスペースを削除して結果を返します。

大文字

すべての大文字に変換されたテキスト文字列引数のコピーを返します

小文字

すべての小文字に変換されたテキスト文字列引数のコピーを返します

で始まる

pieceの最初の文字がテキストに最初に現れる文字位置を返します。存在しない場合は0を返します。 たとえば、 havana bananaanaの位置は4です。

含む

pieceテキスト内にある場合はtrueを返します 。 それ以外の場合はfalseを返します。

最初に分割

指定されたテキストをatの最初の出現位置を分割点として2つの部分に分割し、分割点の前の部分と分割点の後の部分からなる2項目のリストを返します。 分割点としてコンマを使用して分割したapple、banana、cherry、dogfoodは2つの項目のリストを返します。 それが分割点であるため、appleの後のコンマは結果に現れないことに注意してください。

最初に分割する

リスト内の任意の項目の最初の位置を分割点として使用して、指定されたテキストを2項目リストに分割します。

リスト[ ba 、 ap ]でリンゴのバナナのリンゴのブドウを愛して分割すると、2つのアイテムのリストが得られます 。

スプリット

分割点としてatを使用してテキストを断片に分割し、結果のリストを作成します。 1、2、3、4 at  (コンマ)を分割すると、リスト1 2 3 4が返されます。 one-potato、two-potato、three-potato、four–potato分割すると、リストone two three fourを返します。

任意に分割


/sites/all/files/UserGuide/blocks/text/splitAtAny.png “

指定されたテキストをatの項目のいずれかを分割点としてリストに分割し、結果のリストを返します。

最初の項目がコンマで、2番目の項目がrryである2要素リストとして、 appleberry、banana、cherry、dogfoodを分割すると、4つの項目のリストが返されます。[ applebe、banana、che、dogfood ]

スペースで分割

与えられたテキストをスペースのあるところで分割して、部分のリストを作成します。

セグメント

開始位置から始まり長さの文字まで続くテキストの一部を抽出します。

全部交換

部分文字列のすべての出現箇所を置換で置き換えた新しいテキスト文字列を返します。

彼女を食べるのが大好きです。 彼女は書くのが大好きです。 テキストとしてのコーディング 、セグメントとしてのコーディング 、そして置き換えとしてのハンナは、 ハンナが食べることを愛するという結果になると思います。 ハンナは執筆が大好きです。 ハンナはコーディングが大好きです。

レファレンス

AI2数学

数学ブロック

** 注意:ソケットが抜けているMathブロックは、抜けている箇所を0として読み取ります。

探している数学ブロックが組み込みブロックで見つかりませんか。

いくつかの数学ブロックはドロップダウンであり、それはそれらが異なるブロックに変換されることができることを意味します。 これは各ドロップダウンに含まれるもののリストです:

=、≠、>、≥、<、≤

最小、最大

sqrt、abs、 – 、log、e ^、round、ceiling、floor

のモジュロ、剰余、商

sin、cos、tan、asin、acos、atan

ラジアンから度への変換、度からラジアンへの変換

基本番号ブロック

任意の正数または負数として使用できます(小数点以下を含む)。 ブロック内の “0”をダブルクリックすると番号を変更できます。

=

2つの数値が等しいかどうかを調べ、trueまたはfalseを返します。

=

2つの数値が等しくないかどうかを調べ、trueまたはfalseを返します。

>、

最初の数が2番目の数より大きいかどうかをテストし、trueまたはfalseを返します。

≥、

最初の数が2番目の数以上であるかどうかをテストし、trueまたはfalseを返します。

<、

最初の数が2番目の数より小さいかどうかをテストし、trueまたはfalseを返します。

≤、

最初の数が2番目の数以下であるかどうかをテストし、trueまたはfalseを返します。

+

数値を持つブロックをいくつでも足し合わせた結果を返します。 数値を持つブロックには、基本的な数値ブロック、リストまたはテキストの長さ、数値を持つ変数などが含まれます。このブロックはミューテーターであり、合計でより多くの数値を許可するように拡張できます。

最初の数値から2番目の数値を減算した結果を返します。

*

数値を持つブロックをいくつでも乗算した結果を返します。 これはミューテーターブロックであり、製品内でより多くの数を許可するように拡張できます。

/

最初の数値を2番目の数値で除算した結果を返します。

^

最初の数を2のべき乗で累乗した結果を返します。

ランダム整数

指定された値の間にある乱数整数値を返します。 引数の順番は関係ありません。

ランダム分数

0から1の間のランダムな値を返します。

ランダムにシードを設定

このブロックを使用して、乱数の繰り返し可能なシーケンスを生成します。 最初に同じ値を持つ乱数集合seedを呼び出すことで、同じ乱数列を生成できます。 これは乱数を含むプログラムをテストするのに役立ちます。

一連の数値の最小値を返します。 ブロック内にコンセントが抜けている場合、minはその数字の中で0も考慮します。 このブロックはミューテーターとドロップダウンです。

最大

一連の数値の最大値を返します。 ブロックに未接続のソケットがある場合、maxはその番号のセットに0も考慮します。 このブロックはミューテーターとドロップダウンです。

平方根

与えられた数の平方根を返します。

腹筋

与えられた数の絶対値を返します。

与えられた数の負数を返します。

ログ

与えられた数の自然対数、すなわち基数eの対数(2.71828 …)を返します。

e ^

与えられた数のべき乗でe(2.71828 …)を返します。

円形

与えられた数を最も近い整数に四捨五入して返します。 小数部が0.5未満の場合は切り捨てられます。 それは> 0.5ですそれは切り上げられます。 それが.5と完全に等しい場合、偶数の整数部分を持つ数は切り捨てられ、奇数の整数部分を持つ数は切り上げられます。 (この方法は、偶数への丸めと呼ばれます。)

天井

与えられた数以上の最小の整数を返します。

与えられた数以下の最大の整数を返します。

モジュロ

aとbが正の場合、modulo(a、b)は剰余(a、b)と同じです。 より一般的には、(フロア(a / b)×b)+モジュロ(a、b)= aとなるように、aおよびbに対してmodulo(a、b)が定義されます。 たとえば、modulo(11、5)= 1、modulo(-11、5)= 4、modulo(11、-5)= -4、modulo(-11、-5)= -1です。 モジュロ(a、b)は常にbと同じ符号を持ち、剰余(a、b)は常にaと同じ符号を持ちます。

残り

剰余(a、b)は、aをbで除算して余りを取った結果を返します。 残りは、結果の小数部にbを掛けたものです。

たとえば、residual(11,5)= 1です。 


11/5 = 2 1⁄5 


この場合、 1 / 5が小数部です。 これにb、この場合は5を掛け、残りの1を求めます。 

他の例は、剰余(−11、5)= −1、剰余(11、−5)= 1、および剰余(−11、−5)= −1である。

最初の数値を2番目の数値で除算し、結果の小数部分を破棄した結果を返します。

与えられた数のサインを度数で返します。

cos

与えられた数の余弦を度数で返します。

日焼け

与えられた数の正接を度数で返します。

asin

与えられた数の逆正弦を度数で返します。

アコス

与えられた数の逆余弦を度数で返します。

日焼け

与えられた数のアークタンジェントを度数で返します。

atan2

yとxを指定して、y / xのアークタンジェントを返します。

ラジアンを度に変換する

与えられた数値の度数をラジアンで返します。 結果は[0、360)の範囲の角度になります。

度をラジアンに変換

与えられた度数の値をラジアンで返します。 結果は[-π、+π)の範囲の角度になります。

10進数としてフォーマット

小数点以下の桁数を指定して、数値を10進数としてフォーマットします。 桁数は負でない整数でなければなりません。 結果は、数が四捨五入される(場所が多すぎる場合)か、右側にゼロが追加される(少なすぎる場合)ことによって生成されます。

数値です

指定されたオブジェクトが数値の場合はtrueを返し、それ以外の場合はfalseを返します。

番号を変換

1つの基数で正の整数を表すテキスト文字列を受け取り、同じ数を表す文字列を別の基数で返します。 たとえば、入力文字列が10の場合、基数10からバイナリに変換すると文字列1010が生成されます。 入力文字列が同じ10の場合、2進数から10進数に変換すると文字列2が生成されます。入力文字列が同じ10の場合、10進数から16進数に変換すると文字列Aが生成されます。

レファレンス

AI2ロジック

ロジックブロック

  • 本当の
  • ではない
  • =
  • そして
  • または
  • 2つの数が数値的に等しい場合、たとえば1は1.0に等しい場合、それらは等しいです。
  • 2つのテキストブロックが同じ順序で同じ文字を持ち、同じ大文字と小文字が同じであれば、それらは同じです。 たとえば、 bananabananaと同じではありません。
  • 数字がそのテキストで印刷される数字と数値的に等しい場合、数字とテキストは等しくなります。 例えば、12.0は、 1Aの最初の文字をTeafor2最後の文字に結合した結果に等しくなります。
  • 2つのリストが同じ数の要素を持ち、対応する要素が等しい場合、それらは同じです。

レファレンス

AI2コントロール

制御ブロック

if&ifその他

与えられた条件をテストします。 条件が真の場合、与えられた一連のブロックでアクションを実行します。 それ以外の場合、ブロックは無視されます。

与えられた条件をテストします。 結果が真であれば、一連のブロックでアクションを実行します。 それ以外の場合は、-elseブロックのシーケンスでアクションを実行します。

与えられた条件をテストします。 結果が真であれば、一連のブロックでアクションを実行します。 それ以外の場合は、-else ifセクションの文をテストします。 結果が真であれば、一連のブロックでアクションを実行します。 それ以外の場合は、-elseブロックのシーケンスでアクションを実行します。







以下のgifは、if elseミューテーターブロックの使い方を示しています。 

からまでのそれぞれ

fromで始まりtoで終わる範囲内の数値ごとにdoセクションのブロックを実行します。数値はそれぞれbyの値だけ増加します。 現在の値を参照するには、指定された変数名、 番号を使用してください。 必要に応じて、名前番号を他のものに変更できます。

リストのそれぞれについて

リスト内の各項目に対してdoセクションのブロックを実行します。 現在のリスト項目を参照するには、与えられた変数名itemを使用してください。 必要に応じて、名前の項目を他のものに変更できます。

しながら

-test条件をテストします。 trueの場合、-doで指定されたアクションを実行してから、もう一度テストします。 testが偽のとき、ブロックは終了し、-doで与えられた動作はもう実行されません。

それ以外の場合

与えられた条件をテストします。 ステートメントが真の場合、ブロックのthen-returnシーケンスでアクションを実行し、then-return値を返します。 それ以外の場合は、else-returnシーケンスのブロックでアクションを実行し、else-return値を返します。

行う

プロシージャや他のコードブロックでは、何かを実行して何かを返す必要がある場合がありますが、さまざまな理由から、新しいプロシージャを作成する代わりにこのブロックを使用することを選択できます。

評価するが結果は無視する

手続きのdo部分のブロックのシーケンスの1つやifブロックなど、ソケットがない場所に左側にプラグがあるブロックをはめ込むための「ダミーソケット」を提供します。 フィットしたブロックは実行されますが、返された結果は無視されます。 結果を返すプロシージャを定義していても、結果を受け入れないコンテキストでそれを呼び出したい場合に便利です。

別の画面を開く

提供された名前で画面を開きます。

開始値で別の画面を開く

別の画面を開き、それに値を渡します。

開始値を取得

現在の画面に与えられた開始値を返します。

この値は、開始値で別の画面を開くか、値で画面を閉じるかを使用して指定されます 。

画面を閉じる

現在の画面を閉じます。

値で画面を閉じる

現在の画面を閉じて、この画面を開いた画面に値を返します。

アプリケーションを閉じる

アプリケーションを閉じます。

プレーンテキストを取得

この画面が別のアプリによって起動されたときにこの画面に渡されたプレーンテキストを返します。 値が渡されなかった場合は、空のテキストを返します。 マルチスクリーンアプリの場合は、プレーンテキストではなくget get valueを使用します

プレーンテキストで画面を閉じる

現在の画面を閉じて、この画面を開いたアプリにテキストを渡します。 このコマンドは、App Inventorの画面ではなく、App Inventor以外のアクティビティにテキストを返すためのものです。 App Inventorの画面では、複数画面のアプリケーションと同様に、[画面をプレーンテキストで閉じる]ではなく[画面を値で閉じる]を使用します。

レファレンス

目次

FirebaseDB

情報を保存および取得するためにFirebaseと通信する不可視コンポーネント。

追加情報

プロパティ

DeveloperBucket (デザイナーのみ)FirebaseToken (デザイナーのみ)FirebaseURLこのFirebaseDBのURLを取得します。Persist (デザイナーのみ)trueの場合、変数はオフラインでもAppが終了してもその値を保持します。 ネットワークに接続している間に次回Appを実行したときに、値がFirebaseにアップロードされます。 これは、ネットワークに接続していない間にデータを収集するアプリケーションに役立ちます。 注意:AppendValueとRemoveFirstは、オフラインのときは正しく機能しません。ネットワーク接続が必要です。 

 :Firebaseコンポーネント、画面上のPersistを設定すると、すべての画面上のすべてのFirebaseコンポーネントが永続的になります。 これは低レベルのFirebaseライブラリの制限です。 また、persistをtrueに設定したい場合は、コンパニオンをインクリメンタル開発用に接続する前に行う必要があります。ProjectBucketこのFirebaseDBのProjectBucketを取得します。

イベント

DataChanged(text tag, any value)Firebase内のデータが変更されたことを示します。 更新されたタグと値でイベントを起動します。FirebaseError(text message)Firebaseとの通信がエラーを通知したことを示します。FirstRemoved(any value)“RemoveFirst”関数によって引き起こされるイベント。 引数 “value”は、リストの最初にあったオブジェクトで、削除されました。GotValue(text tag, any value)GetValue要求が成功したことを示します。TagList(list value)既知のタグのリストを受け取ったときに発生するイベント。 “GetTagList”関数と共に使用されます。

方法

AppendValue(text tag, any valueToAdd)リストの末尾にアトミックに値を追加します。 2つの装置がこの機能を同時に使用すると、両方が追加され、データが失われることはありません。GetTagList()このアプリケーションのタグのリストを取得します。 完了すると、 “TagList”イベントが既知のタグのリストでトリガーされます。GetValue(text tag, any valueIfTagNotThere)GetValueは、指定されたタグの下に格納されている値を取得するようFirebaseに要求します。 タグの下に値が格納されていない場合は、valueIfTagNotThereをGotValueに渡します。RemoveFirst(text tag)リストの最初の要素を返し、それを自動的に削除します。 2つのデバイスがこの関数を同時に使用すると、一方は最初の要素を取得し、もう一方は2番目の要素を取得します。使用可能な要素がない場合はエラーになります。 要素が利用可能になると、 “FirstRemoved”イベントが発生します。ClearTag(text tag)Firebaseからタグを削除するStoreValue(text tag, any valueToStore)指定されたタグの下に指定された値を格納するようにFirebaseに要求します。Companionで問題が発生していて、異なるFirebaseアカウントを切り替える場合は、この機能を使用してFirebaseの内部キャッシュを消去する必要があります。ブロックエディタでこのブロックに「Do It」機能を使用するだけです。 注:通常、このブロックをアプリケーションの一部として使用する必要はありません。