资源预览内容
第1页 / 共68页
第2页 / 共68页
第3页 / 共68页
第4页 / 共68页
第5页 / 共68页
第6页 / 共68页
第7页 / 共68页
第8页 / 共68页
第9页 / 共68页
第10页 / 共68页
亲,该文档总共68页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
“算法与程序设计算法与程序设计算法与程序设计算法与程序设计”课程课程课程课程教材分析与教学建议教材分析与教学建议纲要纲要一、程序设计教学的发展历程一、程序设计教学的发展历程一、程序设计教学的发展历程一、程序设计教学的发展历程二、程序设计教学平台的选择二、程序设计教学平台的选择二、程序设计教学平台的选择二、程序设计教学平台的选择三、面向对象程序设计方法三、面向对象程序设计方法三、面向对象程序设计方法三、面向对象程序设计方法四、四、四、四、“ “如何用计算机解决问题如何用计算机解决问题如何用计算机解决问题如何用计算机解决问题” ”教学活动建议教学活动建议教学活动建议教学活动建议五、五、五、五、“ “程序设计程序设计程序设计程序设计ABC”ABC”教学活动建议教学活动建议教学活动建议教学活动建议六、六、六、六、“ “算法的程序实现算法的程序实现算法的程序实现算法的程序实现” ”教学活动建议教学活动建议教学活动建议教学活动建议七、如何学习算法与程序设计七、如何学习算法与程序设计七、如何学习算法与程序设计七、如何学习算法与程序设计一、程序设计教学的发展历程一、程序设计教学的发展历程1.第一阶段(第一阶段(1981-1986):): 受前苏联计算机教育学家叶尔肖夫受前苏联计算机教育学家叶尔肖夫受前苏联计算机教育学家叶尔肖夫受前苏联计算机教育学家叶尔肖夫( (YershowYershow) )提出的提出的提出的提出的“ “程序设计是第二文化程序设计是第二文化程序设计是第二文化程序设计是第二文化” ”的影响,的影响,的影响,的影响,19821982年,年,年,年,教育部决定在北京大学、清华大学等教育部决定在北京大学、清华大学等教育部决定在北京大学、清华大学等教育部决定在北京大学、清华大学等5 5所大学的附所大学的附所大学的附所大学的附中进行开设计算机选修课的试验,在此基础上产生中进行开设计算机选修课的试验,在此基础上产生中进行开设计算机选修课的试验,在此基础上产生中进行开设计算机选修课的试验,在此基础上产生了第一个以程序设计为主的试验性教学大纲。了第一个以程序设计为主的试验性教学大纲。了第一个以程序设计为主的试验性教学大纲。了第一个以程序设计为主的试验性教学大纲。 这个阶段信息技术教学强调的是这个阶段信息技术教学强调的是这个阶段信息技术教学强调的是这个阶段信息技术教学强调的是BASICBASICBASICBASIC语言程语言程语言程语言程序设计能力。序设计能力。序设计能力。序设计能力。一、程序设计教学的发展历程一、程序设计教学的发展历程2. 第二阶段(第二阶段(1986-1991):): 19861986年,国家教委召开了年,国家教委召开了年,国家教委召开了年,国家教委召开了“ “第三次全国中学计第三次全国中学计第三次全国中学计第三次全国中学计算机教育工作会议算机教育工作会议算机教育工作会议算机教育工作会议” ”,受第四次世界计算机教育大,受第四次世界计算机教育大,受第四次世界计算机教育大,受第四次世界计算机教育大会会会会“ “工具论工具论工具论工具论” ”观点的影响,颁发的第二个试验性教观点的影响,颁发的第二个试验性教观点的影响,颁发的第二个试验性教观点的影响,颁发的第二个试验性教学大纲增加了部分应用软件的内容,如字处理、数学大纲增加了部分应用软件的内容,如字处理、数学大纲增加了部分应用软件的内容,如字处理、数学大纲增加了部分应用软件的内容,如字处理、数据库和电子表格,开课年级向初中和小学发展。据库和电子表格,开课年级向初中和小学发展。据库和电子表格,开课年级向初中和小学发展。据库和电子表格,开课年级向初中和小学发展。 这一阶段的教学内容从单一的这一阶段的教学内容从单一的这一阶段的教学内容从单一的这一阶段的教学内容从单一的BASICBASICBASICBASIC语言教学语言教学语言教学语言教学逐步转向重视计算机应用的教学。逐步转向重视计算机应用的教学。逐步转向重视计算机应用的教学。逐步转向重视计算机应用的教学。一、程序设计教学的发展历程一、程序设计教学的发展历程3. 第三个阶段(第三个阶段(1991-1999):): 19911991年年年年1010月,国家教委召开了月,国家教委召开了月,国家教委召开了月,国家教委召开了“ “第四次全国中第四次全国中第四次全国中第四次全国中小学计算机教育工作会议小学计算机教育工作会议小学计算机教育工作会议小学计算机教育工作会议” ”,根据这次会议精神,根据这次会议精神,根据这次会议精神,根据这次会议精神,制定并颁发了制定并颁发了制定并颁发了制定并颁发了中小学计算机课程指导纲要中小学计算机课程指导纲要中小学计算机课程指导纲要中小学计算机课程指导纲要( (试行试行试行试行) )。19971997年又颁发了年又颁发了年又颁发了年又颁发了中小学计算机课程指导纲中小学计算机课程指导纲中小学计算机课程指导纲中小学计算机课程指导纲要要要要( (修订稿修订稿修订稿修订稿) ),把计算机课程分为若干模块,开课,把计算机课程分为若干模块,开课,把计算机课程分为若干模块,开课,把计算机课程分为若干模块,开课年级从高中一直到小学。年级从高中一直到小学。年级从高中一直到小学。年级从高中一直到小学。 在这一时期,程序设计的教学被极大的弱化。在这一时期,程序设计的教学被极大的弱化。在这一时期,程序设计的教学被极大的弱化。在这一时期,程序设计的教学被极大的弱化。一、程序设计教学的发展历程一、程序设计教学的发展历程4. 第四阶段(第四阶段(20002003):): 20002000年,教育部召开全国中小学信息技术教育年,教育部召开全国中小学信息技术教育年,教育部召开全国中小学信息技术教育年,教育部召开全国中小学信息技术教育工作会议,颁发了工作会议,颁发了工作会议,颁发了工作会议,颁发了中小学信息技术课程指导纲要中小学信息技术课程指导纲要中小学信息技术课程指导纲要中小学信息技术课程指导纲要( (试行试行试行试行) )。课程的名称由。课程的名称由。课程的名称由。课程的名称由“ “计算机课计算机课计算机课计算机课” ”改成改成改成改成“ “信息信息信息信息技术课程技术课程技术课程技术课程” ”。 但是,但是,但是,但是,纲要纲要纲要纲要中仅高中包含程序设计的教学中仅高中包含程序设计的教学中仅高中包含程序设计的教学中仅高中包含程序设计的教学内容:问题的算法表示;算法的程序实现;程序设内容:问题的算法表示;算法的程序实现;程序设内容:问题的算法表示;算法的程序实现;程序设内容:问题的算法表示;算法的程序实现;程序设计思想和方法。计思想和方法。计思想和方法。计思想和方法。一、程序设计教学的发展历程一、程序设计教学的发展历程5. 第五阶段(第五阶段(2003年至今):年至今): 20032003年年年年3 3月颁发的月颁发的月颁发的月颁发的“ “普通高中信息技术课程标普通高中信息技术课程标普通高中信息技术课程标普通高中信息技术课程标准准准准” ”,将信息技术作为高中课程八大学习领域之一,将信息技术作为高中课程八大学习领域之一,将信息技术作为高中课程八大学习领域之一,将信息技术作为高中课程八大学习领域之一的技术领域中的一个科目,使信息技术与语文、数的技术领域中的一个科目,使信息技术与语文、数的技术领域中的一个科目,使信息技术与语文、数的技术领域中的一个科目,使信息技术与语文、数学等科目并列,从而把信息技术课程纳入到了基础学等科目并列,从而把信息技术课程纳入到了基础学等科目并列,从而把信息技术课程纳入到了基础学等科目并列,从而把信息技术课程纳入到了基础教育课程改革的总体系之中。教育课程改革的总体系之中。教育课程改革的总体系之中。教育课程改革的总体系之中。 “ “算法与程序设计算法与程序设计算法与程序设计算法与程序设计” ”是在必修模块的基础上,是在必修模块的基础上,是在必修模块的基础上,是在必修模块的基础上,作为计算机应用的技术基础设置的选修模块。作为计算机应用的技术基础设置的选修模块。作为计算机应用的技术基础设置的选修模块。作为计算机应用的技术基础设置的选修模块。一、程序设计教学的发展历程一、程序设计教学的发展历程 近年来,中小学程序设计的教学又逐步近年来,中小学程序设计的教学又逐步呈现出一种回归的呈现出一种回归的态势:态势:uu北京市东城区进行的北京市东城区进行的北京市东城区进行的北京市东城区进行的“ “程序设计和机器人程序设计和机器人程序设计和机器人程序设计和机器人” ”实验研究实验研究实验研究实验研究CXLOGOCXLOGO语言的学习;语言的学习;语言的学习;语言的学习;CXLOGOCXLOGO微世界;微世界;微世界;微世界;机器人实验室等。机器人实验室等。机器人实验室等。机器人实验室等。uu贵州符美瑜在遵义进行的贵州符美瑜在遵义进行的贵州符美瑜在遵义进行的贵州符美瑜在遵义进行的“ “通过通过通过通过LOGOLOGO实验学数学实验学数学实验学数学实验学数学” ”实实实实验验验验uu即将颁布的即将颁布的即将颁布的即将颁布的江苏省义务教育信息技术课程指导纲要江苏省义务教育信息技术课程指导纲要江苏省义务教育信息技术课程指导纲要江苏省义务教育信息技术课程指导纲要,“ “程序设计程序设计程序设计程序设计” ”是拓展模块之一。是拓展模块之一。是拓展模块之一。是拓展模块之一。算法与问题解决;算法与问题解决;算法与问题解决;算法与问题解决;程序结构与设计。程序结构与设计。程序结构与设计。程序结构与设计。二、程序设计教学平台的选择二、程序设计教学平台的选择1.采用了可视化技术,把采用了可视化技术,把采用了可视化技术,把采用了可视化技术,把WindowsWindows的编程复杂性封的编程复杂性封的编程复杂性封的编程复杂性封装起来装起来装起来装起来。2.采用面向对象的程序设计方法采用面向对象的程序设计方法采用面向对象的程序设计方法采用面向对象的程序设计方法。3.采用事件驱动的编程机制采用事件驱动的编程机制采用事件驱动的编程机制采用事件驱动的编程机制。4.Visual BasicVisual Basic具有简单的语法,继承了其先辈具有简单的语法,继承了其先辈具有简单的语法,继承了其先辈具有简单的语法,继承了其先辈BasicBasic简单易用的特点简单易用的特点简单易用的特点简单易用的特点。5.作为通用的宏语言,广泛应用在作为通用的宏语言,广泛应用在作为通用的宏语言,广泛应用在作为通用的宏语言,广泛应用在MicrosoftMicrosoft的其的其的其的其它软件产品中,如它软件产品中,如它软件产品中,如它软件产品中,如WordWord、ExcelExcel等等等等三、面向对象程序设计方法三、面向对象程序设计方法1. Visual Basi程序开发环境程序开发环境标题栏标题栏标题栏标题栏窗体设计窗体设计窗体设计窗体设计器窗口器窗口器窗口器窗口菜单栏菜单栏菜单栏菜单栏工具箱工具箱工具箱工具箱工程管理工程管理工程管理工程管理器窗口器窗口器窗口器窗口属性窗口属性窗口属性窗口属性窗口三、面向对象程序设计方法三、面向对象程序设计方法1. Visual Basi程序开发环境程序开发环境指针指针指针指针标签标签标签标签框架框架框架框架检查框检查框检查框检查框水平滚动条水平滚动条水平滚动条水平滚动条组合框组合框组合框组合框时钟时钟时钟时钟目录列表目录列表目录列表目录列表形状形状形状形状图像图像图像图像对象链接与插入对象链接与插入对象链接与插入对象链接与插入图片框图片框图片框图片框文本框文本框文本框文本框命令按钮命令按钮命令按钮命令按钮单选钮单选钮单选钮单选钮列表框列表框列表框列表框垂直滚动条垂直滚动条垂直滚动条垂直滚动条驱动器列表框驱动器列表框驱动器列表框驱动器列表框文件列表框文件列表框文件列表框文件列表框数据控件数据控件数据控件数据控件三、面向对象程序设计方法三、面向对象程序设计方法2. 建立一个建立一个V程序程序问题:问题:问题:问题: 设计一个程序,根设计一个程序,根设计一个程序,根设计一个程序,根据函数图象确定的根的据函数图象确定的根的据函数图象确定的根的据函数图象确定的根的区间,求一元二次方程区间,求一元二次方程区间,求一元二次方程区间,求一元二次方程axaxaxax2 2 2 2+bx+c=0(a0)+bx+c=0(a0)+bx+c=0(a0)+bx+c=0(a0)的近的近的近的近似根。似根。似根。似根。三、面向对象程序设计方法三、面向对象程序设计方法2. 建立一个建立一个V程序程序分析:分析:分析:分析: 对于一元二次方程,可以用求根公式求得精对于一元二次方程,可以用求根公式求得精对于一元二次方程,可以用求根公式求得精对于一元二次方程,可以用求根公式求得精确解,也可以首先从函数的图象上,估计出根的确解,也可以首先从函数的图象上,估计出根的确解,也可以首先从函数的图象上,估计出根的确解,也可以首先从函数的图象上,估计出根的区间,然后在有根的区间内用逐次分半的二分法区间,然后在有根的区间内用逐次分半的二分法区间,然后在有根的区间内用逐次分半的二分法区间,然后在有根的区间内用逐次分半的二分法求出方程的近似根。求出方程的近似根。求出方程的近似根。求出方程的近似根。三、面向对象程序设计方法三、面向对象程序设计方法步骤:步骤:步骤:步骤:(1)(1)(1)(1)建立程序界面建立程序界面建立程序界面建立程序界面 界面中使用界面中使用界面中使用界面中使用6 6 6 6个文本框,分别用来输入方程的个文本框,分别用来输入方程的个文本框,分别用来输入方程的个文本框,分别用来输入方程的3 3 3 3个系数、输入根的区间和输出计算结果,个系数、输入根的区间和输出计算结果,个系数、输入根的区间和输出计算结果,个系数、输入根的区间和输出计算结果,8 8 8 8个标签个标签个标签个标签用来显示提示信息,用来显示提示信息,用来显示提示信息,用来显示提示信息,2 2 2 2个命令按钮分别完成求根和个命令按钮分别完成求根和个命令按钮分别完成求根和个命令按钮分别完成求根和结束程序的功能。结束程序的功能。结束程序的功能。结束程序的功能。步骤步骤步骤步骤:(2(2(2(2) ) ) )设置对象属性设置对象属性设置对象属性设置对象属性缺省的对象名缺省的对象名缺省的对象名缺省的对象名设置的对象名设置的对象名设置的对象名设置的对象名属性属性属性属性设置值设置值设置值设置值Form1Form1frmEquationfrmEquationCaptionCaption求一元二次方程的近似根求一元二次方程的近似根求一元二次方程的近似根求一元二次方程的近似根Label1Label1CaptionCaption方程方程方程方程: : : :Label2Label2CaptionCaptionx2+x2+x2+x2+Label3Label3CaptionCaptionx+x+x+x+Label4Label4CaptionCaption=0=0=0=0Label5Label5CaptionCaption根的区间根的区间根的区间根的区间:Label6Label6CaptionCaption, , , ,Label7Label7CaptionCaption Label8Label8CaptionCaption结果结果结果结果: : : :Text1Text1txtatxtaTextText(空白)(空白)(空白)(空白)Text2Text2txtbtxtbTextText(空白)(空白)(空白)(空白)Text3Text3txtctxtcTextText(空白)(空白)(空白)(空白)Text4Text4txtLBoundtxtLBoundTextText(空白)(空白)(空白)(空白)Text5Text5txtRBoundtxtRBoundTextText(空白)(空白)(空白)(空白)Text6Text6txtRoottxtRootTextText(空白)(空白)(空白)(空白)Command1Command1cmdBiRootcmdBiRootCaptionCaption近似根近似根近似根近似根Command2Command2cmdCancelcmdCancelCaptionCaption取消取消取消取消步骤:步骤:步骤:步骤:(3(3(3(3) ) ) )编写事件处理程序编写事件处理程序编写事件处理程序编写事件处理程序Private Sub cmdBiRoot_Click() Dim a As Single, b As Single, c As Single Dim x1 As Double, x2 As Double Dim x0 As Double Dim fx0 As Double, fx1 As Double a = Val(txta.Text) 取得各次项系数取得各次项系数取得各次项系数取得各次项系数 b = Val(txtb.Text) c = Val(txtc.Text) x1 = Val(txtLBound.Text) 根的区间赋初值根的区间赋初值根的区间赋初值根的区间赋初值 x2 = Val(txtRBound.Text) Do x0 = (x1 + x2) / 2 计算区间中点计算区间中点计算区间中点计算区间中点 fx0 = a * x0 * x0 + b * x0 + c 计算计算计算计算f(x0)f(x0) fx1 = a * x1 * x1 + b * x1 + c 计算计算计算计算f(x1)f(x1) 判断f(x0)与f(x1)是否同号,缩小区间 If fx0 * fx1 0 Then x1 = x0 Else x2 = x0 End If Loop While Abs(x1 - x2) 0.000001 判断精度是否满足要求判断精度是否满足要求判断精度是否满足要求判断精度是否满足要求 txtRoot.Text = Format(x1, 0.000000)End Sub三、面向对象程序设计方法三、面向对象程序设计方法2. 建立一个建立一个V程序程序步骤:步骤:步骤:步骤:( ( ( (4)4)4)4)运行程序运行程序运行程序运行程序(5)(5)(5)(5)保存工程保存工程保存工程保存工程3. 面向对象程序设计面向对象程序设计(1(1(1(1) ) ) )对象与类对象与类对象与类对象与类 在面向对象的程序设计中,在面向对象的程序设计中,在面向对象的程序设计中,在面向对象的程序设计中,对象是描述现实世界客观事物的对象是描述现实世界客观事物的对象是描述现实世界客观事物的对象是描述现实世界客观事物的一个实体,一辆具体的汽车抽象一个实体,一辆具体的汽车抽象一个实体,一辆具体的汽车抽象一个实体,一辆具体的汽车抽象为一个对象,包含了描述物理特为一个对象,包含了描述物理特为一个对象,包含了描述物理特为一个对象,包含了描述物理特征的数据(汽缸数:征的数据(汽缸数:征的数据(汽缸数:征的数据(汽缸数:4 4 4 4,排汽量:,排汽量:,排汽量:,排汽量:1.8L1.8L1.8L1.8L,发动机功率:,发动机功率:,发动机功率:,发动机功率:67kw67kw67kw67kw,厂牌,厂牌,厂牌,厂牌号:普通桑塔纳,颜色:黑色等)号:普通桑塔纳,颜色:黑色等)号:普通桑塔纳,颜色:黑色等)号:普通桑塔纳,颜色:黑色等)和行为(启动,加速,制动等),和行为(启动,加速,制动等),和行为(启动,加速,制动等),和行为(启动,加速,制动等),这些数据和行为结合成一个整体,这些数据和行为结合成一个整体,这些数据和行为结合成一个整体,这些数据和行为结合成一个整体,构成描述构成描述构成描述构成描述“苏苏苏苏A0000A0000A0000A0000”汽车的一汽车的一汽车的一汽车的一个对象。所有汽车都具有这些特个对象。所有汽车都具有这些特个对象。所有汽车都具有这些特个对象。所有汽车都具有这些特征和行为,把这些特征和行为提征和行为,把这些特征和行为提征和行为,把这些特征和行为提征和行为,把这些特征和行为提取出来,就构成了一个取出来,就构成了一个取出来,就构成了一个取出来,就构成了一个“汽车汽车汽车汽车”类。类。类。类。苏苏苏苏A0000A0000汽缸数:汽缸数:汽缸数:汽缸数:4 4排汽量:排汽量:排汽量:排汽量:1.8L1.8L发动机功率:发动机功率:发动机功率:发动机功率:67kw67kw厂牌号:普通桑塔纳厂牌号:普通桑塔纳厂牌号:普通桑塔纳厂牌号:普通桑塔纳颜色:黑色颜色:黑色颜色:黑色颜色:黑色行为:启动、加速、制动行为:启动、加速、制动行为:启动、加速、制动行为:启动、加速、制动汽车汽车汽车汽车汽缸数汽缸数汽缸数汽缸数排汽量排汽量排汽量排汽量发动机功率发动机功率发动机功率发动机功率厂牌号厂牌号厂牌号厂牌号颜色颜色颜色颜色行为:启动、加速、制动行为:启动、加速、制动行为:启动、加速、制动行为:启动、加速、制动类类类类对象对象对象对象3. 面向对象程序设计面向对象程序设计VBVBVBVB中的类与对象中的类与对象中的类与对象中的类与对象类类类类对象对象对象对象3. 面向对象程序设计面向对象程序设计(2) (2) (2) (2) 对象的属性、方法和事件对象的属性、方法和事件对象的属性、方法和事件对象的属性、方法和事件1 1)属性)属性)属性)属性 属性是对象的性质,对象的许多属性会影响对象的外观属性是对象的性质,对象的许多属性会影响对象的外观属性是对象的性质,对象的许多属性会影响对象的外观属性是对象的性质,对象的许多属性会影响对象的外观及功能。对象的属性可以在设计界面时通过属性窗口设置,及功能。对象的属性可以在设计界面时通过属性窗口设置,及功能。对象的属性可以在设计界面时通过属性窗口设置,及功能。对象的属性可以在设计界面时通过属性窗口设置,也可以在运行时通过程序代码设置,方法如下:也可以在运行时通过程序代码设置,方法如下:也可以在运行时通过程序代码设置,方法如下:也可以在运行时通过程序代码设置,方法如下: 对象对象对象对象. .属性属性属性属性= =属性值属性值属性值属性值例如,给文本框例如,给文本框例如,给文本框例如,给文本框“ “txtSourcetxtSource” ”的的的的“ “Text”Text”属性赋值为字符串属性赋值为字符串属性赋值为字符串属性赋值为字符串2020,代码如下:,代码如下:,代码如下:,代码如下: txtSource.TexttxtSource.Text=20=20 如果要获取对象的状态或特性,这时就要读取对象的属如果要获取对象的状态或特性,这时就要读取对象的属如果要获取对象的状态或特性,这时就要读取对象的属如果要获取对象的状态或特性,这时就要读取对象的属性值,方法如下:性值,方法如下:性值,方法如下:性值,方法如下: 变量变量变量变量= =对象对象对象对象. .属性属性属性属性例如,读取文本框例如,读取文本框例如,读取文本框例如,读取文本框“ “txtSourcetxtSource” ”的的的的“ “Text”Text”属性的代码如下:属性的代码如下:属性的代码如下:属性的代码如下: a = a = txtSource.TexttxtSource.Text3. 面向对象程序设计面向对象程序设计(2) (2) (2) (2) 对象的属性、方法和事件对象的属性、方法和事件对象的属性、方法和事件对象的属性、方法和事件2 2)方法)方法)方法)方法 方法是指封装在对象内部的执行一项任务的过程或函数,方法是指封装在对象内部的执行一项任务的过程或函数,方法是指封装在对象内部的执行一项任务的过程或函数,方法是指封装在对象内部的执行一项任务的过程或函数,是对象本身固有的动作,可以直接调用。方法是针对特定对是对象本身固有的动作,可以直接调用。方法是针对特定对是对象本身固有的动作,可以直接调用。方法是针对特定对是对象本身固有的动作,可以直接调用。方法是针对特定对象的,调用对象方法的格式如下:象的,调用对象方法的格式如下:象的,调用对象方法的格式如下:象的,调用对象方法的格式如下: 对象对象对象对象.方法方法方法方法 参数名表参数名表参数名表参数名表 例如:例如:例如:例如:Form1.Print Form1.Print 欢迎使用欢迎使用欢迎使用欢迎使用Visual BasicVisual Basic3. 面向对象程序设计面向对象程序设计(2) (2) (2) (2) 对象的属性、方法和事件对象的属性、方法和事件对象的属性、方法和事件对象的属性、方法和事件3) 3) 事件事件事件事件 事件是对象对外部操作的响应事件是对象对外部操作的响应事件是对象对外部操作的响应事件是对象对外部操作的响应, ,每个对象都有一每个对象都有一每个对象都有一每个对象都有一系列预先定义的事件集系列预先定义的事件集系列预先定义的事件集系列预先定义的事件集。 事件过程的形式如下事件过程的形式如下事件过程的形式如下事件过程的形式如下: Private Sub Private Sub 对象对象对象对象_ _事件名事件名事件名事件名() () (事件过程代码事件过程代码事件过程代码事件过程代码) End SubEnd Sub 属性、方法、事件构成了对象的三要素。属性、方法、事件构成了对象的三要素。属性、方法、事件构成了对象的三要素。属性、方法、事件构成了对象的三要素。三、面向对象程序设计方法三、面向对象程序设计方法4. 事件驱动的编程机制事件驱动的编程机制 在传统的面向过程的程序设计语言中,在传统的面向过程的程序设计语言中,在传统的面向过程的程序设计语言中,在传统的面向过程的程序设计语言中,程序自身程序自身程序自身程序自身控制了代码的执行控制了代码的执行控制了代码的执行控制了代码的执行,从第一行代码开始按照预定的路,从第一行代码开始按照预定的路,从第一行代码开始按照预定的路,从第一行代码开始按照预定的路径执行程序,必要时调用过程或函数,程序必须有明径执行程序,必要时调用过程或函数,程序必须有明径执行程序,必要时调用过程或函数,程序必须有明径执行程序,必要时调用过程或函数,程序必须有明显的开始、结束,靠代码控制程序执行的顺序显的开始、结束,靠代码控制程序执行的顺序显的开始、结束,靠代码控制程序执行的顺序显的开始、结束,靠代码控制程序执行的顺序。 VBVB程序没有明显的开始和结束,程序没有明显的开始和结束,程序没有明显的开始和结束,程序没有明显的开始和结束,程序的执行是程序的执行是程序的执行是程序的执行是由事件控制的由事件控制的由事件控制的由事件控制的,代码不是按照预定的路径执行,而是,代码不是按照预定的路径执行,而是,代码不是按照预定的路径执行,而是,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码,事件的顺序决在响应不同的事件时执行不同的代码,事件的顺序决在响应不同的事件时执行不同的代码,事件的顺序决在响应不同的事件时执行不同的代码,事件的顺序决定了代码的执行顺序,这就是定了代码的执行顺序,这就是定了代码的执行顺序,这就是定了代码的执行顺序,这就是VBVB的事件驱动的事件驱动的事件驱动的事件驱动(event (event driven)driven)的程序设计思想。的程序设计思想。的程序设计思想。的程序设计思想。四、四、“如何用计算机解决问题如何用计算机解决问题”教学活动建教学活动建议议(一)内容标准一)内容标准1.结合实例,经历分析问题、确定算法、编程求解等结合实例,经历分析问题、确定算法、编程求解等结合实例,经历分析问题、确定算法、编程求解等结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设用计算机解决问题的基本过程,认识算法和程序设用计算机解决问题的基本过程,认识算法和程序设用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。计在其中的地位和作用。计在其中的地位和作用。计在其中的地位和作用。 2.经历用自然语言、流程图或伪代码等方法描述算法经历用自然语言、流程图或伪代码等方法描述算法经历用自然语言、流程图或伪代码等方法描述算法经历用自然语言、流程图或伪代码等方法描述算法的过程。的过程。的过程。的过程。3.在使用计算机解决实际问题的过程中,通过观看演在使用计算机解决实际问题的过程中,通过观看演在使用计算机解决实际问题的过程中,通过观看演在使用计算机解决实际问题的过程中,通过观看演示、模仿、探究、实践等环节,了解顺序、选择、示、模仿、探究、实践等环节,了解顺序、选择、示、模仿、探究、实践等环节,了解顺序、选择、示、模仿、探究、实践等环节,了解顺序、选择、循环三种基本结构及其重要作用,掌握计算机程序循环三种基本结构及其重要作用,掌握计算机程序循环三种基本结构及其重要作用,掌握计算机程序循环三种基本结构及其重要作用,掌握计算机程序的基本概念,能解释计算机程序执行的基本过程。的基本概念,能解释计算机程序执行的基本过程。的基本概念,能解释计算机程序执行的基本过程。的基本概念,能解释计算机程序执行的基本过程。4.能够说出程序设计语言产生、发展的历史与过程,能够说出程序设计语言产生、发展的历史与过程,能够说出程序设计语言产生、发展的历史与过程,能够说出程序设计语言产生、发展的历史与过程,能够解释其意义。能够解释其意义。能够解释其意义。能够解释其意义。(二)教学活动建议二)教学活动建议1.通过例举生活与学习中需要用计算机解决的问题,通过例举生活与学习中需要用计算机解决的问题,通过例举生活与学习中需要用计算机解决的问题,通过例举生活与学习中需要用计算机解决的问题,如有关数值计算、逻辑等方面的问题,让学生认识如有关数值计算、逻辑等方面的问题,让学生认识如有关数值计算、逻辑等方面的问题,让学生认识如有关数值计算、逻辑等方面的问题,让学生认识问题,形成问题意识,感受利用计算机解决问题的问题,形成问题意识,感受利用计算机解决问题的问题,形成问题意识,感受利用计算机解决问题的问题,形成问题意识,感受利用计算机解决问题的必要性必要性必要性必要性案例:案例:案例:案例:解一元方程解一元方程解一元方程解一元方程 活动目的:了解用计算机解决问题和手工解决问题方式的区别。活动目的:了解用计算机解决问题和手工解决问题方式的区别。活动目的:了解用计算机解决问题和手工解决问题方式的区别。活动目的:了解用计算机解决问题和手工解决问题方式的区别。 活动内容:日常生活中的许多实际问题可以归结为方程问题。那活动内容:日常生活中的许多实际问题可以归结为方程问题。那活动内容:日常生活中的许多实际问题可以归结为方程问题。那活动内容:日常生活中的许多实际问题可以归结为方程问题。那么,如何求方程的根呢?对于一元二次方程,如么,如何求方程的根呢?对于一元二次方程,如么,如何求方程的根呢?对于一元二次方程,如么,如何求方程的根呢?对于一元二次方程,如2x2x2 2-13x+11=0-13x+11=0,可,可,可,可以用初中学过的配方法、公式法、分解因式法等代数方法解决,在以用初中学过的配方法、公式法、分解因式法等代数方法解决,在以用初中学过的配方法、公式法、分解因式法等代数方法解决,在以用初中学过的配方法、公式法、分解因式法等代数方法解决,在计算机上,可以根据二次函数计算机上,可以根据二次函数计算机上,可以根据二次函数计算机上,可以根据二次函数y=2xy=2x2 2-13x+11-13x+11的图象,用数值法求它的图象,用数值法求它的图象,用数值法求它的图象,用数值法求它的近似解。分别用代数方法和计算机解这个方程,体验用计算机解的近似解。分别用代数方法和计算机解这个方程,体验用计算机解的近似解。分别用代数方法和计算机解这个方程,体验用计算机解的近似解。分别用代数方法和计算机解这个方程,体验用计算机解决问题和手工解决问题方式的区别。决问题和手工解决问题方式的区别。决问题和手工解决问题方式的区别。决问题和手工解决问题方式的区别。(二)教学活动建议二)教学活动建议Step 1 Step 1 用代数方法解一元二次方程用代数方法解一元二次方程用代数方法解一元二次方程用代数方法解一元二次方程2x2x2 2-13x+11=0-13x+11=0方方方方 法法法法思思思思 路路路路过程与结果过程与结果过程与结果过程与结果配方法配方法配方法配方法公式法公式法公式法公式法分解因式法分解因式法分解因式法分解因式法你还知道哪些解一元二次方程的方法你还知道哪些解一元二次方程的方法你还知道哪些解一元二次方程的方法你还知道哪些解一元二次方程的方法?(二)教学活动建议二)教学活动建议Step 2 Step 2 了解一元高次方程的解法了解一元高次方程的解法了解一元高次方程的解法了解一元高次方程的解法。 如何求解二次以上的一元三次、一元四次及以上的方程如何求解二次以上的一元三次、一元四次及以上的方程如何求解二次以上的一元三次、一元四次及以上的方程如何求解二次以上的一元三次、一元四次及以上的方程呢?选择适当的搜索引擎搜索因特网,也可以向老师或专家请呢?选择适当的搜索引擎搜索因特网,也可以向老师或专家请呢?选择适当的搜索引擎搜索因特网,也可以向老师或专家请呢?选择适当的搜索引擎搜索因特网,也可以向老师或专家请教,收集一元高次方程的解法,整理后与同学交流教,收集一元高次方程的解法,整理后与同学交流教,收集一元高次方程的解法,整理后与同学交流教,收集一元高次方程的解法,整理后与同学交流。(二)教学活动建议二)教学活动建议Step 3 Step 3 用计算机求方程的近似根。用计算机求方程的近似根。用计算机求方程的近似根。用计算机求方程的近似根。 运行运行运行运行 EquationEquation程序,输入二次函数程序,输入二次函数程序,输入二次函数程序,输入二次函数y=2xy=2x2 2-13x+11-13x+11的函的函的函的函数表达式,单击数表达式,单击数表达式,单击数表达式,单击“ “绘图绘图绘图绘图” ”按钮得到该函数的图象,从函数图象按钮得到该函数的图象,从函数图象按钮得到该函数的图象,从函数图象按钮得到该函数的图象,从函数图象可知方程可知方程可知方程可知方程2x2x2 2-13x+11=0-13x+11=0在区间在区间在区间在区间00,22、55,66内各有一个实内各有一个实内各有一个实内各有一个实根,分别输入根的区间,单击根,分别输入根的区间,单击根,分别输入根的区间,单击根,分别输入根的区间,单击“ “近似根近似根近似根近似根” ”按钮,求得方程的近按钮,求得方程的近按钮,求得方程的近按钮,求得方程的近似根,与前面用代数方法求得的根比较,结果是否相同?似根,与前面用代数方法求得的根比较,结果是否相同?似根,与前面用代数方法求得的根比较,结果是否相同?似根,与前面用代数方法求得的根比较,结果是否相同? 输入其它的二次、三次、四次及以上的函数表达式,分输入其它的二次、三次、四次及以上的函数表达式,分输入其它的二次、三次、四次及以上的函数表达式,分输入其它的二次、三次、四次及以上的函数表达式,分别求相应方程的近似根,看用计算机解方程的方法与方程的次别求相应方程的近似根,看用计算机解方程的方法与方程的次别求相应方程的近似根,看用计算机解方程的方法与方程的次别求相应方程的近似根,看用计算机解方程的方法与方程的次数是否有关?数是否有关?数是否有关?数是否有关?方方方方 程程程程近似根近似根近似根近似根(二)教学活动建议二)教学活动建议Step 4 Step 4 计算机如何解题计算机如何解题计算机如何解题计算机如何解题 打开打开打开打开EquationEquation源程序,找到源程序,找到源程序,找到源程序,找到frmDrawfrmDraw模块中的模块中的模块中的模块中的cmdRoot_ClickcmdRoot_Click() ()事件过程事件过程事件过程事件过程,在老师的指导下,向,在老师的指导下,向,在老师的指导下,向,在老师的指导下,向“ “监视监视监视监视” ”窗口分别添加监视窗口分别添加监视窗口分别添加监视窗口分别添加监视表达式表达式表达式表达式x1x1、x2x2、x0x0、Func(x0) * Func(x1) 0Func(x0) * Func(x1) 0,选取,选取,选取,选取“ “当监当监当监当监视值改变时中断视值改变时中断视值改变时中断视值改变时中断” ”按钮按钮按钮按钮,运行程序,输入函数表达式,运行程序,输入函数表达式,运行程序,输入函数表达式,运行程序,输入函数表达式x2-x2-13x+1113x+11,根据程序断点和,根据程序断点和,根据程序断点和,根据程序断点和“ “监视监视监视监视” ”窗口跟踪程序的执行过程,窗口跟踪程序的执行过程,窗口跟踪程序的执行过程,窗口跟踪程序的执行过程,观察并记载程序的观察并记载程序的观察并记载程序的观察并记载程序的解题步骤。解题步骤。解题步骤。解题步骤。(二)教学活动建议二)教学活动建议2. 2. 通过实验活动,帮助学生感知算法在用计算机解决通过实验活动,帮助学生感知算法在用计算机解决通过实验活动,帮助学生感知算法在用计算机解决通过实验活动,帮助学生感知算法在用计算机解决问题过程中的地位和作用问题过程中的地位和作用问题过程中的地位和作用问题过程中的地位和作用案例:案例:案例:案例:排序算法的实验比较排序算法的实验比较排序算法的实验比较排序算法的实验比较实验目的:比较选择排序和快速排序速度。实验目的:比较选择排序和快速排序速度。实验目的:比较选择排序和快速排序速度。实验目的:比较选择排序和快速排序速度。实验内容:运行实验内容:运行实验内容:运行实验内容:运行 sortsort程序。对于每种排序算法,分别产生程序。对于每种排序算法,分别产生程序。对于每种排序算法,分别产生程序。对于每种排序算法,分别产生1010、100100、10001000、1000010000个个个个3 3位随机整数,测试排序的时间(单位:毫秒)。位随机整数,测试排序的时间(单位:毫秒)。位随机整数,测试排序的时间(单位:毫秒)。位随机整数,测试排序的时间(单位:毫秒)。请记录下你的实验数据,比较两种排序算法的效率。请记录下你的实验数据,比较两种排序算法的效率。请记录下你的实验数据,比较两种排序算法的效率。请记录下你的实验数据,比较两种排序算法的效率。算算算算 法法法法1010100100100010001000010000选择排序选择排序选择排序选择排序快速排序快速排序快速排序快速排序(二)教学活动建议二)教学活动建议3. 3. 通过一个具体的实例,从提出问题入手,引导学生通过一个具体的实例,从提出问题入手,引导学生通过一个具体的实例,从提出问题入手,引导学生通过一个具体的实例,从提出问题入手,引导学生在将以往所学的数学解题过程迁移过来,设计算法在将以往所学的数学解题过程迁移过来,设计算法在将以往所学的数学解题过程迁移过来,设计算法在将以往所学的数学解题过程迁移过来,设计算法并使用自然语言、流程图等描述算法,使用并使用自然语言、流程图等描述算法,使用并使用自然语言、流程图等描述算法,使用并使用自然语言、流程图等描述算法,使用Visual Visual BasicBasic语言实现算法,从而经历用计算机解决问题语言实现算法,从而经历用计算机解决问题语言实现算法,从而经历用计算机解决问题语言实现算法,从而经历用计算机解决问题的基本过程。的基本过程。的基本过程。的基本过程。(二)教学活动建议二)教学活动建议案例:案例:案例:案例:韩信点兵韩信点兵韩信点兵韩信点兵 分析问题,建立数学模型:设士兵共有分析问题,建立数学模型:设士兵共有分析问题,建立数学模型:设士兵共有分析问题,建立数学模型:设士兵共有mm名。名。名。名。mm除以除以除以除以3 3,5 5,7 7所得的商分别为所得的商分别为所得的商分别为所得的商分别为x x,y,zy,z,那么由题意,有以下不定方程组:,那么由题意,有以下不定方程组:,那么由题意,有以下不定方程组:,那么由题意,有以下不定方程组: 确定算法:通过分析问题,写出问题的求解过程,将其步骤化,确定算法:通过分析问题,写出问题的求解过程,将其步骤化,确定算法:通过分析问题,写出问题的求解过程,将其步骤化,确定算法:通过分析问题,写出问题的求解过程,将其步骤化,设计算法,并就不同的解决方法的步骤、效率和合理性作出比较。设计算法,并就不同的解决方法的步骤、效率和合理性作出比较。设计算法,并就不同的解决方法的步骤、效率和合理性作出比较。设计算法,并就不同的解决方法的步骤、效率和合理性作出比较。(二)教学活动建议二)教学活动建议案例:案例:案例:案例: 编制程序:教师直接给出对应于算法的程序,并对照流程图初编制程序:教师直接给出对应于算法的程序,并对照流程图初编制程序:教师直接给出对应于算法的程序,并对照流程图初编制程序:教师直接给出对应于算法的程序,并对照流程图初步分析程序是如何实现算法的。步分析程序是如何实现算法的。步分析程序是如何实现算法的。步分析程序是如何实现算法的。 运行程序:引导学生打开并执行程序,体验计算机运行程序的运行程序:引导学生打开并执行程序,体验计算机运行程序的运行程序:引导学生打开并执行程序,体验计算机运行程序的运行程序:引导学生打开并执行程序,体验计算机运行程序的过程,并对结果进行分析和验证。过程,并对结果进行分析和验证。过程,并对结果进行分析和验证。过程,并对结果进行分析和验证。(二)教学活动建议二)教学活动建议4. 4. 尽管本章从学生学习和生活的实例出发,列举了一尽管本章从学生学习和生活的实例出发,列举了一尽管本章从学生学习和生活的实例出发,列举了一尽管本章从学生学习和生活的实例出发,列举了一些典型的、常见的例子,但算法仍是学生较难理解些典型的、常见的例子,但算法仍是学生较难理解些典型的、常见的例子,但算法仍是学生较难理解些典型的、常见的例子,但算法仍是学生较难理解和掌握的内容。本章只是开始,要求不能过高,随和掌握的内容。本章只是开始,要求不能过高,随和掌握的内容。本章只是开始,要求不能过高,随和掌握的内容。本章只是开始,要求不能过高,随着学习的深入,积累的算法的增多,学生的理解会着学习的深入,积累的算法的增多,学生的理解会着学习的深入,积累的算法的增多,学生的理解会着学习的深入,积累的算法的增多,学生的理解会逐步加深。对此,教师应注意循序渐进,不能要求逐步加深。对此,教师应注意循序渐进,不能要求逐步加深。对此,教师应注意循序渐进,不能要求逐步加深。对此,教师应注意循序渐进,不能要求学生一蹴而就。学生一蹴而就。学生一蹴而就。学生一蹴而就。五、五、“程序设计程序设计ABC”教学活动建议教学活动建议(一)内容标准一)内容标准1.理解并掌握一种程序设计语言的基本知识,包括语理解并掌握一种程序设计语言的基本知识,包括语理解并掌握一种程序设计语言的基本知识,包括语理解并掌握一种程序设计语言的基本知识,包括语句、数据类型、变量、常量、表达式、函数。会使句、数据类型、变量、常量、表达式、函数。会使句、数据类型、变量、常量、表达式、函数。会使句、数据类型、变量、常量、表达式、函数。会使用程序设计语言实现顺序、选择、循环三种控制结用程序设计语言实现顺序、选择、循环三种控制结用程序设计语言实现顺序、选择、循环三种控制结用程序设计语言实现顺序、选择、循环三种控制结构。构。构。构。2.初步掌握调试、运行程序的方法。初步掌握调试、运行程序的方法。初步掌握调试、运行程序的方法。初步掌握调试、运行程序的方法。3.了解程序设计语言、编辑程序、编译程序、连接程了解程序设计语言、编辑程序、编译程序、连接程了解程序设计语言、编辑程序、编译程序、连接程了解程序设计语言、编辑程序、编译程序、连接程序以及程序开发环境等基本知识。序以及程序开发环境等基本知识。序以及程序开发环境等基本知识。序以及程序开发环境等基本知识。(二)教学活动建议二)教学活动建议1.注重让学生在实践中掌握解程序设计语言集成环境注重让学生在实践中掌握解程序设计语言集成环境注重让学生在实践中掌握解程序设计语言集成环境注重让学生在实践中掌握解程序设计语言集成环境的使用的使用的使用的使用(1)(1)(1)(1)教师演示教师演示教师演示教师演示VB VB VB VB 集成环境各工具的使用,常用控件的使用,集成环境各工具的使用,常用控件的使用,集成环境各工具的使用,常用控件的使用,集成环境各工具的使用,常用控件的使用,让学生初步了解控件、对象、属性等基本概念及其操作方让学生初步了解控件、对象、属性等基本概念及其操作方让学生初步了解控件、对象、属性等基本概念及其操作方让学生初步了解控件、对象、属性等基本概念及其操作方法。法。法。法。 窗体设计器窗口是进行界面设计的窗口,教师可先给学窗体设计器窗口是进行界面设计的窗口,教师可先给学窗体设计器窗口是进行界面设计的窗口,教师可先给学窗体设计器窗口是进行界面设计的窗口,教师可先给学生展示几个已设计好的窗体,如超市收银机程序、教科书生展示几个已设计好的窗体,如超市收银机程序、教科书生展示几个已设计好的窗体,如超市收银机程序、教科书生展示几个已设计好的窗体,如超市收银机程序、教科书中的奖牌统计程序的界面,然后再演示如何用工具箱中的中的奖牌统计程序的界面,然后再演示如何用工具箱中的中的奖牌统计程序的界面,然后再演示如何用工具箱中的中的奖牌统计程序的界面,然后再演示如何用工具箱中的工具进行窗体设计,让学生观察工具进行窗体设计,让学生观察工具进行窗体设计,让学生观察工具进行窗体设计,让学生观察“画出画出画出画出”控件的过程,体控件的过程,体控件的过程,体控件的过程,体会会会会“可视化可视化可视化可视化”的含义。的含义。的含义。的含义。 属性、方法和事件是对象的三要素,可以通过对多个属性、方法和事件是对象的三要素,可以通过对多个属性、方法和事件是对象的三要素,可以通过对多个属性、方法和事件是对象的三要素,可以通过对多个日常生活实例的分析,逐步让学生领会它们的含义,如教日常生活实例的分析,逐步让学生领会它们的含义,如教日常生活实例的分析,逐步让学生领会它们的含义,如教日常生活实例的分析,逐步让学生领会它们的含义,如教科书中的气球。科书中的气球。科书中的气球。科书中的气球。(二)教学活动建议二)教学活动建议(2) (2) (2) (2) 通过一此趣味性程序,指导学生完成程序的界面制作与通过一此趣味性程序,指导学生完成程序的界面制作与通过一此趣味性程序,指导学生完成程序的界面制作与通过一此趣味性程序,指导学生完成程序的界面制作与程序的输入、调试、运行、保存,在体验中掌握集成环境程序的输入、调试、运行、保存,在体验中掌握集成环境程序的输入、调试、运行、保存,在体验中掌握集成环境程序的输入、调试、运行、保存,在体验中掌握集成环境的使用,在体验中感受程序的执行方式与作用。例如:的使用,在体验中感受程序的执行方式与作用。例如:的使用,在体验中感受程序的执行方式与作用。例如:的使用,在体验中感受程序的执行方式与作用。例如: 打字测试程序、数字时钟程序。打字测试程序、数字时钟程序。打字测试程序、数字时钟程序。打字测试程序、数字时钟程序。 (3) VB(3) VB(3) VB(3) VB的工具箱中共提供了的工具箱中共提供了的工具箱中共提供了的工具箱中共提供了20202020个标准控件,每个控件个标准控件,每个控件个标准控件,每个控件个标准控件,每个控件都有一都有一都有一都有一组自己的属性、方法和事件,不可能也不需要学生掌握每组自己的属性、方法和事件,不可能也不需要学生掌握每组自己的属性、方法和事件,不可能也不需要学生掌握每组自己的属性、方法和事件,不可能也不需要学生掌握每个控件的所有属性、方法和事件,教科书中只介绍了它们个控件的所有属性、方法和事件,教科书中只介绍了它们个控件的所有属性、方法和事件,教科书中只介绍了它们个控件的所有属性、方法和事件,教科书中只介绍了它们的最基本、最重要的属性、方法和事件。其它控件的用法的最基本、最重要的属性、方法和事件。其它控件的用法的最基本、最重要的属性、方法和事件。其它控件的用法的最基本、最重要的属性、方法和事件。其它控件的用法在使用之处,教师可结合具体问题演示它们的作用。在使用之处,教师可结合具体问题演示它们的作用。在使用之处,教师可结合具体问题演示它们的作用。在使用之处,教师可结合具体问题演示它们的作用。(二)教学活动建议二)教学活动建议2. 2. 数据的表示与处理是程序设计中的重要环节,但初数据的表示与处理是程序设计中的重要环节,但初数据的表示与处理是程序设计中的重要环节,但初数据的表示与处理是程序设计中的重要环节,但初学者很难比较快的理解与掌握,需要一个过程。教学者很难比较快的理解与掌握,需要一个过程。教学者很难比较快的理解与掌握,需要一个过程。教学者很难比较快的理解与掌握,需要一个过程。教师可以结合计算机的工作原理,比较常量、变量与师可以结合计算机的工作原理,比较常量、变量与师可以结合计算机的工作原理,比较常量、变量与师可以结合计算机的工作原理,比较常量、变量与数学课程中相关概念的异同,以及数学运算符数学课程中相关概念的异同,以及数学运算符数学课程中相关概念的异同,以及数学运算符数学课程中相关概念的异同,以及数学运算符、表表表表达式与程序中的运算符达式与程序中的运算符达式与程序中的运算符达式与程序中的运算符、表达式的异同;常用函数表达式的异同;常用函数表达式的异同;常用函数表达式的异同;常用函数的使用方式,并通过后续的学习过程逐步深化理解的使用方式,并通过后续的学习过程逐步深化理解的使用方式,并通过后续的学习过程逐步深化理解的使用方式,并通过后续的学习过程逐步深化理解与正确使用与正确使用与正确使用与正确使用。(二)教学活动建议二)教学活动建议(1) (1) (1) (1) 变量。变量是一个难点,初学时,学生往往不能正确区变量。变量是一个难点,初学时,学生往往不能正确区变量。变量是一个难点,初学时,学生往往不能正确区变量。变量是一个难点,初学时,学生往往不能正确区分计算机程序中的变量和数学中的变量。分计算机程序中的变量和数学中的变量。分计算机程序中的变量和数学中的变量。分计算机程序中的变量和数学中的变量。在数学中,变量在数学中,变量在数学中,变量在数学中,变量隐含着未知,隐含着未知,隐含着未知,隐含着未知,而在计算机程序中,变量是一个被赋值的名而在计算机程序中,变量是一个被赋值的名而在计算机程序中,变量是一个被赋值的名而在计算机程序中,变量是一个被赋值的名称,对应着内存中一定的存储单元,变量名实际上是变量称,对应着内存中一定的存储单元,变量名实际上是变量称,对应着内存中一定的存储单元,变量名实际上是变量称,对应着内存中一定的存储单元,变量名实际上是变量的符号地址。的符号地址。的符号地址。的符号地址。变量的值在程序执行过程中是可以改变的,变量的值在程序执行过程中是可以改变的,变量的值在程序执行过程中是可以改变的,变量的值在程序执行过程中是可以改变的,但在每一个时刻都有一个确定的值。但在每一个时刻都有一个确定的值。但在每一个时刻都有一个确定的值。但在每一个时刻都有一个确定的值。赋值语句赋值语句赋值语句赋值语句 x=yx=yX XY Y6 69 9之前之前之前之前9 99 9之后之后之后之后=赋值语句赋值语句赋值语句赋值语句x=x+y+4x=x+y+4X XY Y6 69 9之前之前之前之前19199 9之后之后之后之后4 4+(二)教学活动建议二)教学活动建议(2) (2) (2) (2) 标准函数。标准函数。标准函数。标准函数。VBVBVBVB中提供了大量的内部函数,教科书中列出中提供了大量的内部函数,教科书中列出中提供了大量的内部函数,教科书中列出中提供了大量的内部函数,教科书中列出了一些常用的内部函数,建议这里只要求学生掌握调用函了一些常用的内部函数,建议这里只要求学生掌握调用函了一些常用的内部函数,建议这里只要求学生掌握调用函了一些常用的内部函数,建议这里只要求学生掌握调用函数的方法:函数名数的方法:函数名数的方法:函数名数的方法:函数名( ( ( (自变量自变量自变量自变量) ) ) )。教学中,可初步介绍一下各。教学中,可初步介绍一下各。教学中,可初步介绍一下各。教学中,可初步介绍一下各个函数的功能,不要求学生一步掌握,在后续例题中,用个函数的功能,不要求学生一步掌握,在后续例题中,用个函数的功能,不要求学生一步掌握,在后续例题中,用个函数的功能,不要求学生一步掌握,在后续例题中,用到某个函数时再作详细分析。到某个函数时再作详细分析。到某个函数时再作详细分析。到某个函数时再作详细分析。(3) (3) (3) (3) 表达式。表达式是本章的重点和难点,表达式。表达式是本章的重点和难点,表达式。表达式是本章的重点和难点,表达式。表达式是本章的重点和难点,Visual BasicVisual BasicVisual BasicVisual Basic表表表表达式与数学中代数式的书写形式不一样。它们的运算结果达式与数学中代数式的书写形式不一样。它们的运算结果达式与数学中代数式的书写形式不一样。它们的运算结果达式与数学中代数式的书写形式不一样。它们的运算结果也不一样,也不一样,也不一样,也不一样,一般代数式的运算结果还是一个代数式一般代数式的运算结果还是一个代数式一般代数式的运算结果还是一个代数式一般代数式的运算结果还是一个代数式,而而而而Visual BasicVisual BasicVisual BasicVisual Basic表达式的运算结果是一个具体的值表达式的运算结果是一个具体的值表达式的运算结果是一个具体的值表达式的运算结果是一个具体的值。教学中,。教学中,。教学中,。教学中,应适当进行一些将代数式写成表达式,及表达式中运算符应适当进行一些将代数式写成表达式,及表达式中运算符应适当进行一些将代数式写成表达式,及表达式中运算符应适当进行一些将代数式写成表达式,及表达式中运算符运算顺序的训练。运算顺序的训练。运算顺序的训练。运算顺序的训练。(二)教学活动建议二)教学活动建议(4) Let(4) Let(4) Let(4) Let语句的教学中要注意以下几个问题:语句的教学中要注意以下几个问题:语句的教学中要注意以下几个问题:语句的教学中要注意以下几个问题:Visual BasicVisual BasicVisual BasicVisual Basic中的中的中的中的“= = = =”有两种意义,一是此处的有两种意义,一是此处的有两种意义,一是此处的有两种意义,一是此处的“赋值赋值赋值赋值号号号号”,二是关系运算符,二是关系运算符,二是关系运算符,二是关系运算符“等于号等于号等于号等于号”。赋值号赋值号赋值号赋值号“= = = =”左边只能是变量,不能是数值或表达式,下左边只能是变量,不能是数值或表达式,下左边只能是变量,不能是数值或表达式,下左边只能是变量,不能是数值或表达式,下面的写法是错误的:面的写法是错误的:面的写法是错误的:面的写法是错误的: 4= 4= 4= 4=x+yx+yx+yx+y a+b/2=6 a+b/2=6 a+b/2=6 a+b/2=6 等于号的两边可以是表达式,两边对调后与原来的表示等于号的两边可以是表达式,两边对调后与原来的表示等于号的两边可以是表达式,两边对调后与原来的表示等于号的两边可以是表达式,两边对调后与原来的表示等价。等价。等价。等价。将一个变量的值赋给另一个变量,前一个变量的值保持不将一个变量的值赋给另一个变量,前一个变量的值保持不将一个变量的值赋给另一个变量,前一个变量的值保持不将一个变量的值赋给另一个变量,前一个变量的值保持不变。变。变。变。(二)教学活动建议二)教学活动建议3. 3. 程序的基本结构程序的基本结构程序的基本结构程序的基本结构(1)(1)关于选择结构。关于选择结构。关于选择结构。关于选择结构。If If语句的条件可以是关系表达式,语句的条件可以是关系表达式,语句的条件可以是关系表达式,语句的条件可以是关系表达式,也可以是逻辑表达式。此时,应结合选择结构条件也可以是逻辑表达式。此时,应结合选择结构条件也可以是逻辑表达式。此时,应结合选择结构条件也可以是逻辑表达式。此时,应结合选择结构条件的设置,回顾关系表达式和逻辑表达式的知识。学的设置,回顾关系表达式和逻辑表达式的知识。学的设置,回顾关系表达式和逻辑表达式的知识。学的设置,回顾关系表达式和逻辑表达式的知识。学生才开始写关系表达式时,生才开始写关系表达式时,生才开始写关系表达式时,生才开始写关系表达式时,最容易出现的错误是不最容易出现的错误是不最容易出现的错误是不最容易出现的错误是不能正确书写三个关系运算符能正确书写三个关系运算符能正确书写三个关系运算符能正确书写三个关系运算符“ “” ”、“ “=” ”、“ “=” ”,要告诉学生任何一个程序设计语言都有自要告诉学生任何一个程序设计语言都有自要告诉学生任何一个程序设计语言都有自要告诉学生任何一个程序设计语言都有自己的字符集,己的字符集,己的字符集,己的字符集,VBVB的字符集包括英文字母、数字及的字符集包括英文字母、数字及的字符集包括英文字母、数字及的字符集包括英文字母、数字及一些符号,但这些符号当中不包括数学中的三个关一些符号,但这些符号当中不包括数学中的三个关一些符号,但这些符号当中不包括数学中的三个关一些符号,但这些符号当中不包括数学中的三个关系符系符系符系符“”“”、“”“”、“”“”,只能用其他的合法,只能用其他的合法,只能用其他的合法,只能用其他的合法字符的组合来代替,另外,也要进行一些将数学中字符的组合来代替,另外,也要进行一些将数学中字符的组合来代替,另外,也要进行一些将数学中字符的组合来代替,另外,也要进行一些将数学中的不等式转换成的不等式转换成的不等式转换成的不等式转换成VBVB关系表达式的训练。关系表达式的训练。关系表达式的训练。关系表达式的训练。(二)教学活动建议二)教学活动建议 (2)(2)通过一个能体现循环思想的问题引出循环结构通过一个能体现循环思想的问题引出循环结构通过一个能体现循环思想的问题引出循环结构通过一个能体现循环思想的问题引出循环结构案例:案例:案例:案例: 假如你从今年开始,假如你从今年开始,假如你从今年开始,假如你从今年开始,1 1月份为月份为月份为月份为“ “希望工程希望工程希望工程希望工程” ”存入存入存入存入1 1元钱,元钱,元钱,元钱,2 2月份存入月份存入月份存入月份存入2 2元钱,元钱,元钱,元钱,3 3月份存入月份存入月份存入月份存入3 3元钱元钱元钱元钱依次类推,问:两依次类推,问:两依次类推,问:两依次类推,问:两年时间你将为年时间你将为年时间你将为年时间你将为“ “希望工程希望工程希望工程希望工程” ”存入多少钱?存入多少钱?存入多少钱?存入多少钱? 可以首先让学生讨论解决这个问题的方法,学生可能会可以首先让学生讨论解决这个问题的方法,学生可能会可以首先让学生讨论解决这个问题的方法,学生可能会可以首先让学生讨论解决这个问题的方法,学生可能会用赋值语句写出如下形式的代码:用赋值语句写出如下形式的代码:用赋值语句写出如下形式的代码:用赋值语句写出如下形式的代码: intSumintSum=0=0 intSumintSum= intSum+1= intSum+1 intSumintSum= intSum+2= intSum+2 intSumintSum=intSum+3=intSum+3 引出用引出用引出用引出用For-NextFor-Next循环语句解决这个问题。循环语句解决这个问题。循环语句解决这个问题。循环语句解决这个问题。(二)教学活动建议二)教学活动建议 (3)(3)变换问题,如果要计算多少月变换问题,如果要计算多少月变换问题,如果要计算多少月变换问题,如果要计算多少月“ “希望工程希望工程希望工程希望工程” ”储蓄储蓄储蓄储蓄才能多于才能多于才能多于才能多于500500元,该怎样办?引出元,该怎样办?引出元,该怎样办?引出元,该怎样办?引出DO While/LoopDO While/Loop语句的使用。语句的使用。语句的使用。语句的使用。 在使用在使用在使用在使用Do-LoopDo-LoopDo-LoopDo-Loop语句实现循环结构时,学生经常会不语句实现循环结构时,学生经常会不语句实现循环结构时,学生经常会不语句实现循环结构时,学生经常会不能正确的结束循环,这是因为,所有循环结构应包含以下能正确的结束循环,这是因为,所有循环结构应包含以下能正确的结束循环,这是因为,所有循环结构应包含以下能正确的结束循环,这是因为,所有循环结构应包含以下四个部分:四个部分:四个部分:四个部分: 初始化;初始化;初始化;初始化; 循环体;循环体;循环体;循环体; 修正部分;修正部分;修正部分;修正部分; 检查部分。检查部分。检查部分。检查部分。 与与与与For-NextFor-NextFor-NextFor-Next循环不同,循环不同,循环不同,循环不同,Do-LoopDo-LoopDo-LoopDo-Loop循环必须自己实现循循环必须自己实现循循环必须自己实现循循环必须自己实现循环的四个部分,学生经常会遗漏修正部分或修正不正确,环的四个部分,学生经常会遗漏修正部分或修正不正确,环的四个部分,学生经常会遗漏修正部分或修正不正确,环的四个部分,学生经常会遗漏修正部分或修正不正确,致使循环不能正常结束。致使循环不能正常结束。致使循环不能正常结束。致使循环不能正常结束。(二)教学活动建议二)教学活动建议(4)(4)程序设计风格程序设计风格程序设计风格程序设计风格对象名由对象名由对象名由对象名由3 3个小写字母组个小写字母组个小写字母组个小写字母组成的指明对象类型的前成的指明对象类型的前成的指明对象类型的前成的指明对象类型的前缀和表示该对象作用的缀和表示该对象作用的缀和表示该对象作用的缀和表示该对象作用的缩写字母组成。缩写字母组成。缩写字母组成。缩写字母组成。变量名要有意义,变量名要有意义,变量名要有意义,变量名要有意义,加上前缀表明数据加上前缀表明数据加上前缀表明数据加上前缀表明数据类型。类型。类型。类型。代码中注释行用来代码中注释行用来代码中注释行用来代码中注释行用来说明后面的语句或说明后面的语句或说明后面的语句或说明后面的语句或程序段是在进行什程序段是在进行什程序段是在进行什程序段是在进行什么操作。么操作。么操作。么操作。采用缩进格式,突采用缩进格式,突采用缩进格式,突采用缩进格式,突出程序的层次结构,出程序的层次结构,出程序的层次结构,出程序的层次结构,六、六、“算法的程序实现算法的程序实现”教学活动建议教学活动建议(一)内容标准一)内容标准1. 1.解析法与问题解决解析法与问题解决解析法与问题解决解析法与问题解决(1 1)了解解析法的基本概念及用解析法设计算法的基本过程。)了解解析法的基本概念及用解析法设计算法的基本过程。)了解解析法的基本概念及用解析法设计算法的基本过程。)了解解析法的基本概念及用解析法设计算法的基本过程。(2 2)能够用解析法分析简单问题,设计算法,编写程序求解问题。)能够用解析法分析简单问题,设计算法,编写程序求解问题。)能够用解析法分析简单问题,设计算法,编写程序求解问题。)能够用解析法分析简单问题,设计算法,编写程序求解问题。2. 2.穷举法与问题解决穷举法与问题解决穷举法与问题解决穷举法与问题解决(1 1)了解穷举法的基本概念及用穷举法设计算法的基本过程。)了解穷举法的基本概念及用穷举法设计算法的基本过程。)了解穷举法的基本概念及用穷举法设计算法的基本过程。)了解穷举法的基本概念及用穷举法设计算法的基本过程。(2 2)能够根据具体问题的要求,使用穷举法设计算法,编写程序求解问)能够根据具体问题的要求,使用穷举法设计算法,编写程序求解问)能够根据具体问题的要求,使用穷举法设计算法,编写程序求解问)能够根据具体问题的要求,使用穷举法设计算法,编写程序求解问题。题。题。题。3. 3.查找、排序与问题解决查找、排序与问题解决查找、排序与问题解决查找、排序与问题解决(1 1)了解数组的概念,掌握使用数组存储批量数据的基本方法。)了解数组的概念,掌握使用数组存储批量数据的基本方法。)了解数组的概念,掌握使用数组存储批量数据的基本方法。)了解数组的概念,掌握使用数组存储批量数据的基本方法。(2 2)通过实例,掌握使用数据查找算法设计程序解决问题的方法。)通过实例,掌握使用数据查找算法设计程序解决问题的方法。)通过实例,掌握使用数据查找算法设计程序解决问题的方法。)通过实例,掌握使用数据查找算法设计程序解决问题的方法。(3 3)通过实例,掌握使用排序算法设计程序解决问题的方法。)通过实例,掌握使用排序算法设计程序解决问题的方法。)通过实例,掌握使用排序算法设计程序解决问题的方法。)通过实例,掌握使用排序算法设计程序解决问题的方法。4. 4.递归法与问题解决递归法与问题解决递归法与问题解决递归法与问题解决(1 1)了解使用递归法设计算法的基本过程。)了解使用递归法设计算法的基本过程。)了解使用递归法设计算法的基本过程。)了解使用递归法设计算法的基本过程。(2 2)能够根据具体问题的要求,使用递归法设计算法、编写递归函数、)能够根据具体问题的要求,使用递归法设计算法、编写递归函数、)能够根据具体问题的要求,使用递归法设计算法、编写递归函数、)能够根据具体问题的要求,使用递归法设计算法、编写递归函数、编写程序、求解问题。编写程序、求解问题。编写程序、求解问题。编写程序、求解问题。(二)教学活动建议二)教学活动建议1.解析法与问题解决解析法与问题解决解析法与问题解决解析法与问题解决(1)(1)解析法的基本思想:解析法就是在分析问题的基解析法的基本思想:解析法就是在分析问题的基解析法的基本思想:解析法就是在分析问题的基解析法的基本思想:解析法就是在分析问题的基础上,抽取出一个数学模型,这个数学模型能用若础上,抽取出一个数学模型,这个数学模型能用若础上,抽取出一个数学模型,这个数学模型能用若础上,抽取出一个数学模型,这个数学模型能用若干个解析表达式表示出来,找到了这些表达式,问干个解析表达式表示出来,找到了这些表达式,问干个解析表达式表示出来,找到了这些表达式,问干个解析表达式表示出来,找到了这些表达式,问题也就得以解决。题也就得以解决。题也就得以解决。题也就得以解决。(二)教学活动建议二)教学活动建议问题:问题:问题:问题: 使用一根长度为使用一根长度为使用一根长度为使用一根长度为L L厘米的铁丝,制作一个面积为厘米的铁丝,制作一个面积为厘米的铁丝,制作一个面积为厘米的铁丝,制作一个面积为S S的矩形的矩形的矩形的矩形框,要求计算出满足这种条件的矩形的高框,要求计算出满足这种条件的矩形的高框,要求计算出满足这种条件的矩形的高框,要求计算出满足这种条件的矩形的高h h和宽和宽和宽和宽ww。 问题分析:由已知条件可以列出以下方程组:问题分析:由已知条件可以列出以下方程组:问题分析:由已知条件可以列出以下方程组:问题分析:由已知条件可以列出以下方程组:化简这个方程组可以得到:化简这个方程组可以得到:化简这个方程组可以得到:化简这个方程组可以得到:其中,其中,其中,其中,h h是未知数,所以,此问题的数学模型就是求关于未知是未知数,所以,此问题的数学模型就是求关于未知是未知数,所以,此问题的数学模型就是求关于未知是未知数,所以,此问题的数学模型就是求关于未知数数数数h h的一元二次方程的根。的一元二次方程的根。的一元二次方程的根。的一元二次方程的根。分组讨论,找出求解问题的解析表达式:分组讨论,找出求解问题的解析表达式:分组讨论,找出求解问题的解析表达式:分组讨论,找出求解问题的解析表达式: 第一个顶点(第一个顶点(第一个顶点(第一个顶点(x1,y1x1,y1)的坐标:)的坐标:)的坐标:)的坐标:X1=X1=rcos(rcos(), y1=), y1=rsin(rsin() )第二个顶点(第二个顶点(第二个顶点(第二个顶点(x2,y2x2,y2)的坐标:)的坐标:)的坐标:)的坐标:X2=rcos(2), y2=rsin(2)X2=rcos(2), y2=rsin(2)( (动画演示:依次演示第动画演示:依次演示第动画演示:依次演示第动画演示:依次演示第1 1点、第点、第点、第点、第2 2点的坐标及与点的坐标及与点的坐标及与点的坐标及与x x轴的夹角轴的夹角轴的夹角轴的夹角) )在此基础上,讨论算法方案。在此基础上,讨论算法方案。在此基础上,讨论算法方案。在此基础上,讨论算法方案。(动画演示,从起点(动画演示,从起点(动画演示,从起点(动画演示,从起点1 1分别画线到终点分别画线到终点分别画线到终点分别画线到终点2 2、3 3、4 4、,从,从,从,从起点起点起点起点2 2分别画线到终点分别画线到终点分别画线到终点分别画线到终点1 1、3 3、4 4、,中途定格,从,中途定格,从,中途定格,从,中途定格,从i i点分点分点分点分别画线到终点别画线到终点别画线到终点别画线到终点1 1、2 2、3 3、4 4、)尝试编写程序,提出解决不了的问题或疑问。尝试编写程序,提出解决不了的问题或疑问。尝试编写程序,提出解决不了的问题或疑问。尝试编写程序,提出解决不了的问题或疑问。(二)教学活动建议二)教学活动建议(2) (2) 绘制绘制绘制绘制“ “钻石钻石钻石钻石” ”图案图案图案图案Visual BasicVisual Basic坐标系:坐标系:坐标系:坐标系:XY(0,0)标准坐标系的坐标原点位于容器(窗体或图形框)的左标准坐标系的坐标原点位于容器(窗体或图形框)的左标准坐标系的坐标原点位于容器(窗体或图形框)的左标准坐标系的坐标原点位于容器(窗体或图形框)的左上角,沿水平方向从左向右为上角,沿水平方向从左向右为上角,沿水平方向从左向右为上角,沿水平方向从左向右为X X轴正方向,沿垂直方向从轴正方向,沿垂直方向从轴正方向,沿垂直方向从轴正方向,沿垂直方向从上到下为上到下为上到下为上到下为Y Y轴正方向,缺省坐标单位为轴正方向,缺省坐标单位为轴正方向,缺省坐标单位为轴正方向,缺省坐标单位为TwipTwip。Visual BasicVisual Basic坐标系:坐标系:坐标系:坐标系:建立自定义坐标系的一种途径是使用建立自定义坐标系的一种途径是使用建立自定义坐标系的一种途径是使用建立自定义坐标系的一种途径是使用 Scale Scale 方法:方法:方法:方法: 对象对象对象对象.Scale (x1, y1) (x2, y2).Scale (x1, y1) (x2, y2)(x1,y1x1,y1)表示对象左上角的坐标值,()表示对象左上角的坐标值,()表示对象左上角的坐标值,()表示对象左上角的坐标值,(x2,y2x2,y2)表示对象右)表示对象右)表示对象右)表示对象右下角的坐标值。例如,下角的坐标值。例如,下角的坐标值。例如,下角的坐标值。例如,From1.Scale (-1.5,1.5)-(1.5From1.Scale (-1.5,1.5)-(1.5,-1.5)-1.5)将建立如图所示的自定义坐标系。将建立如图所示的自定义坐标系。将建立如图所示的自定义坐标系。将建立如图所示的自定义坐标系。ScaleWidthScaleLeftScaleHeightScaleTop(-1.5,1.5)(0,0)(1.5,1.5)(-1.5,-1.5)(1.5,-1.5)(二)教学活动建议二)教学活动建议2.穷举法与问题解决穷举法与问题解决穷举法与问题解决穷举法与问题解决(1) (1) 穷举法的基本思想:穷举法是指从可能的解的集穷举法的基本思想:穷举法是指从可能的解的集穷举法的基本思想:穷举法是指从可能的解的集穷举法的基本思想:穷举法是指从可能的解的集合中一一枚举各元素,然后根据问题设定的条件,合中一一枚举各元素,然后根据问题设定的条件,合中一一枚举各元素,然后根据问题设定的条件,合中一一枚举各元素,然后根据问题设定的条件,逐个加以检验,找到满足条件的解。逐个加以检验,找到满足条件的解。逐个加以检验,找到满足条件的解。逐个加以检验,找到满足条件的解。(2) (2) (2) (2) 百钱百鸡问题百钱百鸡问题百钱百鸡问题百钱百鸡问题 公元前公元前公元前公元前5 5世纪,我国数学家张丘建在世纪,我国数学家张丘建在世纪,我国数学家张丘建在世纪,我国数学家张丘建在算经算经算经算经中提出中提出中提出中提出“ “百鸡问题百鸡问题百鸡问题百鸡问题” ”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?(2) (2) (2) (2) 百钱百鸡问题百钱百鸡问题百钱百鸡问题百钱百鸡问题 确定总的解题策略,也就是建立确定总的解题策略,也就是建立确定总的解题策略,也就是建立确定总的解题策略,也就是建立“ “百鸡问题百鸡问题百鸡问题百鸡问题” ”的数的数的数的数学模型,可以用下面的方程表示:学模型,可以用下面的方程表示:学模型,可以用下面的方程表示:学模型,可以用下面的方程表示:其中其中其中其中XX鸡翁数,鸡翁数,鸡翁数,鸡翁数,YY鸡母数,鸡母数,鸡母数,鸡母数,ZZ鸡雏数鸡雏数鸡雏数鸡雏数 设计算法:这是属于不定方程问题。可以先确定一设计算法:这是属于不定方程问题。可以先确定一设计算法:这是属于不定方程问题。可以先确定一设计算法:这是属于不定方程问题。可以先确定一个数如个数如个数如个数如X X,若用全部的钱买鸡翁,可以买,若用全部的钱买鸡翁,可以买,若用全部的钱买鸡翁,可以买,若用全部的钱买鸡翁,可以买2020只,用循环语只,用循环语只,用循环语只,用循环语句对句对句对句对020020之间的每一个正整数进行试探。之间的每一个正整数进行试探。之间的每一个正整数进行试探。之间的每一个正整数进行试探。 在每一次试探的过程中,在每一次试探的过程中,在每一次试探的过程中,在每一次试探的过程中,X X的值都是一个确定的值,的值都是一个确定的值,的值都是一个确定的值,的值都是一个确定的值,再用穷举算法试探再用穷举算法试探再用穷举算法试探再用穷举算法试探Y Y的每一个候选值,看有没有的每一个候选值,看有没有的每一个候选值,看有没有的每一个候选值,看有没有Z Z值可以满值可以满值可以满值可以满足百钱买百鸡的条件。按同样的方法确定足百钱买百鸡的条件。按同样的方法确定足百钱买百鸡的条件。按同样的方法确定足百钱买百鸡的条件。按同样的方法确定Y Y的范围为的范围为的范围为的范围为033033(2) (2) (2) (2) 百钱百鸡问题百钱百鸡问题百钱百鸡问题百钱百鸡问题伪代码表示的算法如下:伪代码表示的算法如下:伪代码表示的算法如下:伪代码表示的算法如下:For x = 0 To 20For x = 0 To 20 For y = 0 To 33 For y = 0 To 33 z = 100 - x y z = 100 - x y 计算鸡雏数计算鸡雏数计算鸡雏数计算鸡雏数 If 5 x + 3 y + z / 3 = 100 ThenIf 5 x + 3 y + z / 3 = 100 Then Print x, y, z Print x, y, z End If End If Next y Next yNext xNext x2.穷举法与问题解决穷举法与问题解决穷举法与问题解决穷举法与问题解决穷举法解决的问题必须满足两个条件:穷举法解决的问题必须满足两个条件:穷举法解决的问题必须满足两个条件:穷举法解决的问题必须满足两个条件: 可预先确定解的个数;可预先确定解的个数;可预先确定解的个数;可预先确定解的个数; 解变量解变量解变量解变量A1A1、A2A2、.、AnAn的值的可能变化范的值的可能变化范的值的可能变化范的值的可能变化范围预先确定围预先确定围预先确定围预先确定 A1 A1X11X11,.,X1pX1p Ai AiXi1Xi1,.,XiqXiq An AnXn1Xn1,.,XnkXnk 2.穷举法与问题解决穷举法与问题解决穷举法与问题解决穷举法与问题解决穷举法解决问题的一般形式:穷举法解决问题的一般形式:穷举法解决问题的一般形式:穷举法解决问题的一般形式:For A1=X11 To X1pFor A1=X11 To X1pFor Ai=Xi1 To For Ai=Xi1 To XiqXiqFor An=Xn1 To For An=Xn1 To XnkXnk If (A1 , . , Ai , ., An) If (A1 , . , Ai , ., An)满足检验条件满足检验条件满足检验条件满足检验条件 ThenThen输出问题的解输出问题的解输出问题的解输出问题的解 End IfEnd IfNext An Next An Next AiNext AiNext A1Next A13.查找查找查找查找(1) (1) 顺序查找:最简单的查找方法是顺序查找,即从顺序查找:最简单的查找方法是顺序查找,即从顺序查找:最简单的查找方法是顺序查找,即从顺序查找:最简单的查找方法是顺序查找,即从第一个元素开始,逐个以关键字与给定的值进行比第一个元素开始,逐个以关键字与给定的值进行比第一个元素开始,逐个以关键字与给定的值进行比第一个元素开始,逐个以关键字与给定的值进行比较直至找到;如果查找到最后一个元素还未找到,较直至找到;如果查找到最后一个元素还未找到,较直至找到;如果查找到最后一个元素还未找到,较直至找到;如果查找到最后一个元素还未找到,则查找失败。则查找失败。则查找失败。则查找失败。 在讲解了顺序查找的基本思想后,可以使用动画帮在讲解了顺序查找的基本思想后,可以使用动画帮在讲解了顺序查找的基本思想后,可以使用动画帮在讲解了顺序查找的基本思想后,可以使用动画帮助学生进一步理解,再要求学生用伪代码写出算法:助学生进一步理解,再要求学生用伪代码写出算法:助学生进一步理解,再要求学生用伪代码写出算法:助学生进一步理解,再要求学生用伪代码写出算法:给定待查值给定待查值给定待查值给定待查值strCharstrCharFor j=1 to For j=1 to CHARNUMCHARNUMif if strCharstrChar= =aryCode(jaryCode(j) Then) Then退出循环退出循环退出循环退出循环End IfEnd IfNext jNext jIf j=If ja(2)a(1)a(2),就交换这两个数据;再比较,就交换这两个数据;再比较,就交换这两个数据;再比较,就交换这两个数据;再比较a(2)a(2)和和和和a(3)a(3),按照同样的方法处理,按照同样的方法处理,按照同样的方法处理,按照同样的方法处理,直到,直到,直到,直到a(n-1)a(n-1)与与与与a(na(n) )比较交换完后,比较交换完后,比较交换完后,比较交换完后,完成第一轮比较交换,此时,最大数被移到数组最后一个位置。完成第一轮比较交换,此时,最大数被移到数组最后一个位置。完成第一轮比较交换,此时,最大数被移到数组最后一个位置。完成第一轮比较交换,此时,最大数被移到数组最后一个位置。然后,对前然后,对前然后,对前然后,对前n-1n-1个元素进行同样的处理,次最大数被移到第个元素进行同样的处理,次最大数被移到第个元素进行同样的处理,次最大数被移到第个元素进行同样的处理,次最大数被移到第n-1n-1个位置,重复以上过程直到进行完个位置,重复以上过程直到进行完个位置,重复以上过程直到进行完个位置,重复以上过程直到进行完n-1n-1轮比较交换为止。轮比较交换为止。轮比较交换为止。轮比较交换为止。 在此基础上,动画演示冒泡排序的思想。在此基础上,动画演示冒泡排序的思想。在此基础上,动画演示冒泡排序的思想。在此基础上,动画演示冒泡排序的思想。5. 5. 递归法递归法递归法递归法 (1) (1) 递归的概念。递归的概念。递归的概念。递归的概念。 “ “从前有座山,山上有座庙,庙里有个老和从前有座山,山上有座庙,庙里有个老和从前有座山,山上有座庙,庙里有个老和从前有座山,山上有座庙,庙里有个老和尚给小和尚讲故事,讲什么呢?从前有座山,山上有座庙尚给小和尚讲故事,讲什么呢?从前有座山,山上有座庙尚给小和尚讲故事,讲什么呢?从前有座山,山上有座庙尚给小和尚讲故事,讲什么呢?从前有座山,山上有座庙”,这个故事的有趣之处在于故事里面嵌套了故事本身。,这个故事的有趣之处在于故事里面嵌套了故事本身。,这个故事的有趣之处在于故事里面嵌套了故事本身。,这个故事的有趣之处在于故事里面嵌套了故事本身。 这种自己调用了自己的现象就称为递归。这种自己调用了自己的现象就称为递归。这种自己调用了自己的现象就称为递归。这种自己调用了自己的现象就称为递归。 通过故事引入了递归的概念后,让学生举一些日常生活中通过故事引入了递归的概念后,让学生举一些日常生活中通过故事引入了递归的概念后,让学生举一些日常生活中通过故事引入了递归的概念后,让学生举一些日常生活中递归的例子递归的例子递归的例子递归的例子:5. 5. 递归法递归法递归法递归法(2) (2) 通过跟踪阶乘计算递归程序的执行过程,分析递归程序的通过跟踪阶乘计算递归程序的执行过程,分析递归程序的通过跟踪阶乘计算递归程序的执行过程,分析递归程序的通过跟踪阶乘计算递归程序的执行过程,分析递归程序的执行方式,总结设计递归算法的方法。执行方式,总结设计递归算法的方法。执行方式,总结设计递归算法的方法。执行方式,总结设计递归算法的方法。 根据根据根据根据n!n!的定义的定义的定义的定义n!=n*(n-1)!n!=n*(n-1)!,可以写成如下形式:可以写成如下形式:可以写成如下形式:可以写成如下形式:计算计算计算计算n!n!的递归函数:的递归函数:的递归函数:的递归函数:Private Sub Private Sub Form_ClickForm_Click() () 调用递归函数,求调用递归函数,求调用递归函数,求调用递归函数,求4!4!Print fact(4)=; fact(4)Print fact(4)=; fact(4)End SubEnd SubPrivate Function Private Function fact(nfact(n As As Integer) As SingleInteger) As Single If n = 1 Then If n = 1 Then fact = 1 fact = 1 Else Else fact = n * fact = n * fact(nfact(n - 1) - 1) End If End IfEnd FunctionEnd Function5. 5. 递归法递归法递归法递归法递归调用的过程:递归调用的过程:递归调用的过程:递归调用的过程:fact(4)4*fact(3)3*fact(2)2*fact(1)fact(1)=1fact(2)=2*1fact(3)=3*2fact(4)=4*65. 5. 递归法递归法递归法递归法构成递归的条件:构成递归的条件:构成递归的条件:构成递归的条件:递归结束条件及结束时的值;递归结束条件及结束时的值;递归结束条件及结束时的值;递归结束条件及结束时的值;能用递归形式表示,并且递归向终止条件发展。能用递归形式表示,并且递归向终止条件发展。能用递归形式表示,并且递归向终止条件发展。能用递归形式表示,并且递归向终止条件发展。(3) (3) 实现实现实现实现“ “斐波那契数列斐波那契数列斐波那契数列斐波那契数列” ”递归程序。递归程序。递归程序。递归程序。七、如何学习算法与程序设计七、如何学习算法与程序设计1. 1. 要重视算法的设计和分析。中学阶段接触的问题要重视算法的设计和分析。中学阶段接触的问题要重视算法的设计和分析。中学阶段接触的问题要重视算法的设计和分析。中学阶段接触的问题并不复杂,相应算法也较简单。很多同学看到问并不复杂,相应算法也较简单。很多同学看到问并不复杂,相应算法也较简单。很多同学看到问并不复杂,相应算法也较简单。很多同学看到问题后,往往不认真考虑算法,一开始就把注意力题后,往往不认真考虑算法,一开始就把注意力题后,往往不认真考虑算法,一开始就把注意力题后,往往不认真考虑算法,一开始就把注意力集中到语句和程序的界面上。语言只是工具,算集中到语句和程序的界面上。语言只是工具,算集中到语句和程序的界面上。语言只是工具,算集中到语句和程序的界面上。语言只是工具,算法才是程序设计的灵魂,只要算法正确,就可以法才是程序设计的灵魂,只要算法正确,就可以法才是程序设计的灵魂,只要算法正确,就可以法才是程序设计的灵魂,只要算法正确,就可以用任何一种语言编写程序。对于一个给定的问题,用任何一种语言编写程序。对于一个给定的问题,用任何一种语言编写程序。对于一个给定的问题,用任何一种语言编写程序。对于一个给定的问题,都应该对问题进行仔细的分析,根据经验和已有都应该对问题进行仔细的分析,根据经验和已有都应该对问题进行仔细的分析,根据经验和已有都应该对问题进行仔细的分析,根据经验和已有的方法进行构思和设计,找出解决这个问题的算的方法进行构思和设计,找出解决这个问题的算的方法进行构思和设计,找出解决这个问题的算的方法进行构思和设计,找出解决这个问题的算法,最后再用程序设计语言编写程序、实现算法法,最后再用程序设计语言编写程序、实现算法法,最后再用程序设计语言编写程序、实现算法法,最后再用程序设计语言编写程序、实现算法七、如何学习算法与程序设计七、如何学习算法与程序设计2. 2. 多上机实践。程序设计是一门实践性很强的课程,多上机实践。程序设计是一门实践性很强的课程,多上机实践。程序设计是一门实践性很强的课程,多上机实践。程序设计是一门实践性很强的课程,理论代替不了自己的亲身体验,因此,学习过程理论代替不了自己的亲身体验,因此,学习过程理论代替不了自己的亲身体验,因此,学习过程理论代替不了自己的亲身体验,因此,学习过程中要做到勤思考、多动手编写程序、多上机实践。中要做到勤思考、多动手编写程序、多上机实践。中要做到勤思考、多动手编写程序、多上机实践。中要做到勤思考、多动手编写程序、多上机实践。设计的程序可能会出现错误,对于初学者来说,设计的程序可能会出现错误,对于初学者来说,设计的程序可能会出现错误,对于初学者来说,设计的程序可能会出现错误,对于初学者来说,出错的机会更多,程序的测试和调试是程序设计出错的机会更多,程序的测试和调试是程序设计出错的机会更多,程序的测试和调试是程序设计出错的机会更多,程序的测试和调试是程序设计一个组成部分,调试程序、排除错误的能力,需一个组成部分,调试程序、排除错误的能力,需一个组成部分,调试程序、排除错误的能力,需一个组成部分,调试程序、排除错误的能力,需要在上机实践的锻炼中才能形成。要在上机实践的锻炼中才能形成。要在上机实践的锻炼中才能形成。要在上机实践的锻炼中才能形成。七、如何学习算法与程序设计七、如何学习算法与程序设计3. 3. 要多阅读要多阅读要多阅读要多阅读“ “示例示例示例示例” ”程序。程序。程序。程序。Visual Visual BacicBacic的联机帮助的联机帮助的联机帮助的联机帮助中提供了大量的示例代码,要注意多阅读这些示中提供了大量的示例代码,要注意多阅读这些示中提供了大量的示例代码,要注意多阅读这些示中提供了大量的示例代码,要注意多阅读这些示例程序,从中分析、归纳别人解决问题的一些好例程序,从中分析、归纳别人解决问题的一些好例程序,从中分析、归纳别人解决问题的一些好例程序,从中分析、归纳别人解决问题的一些好的方法,为已所用。另外,平时还要多注意访问的方法,为已所用。另外,平时还要多注意访问的方法,为已所用。另外,平时还要多注意访问的方法,为已所用。另外,平时还要多注意访问网上的一些相关站点,在这些站点中,也有很多网上的一些相关站点,在这些站点中,也有很多网上的一些相关站点,在这些站点中,也有很多网上的一些相关站点,在这些站点中,也有很多示例程序和相关的编程资料。示例程序和相关的编程资料。示例程序和相关的编程资料。示例程序和相关的编程资料。谢谢,谢谢,再见!地址:江苏省大丰市金丰南路地址:江苏省大丰市金丰南路1号号邮编:邮编:224100电话:电话:0515-82039129E-mail:dfjsq163.com
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号