常用算法及调试方法

常用算法及调试方法

ID:5588770

大小:292.00 KB

页数:20页

时间:2017-11-13

常用算法及调试方法_第1页
常用算法及调试方法_第2页
常用算法及调试方法_第3页
常用算法及调试方法_第4页
常用算法及调试方法_第5页
资源描述:

《常用算法及调试方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、常用算法举例算法是对某个问题求解过程的描述一、若干初等数学问题:1.累加、连乘1~100的5或7的倍数的和Sum=0Fori=1To100IfiMod5=0OriMod7=0ThenSum=Sum+iEndIfNextiPrintSum3~10的乘积t=1Fori=3To10t=t*iNextiPrintt例求自然对数e的近似值,要求其误差小于0.00001,近似公式为:该例题涉及两个问题:(1)用循环结构求级数和的问题。本例根据某项值的精度来控制循环的结束与否。(2)累加:e=e+t循环体外对累加和的变量清零e=0连乘:n=n*i循环体外对连乘积变量置1n=1PrivateSubF

2、orm_Click()Dimi%,n&,t!,e!e=0:n=1‘e存放累加和、n存放阶乘i=0:t=1‘i计数器、t第i项的值DoWhilet>0.00001e=e+t:i=i+1‘累加、连乘n=n*i:t=1/nLoopPrint"计算了";i;"项的和是";eEndSub2.求素数素数是一个大于2,且不能被1和本身以外的整数整除的整数。判别某数m是否为素数最简单的方法是:对于m从i=2,3,…,m-1判别m能否被i整除,只要有一个能整除,m不是素数,否则m是素数。例求100以内素数的代码:Form=2To100Fori=2Tom-1If(mModi)=0ThenGoToNotN

3、extMNextiPrintmNotNextM:Nextmm是否为素数求100以内的素数思考:此例用GoTo语句对非素数不作判断,若不用GoTo语句,如何修改程序?例:用筛选法求素数3.穷举法“穷举法”也称为“枚举法”或“试凑法”,即将可能出现的各种情况一一测试,判断是否满足条件,一般采用循环来实现。例百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡,编程列出所有可能的购鸡方案。设母鸡、公鸡、小鸡各为x、y、z只,根据题目要求,列出方程为:x+y+z=1003x+2y+0.5z=100三个未知数,两个方程,此题有若干个解。解决此类问题采用

4、“试凑法”,把每一种情况都考虑到。方法一:最简单三个未知数利用三重循环来实现。方法二:从三个未知数的关系,利用两重循环来实现。4.递推法“递推法”又称为“迭代法”,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都从旧值的基础上递推出新值,并由新值代替旧值。例猴子吃桃子。小猴在某天摘桃若干个,当天吃掉一半多一个;第二天吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天要吃时只剩下一个,问小猴共摘下了多少个桃子?分析:这是一个“递推”问题,先从最后一天推出倒数第二天的桃子,再从倒数第二天的桃子推出倒数第三天的桃子……。设第n天的桃子为xn,那么它是

5、前一天的桃子数的xn-1的一半减1,即xn-1=(xn+1)*25.最小、最大值在若干个数中求最大值,一般先假设一个较小的数为最大值的初值,若无法估计较小的值,则取第一个数为最大值的初值;然后将每一个数与最大值比较,若该数大于最大值,将该数替换为最大值;依次逐一比较。例随机产生10个100~200之间的数,求最大值。PrivateSubCommand1_Click()Max=100Fori=1To10x=Int(Rnd*101+100)Printx;Ifx>MaxThenMax=xNextiPrintPrint"最大值=";MaxEndSub6、数制转换例将一个十进制整数m转换成r(

6、2-16)进制字符串。方法:将m不断除r取余数,直到商为零,以反序得到结果。7、例加密和解密简单加密的思想是:将每个字母C加一序数K,式子c=chr(Asc(c)+k),例如序数k为5,这时“A”“F”,“a”“f”,“B”“G”…当加序数后的字母超过“Z”或“z”则c=hr(Asc(c)+k-26)。解密为加密的逆过程。二、排序选择、冒泡、插入法排序、合并排序等。前两种排序欲排序的数据全部输入后,再进行排序;插入法排序每输入一项,马上插入到数组应在的位置,数组始终有序。例插入排序,实现的步骤:(1)输入欲排序的数据项x;在数组a中找x应所处的位置j;(2)从数组的最后一个元素

7、开始到下标j依次往后移,使j位置空出;(3)将x放入位置j处,一个数据插入完成;(4)有若干个数重复(1)~(3)。例合并排序,将两个有序的数组合并成另一个有序的数组。假设有序的数组为A、B,合并后的数组为C。合并排序的思想为:(1)先在A、B数组中各取第一个元素进行比较,将小(递增次序)的元素放入C数组;(2)取小的元素所在数组的下一个元素与上次比较后较大的元素比较,重复上述过程,直到某个数组被先排完;(3)将另一个数组剩余元素抄入C数组,合并排序完成。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。