程序vb基础教程

vb基础教程  时间:2021-04-05  阅读:()
32第5章程序设计基础5.
1程序设计与问题求解5.
1.
1程序和程序设计要用计算进行问题求解,首先得对问题进行分析,将复杂问题分解后变成由多个简单的部分组成,而每个部分都要能够最终分解为一系列最基本的步骤,这是一个抽象的过程,而这一系列的基本步骤,就被称为程序.
1.
日常生活中的程序日常生活中的程序通常指完成某项事务的一套既定的活动方式或者活动过程.
我们可以把程序定义为对一系列动作的执行过程的描述.
在日常生活中可以找到许多"程序"的实例.
例如:一个忙碌的早起活动可以简单的描述为:这是一个顺序执行的程序,由一系列简单的基本步骤组成,这就是最简单的程序形式.
所以说描述一个程序,就是写出包含其中所有的基本步骤的一个执行序列.
如果按序列制定的顺序执行这些基本步骤要求的基本动作,就完成了一个独立的功能或工作.
当然,并不是所有的事情的处理都如此简单,下面我们来考虑一个复杂些的过程:到图书馆借书,这一过程可以描述为:1.
起床2.
洗漱3.
吃饭4.
梳妆5.
出门1.
进入图书馆2.
查找书目3.
此时有两种查找结果3.
1如果该书找到并在架上到指点书架位置去取书,转第(4)步,借书3.
2如果该书已借出,可有两种选择3.
2.
1回到第2步,查找其它书籍3.
3.
2转第5步,离开图书馆4.
办理借书手续5.
离开图书馆33这个程序就比前一个要复杂的多,其中包含了对不同情况做出不同的选择,查找书目有可能找到,也有可能找不到;还包含了部分动作的重复,如查找书目的动作,在没有找到预期的参考书时可能做多次.
再仔细考虑这个程序序列的每一个基本步骤,可以认识到这一程序还可能要进一步细化.
因为其中可能还包含很多未考虑到的因素.
譬如说,查找书目时看到参考书在架上,但实际去书架上取书时,却没有找到;查找书目时找到了参考书,却已借出,可以进行预约登记;借书时,图书馆管理人员发现读者的借书权限被限制,可能是有超期未还的书,也可能是已借书的数量达到了限额.
在程序描述中所包含的基本步骤必须是程序的执行者可以理解和直接完成的基本动作.
如果所写出的步骤程序的执行者不能直接完成,该步骤则将面临进一步的细化,这又叫功能分解.
功能分解或称逐步细化的过程是计算机程序设计中最本质的东西.
譬如到图书馆借书的示例中,如果是一个新生,他对在图书馆查找书目的方法也许就不那么清楚,"查找书目"就不能作为一个可执行的基本动作,需要进一步细化如下.
由这些例子,可以初步得到一些程序的直观特征:程序是一个包含各个基本步骤细节描述的序列.
每一个基本步骤都必须明确定义,可以执行.
按照顺序实施这些步骤能够完成该项工作.
有开始点,有结束点.
我们将在随后讨论的计算机程序同样具有以上这些特征.
2.
计算机程序和程序设计计算机的基本功能是可以执行一组基本操作,每个操作完成一件很简单的工作.
例如:做一次整数的加减运算把一个数搬到一个存储空间比较两个数的大小计算机能完成的一个动作对应一条指令,每一类计算机提供一套指令集,程序是一系列指令的集合.
计算机按照程序工作,一个程序就是计算机能执行的基本动作构成的一个序列.
为了让计算机帮助我们解决问题,我们需要先分析问题,并提出解决问题的步骤,即设计程序,然后用计算机能够理解的语言,将我们设计的程序表达出来,使计算机能够自动地执行.
计算机的机器特性决定了计算机执行程序时的准确性和严格性,计算机在执行程序的时候没有一丝商量的余地,一个程序的执行,同样的输入必然得到同样的结果.
人们描述(编制)计算机程序的工作被称为程序设计或者编程.
由于计算机的工作原理,从计算机诞生起就有程序设计工作.
计算机是通用的计算机器,给了它专业的程序后,它就能处理专门的问题.
运行不同的程序,它可以处理不同的问题.
这种通用型和专用性的统一就构成了计算机的强大威力.
一1.
上网进入图书馆首页的书目检索系统1.
1打开浏览器1.
2在地址栏输入图书馆的网址2.
在首页点击书目检索系统的链接3.
输入要检索的书籍的信息4.
从列出的搜索结果中选择34方面作为通用的机器,生产机器的厂家可以按通用的标准大批量的生产;另一方面,各个领域的软件生产商开发出适用于本领域的各类专业的程序软件;一台计算机可安装各种程序,运行各种程序,处理不同的问题.
这是一种全社会化的合作,从而在近半个世纪彻底改变了人们的生活方式、工作方式,各行各业的生产模式和管理模式.
目前,正在使用的计算机没有多少种,而正是数量繁多、功能五花八门的程序给了计算机无穷无尽的"生命力".
5.
1.
2语言和程序设计语言1.
语言和程序设计语言前面提到计算机可以完成的基本动作就是指令,计算机提供一套指令集是非常有限的,仅仅是一些加法、移动、比较等算术逻辑操作.
要完成类似图书馆借书这样的复杂功能,需要十分复杂的程序,精确地描述执行所有动作的细节过程,不能有一点错误和含糊不清的地方.
为了说明这一细节过程,需要有一种恰当的描述方式,一套系统的描述方式就构成了一种语言.
语言通常是人们在日常生活中使用的自然语言,如中文和英文,还有上海话和广东话等,自然语言是人们之间交流信息的工具和媒介,人们进行交流时,通常使用同一种语言.
如果一个只会说中文,一个只会说英文,就是我们常说的鸡同鸭讲,也就是说交流的双方应使用相同的,能够互相理解的语言.
我们写程序,就是为了与计算机交流,指挥计算机工作,那程序描述的方式就是程序设计语言.
程序设计语言的特殊之处在于:它是人与计算机交流的方式,既要人感觉用起来方便,计算机也要能处理;人能懂得和掌握它,能用它来描述计算过程;计算机能懂得它,按程序语言给出的关于计算过程的描述去行动,完成计算工作.
但是问题在于,计算机和人之间如何来寻找交流的共同方式2.
机器语言计算机内部,一切信息都以二进制编码形式存在.
计算机可以直接执行的二进制程序形式,称为机器语言程序.
最早的机器语言出现在1945年,直接使用二进制代码即0和1编制程序.
例如:要使0001000和00010001两个存储单元中的数的相加,最后结果存放在00010001单元中,指令代码序列可以排列为:10011100000000000000000110001010000001000100011000010000000001001000100000000100这样的一个数字序列既便是对于一个专门使用机器语言编程的程序员来说,也是难以记忆和识别的.
而且不同类型的计算机由于机器特性不同,所使用的指令集也是不同的,直接使用二进制指令来编写程序是一项无法接受的繁琐工作,因此我们称机器语言是一种低级语言.
353.
汇编语言在50年代中期,人们采用了助忆符来替代复杂的二进制代码指令和操作数来编写程序,称为汇编语言.
汇编语言采用了助忆符来表示常用的指令,每条指令对应一条机器语言指令,存储单元也用符号形式的名字表示.
符号形式,使用相对容易一些.
例如用ADD表示加法,SUB表示减法,MOV表示移位,INC表示自增1.
如果用汇编语言来表现上述两数相加的过程就简练多了:MOVSI,0100MOVAL,[SI]INCADD[SI],ALMOV[SI],AL汇编语言程序需要专门的软件加工,翻译成二进制机器指令后才能送给计算机去执行.
汇编语言仅仅是采用了英文缩写的助忆符对应每一条指令,这样的一条指令只能对应实际操作过程中的一个很微小的操作,如加法,减法,移位等,因此汇编程序非常冗长,容易出错.
另一方面它是面向机器的,指令直接涉及到寄存器、端口等硬件,这就需要程序员掌握机器的硬件、操作系统的核心等计算机的低层知识,而且汇编语言的面向机器还表现在不同的机器有各自不同的汇编语言集,如Z80汇编,8086/8085汇编,这都给汇编语言的学习和掌握带来了难度.
4.
高级语言随着计算机的普及,60年代中期出现的高级语言,使程序语言更接近人的语言,被称为高级语言.
1954年产生了第一个高级语言FORTRAN,具有以下特征:全符号化的描述方式类似数学表达式的形式描述数据的计算提供有类型的变量提供流程控制:循环/子程序易分解,易阅读,易改错随后出现的高级语言都延续着这些特点,在各自的应用领域中进一步改进.
例如用C语言完成上面的加法运算就更容易理解了:intx=6,y=7;x=x+y;与汇编语言相比,高级语言独立于机器,表达方式更接近于被描述的问题,而不需要去关心与机器相关的实现细节.
它将许多相关的机器指令合成单条指令,而且去掉了与具体操作有关但与被描述的问题无关的细节,程序员可以较少地去学习计算机的低层知识.
但是与汇编语言一样,高级语言程序需要专门的软件加工,翻译成二进制机器指令后才能送给计算机去执行.
5.
高级语言的翻译——编译与解释计算机无法读懂高级语言的接近人类语言的形式化的描述语句,必须把高级语言程序转36化为计算机所能执行的机器指令.
完成这一任务的专门软件称为高级语言系统,也常被称为高级语言的翻译程序.
人们在定义好一个程序语言之后,必须开发一套使该语言能转换为计算机可执行代码的软件.
高级语言的翻译程序分为两类,分别是编译程序和解释程序.
使用编译程序的高级语言,在执行程序之前,将程序源代码编译连接生成可执行程序,文件后缀名为.
exe,可执行程序可以脱离语言环境独立执行,但是程序源代码一旦修改,必须再重新编译、连接,生成可执行文件,再运行.
现在大多数编程语言都是编译型的,例如C/C++,JAVA等.
如果说使用"编译程序"翻译得到机器语言的过程好比是译制片的生产过程,那么使用"解释程序"的高级语言,翻译方式类似于日常生活中的"同声翻译".
应用程序源代码一边由解释器"翻译"成目标代码,一边执行,因而它的执行效率较低,不能生成可执行程序,不能脱离解释器,只能在语言环境中执行程序.
但它修改方便,可以随时修改随时运行,例如:网页的脚本程序就是解释执行的.
6.
程序语言开发环境程序语言开发环境是指能够支持应用程序的编辑、编译、测试和查错功能的软件集合.
一个小程序的高级语言的描述,通常称为源程序,源程序文件通常为文本文件,理论上可以使用文本编辑器来进行编写,再独立地执行翻译程序后执行.
但如果是开发大项目,将编辑、编译、测试和查错功能分离完成就很不方便,效率过低,大多数编程语言开发厂商为了方便程序员的开发,都提供了各自的集成开发平台.
例如微软的visualstuido可以提供微软旗下C#、C++、VB,ASP.
Net等语言的开发,Java语言可以在Eclips下开发,python语言2.
5版本以上提供了IDLE(pythonGUI)和CommandLine支持程序文件的开发.
5.
1.
3问题求解和程序的开发过程1.
问题和问题求解(1)什么是问题对于什么是问题,有两个关键的属性必须把握:其一,问题是指在一定情境中某种未知的实体/东西.
(亦即现存状态和目标状态之间的差异).
问题情境千差万别,从算术问题到复杂的社会问题,如校园暴力问题.
其二,发现/解决这种未知需要社会、文化或智能价值.
即人们认为对该未知事物的发现是值得的.
如果人们认为事物并不是未知事物或者没有将其作为未知事物的必要,我们就认为其不是问题.
发现未知就是问题解决的过程.
(2)什么是问题求解问题求解是指"任何有目标导向的认知操作程序".
对这种操作必须把握两个关键的属性:其一,问题求解需要现实情境的知识表征.
亦即,问题解决者需要建构问题的问题空间,也称为心智构建.
关于问题构建的所涉及的知识表征,包括结构性知识、程序性知识、反思性知识、系统的比喻和隐喻、执行性和策略性知识.
对问题空间的心智构建,是问题求解活动中最重要/关键的因素.
37其二,问题求解需要基于活动的问题空间操作,亦即对象化的活动.
思维是内化的活动,意识产生于活动,因此,需要在知识和活动之间建立起相互调谐的反馈机制.
问题求解需要对问题空间进行操作——或为内在的心智表征,或为外在的物理表征.
2.
一般问题求解过程问题求解是日常生活和专业工作领域中最重要的认知活动.
我们每个人在日常生活或者在专业工作领域中,通常是离不开问题求解活动的.
在日常生活中我们会碰到很多的问题面对不断的思考和选择,例如:周日想要好好的放松放松,是在家打游戏,还是出门看电影,或者找三五个好友打一场球在专业工作领域中我们更是要思考工作的细节问题,例如作为一名教师接到教授程序设计的教学任务,那如何组织教学,才能激起学生的学习兴趣,帮助学生高效学习,是教师面临的需要解决的问题.
解决问题的方法和过程是多种多样的,但问题求解的信息处理模式有着相似之处.
在过去的三十年,学者们对问题求解的信息处理模式进行了许多研究,基克(M.
L.
Gick)在1986年提出了一个问题求解过程的简化模式,如图5-1-1所示.
图5-1-1问题求解过程的简化模式问题:今年,莫言讲述的围绕着饥饿和吃的故事获取了诺贝尔文学奖,而高速发展的中国如今最热门的社会话题却是减肥,成功人士同时成为了"三高"人士,年轻的女孩追求着"骨感",幼儿园的小胖子越来越多.
你如果想在新的学期里,也让自己减少些重量,该怎么办呢(1)理解与表征问题很多问题没有解决好,很大程度上是在任务的开始没有明确问题.
问题没有明确,就无从下手或者谬之千里.
例如,制定减肥计划,首先要清楚谁在减肥,减肥的目标是什么.
不同的人群身体状态不同,减肥要解决的问题不同,目标也截然不同.
对于处于青春期的学生,特点是基本还没有身体的疾病,减肥的目标是减去多余脂肪,化脂肪为肌肉,获得更健康的体形.
这样可以把问题明确定义为"我要在多少天内减去多少体重".
(2)寻求解答寻求解答的过程就是根据设定的问题,去研究问题所涉及的专业知识,寻求解决问题的方法,制定出详细的可以明确执行的问题解决方案,问题解决方案通常是由详细明确的特定的步骤构成.
减肥的目标设定好了,就要去了解一些与问题解决相关的问题.
例如,与身高相匹配的健康的体重是多少,需要减去多少体重分析自己引起体重超标的原因是什么,是饮食结构不合理还是多睡了没有足够的锻炼,还是其它一些因素针对自己的问题,去查阅减轻体重的科学方法,例如食物的特性,不同体育项目的锻炼作用,然后再根据自己的实际情况,可承受的程度,设定具体的步骤,制定全方位的减肥计划.
减肥计划要具体明确,每一个细节都是可以按部就班地执行.
例如落实到每一天的三餐的菜单,每一天锻炼的项目和运动量,整个计划需要的天数等等.
如果没有详细的分析和研究,只是道听途说地盲目减肥,例如吃药,绝食,不但达不到减肥的目的,甚至会伤害自己的身体.
理解与表征问题寻求解答尝试解答评价38(3)尝试解答尝试解答就是根据问题解决方案的步骤执行,解决问题.
制定好减肥计划后,要严格按计划执行,并记录好自己每天执行的情况,吃了什么,喝了什么,跑步跑了多少公里,游泳游了多少米,仰卧起坐作了几个等等.
(4)评价通过执行方案,检查它的结果是否正确,效果是否令人满意.
例如,一段时间的减肥计划执行后,你要评价你的计划制定是否有效.
体重有没有减少,减少的程度如何.
如果你对减肥的效果不满意,那要重新分析计划中的各个项目,修改计划,甚至重新制定解决问题的方法步骤.
3.
使用计算机的问题求解过程显然计算机不是万能的,不是什么问题都能解决.
首先,不是所有的问题都可以通过特定的步骤得到解决,有些问题甚至人类还没有找到解决的方法,在不断地探索中.
其次,有些问题的解决不能通过直观明确的步骤来解决,必须有相应的知识和经验,经过不断地尝试和失败才能达到最终目的,我们把这一类问题成为启发性问题.
例如预测问题,到2014年1月,上海的房价比2013年1月的房价是上涨还是下跌经济学家只能通过各种计算模型进行预测,但不能有一个特定的步骤来决定.
启发性问题不适合使用计算机的求解.
计算机能解决的是人们能想出处理方法的问题,即主要用来处理可计算的算法问题.
关于使用计算机的问题求解过程的描述有很多种,笼统地可归纳为:分析问题、算法设计、编制程序和调试运行(1)分析问题问题分析的过程包括问题的定义和问题的解决方案.
将问题陈述清楚,目标是消除不必要的因素.
影响一个问题求解的因素有很多种,如果考虑的因素过多,问题的求解就过于复杂而难以控制.
求解一个实际问题的时候,应该认识到我们只能是寻找该问题的一个模型的解,所谓的模型就是实际问题的一个简化,寻找问题的模型就是问题的定义.
最后那些被确定下来对求解有影响的因素就是求解问题的已知信息,并在此基础上明确需要达到的目标.
问题定义就是指明确解决问题需要考虑的已知信息,和需要达到的目标.
如同数学中解答应用题时,阅读题目之后要明确(1)已知什么(2)求什么.
问题的解决方案顾名思义就是找到根据已知条件,寻求结果的方法和途径.
可与数学解题中的解题思路相类比.
(2)算法设计问题定义好了就要思考求解的方法或具体的步骤,即算法设计.
计算机算法是程序的灵魂,简单地说,算法就是解决问题所需的有限步骤.
算法的每一个步骤都应该是明确定义、可以执行的,而且每个步骤的执行顺序是确定的,并且能够在有限步骤内执行完毕.
但并不是所有的步骤都能称为算法,下面的例子就不是算法:【例5-1-1】求奇数的平均值.
1.
建立一张所有奇数的列表;2.
计算它们的和;3.
计算它们的平均值;4.
打印平均值.
39奇数序列是一个无穷序列,步骤(1)(2)(3)都是不可行的,所以例5-1-1不能称为算法.
下面的例子是一个正确的算法:【例5-1-2】求书中的每个句子中包含单词的平均值.
在这个例子中输入一本书中的所有句子,输出平均每个句子包含的单词数.
算法一共包含4步,每一步都是明确定义可以实现的,输出结果后算法结束.
但例5-1-2还不能称为计算机算法,计算机算法中的每一步骤都可对应程序语句实现,而例5-1-2中的每一步如何实现并不明确.
在程序设计中,计算机要解决的问题都必须能够使用明确的有限的步骤描述,在有限时间内执行完毕.
【例5-1-3】求三个数中的最大值的算法.
例5-1-3的算法是一个正确的计算机算法,通过4步可求得3个数中的最大值,每一步都能使用高级语言提供的程序语句实现.
通常解决问题的途径并不是唯一的,例如设计一个算法,描述从校园到机场的步骤.
由于从校园到机场有很多路线,并且可以使用不同的交通工具,所以可以写出很多种的算法.
计算机解决一个问题的算法同样不是唯一的,恰恰相反,很多步骤和思路完全不同的算法可以解决相同的问题.
但编程问题的最基本的算法可归结为:(3)编制程序算法确定后就要选用一门计算机所能理解的语言来"实现"算法,这就是程序编码,编码是将算法转化为程序的过程.
首先确定数据的存储方式,也就是确定数据的数据类型,数据包括已知信息的数据和待求结果的数据;然后依照算法完成功能的实现语句.
编写的语句以文件的形式组织,称为程序文件,编写语句要符合程序语言的语法规则,通过翻译程序可以检查错误并予以改正.
(4)调试运行程序的编写不是一帆风顺的,从编写到生成一个正确的程序代码的过程中会碰到这样和1.
列出一本书中所有的句子;2.
计算所有句子中的单词总数;3.
计算句子的总数;4.
打印每个句子包含单词的平均数.
1.
输入三个正整数a,b,c;2.
如果a大于b,则将a的值赋给max,否则将b的值赋给max;3.
如果c大于max,则将c的值赋给max;4.
打印"最大值为"max.
1.
获得数据;2.
执行计算;3.
显示结果.
40那样的错误.
程序错误可区分为语法错误和逻辑错误.
a.
语法错误语法错误,是指不符合高级语言定义的语法书写规则,编译或解释程序能自动检查出语法错误,只需根据错误提示进行修改.
例如,双引号或单引号是每个字符串的标志,字符串前后没有加配套的引号或引号不完整就是语法错误.
例如,输出函数print是标准输入输出库中提供的外部程序,当函数名拼写错误时,找不到该函数,便产生一个连接错误.
b.
逻辑错误逻辑错误则是程序设计上或逻辑上的错误,指可以运行,但运行出错或不能得到正确的结果,这可能是由于算法中问题说明不足,解法不完整或不正确所造成的.
逻辑错误的测试需要事先准备好测试数据,测试数据是指一组输入及对应的正确输出,又称为测试用例.
测试数据的设计直接关系到能不能测试出程序可能包含的错误.
例如:一个程序中需要用到除法,除数是用户输入的,但没有提示用户不能输入0,当用户输入0后,这个程序便出现了逻辑错误.
5.
2可视化编程介绍5.
2.
1流程图简介用自然语言描述算法具有叙述较繁琐、易出现"歧义性"等缺点.
因此,可以借助流程图更直观地描述算法.
流程图是计算机算法的直观表示,而算法是一个程序的灵魂.
学习流程图是学习任何计算机程序语言的基础,熟悉了流程图,学习计算机语言就很容易.
以特定的图形符号加上说明,表示算法的图,称为流程图或框图.
流程图一般包括:开始与结束框、输入/输出图框、处理框图、分支图框和流程线等,如图5-2-1所示.
图5-2-2列出了一个流程图示例,程序从开始框运行,沿流程线箭头方向运行,终止于结束框.
图5-2-1常见流程图符号图图5-2-2流程图示例415.
2.
2Raptor简介Raptor是一个基于流程图的可视化编程开发环境.
流程图是一系列相互连接的图形符号的集合,其中每个符号代表要执行的特定类型的指令.
符号之间的连接决定了指令的执行顺序.
一旦开始使用Raptor解决问题,这样的理念将会变得更加清晰.
使用Raptor基于以下几个原因:Raptor开发环境在最大限度地减少语法要求的情形下,帮助用户编写正确的程序指令.
Raptor开发环境是可视化的.
Raptor程序实际上是一种有向图,可以一次执行一个图形符号,以便帮助用户跟踪Raptor程序的指令流执行过程.
Raptor是为易用性而设计的(用户可用它与其他任何的编程开发环境进行复杂性比较).
Raptor所设计的报错消息更容易为初学者理解.
使用Raptor的目的是进行算法设计和运行验证,不需要重量级编程语言,如C++或Java.
Raptor界面如图5-2-3所示.
图5-2-3Raptor界面Raptor程序是一组连接的符号,表示要执行的一系列动作.
符号间的连接箭头确定所有操作的执行顺序.
Raptor程序执行时,从开始(Start)符号起步,并按照箭头所指方向执行程序.
Raptor程序执行到的结束(End)符号时停止.
最小的Raptor程序(什么也不做),如图5-2-4所示.
在开始和结束的符号之间插入一系列Raptor语句/符号,就可以创建有意义的Raptor程序.
Raptor有六种基本符号,每个符号代表一个独特的指令类型:赋值(assignment)、调用(Call)、输入(Input)、输出(Output)、选择(Selection)和循环(Loop),如图5-2-5所示.
图5-2-4开始和结束符号42图5-2-5Raptor六种基本符号5.
2.
3变量及数据类型变量表示的是计算机内存中的位置,用于保存数据值.
在任何时候,一个变量只能容纳一个值.
然而,在程序执行过程中,变量的值可以改变.
这就是为什么他们被称为为"变量"的原因!
作为一个例子,研究名为X的变量值的变化过程,如表5-2-1所示.
表5-2-6名为X的变量值的变化过程在上例程序的执行中,变量X存储过三个不同的值.
请注意,在一个程序中的语句顺序是非常重要的.
如果重新排列这三个赋值语句,存储在X中的值则会有所不同.
一个变量值的设置(或改变)可以采取以下三种方式之一:用一个输入语句赋值.
通过赋值语句的中的公式计算赋值.
通过从一个过程调用的返回值赋值.
顾名思义,变量数据值的变化导致程序每次执行的结果可以不同.
程序员应给予所有的变量有意义的和具有描述性的名称.
变量名应该与该变量在程序中43的作用有关.
变量名必须以字母开头,可以包含字母、数字、下划线(但不可以有空格或其他特殊字符).
如果一个变量名中包含多个单词,两个单词间用下划线字符分隔,这样变量名则更具有可读性.
表5-2-2显示了一些好的、差的和非法的变量名的例子.
表5-2-2变量名实例Raptor程序开始执行时,没有变量存在.
当Raptor遇到一个新的变量名,它会自动创建一个新的内存位置并将该变量的名称与该位置相关联.
在程序执行过程中,该变量将一直存在,直到程序终止.
当一个新的变量创建时,其初始值将决定该变量将存储数值数据或文本数据.
这就是所谓的变量的数据类型.
一个变量的数据类型在程序执行期间不能更改的.
总之,变量自动创建时,Raptor可以在其中保存:数值(Numbers),例如:1,55,-4,3.
1415.
字符串(Strings),例如:"Hello,howareyou","JamesBond".
5.
2.
4基本语句本节将介绍输入(Input)、赋值(Assignment)、调用(Call)和输出(output)这四个基本语句.
表5-2-3列出了这四种语句的基本说明.
表5-2-3四种基本指令说明1.
输入(Input)输入语句/符号允许用户在程序执行过程中输入程序变量的数据值.
这里最为重要的是,必须让用户必须明白这里程序需要什么类型的数据值.
因此,当定义一个输入语句时,一定要在提示(Prompt)文本中说明所需要的输入.
提示应尽可能明确.
图5-2-6为输入语句的编辑(Edit)对话框,图5-2-7为完成编辑的输入语句.
44图5-2-6输入语句的编辑(Edit)对话框图5-2-7完成编辑的输入语句当定义一个输入语句时,用户必须指定两件事:一是提示文本,二是变量名称,该变量的值将在程序运行时由用户输入.
使用表达式提示(Expressionprompt)可以将文本与变量进行组合成输入提示,如:"Enteranumberbetween"+low+"and"+high+":".
输入语句在运行时,将显示一个输入对话框,如图5-2-8所示.
图5-2-8输入语句的运行时(run-time)对话框在用户输入一个值,并按下ENTER键(或点击OK),用户输入值由输入语句赋给变量.
2.
赋值(Assignment)赋值符号是用于执行计算,然后将其结果存储在变量中.
赋值语句的定义如图5-2-9所示.
需要赋值的变量名须输入到"Set"字段,需要执行的计算输入到"to"字段.
图5-2-10为完成编辑的赋值语句45图5-2-9赋值语句的编辑对话框图5-2-10完成编辑的赋值语句一个赋值语句只能改变一个变量的值,也就是箭头左边所指的变量.
如果这个变量在先前的语句中未曾出现过,则Raptor会创建一个新的变量.
如果这个变量在先前的语句已经出现,那么先前的值就将为目前所执行的计算所得的值所取代.
而位于箭头右侧(即表达式)中的变量的值则不会被赋值语句改变.
一个赋值语句中的表达式(或计算)的可以是任何计算单个值的简单或复杂的公式.
表达式是值(无论是常量或变量)和运算符的组合.
请仔细研究以下构建有效表达式的规则.
一台计算机只能一次执行一个操作.
当一个表达式进行计算时,方程的运算并不是象用户输入时那样,按从左到右的优先顺序进行.
实际的运算的执行顺序,是按照预先定义"优先顺序"进行的.
例如,考虑下面的两个例子:(1)x←(3+9)/3(2)x←3+(9/3)在第(1)种情况中,变量x被赋的值为4.
而在第(2)种情况下,变量x被赋的值为6.
从这些例子中可以看到,可以随时使用括号明确地控制值和运算符的分组,一般性的"优先顺序"为:计算的所有函数(function).
计算括号中表达式.
计算乘幂(^,**).
从左到右,计算乘法和除法.
从左到右,计算加法和减法.
运算符或函数指示计算机对一些数据执行计算.
运算符须放在操作数据之间(如X/3),而函数使用括号来表示正在操作的数据(例如:SQRT(4.
7)).
在执行时,运算符和函数执行各自的计算,并返回其结果.
表5-2-4简要介绍了这些内置的运算符和函数.
表5-2-4内置的运算符和函数简介.
46在赋值语句中的表达式的运行结果必须是一个数值或一个文本字符串.
大部分表达式用于计算的数值,但也可以用加号(+)进行简单的文字处理,把两个或两个以上的文本字符串的合并成为单个字符串.
用户还可以将字符串和数值变量组合成一个单一的字符串.
下面的例子显示赋值语句的字符串操作.
Full_name←"Joe"+"Alexander"+"Smith"Answer←"Theaverageis"+(Total/Number)Raptor定义了几个符号表示常用的常量.
当用户需要在计算其相应的值,应该使用这些常数的符号.
如,pi定义为3.
1416,e定义为2.
7183.
3.
调用(Call)一个过程是一个编程语句的命名集合,用以完成某项任务.
调用过程时,首先暂停当前程序的执行,然后执行过程中的程序指令,然后在先前暂停的程序的下一语句恢复执行原来的程序.
要正确使用过程,用户需要知道两件事情:过程的名称和完成任务所需要的数据值(也就是所谓的参数).
Raptor设计中,为尽量减少用户的记忆负担,在过程调用的编辑对话框"EnterCall"中,会随用户的输入,按部分匹配原则,"EnterCall"对话框中按用户输入过程的名称进行提示,这对减少输入错误大有裨益.
例如,输入字母"d"后,窗口的下部会列出所有以字母"D"开头的内置的过程.
该列表还提醒每个过程所需的参数.
如图5-2-11所列,"Draw_Line"47过程需要5个数据值:线段的起始位置的X和Y坐标(X1和Y1)、结束位置的X和Y坐标(X2和Y2)以及线段的颜色.
过程调用时的参数值的顺序必须与过程定义参数一致.
例如,Draw_Line(blue,3,5,100,200)将产生一个错误,因为该线段的颜色必须在参数列表中的最后一个参数值位置上.
图5-2-11调用过程编辑对话框图5-2-12过程调用的例子当一个过程调用显示在Raptor程序中时,可以看到被调用的过程名称和参数值.
如图5-2-12所示,第一个过程调用执行时,它会画一条从点(1,1)到点(100,200)红线.
第二个过程调用时,也将画一条线,但由于参数是变量,该线段的确切位置只有在程序执行到所有的参数变量有值后才能知道.
Raptor定义了较多的内置过程,无法在此一一说明.
在必要时,可以参考Raptor帮助中的所有内置过程的文档.
4.
输出(output)Raptor环境中,执行输出语句将导致程序执行时,在主控(MasterConsole)窗口显示输出结果.
当定义一个输出语句,"EnterOutputHere"对话框,要求用户指定两件事:要如何显示什么样的文字或表达式结果.
是否需要在输出结束时输出一个换行符.
输出编辑对话框如图5-2-13所示.
可在"EnterOutputHere"对话框中填写需要输出的文本,也可以使用字符串加号(+)运算符将文本字符串与两个或多个值构成一个单一的输出语句.
必须将任何文本包含在引号("")中以区分文本和计算值,引号不会显示在输出窗口.
图5-2-14列出了一个根据用户输入的半径,计算圆面积的程序,执行输出语句将在主控窗口显示输出结果,如图5-2-15所示.
48图5-2-13输出编辑对话框图5-2-14计算圆面积的程序示例图5-2-15运行结果输出示例需要注意,应该显示一些说明性文本解释任何输出在MasterConsole窗口的数字.
图5-2-16分别展示了一个"非用户友好的输出"和一个"用户友好的输出"的例子.
图5-2-16两个输出语句的比较5.
2.
5控制结构编程的最重要工作之一是控制的语句的执行流程.
控制结构/控制语句使程序员,可以确定程序语句的执行顺序.
这些控制结构可以做两件事:跳过某些语句而执行的其他语句.
条件为真时重复执行一条或多条语句.
Raptor程序使用的语句有六种基本类型,前文已经介绍了其中的四个.
本节介绍选择(Selection)和循环(Loop)命令.
1.
顺序控制前文所述的大部分案例使用顺序控制.
顺序逻辑是最简单的程序构造.
本质上,就是把每个语句按顺序排列,程序执行时,从开始(Start)语句顺序执行到结束(End)语句.
如图495-2-17的示例程序,箭头连接的语句描绘了执行流程.
图5-2-18为该示例程序运行结果.
图5-2-17顺序控制示例程序图5-2-18顺序控制示例程序运行结果图5-2-17的示例程序中使用了注释用来帮助他人理解程序.
Raptor的开发环境,像其他许多编程语言一样,允许对程序进行注释.
注释用来帮助他人理解程序,特别是程序代码比较复杂、很难理解情况下.
注释本身对计算机毫无意义,并不会被执行.
然而,如果注释得当,可以使程序更容易理解为他人理解.
要为某个语句中添加注释,用户鼠标右键单击相关的语句符号,然后选择"EnterComment",然后进入"EnterComment"对话框.
注释可以在Raptor窗口被移动,但建议不需要移动注释的默认位置,以防在需要更改时,引起错位和寻找的麻烦.
程序员为解决问题,必须确定创建一个问题的解决方案需要那些语句,以及语句的执行顺序.
编写正确的语句是一个任务,同样重要的是确定语句在程序的何处放置.
例如,当要获取和处理来自用户的数据时,必须先取得数据,然后才可以使用.
如果交换一下这些语句的顺序,则程序根本无法执行.
顺序控制是一种"默认"的控制,在这个意义上,流程图中的每个语句自动指向下一个.
顺序控制是如此简单,除了把语句按顺序排列,不需要做任何额外的工作.
然而,仅仅使用顺序控制,是无法开发真正针对现实世界的问题解决方案.
真实的世界中的问题包括了各种"条件",并以此来确定下一步应该怎样做.
例如,"如果熄灯号响了,就必须把灯熄了",是基于一天的某个时间点所做出的决定.
这里的"条件"(即当前时间)确定的了某个行动(熄灯)是否应执行或不执行.
这就是所谓的"选择控制".
502.
选择控制一般情况下,程序需要根据数据的一些条件来决定是否应执行某些语句.
选择控制语句可以使程序根据数据的当前状态,选择两种可选择的路径中的一条来执行下一条语句.
如图5-2-19所示,Raptor的选择控制语句,呈现出一个菱形的符号,用"Yes/No"表示对问题的决策结果以及决策后程序语句执行指向.
当程序执行时,如果决策的结果是"Yes"(True),则执行左侧分支.
如果结果是"No"(False),则执行右侧分支.
另外还要注意选择控制语句的两个路径之一可能是空的,或包含多条语句.
如果两个路径同时为空或包含完全有相同的语句,则是不合适的.
因为无论选择决策的结果如何,对程序的过程都没有影响.
选择控制语句需要一个表达式来得到"Yes/No"(True/False)的评估值.
决策表达式是一组值(常量或变量)和运算符的结合.
请仔细研究以下规则,以便构建有效的决策表达式.
在赋值语句表达式的讨论中曾经提到,计算机只能一次执行一个操作.
决策表达式求值时,表达式的运算也不会按输入的顺序由左到右.
相反,它是根据预定义的"优先顺序"的基础上执行运算.
不同的运算执行顺序,可以产生完全不同的结果.
通过括号,可以显式控制值和运算符的分组,从而控制运算的顺序.
由于决策表达式可以包含在赋值语句中类似的计算,以下的"优先顺序"也必须包括赋值语句表达式中的运算符.
决策表达式的运算"优先顺序"如下:计算的所有函数计算括号中的所有表达式计算乘幂(^,**)从左到右,计算乘法和除法从左到右,计算加法和减法从左到右,进行关系运算(从左到右,进行not逻辑运算从左到右,进行and逻辑运算,从左到右,进行xor逻辑运算从左到右,进行or逻辑运算表5-2-15对决策表达式中的运算符进行了说明.
表5-2-15决策表达式中的运算符图5-2-19选择控制结构51编程实例:上海实行阶梯电价:年基本用电:0—3120度,单价0.
617;年正常合理用电:3120—4800度,单价0.
677;年高生活质量用电:4800度以上部分,单价0.
917.
请根据输入年累计用电量,计算年总电费.
年累计用电量:变量consumption年总电费:变量total在Raptor中的编程实例如图5-2-20所示.
图5-2-20编程实例523.
循环控制一个循环(迭代)控制语句允许重复执行一个或多个语句,直到某些条件变为True.
这种类型的控制语句使得计算机真正的价值所在,因为计算机可以重复执行无数相同的而不会厌烦.
在Raptor中一个椭圆和一个菱形符号被用来表示一个循环的.
循环执行的次数,由菱形符号中的表达式来控制.
在执行过程中,菱形符号中的表达式结果为"No",则执行"No"的分支,这将导致循环语句和重复.
要重复执行的语句可以放在菱形符号上方或下方.
为了准确地了解一个循环语句,请参考图5-2-21的例子,并注意以下情况:Statement1在循环开始之前执行.
Statement2至少被执行一次,因为该语句处在决策语句之前.
如果决策表达式的计算结果为"yes",则循环终止和控制传递给Statement4.
如果决策表达式计算结果为"No",然后控制传递Statement3和Statement3依次执行后控制返回到Loop语句并重新开始循环.
请注意,Statement2至少保证执行一次.
而Statement3可能是永远不会执行.
图5-2-21的例子中,"Statement2"是可以去掉的,这意味着循环的第一条语句将是"Decision"(决策)语句.
"Statement2"也可以是有多个语句形成的区块.
在这两种情况下,循环以同样的方式执行.
同样,"Statement3"也可以删除或由多个语句取代.
此外,在"Decision"上方或下方,可以是另一个循环语句.
如果一个循环语句在一个循环内出现,被称为"嵌套循环".
"Decision"的语句有可能无法运算出为"YES",在这种情况下,就会出现永远不停止的"无限循环".
一旦发生这种情况,用户只能选择Raptor工具栏上的"停止"图标,手动停止程序.
在程序设计时,应尽量避免这种情况,因此在循环中的语句必须变更出现在"Decision"中的变量,使之最后可以运算得到"YES".
编程实例:用户输入学生数量,然后依次输入学生成绩,计算平均成绩.
学生数量:变量number学生成绩:变量score总成绩:变量sum平均成绩:变量average=sum/number变量i:循环控制变量在Raptor中的编程实例如图5-2-22所示.
53图5-2-21循环控制结构图5-2-22编程实例编写循环程序时,需要注意循环变量的初值、循环条件和循环变量的改变,这三点被称为是循环的三要素.
图5-2-23列出了编程实例中的循环三要素.
(a)循环变量的初值(b)循环条件(c)循环变量的改变图5-2-23编程实例中的循环三要素

EtherNetservers年付仅10美元,美国洛杉矶VPS/1核512M内存10GB硬盘1Gpbs端口月流量500GB/2个IP

EtherNetservers是一家成立于2013年的英国主机商,提供基于OpenVZ和KVM架构的VPS,数据中心包括美国洛杉矶、新泽西和杰克逊维尔,商家支持使用PayPal、支付宝等付款方式,提供 60 天退款保证,这在IDC行业来说很少见,也可见商家对自家产品很有信心。有需要便宜VPS、多IP VPS的朋友可以关注一下。优惠码SUMMER-VPS-15 (终身 15% 的折扣)SUMMER-...

RAKsmart含站群服务器/10G带宽不限流量首月半价

RAKsmart 商家估摸着前段时间服务器囤货较多,这两个月的促销活动好像有点针对独立服务器。前面才整理到七月份的服务器活动在有一些配置上比上个月折扣力度是大很多,而且今天看到再来部分的服务器首月半价,一般这样的促销有可能是商家库存充裕。比如近期有一些服务商挖矿服务器销售不好,也都会采用这些策略,就好比电脑硬件最近也有下降。不管如何,我们选择服务器或者VPS主机要本着符合自己需求,如果业务不需要,...

PhotonVPS:美国Linux VPS半价促销2.5美元/月起,可选美国洛杉矶/达拉斯/芝加哥/阿什本等四机房

photonvps怎么样?photonvps现在针对旗下美国vps推出半价促销优惠活动,2.5美元/月起,免费10Gbps DDoS防御,Linux系统,机房可选美国洛杉矶、达拉斯、芝加哥、阿什本。以前觉得老牌商家PhotonVPS贵的朋友可以先入手一个月PhotonVPS美国Linux VPS试试了。PhotonVPS允许合法大人内容,支持支付宝、paypal和信用卡,30天退款保证。Photo...

vb基础教程为你推荐
广东GDP破10万亿中国GDP10万亿,广东3万亿多。占了中国三分之一的经纪。如果,我是说如果。广东独立了。中国会有什地陷裂口造成地陷都有哪些原因?钟神发战旗TV ID:新年快乐丶未央不见是哪个主播百度关键词分析怎样对关键词进行分析和选择www.haole012.com阜阳有什么好的正规的招聘网站?www.765.com下载小说地址789se.comwuwu8.com这个站长是谁?www.idanmu.com新开奇迹SF|再创发布网|奇迹SF|奇迹mu|网通奇迹|电信奇迹|m.yushuwu.org花样滑冰名将YU NA KIM的资料谁有?javlibrary.comsony home network library官方下载地址
新世界机房 softlayer 韩国名字大全 如何注册阿里云邮箱 支持外链的相册 卡巴斯基是免费的吗 360云服务 空间首页登陆 512mb 国外网页代理 服务器托管价格 沈阳idc symantec 服务器操作系统 俄勒冈州 大容量存储控制器驱动 美国主机购买 时间同步服务器地址 如何申请网站 杭州摇号申请网站 更多