《算法与程序设计》.ppt
算法与程序设计算法与程序设计济宁市任城区电化教育中心刘兰设山东教材算法与程序设计分析第一章 揭开计算机解决问题的神秘面纱第二章 程序设计基础第三章 可视化编程第四章 算法与程序实现第五章 面向对象程序设计第六章 程序设计实践第一章 揭开计算机解决问题的神秘面纱第一节 计算机解决问题的过程第二节 算法和算法的描述第三节 程序与程序设计语言从计算机解决问题的过程出发具体问题分析问题设计算法编写程序调试程序得到答案引入算法引入算法 算法是在有限步骤内求解某一问题所使用的算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。(数学必修一组定义明确的规则。(数学必修3 3)描述描述算法算法设给定两个正整数设给定两个正整数m=112m=112和和n=64n=64,利用辗转相除法,利用辗转相除法,求它们的最大公约数。求它们的最大公约数。(1 1)112112除以除以6464,余数为,余数为4848;(2 2)6464除以除以4848,余数为,余数为1616;(3 3)4848除以除以1616,余数为,余数为0 0;答答:112:112和和6464的最大公约数为的最大公约数为1616。算法的特征输入一个算法有零个或多个输入;确定性算法的每一个步骤必须要确切地定义;有穷性一个算法在执行有穷步之后必须结束;输出算法有一个或多个输出;能行性算法中有待执行的运算和操作必须是相当基本的。(运算和操作能精确地执行)算法的描述问题描述问题描述问题描述问题描述自然语言自然语言自然语言自然语言流程图流程图流程图流程图伪代码伪代码伪代码伪代码设计一个算设计一个算法,求出法,求出100100以内能以内能被被3 3整除的整除的所有正整数。所有正整数。令令I=1I=1;如果如果I I能能被被3 3整除,整除,则输出则输出I I;I=I+1I=I+1;如果如果I100I100,则,则返回第返回第步;步;结束。结束。I=1I=1DODOIF I MOD 3=0 THEN PRINT IIF I MOD 3=0 THEN PRINT II=I+1I=I+1LOOP WHILE I 100LOOP WHILE I 100开始I=1I能被3整除I=I+1I 100结束输出I是否否是程序与程序设计语言程序程序一组操作的指令或语句序列。一组操作的指令或语句序列。程序的特征:程序的特征:1 1、程序中,每一个算法的步骤对应着程序设计语言的一个或、程序中,每一个算法的步骤对应着程序设计语言的一个或多个语句,每个语句对应一个或多个操作,每个操作都要求多个语句,每个语句对应一个或多个操作,每个操作都要求有执行对象,并且根据对象状态变化形成动作的效果,同时有执行对象,并且根据对象状态变化形成动作的效果,同时可变的对象用变量来表示,变量的值的变化则可通过基本操可变的对象用变量来表示,变量的值的变化则可通过基本操作赋值来完成;作赋值来完成;2 2、除非特别声明,程序从第一条语句开始顺序执行;、除非特别声明,程序从第一条语句开始顺序执行;3 3、程序总是施行操作于某些对象,这些对象通常称为数据;、程序总是施行操作于某些对象,这些对象通常称为数据;4 4、这些数据一般应该有属性和取值范围,即类型说明;、这些数据一般应该有属性和取值范围,即类型说明;5 5、有时语句要求执行者作出判定,即在某种条件成立的情况、有时语句要求执行者作出判定,即在某种条件成立的情况下执行一条或一组语句,否则执行另一条或另一组语句。下执行一条或一组语句,否则执行另一条或另一组语句。6 6、一条或一组语句可能需要执行一次以上,当一条或一组语、一条或一组语句可能需要执行一次以上,当一条或一组语句要重复时,必须指明重复次数或重复条件。句要重复时,必须指明重复次数或重复条件。高质量的程序所具备的条件:1、建立正确的数学模型和确定有效的计算方法;2、运行结果必须正确,且在精度和其它各方面均满足要求;3、程序本身具有良好的结构,逻辑清晰,易读易懂;4、程序运行时间尽可能短,同时尽可能合理地使用内存;5、便于检查、修正、移植和维护。程序设计语言的产生与发展机器语言汇编语言高级语言程序的编辑与翻译源代码:以汇编语言或高级语言编写的程序。源代码:以汇编语言或高级语言编写的程序。程序的编辑:将源代码输入计算机并把它门以文件的形式程序的编辑:将源代码输入计算机并把它门以文件的形式保存的过程。保存的过程。源文件:程序的编辑中保存的文件。源文件:程序的编辑中保存的文件。编译程序编译程序 编译:把源程序编译成等效的汇编代码,然后再由汇编程编译:把源程序编译成等效的汇编代码,然后再由汇编程序将汇编代码翻译成可重新定位的目标程序(或目标代码);序将汇编代码翻译成可重新定位的目标程序(或目标代码);连接:将若干可重新定位的目标代码连接在一起,构成一连接:将若干可重新定位的目标代码连接在一起,构成一个完整的可重新定位的目标代码程序;个完整的可重新定位的目标代码程序;装入:将完整的可重新定位的目标代码程序装入主存储器装入:将完整的可重新定位的目标代码程序装入主存储器中,并对目标程序重新定位,成为可在机器上直接执行的中,并对目标程序重新定位,成为可在机器上直接执行的机器语言程序。机器语言程序。解释程序解释程序对源程序的每一个可能的行为都用机器语言对源程序的每一个可能的行为都用机器语言编写一个子程序,用来模拟这一行为。编写一个子程序,用来模拟这一行为。取下一个语句;取下一个语句;确定被执行的活动;确定被执行的活动;执行这一活动;执行这一活动;返回返回继续。继续。第二章 程序设计基础第一节 VB语言及程序开发环境第二节 程序的顺序结构第三节 程序的选择结构第四节 程序的循环结构第五节 模块化程序设计VB语言及程序开发环境基本数据类型 Integer、Long、Single、Double、Date、String、Boolean常量与变量运算符函数数值、字符(串)、日期时间等函数表达式可视化程序的开发环境(VB的开发环境)程序的顺序结构赋值语句 变量=表达式输入数据的函数 Inputbox(提示信息,标题,默认值,位置)输出数据的方法 Print 输出内容 日期时间抽 签鸡兔同笼秒表程序的分支结构 条件语句条件语句 If If 条件条件 Then Then 语句组语句组1 Else 1 Else 语句组语句组2 2或或 If If 条件条件 Then Then 语句组语句组1 1 Else Else 语句组语句组2 2 EndifEndif 关系表达式、逻辑表达式关系表达式、逻辑表达式 多重选择语句多重选择语句 Select Case Select Case 表达式表达式 Case Case 表达式列表表达式列表1 1 语句组语句组1 1 Case Case 表达式列表表达式列表2 2 语句组语句组2 2 Case Else Case Else 语句组语句组N+1 N+1 End Select End Select商场购物生肖查询程序的循环结构ForFor循环语句循环语句 For For 循环变量循环变量=初值初值 To To 终值终值 Step Step 步长步长 语句组语句组 Next Next 循环变量循环变量DoDo循环语句循环语句 条件判断放在循环语句的开头部分条件判断放在循环语句的开头部分条件判断放在循环语句的结尾部分条件判断放在循环语句的结尾部分所列条件满足时所列条件满足时执行循环,否则执行循环,否则退出循环退出循环所列条件满足时所列条件满足时退出循环,否则退出循环,否则继续循环继续循环先执行一次循环先执行一次循环体,当条件满足体,当条件满足时继续循环,否时继续循环,否则退出循环则退出循环先执行一次循环先执行一次循环体,当条件满足体,当条件满足时退出循环,否时退出循环,否则继续循环则继续循环Do While Do While 条件条件 循环体循环体LoopLoopDo Until Do Until 条件条件 循环体循环体LoopLoopDo Do 循环体循环体Loop While Loop While 条件条件Do Do 循环体循环体Loop Until Loop Until 条件条件求 和同心圆九九表质数判断模块化程序设计自定义函数自定义函数 Public Function Public Function 函数名(形式参数表)函数名(形式参数表)As As 类型类型 语句组语句组 End FunctionEnd Function自定义过程自定义过程 Private Sub Private Sub 子过程名(形式参数表)子过程名(形式参数表)语句组语句组 End SubEnd Sub自定义函数和过程的调用自定义函数和过程的调用 自定义函数的调用:变量自定义函数的调用:变量=函数名(形式参数表)函数名(形式参数表)自定义过程的调用:子程序名自定义过程的调用:子程序名 实际参数表实际参数表 模块化程序设计的基本思想模块化程序设计的基本思想背景颜色变化第三章 可视化编程第一节 可视化编程的概念与方法第二节 程序调试的方法第三节 综合活动:心算练习程序设计可视化编程的概念与方法对象对象客观世界中的任何物体客观世界中的任何物体 VBVB可视化编程可视化编程面向对象的编程技术面向对象的编程技术 VBVB对象对象窗体、控件、菜单项等窗体、控件、菜单项等属性属性对象的性质(外观与特征)对象的性质(外观与特征)方法方法对象的行为(控制对象的动作)对象的行为(控制对象的动作)方法对应于对象内部的一段程序代码,通过运方法对应于对象内部的一段程序代码,通过运行代码实现控制对象的动作。行代码实现控制对象的动作。事件事件发生在对象上的事情发生在对象上的事情 事件是指由用户操作触发或由系统触发,能被事件是指由用户操作触发或由系统触发,能被特定对象识别并作出响应的动作。特定对象识别并作出响应的动作。事件驱动事件驱动当应用程序中对象的特定事件发生时,当应用程序中对象的特定事件发生时,通过执行一段程序代码来完成该特定事件所对应的通过执行一段程序代码来完成该特定事件所对应的操作操作窗体窗体 窗体是窗体是VBVB程序设计的基础。各种控件对象必须程序设计的基础。各种控件对象必须建立在窗体上,一个窗体对应一个窗体模块。建立在窗体上,一个窗体对应一个窗体模块。窗体的常用属性、常用事件、常用方法窗体的常用属性、常用事件、常用方法控件控件 控件是应用程序的图形用户界面中显示可供用控件是应用程序的图形用户界面中显示可供用户操纵,并可控制应用程序的图形界面元素,是户操纵,并可控制应用程序的图形界面元素,是VBVB可视化编程的基本操作对象。可视化编程的基本操作对象。控件工具箱、控件的画法、控件的缩放和移动、控控件工具箱、控件的画法、控件的缩放和移动、控件的复制与删除件的复制与删除VBVB可视化编程的方法可视化编程的方法 VBVB编程的基本步骤:编程的基本步骤:建立工程;建立工程;创建图形用户创建图形用户界面;界面;设置对象属性;设置对象属性;编写程序代码;编写程序代码;调试调试运行程序;运行程序;保存程序。保存程序。程序调试的方法程序调试的方法 错误的类型、调试与排错错误的类型、调试与排错综合实践活动综合实践活动心算练习程序设计心算练习程序设计第四章 算法与程序实现第一节 用解析法设计程序第二节 用穷举法设计程序第三节 查找算法设计第四节 排序算法设计第五节 递归算法与递归程序第六节 综合活动:问题求解用解析法设计程序用解析法求解问题的基本过程解析法通过分析问题中各要素之间的关系,用最简练的语言或形式化符号来表达它们的关系,得出解决问题所需的表达式,然后设计程序求解问题的方法。用解析法求解问题的实践 1、小球弹跳问题 2、电阻计算问题小球弹跳R1R2计算电阻R2=R1+2000,输入总电阻R求R1、R2用穷举法设计程序用穷举法求解问题的基本过程穷举法的基本思路 列举一切与命题相关的情况,然后根据问题设定的条件逐个加以检查,找到满足条件的解答。用穷举法求解问题的实践 1、取钞票问题(1、2、5元共取30张总面值为100元)2、穷举法中穷举方案的选择取钞票问题查找算法设计红楼梦红楼梦研究和查找技术研究和查找技术 例如研究词出现的频率例如研究词出现的频率 查找书中查找书中“黛玉黛玉”一词出现的次数一词出现的次数顺序文件顺序文件对顺序文件数据的操作只能按顺序进行,不对顺序文件数据的操作只能按顺序进行,不能从中间插入。能从中间插入。顺序文件的打开顺序文件的打开 读文件内容打开文件:读文件内容打开文件:Open Open For Input As#For Input As#建立新文件并打开:建立新文件并打开:Open Open For Output As#For Output As#在文件末尾追加内容而打开文件:在文件末尾追加内容而打开文件:Open Open For Append As#For Append As#向顺序文件写入数据向顺序文件写入数据 当顺序文件以当顺序文件以For OutputFor Output或或For AppendFor Append方式打开方式打开时,可用以下方式写入数据:时,可用以下方式写入数据:Write#Write#,Print#Print#,读出数据读出数据 当顺序文件以当顺序文件以For InputFor Input方式打开时,可用以下方方式打开时,可用以下方式写入数据:式写入数据:Input#Input#Line Input#Line Input#=Input(=Input(整数整数N N,#)关闭文件关闭文件 Close Close 顺序查找算法数组顺序查找的思路和解决方法 当查找的对象排列没有规律时可用顺序查找方法;InStrInStr(位置位置n n,对象字符串,对象字符串String1String1,目标字符串,目标字符串String2)String2)(查找对象字符串(查找对象字符串String1String1中的第中的第n n个位置开始搜索有没有目个位置开始搜索有没有目标字符串标字符串String2String2,如果有,函数值就是找到的第一个位置;,如果有,函数值就是找到的第一个位置;如果没有,函数值就是如果没有,函数值就是0 0)对半查找算法排序算法设计选择排序算法 选择排序算法的思路 选择排序编写程序的实践(国家名排序)插入排序算法 递归算法与递归程序从斐波那契的兔子问题看递归算法 假设第n个月的兔子数目为f(n),那么 f(n)=F(n-1)+f(n-2)当n3,f(1)=f(2)=1 1 1月月2 2月月3 3月月4 4月月5 5月月6 6月月7 7月月8 8月月9 9月月1010月月1111月月1212月月小小小小兔兔兔兔1 11 11 12 23 35 58 81313212134345555大大大大兔兔兔兔1 11 12 23 35 58 813132121343455558989合合合合计计计计1 11 12 23 35 58 813132121343455558989144144递归算法的特点 递归过程一般通过函数或子过程来实现。在函数或子过程的内部,直接或者间接地调用自己,就是递归算法。递归算法的实质就是把问题转化为规模缩小了的同类问题的子问题一个应用递归算法解决问题的经典例子 汉诺塔问题第五章 面向对象程序设计第一节 面向对象程序设计的基本思想第二节 面向对象程序设计的基本概念第三节 面向对象的功能实现第六章 程序设计实践第一节 多媒体应用程序设计第二节 数据库管理软件的开发实施建议方法一:按部就班,以教材为蓝本 根据教材的内容组织、章节顺序以及教学指导意见实施方法二:通过实例理解算法与程序设计 根据已有的经验和教材的重点内容进行教学改革尝试方法三:相互交融,重组课堂 结合以上两种方法,根据实际情况对教材进行重组VB实例分析五子棋1.0五子棋1.1五子棋2.0windows扫雷Tony1.01扫雷