remainder

更新时间:2022-11-26 07:26:33 阅读: 评论:0


2022年11月26日发(作者:stuff是什么意思)

AppInventor指令说明书_彭小忠

1

AppInventor指令说明

1Definition指令区

procedure

procedureWithResult

name

variable

|

程序procedure

将多个指令集合在一起,之后可通过呼叫该程序来使用这些指令。如果该程

序包含了参数,则必顸使用name指令来命名该参数。当建立一个程序之后,

AppInventor会自动产生一个呼叫(call)指令,位于MyDefinitionsdrawer之中,

您可使用该指令来呼叫对应的程序。

当建立一个新的程序指令时,AppInventor会自动帮它取一个名称,您也可

以点选它之后自行改成您所需要的名称。在一个程序中的程序名称必须是唯一

的,AppInventor不允许在同一个程序中有两个名称相同的程序。您可点选程序

上的卷标来将其重新命名。AppInventor会自动调整对应的呼叫指令名称。

具回传值的程序procedureWithResult

本指令与程序指令相同,但使用时会回传一个结果。当本程序执行完毕后会

将return字段回传。

名称name

可建立一个name参数来呼叫指定的程序。定义参数的方法就是将name插入

procedure的arg插槽。可使用的参数数目不限,每当您填入一个参数插槽时,

就会自动跳出新的参数插槽。只要点选右下方的name标签就可将其重新命名。

当建立一个程序之后,AppInventor会自动产生一个呼叫(call)指令,位于My

AppInventor指令说明书_彭小忠

2

Definitionsdrawer之中,您可使用该指令来呼叫对应的程序。

AppInventor会自动帮您所建立的名称参数建立对应的取值指令并将它们放在

MyDefinitionsdrawer中。您可使用这些指令来存取该参数的值,当该程序被呼

叫时,该值就会被传送过去给程序。

注意:现在的AppInventor版本规定一个程序中的所有参数名称都必顸是唯

一的,即便是在不同程序下的参数也是一样(C、Java就无此限制)。例如两个不

同程序就不能都使用名为x的变量。当您要建立第二个x时,AppInventor就不

会让您这么做。这个限制也许在未来会开放出来。

变量variable

建立一个在程序执行时可以动态改变的值,别忘了给它一个名字。在此所建

立的变量为全局变量(globalvariable),代表程序中的任何一个指令都可以存取此

变量,当然也可以从procedure中来呼叫。

当建立一个新的变量时,AppInventor会自动帮它取一个名称,您也可以点选它

之后自行改成您所需要的名称。在一个程序中的变量名称必顸是唯一的,App

Inventor不允许在同一个程序中有两个名称相同的变量。

另一方面在建立变量完成后,AppInventor会自动产生两个相关的指令,它们位

于MyDefinitionsdrawer中:

global指令用来取得变量值。

tglobal指令用来设定变量值。

您在编写程序的过程中随时可以修改变量的名称,修改完成之后对应的指令

也会自动修正名称。

转接头|

本指令是为了左侧没有对应插槽的指令所产生的,本指令就好像转接头一

样,并没有程序上的作用。这时候您转接的指令就可以执行了,但它们如果有回

传值的话在此会被忽略。有时候当我们建立一个具回传值的程序,但想要在背景

呼叫它时(此时不能使用回传值),这个功能就很好用了。

2Text文字指令区

text

join

maketext

length

text<

text=

text>

trim

upca

downca

startsat

contains

splitatfirst

splitatfirstofany

AppInventor指令说明书_彭小忠

3

split

splitatany

splitatspaces

gment

replaceall

text

指定一个字符串常数。

join

将两个指定字符串合成一个新字符串。对于此指令,数字也被视为字符串。例如:

用join指令来合成1+1及2×3则回传26(2和6合成)。

maketext

将所有的指定值依序合成一个字符串。

Length

回传指定字符串的长度。

text<

回传第一个字符串text1是否在字母排列上比第二个字符串text2小。若两者的

第一个字母相同则比较字符串长度。大写字母比小写字母优先。

text=

回传第一个字符串text1与第二个字符串text2是否相等。

请注意如果要比较的字符串中含有数字,则数学上的=与字符串上的text=结果是

不一样的。如果两个textbox,其中一个内容为123,另一个是0123,则数学上

比较结果为相等,但字符串上比较则不相等。

text>

