第一章:算法初步
1.1 算法与程序框图
第一课时 1.1.1 算法的概念
教学要求:了解算法的含义,体会算法的思想;能够用自然语言叙述算法;掌握正确的算法应满足的要求;会写出解线性方程(组)的算法、判断一个数为质数的算法、用二分法求方程近似根的算法. 教学重点:解二元一次方程组等几个典型的的算法设计. 教学难点:算法的含义、把自然语言转化为算法语言. 教学过程:
一、复习准备:
1. 提问:我们古代的计算工具?近代计算手段?(算筹与算盘→计算器与计算机,见章头图)
2. 提问:①小学四则运算的规则?(先乘除,后加减) ②初中解二元一次方程组的方法?(消元法) ③高中二分法求方程近似解的步骤? (给定精度ε,二分法求方程根近似值步骤如下: A.确定区间[a,b],验证f(a)gf(b)?0,给定精度ε;B. 求区间(a,b)的中点x1; C. 计算f(x1): 若f(x1)?0,则x1就是函数的零点; 若f(a)gf(x1)?0,则令b?x1(此时零点; 若f(x1)gf(b)?0,则令a?x1(此时零点x0?(x1,b)); x0?(a,x1))
D. 判断是否达到精度ε;即若|a?b|??,则得到零点零点值a(或b);否则重复步骤2~4. 二、讲授新课:
1. 教学算法的含义:
?x?2y?2(1)① 出示例:写出解二元一次方程组?的具体步骤.
2x?y?4(2)? 先具体解方程组,学生说解答,教师写解法 → 针对解答过程分析具体步骤,构成其算法 第一步:②-①×2,得5y=0 ③; 第二步:解③得y=0; 第三步:将y=0代入①,得x=2.
② 理解算法: 12世纪时,指用阿拉伯数字进行算术运算的过程. 现代意义上的算法是可以用计算机来解决的某一类问题的程序或步骤,程序和步骤必须是明确和有效的,且能在有限步完成. 广义的算法是指做某一件事的步骤或程序.
算法特点:确定性;有限性;顺序性;正确性;普遍性.
举例生活中的算法:菜谱是做菜肴的算法;洗衣机的使用说明书是操作洗衣机的算法;歌谱是一首歌曲的算法;渡河问题.
?a1x?b1y?c1(1)③ 练习:写出解方程组??a1b2?a2b1?0?的算法.
ax?by?c(2)22?22. 教学几个典型的算法:
① 出示例1:任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数做出判断.
提问:什么叫质数?如何判断一个数是否质数? → 写出算法.
分析:此算法是用自然语言的形式描述的. 设计算法要求:写出的算法必须能解决一类问题,并且能够重复使用. 要使算法尽量简单、步骤尽量少. 要保证算法正确,且计算机能够执行. ② 出示例2:用二分法设计一个求方程x2?3?0的近似根的算法. 提问:二分法的思想及步骤?如何求方程近似解 →写出算法.
③ 练习:举例更多的算法例子; → 对比一般解决问题的过程,讨论算法的主要特征. 3. 小结:算法含义与特征;两类算法问题(数值型、非数值型);算法的自然语言表示.
2
三、巩固练习:1. 写出下列算法:解方程x-2x-3=0;求1×3×5×7×9×11的值
2. 有蓝和黑两个墨水瓶,但现在却错把蓝墨水装在了黑墨水瓶中,黑墨水错装在了蓝墨水瓶中,要求将其互换,请你设计算法解决这一问题.
3. 根据教材P6 的框图表示,使用程序框表示以上算法. 4. 作业:教材P4 1、2题.
第二课时 1.1.2 程序框图(一)
教学要求:掌握程序框图的概念;会用通用的图形符号表示算法,掌握算法的三个基本逻辑结构. 掌握画程序框图的基本规则,能正确画出程序框图. 通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程;学会灵活、正确地画程序框图.
教学重点:程序框图的基本概念、基本图形符号和3种基本逻辑结构. 教学难点:综合运用框图知识正确地画出程序框图 教学过程:
一、复习准备:
1. 写出算法:给定一个正整数n,判定n是否偶数. 2. 用二分法设计一个求方程x3?2?0的近似根的算法. 二、讲授新课:
1. 教学程序框图的认识:
① 讨论:如何形象直观的表示算法? →图形方法. 教师给出一个流程图(上面1题),学生说说理解的算法步骤.
② 定义程序框图:程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形.
③基本的程序框和它们各自表示的功能: 程序框 名称 功能 终端框 表示一个算法的起始和结束 (起止框) 输入、输出框 表示一个算法输入和输出的信息 处理(执行)框 判断框 流程线 赋值、计算 判断一个条件是否成立 连接程序框
④ 阅读教材P5的程序框图. → 讨论:输入35后,框图的运行流程,讨论:最大的I值. 2. 教学算法的基本逻辑结构:
① 讨论:P5的程序框图,感觉上可以如何大致分块?流程再现出一些什么结构特征?
→ 教师指出:顺序结构、条件结构、循环结构. ② 试用一般的框图表示三种逻辑结构. (见下图)
③ 出示例3:已知一个三角形的三边分别为4,5,6,利用海伦公式设计一个算法,求出它的面积,并画出算法的程序框图. (学生用自然语言表示算法→师生共写程序框图→讨论:结构特征)
④ 出示例4:任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在.画出这个算法的程序框图. (学生分析算法→写出程序框图→试验结果→讨论结构) ⑤ 出示例5:设计一个计算1+2+3+…+1000的值的算法,并画出程序框图. (学生分析算法→写出程序框图→给出另一种循环结构的框图→对比两种循环结构)
3. 小结:程序框图的基本知识;三种基本逻辑结构;画程序框图要注意:流程线的前头;判断框后边的流程线应根据情况标注“是”或“否”;循环结构中要设计合理的计数或累加变量等.
三、巩固练习: 1.练习:把复习准备题②的算法写成框图. 2. 作业:P12 A组 1、2题.
第三课时 1.1.2 程序框图(二)
教学要求:更进一步理解算法,掌握算法的三个基本逻辑结构. 掌握画程序框图的基本规则,能正确画出程序框图.学会灵活、正确地画程序框图. 教学重点:灵活、正确地画程序框图. 教学难点:运用程序框图解决实际问题. 教学过程:
一、复习准备:
1. 说出下列程序框的名称和所实现功能.
2. 算法有哪三种逻辑结构?并写出相应框图 顺序结构 条件结构 循环结构 程序 框图 按照语句的先后顺序,从上而下依次执行这些语结构 句. 不具备控制流程的说明 作用. 是任何一个算法都离不开的基本结构
根据某种条件是否满足来选择程序的走向. 当条件满足时,运行“是”的分支,不满足时,运行“否”的分支. 从某处开始,按照一定的条件,反复执行某一处理步骤的情况. 用来处理一些反复进行操作的问题 二、讲授新课: 1. 教学程序框图
① 出示例1:任意给定3个正实数,判断其是否构成三角形,若构成三角形,则根据海伦公式计算其面积. 画出解答此问题算法的程序框图.
(学生试写 → 共同订正 → 对比教材P7 例3、4 → 试验结果) ② 设计一个计算2+4+6+…+100的值的算法,并画出程序框图. (学生试写 →共同订正 → 对比教材P9 例5 → 另一种循环结构) ③ 循环语句的两种类型:当型和直到型.
当型循环语句先对条件判断,根据结果决定是否执行循环体;
直到型循环语句先执行一次循环体,再对一些条件进行判断,决定是否继续执行循环体. 两种循环语句的语句结构及框图如右. 说明:“循环体”是由语句组成的程序段,能够完成一项工作. 注意两种循环语句的区别及循环内部改变循环的条件.
④ 练习:用两种循环结构,写出求100所有正约数的算法程序框图. 2. 教学“鸡兔同笼”趣题: ① “鸡兔同笼”,我国古代著名数学趣题之一,大约在1500年以前,《孙子算经》中记载了这个有趣的问题,书中描述为:今有雏兔同笼,上有三十五头,下有九十四足,问雏兔各几何? ② 学生分析其数学解法. (“站立法”,命令所有的兔子都站起来;或用二元一次方程组解答.)
③ 欣赏古代解法:“砍足法”, 假如砍去每只鸡、每只兔一半的脚,则 “独脚鸡”, “双脚兔”. 则脚的总数47只;与总头数35的差,就是兔子的只数,即47-35=12(只).鸡35-12=23(只).
④ 试用算法的程序框图解答此经典问题. (算法:鸡的头数为x,则兔的头数为35-x,结合循环语句与条件语句,判断鸡兔脚数2x+4(35-x)是否等于94.)
三、巩固练习:1. 练习:100个和尚吃100个馒头,大和尚一人吃3个,小和尚3人吃一个,求大、小和尚各多少个?分析其算法,写出程序框图. 2. 作业:教材P12 A组1题.
1.2基本算法语句
第一课时 1.2.1 输入语句、输出语句和赋值语句
教学要求:正确理解输入语句、输出语句、赋值语句的结构. 让学生充分地感知、体验应用计算机解决数学问题的方法;并能初步操作、模仿. 通过实例使学生理解3种基本的算法语句(输入语句、输出语句和赋值语句)的表示方法、结构和用法,能用这三种基本的算法语句表示算法,进一步体会算法的基本思想. 教学重点:会用输入语句、输出语句、赋值语句.
教学难点:正确理解输入语句、输出语句、赋值语句的作用. 教学过程:
一、新课导入:
1. 提问:学习了哪些算法的表示形式?(自然语言或程序框图描述 ) 算法中的三种基本的逻辑结构?(顺序结构、条件结构和循环结构)
2. 导入:我们用自然语言或程序框图描述的算法,计算机是无法“看得懂,听得见”的. 因此还需要将算法用计算机能够理解的程序设计语言翻译成计算机程序. 程序设计语言有很多种. 如BASIC,Foxbase,C语言,C++,J++,VB,VC,JB等.
各种程序设计语言中都包含下列基本的算法语句:输入语句、输出语句、赋值语句条件语句和循环语句.今天,我们一起用类BASIC语言学习输入语句、输出语句、赋值语句. 基本上对应于算法中的顺序结构. 二、讲授新课: INPUT “Maths=”;a 1. 教学三种语句的格式及功能: INPUT “Chinese=”;b ① 出示例1:编写程序,计算一个学生数学、语文、英语三门课的平INPUT “English=”;c 均成绩. d=(a+b+c)/3 (分析算法→框图表示→ 教师给出程序,学生试说说对各语句的理PRINT “The average=”;d 解.) END ② 对照例1的程序,学习三种语句的格式与功能. 语句、格式、功能 说明 输入语句INPUT 格式:INPUT “提示内容”;变量 功能:从键盘输入值给变量. 程序运行到INPUT语句时会暂停,屏幕上出现一个问号,等待你从键盘输入一些数据,输入后按回车,程序把这些数据依次赋值给变量表中的变量,然后继续往下执行. 格式中有“;”与“,”分隔的区别 表达式可以是常量、变量、计算公式或系统信息. 一个语句可以输出多个表达式,之间用“,”或“;”分隔. 如果表达式是引号引起来的字符串,则原样输出.如果PRINT语句后没有任何内容,则表示输出一个空行. 输出语句PRINT 格式:PRINT “提示内容”;表达式 功能:在屏幕上输出常量、变量或表达式的值,可以输出数值计算的结果. “LET”可以省略,“=”的右侧必须是表达式,左侧必赋值语句LET 须是变量. 一个赋值语句只能给一个变量赋值,但在一格式:LET 变量=表达式 个语句行中可以写出多个赋值语句,中间是“:”分隔. 功能:计算表达式的值,将此值赋给“=”赋值号“=”与数学中的等号不完全一样,常重复赋值 左边的变量. 2. 教学例题: 32
① 出示例2:用描点法作函数y=x+3x-24x+30的图象时,需要求出自变量和函数的一组对应值. 编写程序,分别计算当x=-5,-4,-3,-2,-1,0,1,2,3,4,5时的函数值 ② 出示例3:给一个变量重复赋值. (程序见P16)
③ 出示例4:交换两个变量A和B的值,并输出交换前后的值.
(教法:先分析算法→画出框图→编写程序→分析各语句→变式→小结:先写算法,再编程) 3. 小结:输入、输出和赋值语句的格式;赋值“=”及表达式;编写简单程序解决数学问题. 三、巩固练习:1. 练习:教材P16 1、2题 四、 作业:P16 3、4题.
第二课时 1.2.2 条件语句
教学要求:正确理解条件语句的概念,并掌握其结构. 会应用条件语句编写程序. 教学重点:条件语句的步骤、结构及功能. 教学难点:会编写程序中的条件语句. 教学过程:
一、复习准备:
1. 提问:算法的三种逻辑结构?条件结构的框图模式? 2. 提问:输入语句、输出语句和赋值语句的格式与功能?
3. 一次招生考试中,测试三门课程,如果三门课程的总成绩在200分及以上,则被录取. 请对解决此问题的算法分析,画出程序框图. (变题:…总成绩在200分以下,则不被录取) 二、讲授新课:
1. 教学条件语句的格式与功能:
① 分析:复习题③中的两种条件结构的框图模式?
② 给出复习题③的程序,试读懂程序,说说新的语句的结构及含义.
③ 条件语句的一般有两种:IF—THEN语句;IF—THEN—ELSE语句. 语句格式及框图如下.
分析语句执行流程,并说明: ①“条件”是由一个关系表达式或逻辑表达式构成,其一般形式为“<表达式><关系运算符><表达式>”,常用的运算符有“>”(大于)、“<”(小于)、“>=”(大于或等于)、“<=”(小于或等于),“<>”(不等于). 关系表达式的结果可取两个值,以“真”或“假”来表示,“真”表示条件满足,“假”则条件不满足. ②“语句”是由程序语言中所有语句构成的程序段,即可以是语句组. ③ 条件语句可以嵌套,即条件语句的THEN或ELSE后面还可以跟条件语句,嵌套时注意内外分层,避免逻辑混乱. 2. 教学典型例题:
2
② 出示例5:编写程序,输入一元二次方程ax+bx+c=0的系数,输出它的实数根.
(算法分析 →画程序框图 →编写程序 → 给出系数的一组值,分析框图与程序各步结果) 注意:解方程之前,先由判别式的符号判断方程根的情况. 函数SQR()的功能及格式. ② 讨论:例5程序中为何要用到条件语句?条件语句一般用在什么情况下?
答:一般用在需要对条件进行判断的算法设计中,如判断一个数的正负,确定两个数的大小等问题,还有求分段函数的函数值等,往往要用条件语句,有时甚至要用到条件语句的嵌套 ③ 练习:编写程序,使得任意输入的2个实数从小到大排列. ④ 出示例6:编写程序,使得任意输入的3个实数从小到大排列.
(讨论:先用什么语句?→ 用具体的数值给a、b、c,分析计算机如何排列这些数? →写出程序 → 画出框图 → 说说算法 → 变式:如果是4个实数呢?
3. 小结:条件语句的格式与功能及对应框图. 编程的一般步骤:①算法分析 :根据提供的问题,利用数学及相关学科的知识,设计出解决问题的算法. ②画程序框图:依据算法分析,画出程序框图. ③写出程序:根据程序框图中的算法步骤,逐步写出相应的程序语句. 三、巩固练习:
1. 练习:教材P22 1、2题.
2. 试编写程序进行印刷品邮资的计算. (前100g 0.7元,以后每100g 0.4元) 3. 作业:P22 3、4题.