算法与程序设计(教育科学出版社).ppt
《算法与程序设计(教育科学出版社).ppt》由会员分享,可在线阅读,更多相关《算法与程序设计(教育科学出版社).ppt(49页珍藏版)》请在三一办公上搜索。
1、算法与程序设计,第一章 如何用计算机解决问题,算法与程序设计,1.1 计算机解决问题的过程,从一个生产方案问题了解用计算机解决问题的步骤:P3,算法与程序设计,1、具体问题:,相传我国汉代有位大将军叫韩信,他在点兵时让士兵分别从13、15、17报数,然后报告各次报数的余数,这样他就能推算出总共有多少士兵。假设余数分别为2、3、2,2、分析问题:,算法与程序设计,算法与程序设计,3、设计算法:,算法与程序设计,4、编写程序,Dim n As Integer N=1Do If(N Mod 3=2)And(N Mod 5=3)And(N Mod 7=2)Then Print N Exit Do En
2、d If N=N+1Loop,算法与程序设计,Dim a As Integer,b As Integer,c As Integer,d As Integer,e As Integer,f As Integer,n As Integern=Text1.Texta=Text2.Textb=Text3.Textc=Text4.Textd=Text5.Texte=Text6.Textf=Text7.TextFor i=1 To n If i Mod a=b And i Mod c=d And i Mod e=f Then Text8.Text=i End IfNext i,算法与程序设计,Privat
3、e Sub About_Click()MsgBox 我的第一个VB程序!End SubPrivate Sub Command1_Click()YSF.Caption=+Text3.Text=Val(Text1.Text)+Val(Text2.Text)End SubPrivate Sub Command2_Click()YSF.Caption=-Text3.Text=Val(Text1.Text)-Val(Text2.Text)End SubPrivate Sub Command3_Click()YSF.Caption=*Text3.Text=Val(Text1.Text)*Val(Text2
4、.Text)End SubPrivate Sub Command4_Click()If Text2.Text=0 ThenMsgBox 除数不能为0ElseYSF.Caption=/Text3.Text=Val(Text1.Text)/Val(Text2.Text)End IfEnd SubPrivate Sub Command5_Click()Text1.Text=Text2.Text=Text3.Text=End Sub,算法与程序设计,5、调试程序、得到结果,1)、新建工程;2)、在窗体添加按钮控件;3)、给按钮添加单击事件过程;4)、在单击事件过程内输入编写好的程序;5)、运行程序调试
5、结果。,相同点:无论何种解题方式,在解决某一实际问题时,都应该正确的理解问题的题意,从看似复杂的问题中整理出一个头绪,然后通过算法(即解决问题的一个一个步骤)描述出某一问题的解决过程,进行一定量的计算,最后都必须验证计算结果。,不同点:当计算量较大时,人工解题就有点力不从心了,而计算机每秒上亿次的计算速度却不在话下,并且只要算法正确,编程语句无误的话,使用计算机编写的解题程序可以反复使用。例如:sum=1+2+3+4+5+(n-1)+n这样的问题。,算法与程序设计,1.2 算法描述与设计,1、算法的概念,算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。即,用计算机求解某一问题的方法,
6、是能被机械地执行的动作或指令的有穷集合。,算法的特征:1)、有0或多个输入。解题算法中可以没有数据输入,也可以同时输入多个需 要算法处理的数据。2)、确定性。解题方法中的任何一个操作步骤都是清晰无误的,不会使人产生 歧义或者误解。3)、有穷性。任何一种提出的解题方法都是在有限的操作步骤内可以完成的,哪怕是失败的解题方法。4)、有1个或多个输出。一个算法执行结束之后必须有数据处理结果输出,哪怕 是输出错误的数据结果,没有输出的算法使毫无意义的。5)、能行性。解题方法中的任何一个操作步骤在现有计算机软硬件条件下和逻 辑思维中都能够实施实现。,算法与程序设计,辗转相除法 又名欧几里德算法(Eucli
7、dean algorithm)是求两个正整数之最大公约数的算法。它是已知最古老的算法,其可追溯至前300年。它首次出现于欧几里德的几何原本(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的九章算术。它并不需要把二数作质因子分解。1.a b,令r为所得余数(0rb),若 r=0,b 即为最大公约数;算法结束。2.互换:置 ab,br,并返回第一步。例如:求112和64的最大公约数.算法如下:(1).112除以64,余数为_;(2)_除以_余数为_;(3)_除以_余数为_.答:112和64的最大公约数为_.两数的最大公约数乘以其最小公倍数=两数相乘例如:求112和64的最小公倍数(1)
8、.利用辗转相除法求得它们的最大公约数为_;(2).利用表达式求得最小公倍数:答:112和64的最小公倍数为_.,练习:求164和64的最大公约数求256和24的最大公约数,练习:求164和64的最小公倍数求256和24的最小公倍数,算法与程序设计,2、算法的描述,表示算法的语言有自然语言、流程图、伪代码等。,1)、用自然语言描述算法;2)、用流程图描述算法:掌握流程图的基本图形及其功能。3)、用伪代码描述算法。,注意对比三种算法描述方式的优劣。,1).输入m和n的值;2).r=m除以n的余数;3).如果r=0,则输出n值;否则令m=n,n=r返回第2步;4).结束.,输入m和n值r m Mod
9、 ndo while r0m=nn=rr=m mod nloop输出n值,算法与程序设计,三种算法描述方式的优劣,算法与程序设计,使用自然语言描述算法的方法虽然比较容易掌握,但是存在着很大的缺陷。例如,当算法中含有多分支或循环操作时很难表述清楚。另外,使用自然语言描述算法还很容易造成歧义(称之为二义性),譬如有这样一句话“武松打死老虎”,我们既可以理解为“武松/打死老虎”,又可以理解为“武松/打/死老虎”。自然语言中的语气和停顿不同,就可能使他人对相同的一句话产生不同的理解。又如“你输他赢”这句话,使用不同的语气说,可以产生3种截然不同的意思,同学们不妨试试看。,无论是使用自然语言还是使用流程
10、图描述算法,仅仅是表述了编程者解决问题的一种思路,都无法被计算机直接接受并进行操作。,伪代码通常采用自然语言、数学公式和符号来描述算法的操作步骤,同时采用计算机高级语言(如C、Pascal、VB、C+、Java等)的控制结构来描述算法步骤的执行顺序。,算法与程序设计,在运用计算机程序解决问题的过程中,算法设计有着举足轻重的地位和作用,算法是程序设计的核心,是程序设计的灵魂.算法的好坏,直接影响着程序的通用性和有效性,影响着问题解决的效率.,程序的编制依赖于算法的设计。程序的效率主要取决于算法的效率。,算法的地位:,算法与程序设计,1.3、程序与程序设计语言,1)、程序是一组机器操作的指令或语句
11、的序列,是算法的一种描述。,2)、程序的基本结构:P16,顺序结构:各语句依次按照顺序执行。,选择结构:通过检验条件是否成立来决定做还是不做的控件结构。,循环结构:在一定条件下需要重复执行的控件结构。,任何复杂的算法都可以用顺序结构、选择结构、循环结构三种基本结构组合而成的程序表示。,算法与程序设计,顺序结构,选择结构,循环结构,算法与程序设计,4)、程序设计:即是编写程序的过程。,一个高质量的程序,应具备以下条件:(1)、建立正确的灵堂模型和确定有效的计算方法;(2)、运行结果必须正确,且在精度和其他各方面均满足要求;(3)、程序本身具有良好的结构,逻辑清楚,易读易懂。(4)、程序运行时间尽
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 程序设计 教育 科学出版社
链接地址:https://www.31ppt.com/p-4103816.html