编程解决问题_第1页
编程解决问题_第2页
编程解决问题_第3页
编程解决问题_第4页
编程解决问题_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教学目标 评论 知识与技能:(1)了解编制程序解决问题的一般过程(2)了解算法概念,了解流程图(3)会用流程图设计和描述算法。过程与方法:在自主学习常用的程序流程图符号中了解流程图,在小组合作绘制流程图中加强对算法的理解,学习用流程图设计和描述算法。情感、态度与价值观:教育学生正确对待学习生活中的实际问题,培养学生多角度思考问题的能力。2学情分析 评论 高中数学有涉及到,但学生掌握的不够;学生没有一点程序的基础3重点难点 评论 会用流程图设计和描述算法。4教学过程 4.1 第一学时 4.1.1教学活动 活动1【讲授】教学过程 评论 一、编制程序解决问题的大致过程师:现在请同学们讨论交流一下,编制程序解决问题的大致过程是怎么的呢?生:讨论交流(设计意图:在小组讨论交流中学会合作。)2、师:组织、引导学生在全班范围内交流编制程序解决问题的大致过程。(首先分析与确定实际问题中各种数据间的关系,然后设计出解决这个问题的方法和步骤,再使用某种程序设计语言编制程序,达到最终解决问题之目的。在程序设计中,把解决问题的方法和步骤称为算法。)生:在全班范围内交流。(设计意图:共享成果。)算法的特性1.有穷性2.确定性3.有效性4.有零或多个输入5.有一个或多个输出描述算法的4种方法自然语言流程图伪代码程序语言二、用自然语言描述s=1+2+.+ 100 的算法。1、师:提出任务:用自然语言描述s=1+2+.+ 100 的算法。生:学生思考问题(设计意图:引导学生发现问题。)2、师:下面先让我们来设想一下,怎样解决?提问:以下每一步提问做什么,诱导学生按日常逻辑思维思考回答。S1:把0放入S单元;S2:把1放入i单元;S3:将S+i赋给S;S4;i值加1;S5:判断i是否小于等于100? 是,转S3;否则转S6;S6:输出S的值,结束。三、常用的程序流程图符号1、师:用文字叙述描述算法比较繁且不直观,人们又想出了一种用流程图描述算法的方法。用流程图设计和描述算法直观形象,便于理清思路,易于理解。课本列出了国际上通用的绘制流程图的符号及其含义,请同学们自主学习。2、了解常用的程序流程图名称、符号、意义(设计意图:培养学生的自主学习的习惯和能力。)3、师生学习常用的程序流程图符号四、用流程图描述s=1+2+.+ 100 的算法。1(68) 2、师:结合上表,对上述用自然语言描述s=1+2+.+ 100 的算法绘制流程图。生:操作培养学生的自主学习的习惯,引导他们学会如何去发现、去思考,如何去寻找解决问题的方法五、学生练习1、师:同学们已会根据实际情况绘制流程图,我们比一比看哪位同学又快又好地完成:设计一个算法并画出流程图,找出并显示任意3个数中的最大数。生:明确要完成的操作要求。2、生:操作师:巡视并发现操作又快又好的同学3、操作快且好的学生展示作品,其他学生进行评价。(设计意图:在学生掌握一定的技能基础上进行这样挑战性活动,更能激发学生的兴趣,让更多的学生展示自己的作品,让他们体味成功的快乐。)六、师生总结七、课外拓展 VB 表达式八、课后反思1教学目标 评论 1、知识目标:(1)了解计算机编程的一般过程;(2)掌握编程解决问题中的关键利用流程图来表示算法。2、技能目标:通过“猜数字游戏”,引起学生的好奇心,从而激发起学生对编程解决问题的兴趣;通过介绍程序流程图,学生尝试简单问题的算法设计,体验和掌握编程解决问题的方法。3、情感目标:在程序的算法设计与流程图的表示过程中,培养学生合作探究的精神,培养学生的逻辑思维能力和表达能力;使学生对计算机编程产生浓厚的兴趣。2学情分析 评论 计算机编程对学生来说充满神秘色彩,本节内容对学生来说有较强的吸引力。但由于学生的计算机编程知识缺乏,对编程解决问题也有一定的难度。3重点难点 评论 【教学重点】1、计算机程序解决问题的一般思路与过程。2、计算机编程中算法的设计与表示。【教学难点】1、用流程图来表示算法。4教学过程 4.1 第一学时 4.1.1教学活动 活动1【导入】用游戏带领同学们进入程序 评论 教师活动 :师:同学们,上课之前,我们一起来玩个益智小游戏。(请学生猜数字)师(提问):大家知道这个游戏是怎么做出来的吗?学生:用程序编出来。师: 对!大家熟悉的QQ软件,游戏软件,办公软件WORD、EXCEL等,都是通过计算机编程实现的。大家对程序或者编程熟不熟悉?今天我们就来揭开计算机解决问题的面纱,(点明主题:程序设计初步知识的学习)。学生活动 :玩游戏学生猜数字回答问题活动2【讲授】程序的概念以及编写程序的过程,重点学习流程图 评论 1、学习P68页第一段,让学生回答程序的概念是什么?(2分钟)2、编程解决问题(程序设计)的一般过程是怎样的?(3分钟)(1)分析问题:确定要解决的问题,即要计算机“做什么”。(2)设计算法:对特定的问题设计一组求解步骤或方法。(3)编写程序:把人工设计的算法转换成计算机能识别的代码。(4)调试运行:刚写好的程序不一定正确,必须在计算机上实际运行,排除错误,测试能否达到预期的结果。3、(重点)算法的设计(2分钟)(1)算法的表达形式:流程图、伪代码、自然语言等。其中,流程图被普遍使用。(2)流程图的表示活动3【讲授】数字游戏的算法设计 评论 【课堂探究】学始于疑1、游戏算法A、自然语言 (1)开始(2)计算机自动生成一个数字M(3)输入一个猜想的数字X(4)比较X和M的大小:若XM,则输出“猜大了,再试试!” ,返回第3步若XM,则输出“猜小了,再试试!”,返回第3步若X=M,则输出“恭喜您猜对了!”(5)结束B、流程图活动4【活动】小组探究求任意一元二次方程的解 评论 小组讨论写出一元二次方程的解的自然语言和流程图,再小组展示A、自然语言b、流程图活动5【练习】个人练习求任意圆的面积 评论 写出求任意圆的面积的流程图。 A、自然语言活动6【】 评论 教师总结本课所学知识:1、程序的概念;2、程序设计的4个过程;(分析问题,设计算法,编写程序,调试运行)3、用流程图来表示算法。计算机语言的发展是一个不断演化的过程,其根本的推动力就是抽象机制更高的要求,以及对程序设计思想的更好的支持。具体的说,就是把机器能够理解的语言提升到也能够很好的模仿人类思考问题的形式。计算机语言的演化从最开始的机器语言到汇编语言到各种结构化高级语言,最后到支持面向对象技术的面向对象语言。1.机器语言电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础。计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种语言,就是机器语言。使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。机器语言,是第一代计算机语言。2.汇编语言为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“ADD”代表加法,“MOV”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。3.高级语言从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时又不依赖于计算机硬件,编出的程序能在所有机器上通用。经过努力,1954年,第一个完全脱离机器硬件的高级语言FORTRAN问世了,40多年来,共有几百种高级语言出现,有重要意义的有几十种,影响较大、使用较普遍的有FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/ 1、Pascal、C、PROLOG、Ada、C+、VC、VB、Delphi、JAVA等。高级语言的发展也经历了从早期语言到结构化程序设计语言,从面向过程到非过程化程序语言的过程。相应地,软件的开发也由最初的个体手工作坊式的封闭式生产,发展为产业化、流水线式的工业化生产。60年代中后期,软件越来越多,规模越来越大,而软件的生产基本上是人自为战,缺乏科学规范的系统规划与测试、评估标准,其恶果是大批耗费巨资建立起来的软件系统,由于含有错误而无法使用,甚至带来巨大损失,软件给人的感觉是越来越不可靠,以致几乎没有不出错的软件。这一切,极大地震动了计算机界,史称“软件危机”。人们认识到:大型程序的编制不同于写小程序,它应该是一项新的技术,应该像处理工程一样处理软件研制的全过程。程序的设计应易于保证正确性,也便于验证正确性。1969年,提出了结构化程序设计方法,1970年,第一个结构化程序设计语言Pascal语言出现,标志着结构化程序设计时期的开始。80年代初开始,在软件设计思想上,又产生了一次革命,其成果就是面向对象的程序设计。在此之前的高级语言,几乎都是面向过程的,程序的执行是流水线似的,在一个模块被执行完成前,人们不能干别的事,也无法动态地改变程序的执行方向。这和人们日常处理事物的方式是不一致的,对人而言是希望发生一件事就处理一件事,也就是说,不能面向过程,而应是面向具体的应用功能,也就是对象(ob ject)。其方法就是软件的集成化,如同硬件的集成电路一样,生产一些通用的、封装紧密的功能模块,称之为软件集成块,它与具体应用无关,但能相互组合,完成具体的应用功能,同时又能重复使用。对使用者来说,只关心它的接口(输入量、输出量)及能实现的功能,至于如何实现的,那是它内部的事,使用者完全不用关心,C+、VB、Delph i就是典型代表。高级语言的下一个发展目标是面向应用,也就是说:只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理,这就是非过程化的程序语言。计算机语言的未来发展趋势:面向对象程序设计以及数据抽象在现代程序设计思想中占有很重要的地位,未来语言的发展将不在是一种单纯的语言标准,将会以一种完全面向对象,更易表达现实世界,更易为人编写,其使用将不再只是专业的编程人员,人们完全可以用订制真实生活中一项工作流程的简单方式来完成编程。下面是一张计算机语言发展图表,从中不难得出计算机语言发展的特

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论