第二章算法与程序设计—《VisualBasic程序设计教程》2014年4月2日
教学目标掌握算法的概念;能够使用流程图来描述一个算法;了解算法的设计、分析与评价;了解开发一个应用程序的完整流程。
2.1算法的概念算法,就是解决问题的过程、步骤,将输入的数据处理成输出的结果。【例2-1】有两个人,一个人手里拿的是苹果,一个人手里拿的是香蕉,现在他们要交换各自手里的水果。假设,两个人分别叫A和B,A的左手简称A左,A的右手简称A右,B也类似。水果都在每个人的左手里,A左里有苹果,B左里有香蕉。则有以下解决办法:A把苹果从A左放到B右,空出A左,苹果到了B右;B把香蕉从B左放到A左,空出B左,香蕉到了A左;B把苹果从B右放到B左。
1、定义第三个变量X,与A和B的数据类型相同(在计算机中存储数据的时候必须考虑存储数据的类型,这关系到数据在计算机中的具体物理表示方式);2、将A的值给X,即X=A(此时A和X的值都是3);3、将B的值给A,即A=B(此时B和A的值都是4);4、将X的值给B,即B=X(此时B的值就是3)。【例2-2】交换变量A和B中的数,A=3,B=4算法描述2.1算法的概念
输出-至少有1个输出输入-有若干输入或没有可行性-计算机能实现确定性-每个步骤没有歧义有穷性-在有限步骤内完成算法的特点
2.2算法的描述【例2-3】给出一个数的序列:3,5,9,1,7,要求按从小到大的顺序重新排列。step1:找出最小的数字1,排在第1个;step2:在剩下的4个数字中找出最小的数字3,排在第2个;step3:在剩下的3个数字中找出最小的数字5,排在第3个;step4:再在剩下的2个数字中找出最小的数字7,排在第4个;step5:剩下最后一个9,排在第5个。
2.2算法的描述算法描述一般可以用伪代码或者流程图的方式来描述。Dima(5)asInteger//定义一个数组序列,存放待排序的数a={3,5,9,1,7}//把待排序的数放入数组n=5//n是待排序的数的个数Fori=1Ton-1//i是计数器,表示一共找出最小数字的轮数{ {把a(i)与它后面的所有数依次比较, 遇到比a(i)小的,就交换,保证a(i)中存储第i轮比较中最小的值}第i轮得到a(i),是待排序数中最小值}输出a(1)Toa(n) //排序后的数组序列
开始n=5a(1)=3,a(2)=5,a(3)=9,a(4)=1,a(5)=7i=1in在a(i)到a(n)中寻找最小的数,交换到a(i)中i=i+1输出a(1)Toa(n)结束
2.3算法的设计算法要正确。算法可读性要强。算法的效率要尽量高。
2.4算法分析和评价计算机的运行速度以及存储容量都是有限的,所以必须考虑算法解决问题的效率。效率可以分成两个方面,一算法本身的执行性能,从时间和空间上(即运行速度和存储容量)进行考量,与计算机硬件没有直接关系;另一方面就是算法通过程序实现之后的实际执行效率,与具体计算机硬件有关。
2.5创建应用程序的过程需求分析分析报告系统设计设计报告编写代码源程序测试程序测试报告运行维护
谢谢