回传第一个字符串text1是否在字母排列上比第二个字符串text2大。若两者的

第一个字母相同则比较字符串长度。大写字母比小写字母优先。

AppInventor指令说明书_彭小忠

4

upca

将指定字符串全部转为大写。

downca

将指定字符串全部转为小写。

trim

删除指定字符串的头尾空格。

startsat

回传指定子字符串在指定字符串中的位置,找不到则回传0。例如子字符串"ana"

在"Havana"中的位置为4。

请注意!在一般程序设计语言中,数组的第一个元素编号为0,但AppInventor

中的第一个元素编号为1。

Contains

若指定子字符串出现在指定字符串中则回传真,反之则回传假。

splitatfirst

将字符串从指定分割点(at)第一次出现的地方分成两个子字符串,并回传一个包

含这两个子字符串的列表,一个是从原字符串第一个字母到分割点前一个字母,

另一个则是分割点后一个字母到原字符串结尾。例如将字符串

"apple,banana,cherry,dogfood"使用逗号","来分割,回传结果会是两个子字符串:

第一个子字符串为"apple",第二个子字符串为"banana,cherry,dogfood"。请注意

逗号","这个分割点不包含在任何一个子字符串中。

splitatfirstofany

将字符串从指定分割点(at)分割成两个子字符串,并回传一个包含这两个子字符

串的列表。

split

将字符串从指定分割点切割,并以清单回传切割结果。例如将字符串

"one,two,three,four"从逗号","分割的结果是(onetwothreefour)这个清单。将字符

串"one-potato,two-potato,three-potato,four"从"at-potato"分割的结果是(onetwo

threefour)这个清单。

splitatany

将字符串从列表项目(at)来切割,意即使用列表项目来切割字符串,并回传结果。

例如将字符串"appleberry,banana,cherry,dogfoodwith"以一个具有两个项目的列

表来切割,第一个项目为逗号",",第二个项目为"rry",切割结果为(applebebanana

chedogfood)这个字符串。

splitatspaces

将指定字符串在所有空格处分开,以清单输出结果。

gment

将原字符串从指定位置start开始并指定长度length后产生子字符串。

replaceall

将原字符串以新的子字符串取代后回传新的字符串。

3List列表指令区

makealist

AppInventor指令说明书_彭小忠

5

lectlistitem

replacelistitem

removelistitem

inrtlistitem

lengthoflist

appendtolist

additemstolist

isinlist?

positioninlist

pickrandomitem

islistempty?

copylist

isalist?

listtocsvrowlisttocsvtablelistfromcsvrowlistfromcsvtable

AppInventor中的list就是一般程序中的数组,所以相关操作方法皆与数组

非常相似。但请注意AppInventor的List编号从1开始,数组编号则从0开始。

makealist

新增一个列表,并自行指定其元素(item)。若您未指定任何元素,则此为一

空清单,您可以之后再加入元素。

lectlistitem

取得列表list的指定位置index元素内容,第一个列表元素位置为1。

replacelistitem

将列表的指定位置元素以新的内容replacement取代。

removelistitem

从列表中删除指定位置的元素。

inrtlistitem

将指定内容item插入列表的指定位置。

lengthoflist

回传列表的长度,也就是元素数目。

appendtolist

将第一个清单list1与第二个清单list2组成一个新的清单。

additemstolist

AppInventor指令说明书_彭小忠

6

将指定内容item接在清单的后面。本指令与appendtolist指令的差别在于

appendtolist指令是将两个列表组起来,而additemstolist指令是将要新增的内

容当作个别参数来操作,会自动产生新的插槽。

isinlist?

若指定内容thing存在于清单中回传true,反之回传fal。注意:若一列表

中含有子列表,则子列表的元素不包含在原列表中。例如清单(12(34))的元素为

1、2以及子清单(34);单独3或4并非这个list的元素。

positioninlist

回传指定内容thing位于列表中的位置,回传0代表清单不包含指定内容。

pickrandomitem

从列表中随机取得任一项目。

islistempty?

如果清单为空,回传true;反之回传fal。

copylist

复制列表,如果列表包含子列表也会一并复制。

isalist?

如果指定内容格式为清单,回传true;反之回传fal。

listtocsvrow

将列表转换为CSV表格中的列row,并以CSV(comma-paratedvalue)格

式回传。Row中的每一个项目就是一个字段(field)。回传的文件结尾不会包含

换行符号。

