1、一个算法有零个或多个输入,以刻画运算对象的初始情况。2.确定性。算法的每一个步骤必须要确切地定义,不能有歧义。3.有穷性。一个算法在执行有穷步之后必须结束。4.输出。算法有一个或多个与输入有某个特定关系的输出。5.能行性。算法中有待执行的运算和操作必须是相当基本的,它们都是能够精确地进行的,算法执行者甚至不需要掌握算法的含义即可根据该算法的每一步骤要求进行操作,并最终得出正确的结果。辗转相除法求最大公约数 古希腊数学家对公约数求解问题研究提出的算法称为“辗转相除法”(欧几里得算法)。具体方法是用较大的数除以较小的数,余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则较小的数就
2、是最大公约数。例如:求16和12的最大公约数(16,12)(12,4)(8,4)(4,4)算法的描述p用自然语言描述算法 算法的描述语言是人们日常用的语言。自然语言通俗易懂,但其歧义性会导致算法执行的不确定性;表述较长会导致算法太长;循环和分支较多时,很难清晰地表示出来;描述的算法不便翻译成计算机程序设计语言。求两个正整数m和n的最大公约数的步骤:p以m除以n,令所得的余数为r。p若r=0,则输出结果n,算法结束;否则,继续步骤3。p令m=n,n=r,并返回步骤1继续进行。将一个问题分为一系列的逻辑步骤,这样就易于将其转化为一个计算机程序。算法的描述p用流程图描述算法图形名称功能开始/结束表示
3、算法的开始或结束输入/输出表示算法中变量的输入或输出处理表示算法变量的计算与赋值判断表示算法条件判断流程线表示算法中的流向连接点表示算法的转接流程图的基本图形及其功能用流程图描述算法清晰简洁,容易表达选择结构;利于不同环境的程序设计。依次完成顺序结构第一步第二步第步开始结束做判断选择结构事件X事件A事件B满足条件吗?YN开始结束选择是指处理过程可能沿着两个或更多的计算路线进行。不断重复循环结构循环变量变化区间设置循环体循环变量改变变量在区间内吗?YN开始结束重复执行一个或多个步骤。求最大公约数r=m除以n的余数r=0是否开始结束输入正整数m和n输出n的值m=n,n=r流程图描述:绘制流程图的技
4、巧p开始时要把注意力集中在问题的逻辑上,画出流程图的主要执行路径。p主要部分完成之后,加入选择和循环。p一个流程图只有一个起始点和一个结束点。p尽可能使流程图和机器无关,不要使用和计算机相关的术语。p没有必要在流程图中将每个步骤都画出来,只要描述出那些有意义的即可。p使用一些明确的描述性的词恰当地表示问题不要用一些模棱两可的词语。p让其他编程人员或用户能够轻松地看懂你的流程图。分段函数流程图以VB语言为例设计程序Dim x,y As Integerx=Val(Text1.Text)If x=0 Then y=x 2+3*x-1 Else y=0End IfPrint y=;y=0y=x2+3x
5、-1x0YN开始结束输入X的值输出y的值算法的描述p用伪代码描述算法 伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法的工具。用伪代码描述算法回避了程序设计语言严格、烦琐的书写格式,容易转换为程序设计语言,但伪代码的语句不容易规范,有时会产生误解。求最大公约数自然语言描述:p输入正整数m和np以m除以n,令所得的余数为r。r=m除以n的余数r=0是否开始结束输入正整数m和n输出n的值m=n,n=r伪代码描述:最大公约数Input m,nr=m mod nDo while r0 m=n n=r r=m mod nLoopPrint n流程图描述:算法在解决问题中的核心地位和重要作用p
6、寻找解决问题的算法实质上是寻找问题的解决方案,是要找到描述特定类型问题是如何被解决的指令的集合。p只有找到了一种可以指导工作执行的算法,通过使用算法来得到并转化智慧,我们才可以构建一台可以表现智能行为的机器来执行这个工作。机器表现的智能等级受到通过算法转化的智慧所限制。p算法的好坏直接影响着程序的通用性和有效性,影响着问题解决的效率。算法与程序设计p计算机或者与计算机通信或者与人交流,我们必须将算法转变为一个清晰的指令的集合,并且将这些指令用程序设计语言来表示。一般分为:机器语言、汇编语言、高级语言。p一个与计算机兼容的算法的描述称为一个程序。p程序设计是设计程序的过程,就是把计算机运作指令有
7、计划地串在一起,使计算机完成我们所期望的工作,让计算机按照我们的期望来运作。p算法是程序设计的核心,是程序设计的灵魂。用辗转相除法和穷举法求两个整数的最大公约数辗转相除法设计的程序:Private Sub Command1_Click()m=9147485 n=5147480 r=m Mod n Do While r 0 m=n n=r r=m Mod n Loop CurrentY=100 Print 最大公约数=;nEnd Sub穷举法设计的程序:Private Sub Command2_Click()m=9147485 n=5147480 i=m Do While m Mod i 0 O
8、r n Mod i 0 i=i-1 Loop CurrentY=100 Print 最大公约数=;iEnd Sub解决某一问题的算法的思想可以多种多样。好算法让我们事半功倍。小结p理论:1.计算机解决问题的基本过程。2.建立数学模型,构造非数值类数据的模型。3.算法的效率、通用性、多样性。4.在计算机领域中有的问题不可解。p思路:了解工具的功能掌握工具的使用方法和步骤用我们的认知来改进现有工具,制造新工具,延伸、拓展我们的智能。人们洞察世界的优秀的模型,利用计算机解决现实世界的问题。人们关心现实社会而不是程序,程序是人们更好地理解世界的机制。输出简单的有规则输出简单的有规则的字符几何图形的字符
9、几何图形1.CurrentY=500 2.Print Tab(20 i*3);2.For i=1 To 33.Next i3.For j=1 To 5 Next j4.Print“#”;5.Print1.第一行输出的位置,每一行第一个字符输出的位置。2.图形有3行。3.每行有5列。4.每行输出相同的“#”号。5.显示完一行后,换行显示下一行。输出简单的有规则的字符几何图形输出简单的有规则的字符几何图形代码代码Private Sub Form_Click()CurrentY=500 For i=1 To 5 Print Tab(20-i*3);For j=1 To 5 Print 人人;Next
10、 j Print Next i CurrentY=500 For i=1 To 5 Print Tab(20+i*3);For j=1 To 5 Print 人;Next j Print Next iEnd Sub修改项:1.行参数:由3改为5;2.字符参数:由“#”改为“人”3.每行第一个字符的输出位置参数:由20-i*3改为20+i*3,随着i的增大而增大,距离屏幕左边线越来越远,即图形向右移动。4.复制蓝色程序块粘贴,修改每行第一个字符的输出位置参数,输出对称图形。让我想一想1.抽象在计算机科学中有什么作用?2.在程序设计中数据是如何表示及处理的?3.社会问题:教育软件现在被卖给18个月或者更小的儿童。有人建议这样的软件应该有声音和图像,否则这个软件就不适合儿童,反对者说这是很糟糕的亲子关系的替代品。你的意见呢?如果没有更多关于软件的知识,你支持哪个观点?
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1