




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、App Inventor编程基础,瞿绍军 湖南师范大学数学与计算机科学学院,变量是在内存中占据一定的存储单元,其值可以改变的量。在AI中,变量必须先进行声明,然后才可以使用。AI的变量块里面有五种类型的块,变量块,变量名称必须以英文字母、下划线或中文开头,可包括英文字母、下划线、数字和中文,如Sum,S1,求和,_a2都为合法的变量名。 AI中变量可以接受任何类型的值 任何时候都可以对变量的名称进行重命名,所有引用过该变量原有名称的块将自动更新。 AI中的变量类型有数字、文本、逻辑、列表、颜色。,变量,在AI中,变量包括全局变量和局部变量二种 全局变量可以用在应用的所有过程及事件处理函数中,是
2、一个独立的块。在应用的运行过程中,可以在应用的任何部分对全局变量的值引用和修改。,变量,定义,全局变量,使用,修改变量的值,全局变量,例1、定义一个简单的计算器,计算两个数字的和,计算器,计算器,代码块,局部变量块是一个可扩展块,用于在过程或事件处理函数中,创建一个或多个只在局部有效的变量,因此每当过程或事件处理函数开始运行时,这些变量都被赋予同样的初始值。它的有效作用范围仅限于块内。,局部变量,定义局部变量,局部变量,初始化局部变量,局部变量,使用局部变量,局部变量,将例1的计算器修改成局部变量来实现,局部变量,带返回值的局部变量块的使用,顺序结构、选择结构和循环结构是程序设计的三种基本结构
3、,已经证明:任何可解问题的解决过程都是由这三种结构通过有限次组合而成的。 控制块是AI编程的基本结构,主要包括流程控制块:选择和循环,屏幕控制相关操作等。,控制块,选择,三种基本结构,选择,(a)“如果.则.”进行条件测试:如果测试结果为真(T),则按顺序执行“则”右边的块;否则(F)跳过这些块。,选择,(b)“如果.则.否则.”进行条件测试:如果测试结果为真,则按顺序执行“则”右边的块;否则,按顺序执行“否则”右边的块。,选择,(c)“如果.则.否则,如果.则.”进行条件测试:如果测试结果为真,则按顺序执行第一个“则”右边的块;否则做下一步的条件测试“否则如果”,如果测试结果为真,则按顺序执
4、行第二个“则”右边的块,否则按顺序执行最后一个“否则”右边的块。,选择,例2:成绩等级判定,开发一个App,输入一个成绩,单击判定按钮输出其等级。判定规则如下:如果成绩大于等于90分,等级判定为优秀;如果成绩大于等于80分并且小于90分,等级判定为良好;如果成绩大于等于70分并且小于80分,等级判定为中等;如果成绩大于等于60分并且小于70分,等级判定为及格;如果成绩小于60分,等级判定为不及格。,选择,关于代码几点说明: (1)用于条件判断的“大于等于”、“小于”等关系运算符如图所示进行添加。关系运算符可以通过单击“=”号,在弹出的下拉列表框中进行选择改变。,选择,组件说明,选择,如果满足分
5、数大于等于80分,并且小于90分,则等级为“良好”。这里用到的逻辑运算符“并且”,选择,代码块,选择,下面改写成嵌套结构,选择,在AI中存在计数循环(for)、逐项循环(forin list) 和条件循环(while)三种循环结构。,循环,(a)计数循环从循环计数变量的起始值(如1)开始执行循环体内语句块,执行完成后,循环计数变量增加循环间隔指定的增量(如1),然后重复执行上面的操作,值到终止值(如5)。 例3:设计如图所示应用,用户输入一个正整数n,计算1+2+n的结果。,循环,循环,注:组件和变量的名称一般按照其含义命名,做到见名知义。,代码,循环,(b) 逐项循环,针对列表中的每一项重复
6、执行相同的操作。其中“列表项”代表正在参与运算的列表项。 例4:随机产生4个数,并计算4个数的和。,循环,组件说明,循环,代码,循环,(c)条件循环。该循环首先进行条件测试,当测试结果为真时,执行循环体内的语句块,然后再次进行条件测试,如果为真,执行同样一组操作;重复以上操作到当条件测试为假,跳出循环。 例5:将例3中的循环修改成条件循环。,循环,代码,循环,条件返回块“如果则否则”,首先进行条件测试,如果测试结果为真,按顺序执行“则”右边的模块,得到结果并将值返回;如果测试结果为假,执行“否则”右边的模块,得到结果并将值返回。,条件返回,例6:计算标准体重。我国常用Brcoa改良公式计算标准
7、体重,其计算方法如下: 男生:标准体重=(身高-100)0.90 女生:标准体重=(身高-105)0.92,条件返回,组件说明,条件返回,代码,条件返回,带返回值的执行模块运行“执行”区域中的代码块并返回一条语句,用于在赋值前插入执行某个过程。,带返回值的执行模块,求值但忽视结果模块运行所连接的代码块但不返回运算值,用于调用求值过程但不需要其运算值。,求值但忽视结果,打开屏幕模块用于在多屏应用中打开一个新的屏幕 例7:屏幕之间的切换 首先在第一个屏幕添加一个标签和一个按钮,打开屏幕,后单击“组件设计”中“增加屏幕”按钮添加一个新的屏幕,命名为Screen2。并在屏幕二中添加一个标签和一个按钮,
8、屏幕二界面。,打开屏幕,屏幕1代码 屏幕2代码,打开屏幕,打开屏幕并传值模块在多屏应用中开启一个新的屏幕,并向其传入初始值,在打开的屏幕中可以用“获取初始值”模块取得传入的值。,打开屏幕并传值,例8:修改例7中屏幕1的代码。当打开屏幕2时,并传递值100给屏幕2。,打开屏幕并传值,修改屏幕2的代码。当打开屏幕2时,修改标签1的文本为屏幕1传递过来的值。,打开屏幕并传值,“关闭屏幕”:关闭当前屏幕。 “关闭屏幕并返回值”:关闭当前屏幕并向打开此屏幕者返回结果。 “退出程序”:关闭所有屏幕并终止程序运行。 “获取初始文本值”:屏幕被其他应用启动时获取所传入的文本值,如果调用者没有内容传入,则返回空
9、文本值。对于多屏应用,一般更多采用获取初始值的方式,而非获取纯文本值。,其它控制块,“关闭屏幕并返回文本”:关闭屏幕,并向打开此屏幕的应用返回文本,对于多屏应用,则多采用关闭屏幕并返回值的方式,而不采用关闭屏幕并返回文。,其它控制块,“true”:布尔常量“真”,表示某种情况成立。 “false”:布尔常量“假”,表示某种情况不成立。 “否定”:如果输入项为假则返回真值,如果输入项为真则返回假值。 “等于”:用于判断等号左右二个对象是否相等,对象可以是任意类型,不限于数字。单击“等于”下拉列表还有逻辑运算“不等于”,用于判断二个对象是否互不相等。,逻辑块,“并且”:测试两个逻辑表达式的值是否都
10、为真。当且仅当两者都为真时,返回值为真;其它情况,返回值均为假。 “或者”:测试两个逻辑表达式的值中是否有一个为真。只要有一个为真,则返回值即为真。,逻辑块,数学块,基本数字块,默认为0、可以是任何正数或负数(包括小数)。双击“0”就可以改变其中的数值。,数学块,关系运算符,共六种,算术运算符 , 乘方运算,返回第一个数的第二个数次方。,数学块,随机整数,返回给定的两个值(包括两个值)之间的随机整数,限于230内。默认是1到100之间。 随机小数,返回一个0到1之间的随机小数。 随机数种子设定,每个种子数会生成固定的随机数。如图代码,如果在文本框中输入一个固定的数,生成的随机数是固定的。,数学
11、块,数学函数 就高取整,返回大于或等于给定数的最小整数。注意:如-5.7就高取整后返回-5而不是-6,5.7就高取整后返回6。,数学块,四舍五入,返回一个整数,如果该数的小数部分0.5,则返回该数的整数部分;如果该数的小数部分0.5,则返回整数部分的值+1。 就低取整,返回小于或等于给定数的最大整数。注意:如-5.7就低取整后返回-6而不是-5;5.6就低取整后返回5。 e的乘方,对于给定的数 x ,求e(2.71828.)的x次方。 自然对方,返回给定数的自然对数。,数学块,模数,模数与除数正负相同。对于给定的两个正数a、b,求模与求余数的结果是相同的。如,模数 (11, 5) = 1,模数
12、(-11, 5) = 4, 模数(11, -5) = -4, 模数(-11, -5) = -1。 余数,余数(a,b)的返回值为a除以b所得的余数。余数(a,b)的结果在符号上与a相一致。如, 余数(11,5) = 1,余数(-11,5) = -1,余数(11, -5) = 1, 余数(-11, -5) = -1。 商数,做除法运算,返回商的整数部分。如,商数(11,5) =2,商数(-11,5) = -2。,数学块,三角函数和反三角函数,数学块,atan2,反正切函数2,对于给定的x与y坐标,返回y/x的反正切函数值。其范围为(-180, +180)。 角度变换-弧度转角度,对于给定的弧度值
13、,将其换算成角度值,其范围为0, 360)。 角度变换-角度转弧度,对于给定的角度值,将其换算成弧度值,其范围为- , +)。,数学块,对于给定的数字,设定其小数点后面的位数,位置值必须是非负的整数,超出位数的小数部分将依据四舍五入的原则进位,不足的位数将添0补齐。,数学块,如果给定的对象为数字,则返回值为真,否则为假。,数学块,文本块,字符串文本,可以包含任何字符(字母、数字或其他特殊字符),在AI中被视为文本对象。,文本块,合并文本,将给定的若干个字符串连接成一个新字符串。,文本块,返回字符串中包含的字符个数(包括空格)。注意:与其它编程语言不同的是,中文、英文、半角、全角下的字符长度均为
14、1。,文本块,返回字符串中是否包含字符,当字符串长度为0时,返回值为true,否则为false。,文本块,比较文本:包括 , 返回两个字符串的顺序关系:、或。按照字典顺序(即字母表的顺序),越靠后面的值越大,同一个字母,大写小写;返回值为true或false。,文本块,对给定字符串删除首尾空格。,文本块,大写,将字符串中所有字母转换为大写字母并返回。小写,将字符串中所有字母转换为小写字母并返回。,文本块,求子串位置,求子串在文本中的起始位置,返回一个数字,如果子串没有在文本中出现,则返回值为0。,文本块,检查文本中是否包含子串,如果包含则返回值为true,否则为false。,文本块,分解文本,
15、以指定文本作为字符串,将字符串分解为不同片段,并生成一个列表作为返回结果,如以逗号“,”分解one,two,three,将返回列表(one two three)。,文本块,分解首项,在首次出现分隔符的位置将给定文本分解为两部分,并返回包含分隔符点前和点后两部分内容的列表。 如分解字符串“苹果,香蕉,樱桃”,以逗号“,”作为分隔符,将返回一个包含两项的列表,其中第一项的内容为“苹果”,第二项的内容为“香蕉,樱桃”。,文本块,任意分解,以分隔符列表中的任意一项作为分隔符,将给定文本分解为列表,并将列表作为处理结果返回。 如分解字符串“苹果,香蕉,樱桃”,以一个含有两个元素的列表作为分隔符,其中第一
16、项为逗号,第二项为“果”,则返回列表为“苹 香蕉 樱桃”,文本块,分解任意首项,以列表中任意项作为分隔符,在首次出现分割符的位置将给定文本分解为两项列表。 如以“香,苹”作为分隔符分解“我喜欢苹果香蕉苹果葡萄”,将返回一个两项列表,“我喜欢”和“果香蕉苹果葡萄”。,文本块,用空格分解,以空格为分隔符,将给定文本分解为若干部分,并以列表的形式返回。,文本块,提取子串,以指定长度、指定位置从指定文本中提前文本片段。,文本块,替换所有,用给定的替换字符串替换给定的文本中的所有指定的子串,并返回替换后的新文本。例如,用Hannah替换She loves eating. She loves writin
17、g. She loves coding中的所有She,得到的结果是Hannah loves eating. Hannah loves writing. Hannah loves coding。,文本块,这里中文翻译顺序有些问题,如把文本中的所有“a”替换为“b”,文本块,混淆文本,像文本框一样产生文本,不同的是这个文本不容易被发现,通常用做分发机密信息等。,文本块,文本块,在AI中列表是一个可以存放多个相同类型的元素的集合,它相当于其它编程语言的数组。在内存中,列表中的元素是按先后顺序连续存放。列表的值通过列表名称和它的索引值引用。其中列表可以是一维的和二维的。列表中主要的模块:,列表块,列表
18、块,一维列表,列表块,二维列表,列表块,添加列表项,向列表的末尾添加列表项。,列表块,求列表长度,返回列表中包含的列表项数。,列表块,列表是否为空,如果列表为空,则返回值为真,否则为假。,列表块,随机选取列表项,从列表中随机选取一项。,列表块,检查列表项,如果列表中包含列表项则返回真,否则为假。,列表块,返回列表项在列表中的位置,如果列表项不在列表中,则返回0。,列表块,选取列表指定位置元素,求指定位置的列表项,索引值从1开始。,列表块,插入列表项,在指定位置插入列表项。,列表块,替换列表指定位置元素,替换列表中指定位置(索引值)的元素。,列表块,删除列表项,删除指定位置(索引值)的列表项。,
19、列表块,追加列表项,将第二个列表中所有项添加到第一个列表的末尾。添加后,列表1中将包括所有新加入的元素,而列表2不发生变化。,列表块,复制列表,创建列表的副本,包括其中的所有子列表。,列表块,是否为列表,检查该列表是否为列表类型。如果是一个列表,则返回值为真,否则为假。,列表块,列表转csv行,将列表转换为表格中的一行数据,并返回表示行数据的CSV(逗号分隔值)文本。数据行中的每一项都被当做一个字段,在CSV中文本用双引号进行标识,各数据项以逗号分隔。且每行末尾均不带换行符。,列表块,例如 将返回:瞿德华,刘华,王中,谭谈,张小五。 例如 将返回:(2014001 瞿德华),(2014002
20、刘华),(2014003 王中),(2014004 谭谈)。,列表块,列表转csv,列表块,例如 将返回: 瞿德华 刘华 王中 谭谈 张小五,列表块,csv行转列表,将CSV(逗号分隔值)格式的表格解析为一个列表的行,是“列表转csv行”的逆过程。,列表块,csv转列表,将CSV(逗号分隔值)格式的表格解析为一个列表的行,在每行中又是一个字段的列表。是“列表转csv”的逆过程。,列表块,根据键值查询,在类字典结构的列表中查找信息。本操作需要三个输入值:一个键值对列表、一个关键字、以及一个找不到时的提示信息。此处的键值对列表中的元素本身必须是包含两个元素的列表。查找键值对就是要在列表中找到第一个键值对(子列表),它的键(第一个元素)与给定的关键字相同,并返回其值(第二个元素)。,列表块,例如 将返回值“瞿德华”。,列表块,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度户外广告牌安装工程合同样本
- 二零二五年度☆高科技企业研发项目合同管理实务
- 二零二五年度绿色办公耗材采购与回收利用合同参考
- 2025版不锈钢栏杆新型材料研发与应用合同范本
- 2025版常年法律顾问合同(民商事争议解决专版)
- 二零二五年住宅租赁与租后增值服务合同
- 2025版建筑垃圾处理合同范本全新出炉
- 二零二五年度厂区物业能耗监测与合同
- 二零二五年度环保技术咨询服务合同
- 2025版豪华轿车抵押担保交易合同
- 鸵鸟养殖场管理制度
- 小学生自信成长的课件
- 设计院培训管理制度
- 2025年甘肃省武威市民勤县西渠镇人民政府选聘专业化管理村文书笔试参考题库及1套完整答案详解
- JG/T 446-2014建筑用蓄光型发光涂料
- 博弈论在社会生活中的实际应用与案例分析
- 儿童陪伴师傅合同协议书
- 工地意外死亡赔偿协议书6篇
- 自体动静脉内瘘围手术期管理专家共识2023版解读课件
- 《大脑解剖及神经网络》课件
- 医药企业的数字化转型与营销创新策略研究报告
评论
0/150
提交评论