资源描述
高中新课程数学必修③
算法的概念
一、三维目标:
1.知识与技能:
(1)了解算法的含义,体会算法的思想。(2)能够用自然语言叙述算法。(3)掌握正确的算法应满足的要求。(4)会写出解线性方程(组)的算法。(5)会写出一个求有限整数序列中的最大值的算法。(6)会应用Scilab求解方程组。
2.过程与方法:
通过求解二元一次方程组,体会解方程的一般性步骤,从而得到一个解二元一次方程组的步骤,这些步骤就是算法,不同的问题有不同的算法。由于思考问题的角度不同,同一个问题也可能有多个算法,能模仿求解二元一次方程组的步骤,写出一个求有限整数序列中的最大值的算法。
3.情感态度与价值观:
通过本节的学习,使我们对计算机的算法语言有一个基本的了解,明确算法的要求,认识到计算机是人类征服自然的有力工具,进一步提高探索、认识世界的能力。
二、重点与难点:
重点:算法的含义、解二元一次方程组和判断一个数为质数的算法设计。
难点:把自然语言转化为算法语言。
三、教学设想:
(一)问题提出:
一个大人和两个小孩一起渡河,渡口只有一条小船,每次只能渡1个大人或两个小孩,他们三人都会划船,但都不会游泳。试问他们怎样渡过河去?请写出一个渡河方案。
第一步,两个小孩同船过河去;
第二步,一个小孩划船回来;
第三步,一个大人划船过河去;
第四步,对岸的小孩划船回来;
第五步,两个小孩同船渡过河去。
(二)算法的概念
思考1:在初中,对于解二元一次方程组你学过哪些方法?(加减消元法和代入消元法)
思考2:用加减消元法解二元一次方程组的具体步骤是什么?
思考3:参照上述思路,一般地,解方程组的基本步骤是什么?
小结:根据上述分析,用加减消元法解二元一次方程组,可以分为五个步骤进行,这五个步骤就构成了解二元一次方程组的一个“算法”。我们再根据这一算法编制计算机程序,就可以让计算机来解二元一次方程组。
在数学中,按照一定规则解决某一类问题的明确和有限的步骤称为算法。
(三)算法的步骤设计
思考1:如果让计算机判断7是否为质数,如何设计算法步骤?
第一步,用2除7,得到余数1,所以2不能整除7.
第二步,用3除7,得到余数1,所以3不能整除7.
第三步,用4除7,得到余数3,所以4不能整除7.
第四步,用5除7,得到余数2,所以5不能整除7.
第五步,用6除7,得到余数1,所以6不能整除7.
因此,7是质数.
思考2:如果让计算机判断35是否为质数,如何设计算法步骤?
第一步,用2除35,得到余数1,所以2不能整除35.
第二步,用3除35,得到余数2,所以3不能整除35.
第三步,用4除35,得到余数3,所以4不能整除35.
第四步,用5除35,得到余数0,所以5能整除35.
因此,35不是质数.
思考3:整数89是否为质数?如果让计算机判断89是否为质数,按照上述算法需要设计多少个步骤?
第一步,用2除89,得到余数1,所以2不能整除89.
第二步,用3除89,得到余数2,所以3不能整除89.
第三步,用4除89,得到余数1,所以4不能整除89.
…… …… …… ……
第八十七步,用88除89,得到余数1,所以88不能整除89.
因此,89是质数.
思考4:用2~88逐一去除89求余数,需要87个步骤,这些步骤基本是重复操作,我们可以按下面的思路改进这个算法,减少算法的步骤.
算法分析:
(1)用i表示2~88中的任意一个整数,并从2开始取数;
(2)用i除89,得到余数r. 若r=0,则89不是质数;若r≠0,将i用i+1替代,再执行同样的操作;
(3)这个操作一直进行到i取88为止.
(四)理论迁移
例用二分法设计一个求方程x2–2=0的近似根的算法。
算法分析:回顾二分法解方程的过程,并假设所求近似根与准确解的差的绝对值不超过0.005,则不难设计出以下步骤:
第一步:令f(x)=x2–2.因为f(1)<0,f(2)>0,所以设x1=1,x2=2.
第二步:令m=(x1+x2)/2,判断f(m)是否为0,若则,则m为所求;若否,则继续判断f(x1)·f(m)大于0还是小于0.
第三步:若f(x1)·f(m)>0,则令x1=m;否则,令x2=m.
第四步:判断|x1–x2|<0.005是否成立?若是,则x1、x2之间的任意取值均为满足条件的近似根;若否,则返回第二步.
小结:算法是建立在解法基础上的操作过程,算法不一定要有运算结果,问题答案可以由计算机解决.设计一个解决某类问题的算法的核心内容是设计算法的步骤,它没有一个固定的模式,但有几个基本要求。
小结:算法具有以下特性:(1)有穷性;(2)确定性;(3)顺序性;(4)不惟一性;(5)普遍性
(五)基础知识应用题
思考1:有人对哥德巴赫猜想“任何大于4的偶数都能写成两个质数之和”设计了如下操作步骤:
第一步,检验6=3+3,
第二步,检验8=3+5,
第三步,检验10=5+5,
……
利用计算机无穷地进行下去!
请问:这是一个算法吗?
思考2:一个人带三只狼和三只羚羊过河,只有一条船,同船可以容纳一个人和两只动物。没有人在的时候,如果狼的数量不少于羚羊的数量,狼就会吃掉羚羊。设计过河的算法;
解:算法或步骤如下:
S1 人带两只狼过河 S2 人自己返回
S3 人带一只羚羊过河 S4 人带两只狼返回
S5 人带两只羚羊过河 S6 人自己返回
S7 人带两只狼过河 S8 人自己返回带一只狼过河
五、课堂小结
本节课主要讲了算法的概念,算法就是解决问题的步骤,平时列论我们做什么事都离不开算法,算法的描述可以用自然语言,也可以用数学语言。
算法的概念
教学要求:了解算法的含义,体会算法的思想;能够用自然语言叙述算法;掌握正确的算法应满足的要求;会写出解线性方程(组)的算法、判断一个数为质数的算法、用二分法求方程近似根的算法.
教学重点:解二元一次方程组等几个典型的的算法设计.
教学难点:算法的含义、把自然语言转化为算法语言.
教学过程:
一、复习准备:
1. 提问:我们古代的计算工具?近代计算手段?(算筹与算盘→计算器与计算机,见章头图)
2. 提问:①小学四则运算的规则?(先乘除,后加减) ②初中解二元一次方程组的方法?(消元法) ③高中二分法求方程近似解的步骤? (给定精度ε,二分法求方程根近似值步骤如下:
A.确定区间,验证,给定精度ε;B. 求区间的中点;
C. 计算: 若,则就是函数的零点; 若,则令(此时零点); 若,则令(此时零点);
D. 判断是否达到精度ε;即若,则得到零点零点值a(或b);否则重复步骤2~4.
二、讲授新课:
1. 教学算法的含义:
① 出示例:写出解二元一次方程组的具体步骤.
先具体解方程组,学生说解答,教师写解法 → 针对解答过程分析具体步骤,构成其算法
第一步:②-①×2,得5y=0 ③; 第二步:解③得y=0; 第三步:将y=0代入①,得x=2.
② 理解算法: 12世纪时,指用阿拉伯数字进行算术运算的过程. 现代意义上的算法是可以用计算机来解决的某一类问题的程序或步骤,程序和步骤必须是明确和有效的,且能在有限步完成. 广义的算法是指做某一件事的步骤或程序.
算法特点:确定性;有限性;顺序性;正确性;普遍性.
举例生活中的算法:菜谱是做菜肴的算法;洗衣机的使用说明书是操作洗衣机的算法;歌谱是一首歌曲的算法;渡河问题.
③ 练习:写出解方程组的算法.
2. 教学几个典型的算法:
① 出示例1:任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数做出判断.
提问:什么叫质数?如何判断一个数是否质数? → 写出算法.
分析:此算法是用自然语言的形式描述的. 设计算法要求:写出的算法必须能解决一类问题,并且能够重复使用. 要使算法尽量简单、步骤尽量少. 要保证算法正确,且计算机能够执行.
② 出示例2:用二分法设计一个求方程的近似根的算法.
提问:二分法的思想及步骤?如何求方程近似解 →写出算法.
③ 练习:举例更多的算法例子; → 对比一般解决问题的过程,讨论算法的主要特征.
3. 小结:算法含义与特征;两类算法问题(数值型、非数值型);算法的自然语言表示.
三、巩固练习:1. 写出下列算法:解方程x2-2x-3=0;求1×3×5×7×9×11的值
2. 有蓝和黑两个墨水瓶,但现在却错把蓝墨水装在了黑墨水瓶中,黑墨水错装在了蓝墨水瓶中,要求将其互换,请你设计算法解决这一问题.
习题讲解
1. 写出如下程序框图所对应的函数解析式。
2.考察如下程序框图,当输入a、b、c分别为3、7、5时,输出x=___.
3.如果执行下面的程序框图,则输出的S=( )
A.2450
B.2500
C.2550
D.2652
程序框图(一)
教学要求:掌握程序框图的概念;会用通用的图形符号表示算法,掌握算法的三个基本逻辑结构. 掌握画程序框图的基本规则,能正确画出程序框图. 通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程;学会灵活、正确地画程序框图.
教学重点:程序框图的基本概念、基本图形符号和3种基本逻辑结构.
教学难点:综合运用框图知识正确地画出程序框图
教学过程:
一、复习准备:
1. 写出算法:给定一个正整数n,判定n是否偶数.
2. 用二分法设计一个求方程的近似根的算法.
二、讲授新课:
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. 说出下列程序框的名称和所实现功能.
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) 掌握画程序框图的基本规则,能正确画出程序框图。
(3) 通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程;学会灵活、正确地画程序框图。
【教学重点】经过模仿、操作、探索,经历通过设计程序框图表达求解问题的过程,重点是程序框图的基本概念、基本图形符号和3种基本逻辑结构
【教学难点】 难点是能综合运用这些知识正确地画出程序框图。
【学法与教学用具】:
学法:
1、 要弄清各种图形符号的意义,明确每个图形符号的使用环境,图形符号间的联结方式。图形符号都有各自的使用环境和作用
2、 在我们描述算法或画程序框图时,必须遵循一定的逻辑结构,事实证明,无论如何复杂的问题,我们在设计它们的算法时,只需用顺序结构、条件结构和循环结构这三种基本逻辑就可以了,因此我们必须掌握并正确地运用这三种基本逻辑结构。
【教学过程】
知识探究(一):多重条件结构的程序框图
思考1:解关于x的方程ax+b=0的算法步骤如何设计?
第一步,输入实数a,b.
第二步,判断a是否为0.若是,执行第三步;否则,计算 ,并输出x,结束算法.
第三步,判断b是否为0.若是,则输出“方程的解为任意实数”;否则,输出“方程无实数解”.
思考2:该算法的程序框图如何表示?
思考3:你能画出求分段函数的值的程序框图吗?
知识探究(二):混合逻辑结构的程序框图
思考1:用“二分法”求方程的近似解的算法如何设计?
第一步,令f(x)=x2-2,给定精确度d.
第二步,确定区间[a,b],满足f(a)·f(b)<0.
第三步,取区间中点 .
第四步,若f(a)·f(m)<0,则含零点的区间为[a,m];否则,含零点的区间为[m,b].将新得到的含零点的区间仍记为[a,b].
第五步,判断[a,b]的长度是否小于d或f(m)是否等于0.若是,则m是方程的近似解;否则,返回第三步.
思考2:该算法中哪几个步骤可以用顺序结构来表示?这个顺序结构的程序框图如何?
思考3:该算法中第四步是什么逻辑结构?这个步骤用程序框图如何表示?
思考4:该算法中哪几个步骤构成循环结构?这个循环结构用程序框图如何表示?
思考5:根据上述分析,你能画出表示整个算法的程序框图吗?
知识探究(三):程序框图的阅读与理解
考察下列程序框图:
思考1:怎样理解该程序框图中包含的逻辑结构?
思考2:该程序框图中的循环结构属于那种类型?
思考3:该程序框图反映的实际问题是什么?
理论迁移
例 画出求三个不同实数中的最大值的程序框图.
小结
设计一个算法的程序框图的基本思路:
第一步,用自然语言表述算法步骤.
第二步,确定每个算法步骤所包含的逻辑结构,并用相应的程序框图表示.
第三步,将所有步骤的程序框图用流程线连接起来,并加上两个终端框.
输入语句、输出语句和赋值语句
教学要求:正确理解输入语句、输出语句、赋值语句的结构. 让学生充分地感知、体验应用计算机解决数学问题的方法;并能初步操作、模仿. 通过实例使学生理解3种基本的算法语句(输入语句、输出语句和赋值语句)的表示方法、结构和用法,能用这三种基本的算法语句表示算法,进一步体会算法的基本思想.
教学重点:会用输入语句、输出语句、赋值语句.
教学难点:正确理解输入语句、输出语句、赋值语句的作用.
教学过程:
一、新课导入:
1. 提问:学习了哪些算法的表示形式?(自然语言或程序框图描述 )
算法中的三种基本的逻辑结构?(顺序结构、条件结构和循环结构)
2. 导入:我们用自然语言或程序框图描述的算法,计算机是无法“看得懂,听得见”的. 因此还需要将算法用计算机能够理解的程序设计语言翻译成计算机程序. 程序设计语言有很多种. 如BASIC,Foxbase,C语言,C++,J++,VB,VC,JB等.
INPUT “Maths=”;a
INPUT “Chinese=”;b
INPUT “English=”;c
d=(a+b+c)/3
PRINT “The average=”;d
END
各种程序设计语言中都包含下列基本的算法语句:输入语句、输出语句、赋值语句条件语句和循环语句.今天,我们一起用类BASIC语言学习输入语句、输出语句、赋值语句. 基本上对应于算法中的顺序结构.
二、讲授新课:
1. 教学三种语句的格式及功能:
① 出示例1:编写程序,计算一个学生数学、语文、英语三门课的平均成绩.
(分析算法→框图表示→ 教师给出程序,学生试说说对各语句的理解.)
② 对照例1的程序,学习三种语句的格式与功能.
语句、格式、功能
说明
输入语句INPUT
格式:INPUT “提示内容”;变量
功能:从键盘输入值给变量.
程序运行到INPUT语句时会暂停,屏幕上出现一个问号,等待你从键盘输入一些数据,输入后按回车,程序把这些数据依次赋值给变量表中的变量,然后继续往下执行. 格式中有“;”与“,”分隔的区别
输出语句PRINT
格式:PRINT “提示内容”;表达式
功能:在屏幕上输出常量、变量或表达式的值,可以输出数值计算的结果.
表达式可以是常量、变量、计算公式或系统信息. 一个语句可以输出多个表达式,之间用“,”或“;”分隔. 如果表达式是引号引起来的字符串,则原样输出.如果PRINT语句后没有任何内容,则表示输出一个空行.
赋值语句LET
格式:LET 变量=表达式
功能:计算表达式的值,将此值赋给“=”左边的变量.
“LET”可以省略,“=”的右侧必须是表达式,左侧必须是变量. 一个赋值语句只能给一个变量赋值,但在一个语句行中可以写出多个赋值语句,中间是“:”分隔. 赋值号“=”与数学中的等号不完全一样,常重复赋值
2. 教学例题:
① 出示例2:用描点法作函数y=x3+3x2-24x+30的图象时,需要求出自变量和函数的一组对应值. 编写程序,分别计算当x=-5,-4,-3,-2,-1,0,1,2,3,4,5时的函数值
② 出示例3:给一个变量重复赋值. (程序见P16)
③ 出示例4:交换两个变量A和B的值,并输出交换前后的值.
(教法:先分析算法→画出框图→编写程序→分析各语句→变式→小结:先写算法,再编程)
3. 小结:输入、输出和赋值语句的格式;赋值“=”及表达式;编写简单程序解决数学问题.
三、课后作业:习案5
条件语句
一、三维目标:
1、知识与技能
(1)正确理解条件语句的概念,掌握其结构。
(2)会应用条件语句编写程序。
2、过程与方法
经历对现实生活情境的探究,认识到应用计算机解决数学问题方便简捷,促进发展学生逻辑思维能力
3、情感态度与价值观
了解条件语句在程序中起判断转折作用,在解决实际问题中起决定作用。通过本小节内容的学习,有益于我们养成严谨的数学思维以及正确处理问题的能力。
二、重点与难点
重点:条件语句的步骤、结构及功能。难点:会编写程序中的条件语句。
四、教学设计
(一)练习
1.将两个数交换,使,下面语句正确一组是 ( B )
a=b
b=a
c=b
b=a
a=c
b=a
a=b
a=c
c=b
b=a
A. B. C. D.
2.计算机执行下面的程序段后,输出的结果是( B )
x=2
y=3*x-1
x=y
PRINT 3*x-1
END
PRINT ,
A. B. C. D.
3.下列给出的赋值语句中正确的是( B )
A. B. C. D.
4. 阅读右边的程序,然后判断下列哪个是程序执行后的结果( D)
A、5 B、15 C、11 D、14
【创设情境】
试求自然数1+2+3+……+99+100的和。
显然大家都能准确地口算出它的答案:5050。而能不能将这项计算工作交给计算机来完成呢?而要编程,以我们前面所学的输入、输出语句和赋值语句还不能满足“我们日益增长的物质需要”,因此,还需要进一步学习基本算法语句中的另外两种:条件语句和循环语句(板出课题)
【探究新知】
(一)条件语句
算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句。它的一般格式是:(IF-THEN-ELSE格式)
满足条件?
语句1
语句2
是
否
IF 条件 THEN
语句1
ELSE
语句2
END IF
当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句1,否则执行ELSE后的语句2。其对应的程序框图为:(如上右图)
满足条件?
语句
是
否
在某些情况下,也可以只使用IF-THEN语句:(即IF-THEN格式)
IF 条件 THEN
语句
END IF
计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。其对应的程序框图为:(如上右图)
条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去。需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理。
【例题精析】
〖例1〗:教材P25面例5
〖例2〗:编写程序,输入一元二次方程的系数,输出它的实数根。
算法分析:我们知道,若判别式,原方程有两个不相等的实数根、;若,原方程有两个相等的实数根; 若,原方程没有实数根。也就是说,在求解方程之前,需要首先判断判别式的符号。因此,这个过程可以用算法中的条件结构来实现。
INPUT “ a,b,c =”;a,b,c
d=b*b-4*a*c
p=-b/(2*a)
q=SQR(ABS(d))/(2*a)
IF d>=0 THEN
x1=p+q
x2=p-q
IF x1=x2 THEN
PRINT “One real root:”;x1
ELSE
PRINT “Two real roots:x1”;x1,“and x2”;x2
END IF
ELSE
PRINT “No real root!”
END IF
END
又因为方程的两个根有相同的部分,为了避免重复计算,可以在计算和之前,先计算,。
程序框图:(参照课本)
程序:(如右图所示)
注:SQR()和ABS()是两个函数,分别用来求某个数的平方根和绝对值。
INPUT “a,b,c =”;a,b,c
IF b>a THEN
t=a
a=b
b=t
END IF
IF c>a THEN
t=a
a=c
c=t
END IF
IF c>b THEN
t=b
b=c
c=t
END IF
PRINT a,b,c
END
即 ,
〖例3〗:编写程序,使得任意输入的3个整数按从大到小的顺序输出。
算法分析:用a,b,c表示输入的3个整数;为了节约变量,把它们重新排列后,仍用a,b,c表示,并使a≥b≥c.
具体操作步骤如下。
第一步:输入3个整数a,b,c.
第二步:将a与b比较,并把小者赋给b,大者赋给a.
第三步:将a与c比较. 并把小者赋给c,大者赋给a,
此 时a已是三者中最大的。
第四步:将b与c比较,并把小者赋给c,大者赋给b,
此时a,b,c已按从大到小的顺序排列好。
第五步:按顺序输出a,b,c.
程序框图:(参照课本)
程序:(如右框图所示)
〖补例〗:铁路部门托运行李的收费方法如下:
y是收费额(单位:元),x是行李重量(单位:kg),当0<x≤20时,按0.35元/kg收费,当x>20kg时,20kg的部分按0.35元/kg,超出20kg的部分,则按0.65元/kg收费,请根据上述收费方法编写程序。
分析:首先由题意得:该函数是个分段函数。需要对行李重量作出判断,因此,这个过程可以用算法中的条件结构来实现。
程序: INPUT “请输入旅客行李的重量(kg)x=”;x
IF x>0 AND x<=20 THEN
y=0.35*x
ELSE
y=0.35*20+0.65*(x-20)
END IF
PRINT “该旅客行李托运费为:”;y
END
【课堂精练】
1.P29 练习 1。2。3。4
课后练习
1.给出以下四个问题,
①, 输出它的相反数.②求面积为的正方形的周长.③求三个数中输入一个数的最大数.④求函数的函数值.其中不需要用条件语句来描述其算法的有 (A )
A.个 B.个 C.个 D.个仅②不需要分情况讨论,即不需要用条件语句
IF THEN
ELSE
END IF
PRINT x-y ; y-x
END
第3题
2.右程序运行后输出的结果为__22,-22__.
3.当时,下面的程序段输出的结果是( D )
IF THEN
ELSE
PRINT y
A. B. C. D.
作业:《习案》作业六
循环语句(第三课时)
教学目标:
知识与技能
(1)正确理解循环语句的概念,并掌握其结构。
(2)会应用条件语句和循环语句编写程序。
过程与方法
经历对现实生活情境的探究,认识到应用计算机解决数学问题方便简捷,促进发展学生逻辑思维能力
重点与难点
重点:条件语句和循环语句的步骤、结构及功能。
难点:会编写程序中的条件语句和循环语句。
教学过程
问题提出
1.两种条件语句的一般格式分别是什么?
2.对于顺序结构、条件结构的算法或程序框图,我们可以利用输入语句、输出语句、赋值语句和条件语句写出其计算机程序.对于循环结构的算法或程序框图,要转化为计算机能够理解的算法语言,我们必须进一步学习循环语句.
知识探究(一):直到型循环语句
思考1:直到型循环结构的程序框图是什么?
思考2:该循环结构对应的循环语句的一般格式设定为:
你能说明计算机在执行上述语句时是怎样工作的吗?
先执行一次DO和UNTIL之间的循环体,再对UNTIL后的条件进行判断.如果条件不符合,则继续执行循环体;然后再检查上述条件,如果条件仍不符合,则再次执行循环体,直到条件符合为止.这时,计算机将不执行循环体,而执行UNTIL语句之后的语句.
思考3:计算1+2+3+…+100的值有如下算法:
第一步,令i=1,S=0.
第二步,计算S+i,仍用S表示.
第三步,计算i+1,仍用i表示.
第四步,判断i>100是否成立.若是,则输出S,结束算法;否则,返回第二步.
你能利用UNTIL语句写出这个算法对应的程序吗?
思考4:在下面的程序运行中,计算机输出的结果是多少?
-1
知识探究(二):当型循环语句
思考1:当型循环结构的程序框图是什么?
思考2:该循环结构对应的循环语句的一般格式设定为:
你能说明计算机在执行上述语句时是怎样工作的吗?
先对条件进行判断,如果条件符合,则执行WHILE和WEND之间的循环体;然后再检查上述条件,如果条件仍符合,则再次执行循环体,直到某一次条件不符合为止.这时,计算机将不执行循环体,而执行WEND语句之后的语句.
思考3:计算1+2+3+…+100的值又有如下算法:
第一步,令i=1,S=0.
第二步,若i≤100成立,则执行第三步;否则,输出S,结束算法.
第三步,S=S+i.
第四步,i=i+1,返回第二步.
你能利用WHILE语句写出这个算法对应的程序吗?
思考4:阅读下面的程序,你能说明它是一个什么问题的算法吗?
求满足x2<1000的所有正整数x的值.
理论迁移
例1 已知函数y=x3+3x2-24x+30,写出连续输入自变量的11个取值,分别输出相应的函数值的程序.
算法分析:
第一步,输入自变量x的值.
第二步,计算y=x3+3x2-24x+30.
第三步,输出y.
第四步,记录输入次数.
第五步,判断输入的次数是否大于11.若是,则结束算法;否则,返回第一步.
例2 将用“二分法”求方程 的近似解的程序框图转化为相应的程序.
课堂练习:
1.教材P32面1、2题
2. 下边程序运行后输出的结果为(D)
A.50 B.25 C.5 D.0
3. 下边程序执行后输出的结果为(D)
A.-1 B.0 C.1 D.2
4.山东执行右边的程序框图,若p=0.8,则输出的n=___4___ .
5.阅读图4的程序框图,若输入则输出 12 ,
3 。(注:框图中的赋值符号“=”也可以写成“”或“”)
小结作业
1.两种循环语句源于两种循环结构,直到型循环语句先执行循环体,再判断条件;当型循环语句先判断条件,再执行循环体.
2.直到型循环语句在条件不符合时再执行循环体,当型循环语句在条件符合时再执行循环体.
《习案》作业七
进位制
教学要求:了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换;学习各种进位制转换成十进制的计算方法,研究十进制转换为各种进位制的除k去余法,并理解其中的数学规律.
教学重点:各种进位制之间的互化.
教学难点:除k取余法的理解以及各进位制之间转换的程序框图及其程序的设计.
教学过程:
知识探究(一):进位制的概念
思考1:进位制是为了计数和运算方便而约定的记数系统,如逢十进一,就是十进制;每七天为一周,就是七进制;每十二个月为一年,就是十二进制,每六十秒为一分钟,每六十分钟为一个小时,就是六十进制;等等.一般地,“满k进一”就是k进制,其中k称为k进制的基数.则k是一个什么范围内的数?
思考2:十进制使用0~9十个数字,则二进制、五进制、七进制分别使用哪些数字?
思考3:在十进制中10表示十,在二进制中
10表示2.一般地,若k是一个大于1的整数,则以k为基数的k进制数可以表示为一串数
字连写在一起的形式:anan-1…a1a0(k).其中各个数位上的数字an,an-1,…,a1,a0的取值范围如何?
思考4:十进制数4528表示的数可以写成4×103+5×102+2×101+8×100,依此类
比,二进制数110011(2),八进制数7342(8)分别可以写成什么式子?
110011(2)=1×25+1×24+0×23+0×22+1×21+1×20
7342(8)=7×83+3×82+4×81+2×80.
思考5:一般地,如何将k进制数anan-1…a1a0(k)写成各数位上的数字与基数k的幂的乘积之和的形式?
思考6:在二进制中,0+0,0+1,1+0,1+1的值分别是多少?
知识探究(二):k进制化十进制的算法
思考1:二进制数110011(2)化为十进制数是什么数?
110011(2)=1×25+1×24+0×23+0×22+1×21+1×20 =32+16+2+1=51.
思考2:二进制数右数第i位数字ai化为十进制数是什么数?
例1 将下列各进制数化为十进制数.
(1)10303(4); (2)1234(5).
10303(4)=1×44+3×42+3×40=307.
1234(5)=1×53+2×52+3×51+4×50=194.
知识探究(三):除k取余法
思考1:二进制数101101(2)化为十进制数是什么数?十进制数89化为二进制数是什么数?
思考2:上述化十进制数为二进制数的算法叫做除2取余法,转化过程有些复杂,观察下面的算式你有什么发现吗?
思考3:上述方法也可以推广为把十进制数化为k进制数的算法,称为除k取余法,则十进制数191化为五进制数是什么数?
191=1231(5)
例2 将十进制数458分别转化为四进制数和六进制数.
458=13022(4)=2042(6)
例3 将五进制数30241(5)转化为七进制数.
30241(5)=3×54+2×52+4×5+1=1946.
30241(5)=5450(7)
例4 已知10b1(2)=a02(3),求数字a,b的值.
10b1(2)=1×23+b×2+1=2b+9.
a02(3)=a×32+2=9a+2.
所以2b+9=9a+2,即9a-2b=7.
故a=1,b=1.
小结作业
1.利用除k取余法,可以把任何一个十进制数化为k进制数,并且操作简单
展开阅读全文