listtocsvtable

将列表以列优先的方式转换为CSV表格,并以CSV格式回传。回传列表中的

项目是另一个列表,代表CSV表格中的列,每列中的项目则是该列的字段。列中

的项目是以逗号分隔,列彼此之间则是以CRLF(rn)符号分隔。

listfromcsvrow

将CSV文件中的列解析并回传一个列表,列表内容就是该列的各个字段。不

同列将以n或CRLF(rn)符号来区隔。如果列中的文字是以新的一列或是CRLF

符号结束,这样的语法是允许的。

listfromcsvtable

将CSV表格解析并回传一个列表,列表内容代表不同的列(再包含不同的字

段)。不同列将以n或CRLF(rn)符号来区隔。

4Math数学指令区

number

>

<

<=

>=

equals

+

AppInventor指令说明书_彭小忠

7

×

/

sqrt

randomfraction

randominteger

randomted

negate

min

max

quotient

remainder

modulo

abs

round

floor

ceiling

expt

exp

log

sin

cos

tan

asin

acos

atan

atan2

formatasdecimal

isanumber?

AppInventor指令说明书_彭小忠

8

number

指定一个数字常数。

>

比较两个指定数字。如果前者大于后者时,回传true,否则回传fal。

<

比较两个指定数字。如果前者小于后者时,回传true,否则回传fal。

比较两个指定数字。如果前者小于或等于后者时,回传true,否则回传fal。

比较两个指定数字。如果前者大于或等于后者时,回传true,否则回传fal。

equals

比较两个指定数字是否相等。如果是的话,回传true,否则回传fal。此指

令和在logic指令区中的指令功能相同,仅为了方便所以两边都放。本指令

的参数可为其他数据型态,而不仅仅是数字。

Not=?

比较两个指定数字是否不相等。如果是的话,回传true,否则回传fal。

+

回传两个指定数字的和。

AppInventor指令说明书_彭小忠

9

回传两个指定数字的差。

×

回传两个指定数字的积。

÷

回传前者除以后者的商。例如,1除以3为0.3333。

sqrt

回传指定数字的平方根。

randomfraction

回传一个介于0和1之间的随机小数。

randominteger

回传一个介于指定数字之间的随机整数,包含上限(to)与下限(from)。参数由

小到大或由大到小不会影响计算结果。

negate

回传指定数字的相反数。

min

回传指定数字中最小者。

max

回传指定数字中最大者。

quotient

quotient(a,b)指令回传第一个数a除以第二个数b的商,但只取整数部分,

小数点以后忽略不计。

remainder

remainder(a,b)指令可回传第一个数a除以第二个数b的余数(remainder)。

例如Forexample,remainder(11,5)为1;remainder(-11,5)为-1;remainder(11,

-5)为1;remainder(-11,-5)为-1。

modulo

当指定数字皆为正数时,Modulo(a,b)计算结果与remainder(a,b)相同。一般

公式如下:对所有a与b而言,(floor(a/b)×b)+modulo(a,b)=a。例如

modulo(11,5)为1;modulo(-11,5)为4;modulo(11,-5)为-4;modulo(-11,-5)

为-1。Modulo(a,b)永远与b同号,但remainder(a,b)则永远与a同号。

abs

回传指定数字的绝对值。

round

回传指定数字四舍五入到整数字的运算结果。

floor

回传指定数字无条件舍去到整数字的运算结果。

ceiling

回传指定数字无条件进位到整数字的运算结果。

expt

回传指数的运算结果。(ba:底;exponent:指数)。

exp

回传e(2.71828...)的指定次方运算结果。

log

回传指定数字的自然对数运算结果。

AppInventor指令说明书_彭小忠

10

sin

回传指定数字的正弦函数值,单位:度。

cos

回传指定数字的余弦函数值,单位:度。

tan

回传指定数字的正切函数值,单位:度。

asin

回传指定数字的反正弦函数值。

acos

回传指定数字的反余弦函数值。

atan

回传指定数字的反正切函数值。

atan2

回传y/x的反正切函数值。

convertradianstodegrees

将弧度转换为角度。

convertdegreestoradians

将角度转换为弧度。

formatasdecimal

将原数字转换为指定位数之小数。指定小数位数不能为负数。若原小数位数

过多则四舍五入,反之则补0。

isanumber?

指定对象如果为数字,回传true,反之回传fal。

5logic逻辑指令区

