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