true

fal

not

=

and

or

true

布尔常数的真(true)。用来设定组件的布尔(boolean)属性值,或用来表

AppInventor指令说明书_彭小忠

11

示某种状况之变量值。

fal

布尔常数的假(fal)。用来设定组件的布尔属性值,或用来表示某种状况

之变量的值。

not

逻辑运算的not。输入true或条件判断为true则回传fal,反之回传true。

equals

综合性的等于运算符

两个数字是否相等(例如:1=1.0)

两个字符串是否相等,包括大小写。例如banana不等于Banana。

若两个列表的长度相同且对应组件相等则相等。

and

测试是否所有的叙述皆为真。当您插入第一个test项目时会自动跑出第二个

插槽。测试顺序由上到下,测试过程中若任一条件已知为假则停止测试。若

无任何叙述则回传true。

or

测试所有叙述中是否至少有一者为真。当您插入第一个test项目时会自动跑

出第二个插槽。测试顺序由上到下,测试过程中若任一条件已知为真则停止

测试。若无任何叙述则回传fal。

6Control控制指令区

if

ifel

choo

foreach

forrange

while

getstarttext

closcreen

closcreenwithresult

AppInventor指令说明书_彭小忠

12

if

测试指定条件test。若为true则执行以下动作,反之则跳过此段。

ifel

测试指定叙述。若为true则执行then-do以下区块,反之则则执行el-do以

下区块。

choo

测试指定叙述。若为true则执行then-do以下区块并回传then-return之值,

反之则则执行el-do以下区块并回传el-return之值。

foreach

根据指定列表的元素数目来决定do的执行次数。您可使用该变量名称来取

得它的值。

forrange

根据指定范围之整数个数来决定do的执行次数,可自由设定每次累加的数

字step。您可使用该变量名称来取得它的值。

while

测试指定叙述。若为true则重复执行以下动作,反之则结束此段。

getstarttext

如果有本项设定,当程序启动时回传所接收到的字符串信息。

closcreen

关闭屏幕。

closcreenwithresult

AppInventor指令说明书_彭小忠

13

关闭屏幕,并指定回传结果result。

cloapplication

结束程序。

7Color颜色指令区

TheBlocksEditorColorsdrawer包含了各种常用的颜色指令,您可将它们

直接插入需要颜色设定的指令中,例如设定文字颜色或是某组件的背景颜

色。这些颜色也可以在Designer页面中的相关属性中来设定。

如何自定义颜色

AppInventor中的颜色是以数字进行编码,例如蓝色是由-16776961这个负数

所代表。如果您知道如何自定颜色色码,就不必受限于AppInventor那少少

的内建颜色了,可以在您的app中自由创造各种色彩。

颜色是由4个数字所共同决定的,每个数字的范围都是0~255。前三个数字

代表红、绿、蓝三原色的强度。您可以从网络上找到各种颜色的RGB色表,

当然也可以自己实验一下来找到喜欢的颜色。第4个数字则是「不透明度

(opacity)」,代表多个组件迭在一起时的视觉效果。Opacity255是完全不

透明,该颜色会将其下层所有的东西都盖过去。Opacity0则是完全透明,您

在屏幕上甚至看不到这个颜色了。介于两者中间的数值则决定该颜色底下东

西的可视程度。

请依照下列步骤要求出某种颜色在AppInventor中的数字代码:

1.先设定不透明度(opacity)。

2.乘以256之后加上R(红色强度)。

3.第2步计算结果乘以256之后加上G(绿色强度)。

4.第3步计算结果乘以256之后加上B(蓝色强度)。

5.第4步计算结果减掉168(4294967296)。

6.计算结果(皆为负数)就是您之后要用在AppInventor中的颜色代码。

请看以下范例,deepshadeofpurple的RGB设定为R=160,G=32,B=240,.

将这些数值代入以上的公式,并将opacity设为255,计算结果为-6283024。

如果您将画布的背景颜色设为这个数值,就可以看到屏幕变成漂亮的紫色

了。

以下的范例程序说明了如何指定RGB值来得到特定的颜色,不透明度都固定

为255,或者您也可以自由调整不透明度的设定值。下表1为常用颜色的颜

色色表,欢迎多加利用。

AppInventor指令说明书_彭小忠

14

本文发布于:2022-11-26 07:26:33,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/23669.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

下一篇:canonical
标签:remainder
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图