高一数学 算法初步
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
到5 kg油瓶中. 第二步,用8 kg油瓶中剩余的油装满3 kg油瓶,再用这3 kg油
瓶中的油装满5 kg油瓶,这时3 kg油瓶中剩1 kg油. 第三步,将5 kg油瓶中的油(5 kg)倒入8 kg油瓶中,然后将3 kg
油瓶中的1 kg油倒入5 kg油瓶中. 第四步,用8 kg油瓶中的油装满3 kg油瓶,然后将该3 kg油倒
例2:一个大油瓶装了8 kg油,还有两个空油瓶,一个能装5 kg 油,另一个能装3 kg油.请设计一种算法,将这8 kg油平均分 成两份.
分析:这是一个非数值计算性问题的算法设计,应考虑首先建 立过程模型.此问题中要充分利用好两个空油瓶,用它们起 到称量的作用.
解:算法步骤如下: 第一步,用8 kg油瓶中的油将3 kg油瓶倒满,再将3 kg油倒入
算法设计与一般意义上的解决问题不同,它是对一类问题的 一般解法的抽象与概括,它要借助一般的问题解决方法,又 要包含这类问题的所有可能情形.它往往是把问题的解法 划分为若干个可执行的步骤,有时有些甚至是重复多次,但 最终都必须在有限个步骤之内完成.
例1:已知平面直角坐标系中的两点A(-1,0),B(3,2),写出求线
(1)利用自上而下的方法设计算法; (2)利用顺序结构、条件结构、循环结构这3种基本逻辑结构来
设计算法; (3)要有优美的算法表达风格.
2.程序框图是用一些图形符号表示各种操作,它直观形象,易 于理解,便于人们之间的交流与合作.学习这部分内容时,我 们要掌握基本的图形符号,在书写算法或画流程图时,要熟 练地运用顺序结构、条件结构、循环结构这3种基本逻辑结 构来表达算法.
例3
:已知函数y
x(x 0) (x 1)2 (x≥0)
,
输入任意一个实数x,
求相应的函数值,画出程序框图,写出程序.
分析:根据输入的x确定x的范围,从而确定代入哪一个表 达式.故采用条件语句,可先画出程序框图,再写程序.
解:程序框图如下图所示:
程序如下:
INPUT x IF x<0 THEN y=x ELSE y=(x+1)*(x+1) END IF PRINT y END
入5 kg油瓶中,这时5 kg油瓶中有4 kg油,8 kg油瓶中也有4 kg油.
上述各步可用下图表示:
点评:以上给出了该问题的一种算法,当然其算法不是唯一的, 同学们可思考其他的算法,并比较它们的优劣.
专题二 程序框图及其画法
程序框图是用规定的图形和指向线来准确、直观、形象地表示 算法的图形.画程序框图之前应先对问题设计出合理有效 的算法,然后分析算法的逻辑结构,根据逻辑结构画出相应 的程序框图.
段AB的垂直平分线方程的一个算法.
分析:线段AB的垂直平分线是指经过线段AB的中点且与直线
AB垂直的直线,故可先由中点坐标公式求出线段AB的中
点N(1,1),然后计算直线AB的斜率
k1
20 3 (1)
1 2
.
由垂直关系可知AB垂直平分线的斜率是k=-2,最后由点斜式
写出直线方程.
解 : 第一步, 计算x0
第一章 算法初步 本章回顾
知识结构
重点知识回顾 一、算法与程序框图
1.解决问题的步骤就是算法.
任何一个能够利用计算机解决问题的算法必须具备以下5个 特性:
(1)可执行性;(2)确定性;(3)有穷性;(4)有输入信息的说明;(5) 有输出结果的步骤.
在书写算法时,为了得到易读、易懂、易修改扩充的算法,应做 到以下几点:
一、循环结构的两种基本类型
二、用循环结构的关键点 (1)确定循环变量和初始值;(2)确定算法中反复执行的部分,即
循环体;(3)确定循环的终止条件.循环结构有两种——直到 型(UNTIL)和当型(WHILE).
三、循环结构的应用 1.用于迭加运算
例5
:
设计用循环语句描述求
6
6
6
1 1 1 1
6 6
程序:
x1Hale Waihona Puke Baidu6
i=1 WHILE i <=6 x 1
6 x i=i+1 WEND PRINT x END
2.用于递推运算
例6:用砖砌一堵墙,第一层用了全部砖的一半还多一块,第二 层用了剩下的砖的一半还多一块,以后每一层都用了剩余 砖的一半还多一块,到第20层时恰好剩下1块砖,问这堵墙 一共用了多少块砖?试编写程序,解决这个问题.
2(12 x),8 x≤12.
程序:
INPUT “x=”;x IF x>=0 and x<=4 THEN y=2*x ELSE IF x<=8 THEN y=8 ELSE y=2*(12-x) END IF END IF PRINT y END
程序框图如下图所示:
专题三 循环结构及其应用
算法中的逻辑结构是根据指定条件决定是否重复执行一条或 多条指令的控制结构.由于计算机的运算速度快,最适宜做 重复性的工作,因此循环是计算机解题的一个重要特征,正 因为如此,在算法的三种逻辑结构中,循环结构是最重要、最 常用的一种,也是学者在应用中感到最为困惑的一种.本文 进一步探析循环结构及其应用.
二、基本算法语句 本章介绍了输入语句、输出语句、赋值语句、条件语句、循环语
句,通过这些语句,我们可以编写出计算机能够读懂的程序.
三、算法案例 1.用辗转相除法与更相减损术求两个数的最大公约数时,一定
要弄清每一次除法和减法中的被除数、除数和被减数、减数, 同时要掌握两种方法中除法和减法分别应在何种情况下停 止运算,得出结果.
例4:如右图,在边长为4的正方形ABCD的边上有一点P,沿着 折线BCDA由点B(起点)向点A(终点)运动.设点P运动的路 程为x,△APB的面积为y,求y与x之间的函数关系式,画出程 序框图,写出程序.
分析:按照题意,根据x的变化,写出分段函数的解析式.
2x, 0≤x≤4, 解 :函数关系式为y 8, 4 x≤8,
1 2
3
1,
y0
0 2
2
1,得AB的中点N 1,1.
第二步, 计算k1
20 3 (1)
1 2
, 得AB的斜率.
第三步,计算k 1 2,得AB垂直平分线的斜率. k1
第四步, 得直线AB垂直平分线的方程, 输出.
点评:该算法步骤的设计依据了解析几何中求线段垂直平分 线的一般方法.同学们还可以思考:如果把已知的两点坐标 改为A(x1,y1),B(x2,y2).算法设计将会发生怎样的变化呢?
2.要注意不同进制的数之间的转换方法.k进制数化为十进制 数的方法是把k进制数写成各位上数字与k幂的乘积之和的 形式,再按十进制数的运算规则计算出结果;十进制数化为 k进制的方法是用k连续去除十进制数与所得的商,直到商 为零为止,然后把各步得到的余数倒写就是相应的k进制数
专题探究 专题一 算法设计
1 1
6
1
6
值的算法程序,并画出相应的程序框图.
分析 : 本题显然是一个迭加问题,故可用循环语句设计算法.
利用循环结构实现算法需搞清初始值是谁,
本题中初始值可定为a1
1 6
,
第一次循环得到a
2
1 6 1
1 6 a1
,
6
第二次循环得到a3
6
1 a2
,, a7
6
1 a6
, 共循环了6次.
解:程序框图为:
解:程序:
m=1 n=1 WHILE n<20 m=2*(m+1) n=n+1 WEND PRINT m END
分析:依题意知,砌第20层时剩余砖为a20=1块,砌第19层时剩 余砖为a19=(1+1)×2=4块,砌第18层时剩余砖为 a18=(4+1)×2=10块,…,砌第n层时剩余砖为 an=(an+1+1)×2块,所以递推公式为 a20=1,an=2(an+1+1),n=1,2,…,19.故本题可用循环结构实现 算法.
瓶中的油装满5 kg油瓶,这时3 kg油瓶中剩1 kg油. 第三步,将5 kg油瓶中的油(5 kg)倒入8 kg油瓶中,然后将3 kg
油瓶中的1 kg油倒入5 kg油瓶中. 第四步,用8 kg油瓶中的油装满3 kg油瓶,然后将该3 kg油倒
例2:一个大油瓶装了8 kg油,还有两个空油瓶,一个能装5 kg 油,另一个能装3 kg油.请设计一种算法,将这8 kg油平均分 成两份.
分析:这是一个非数值计算性问题的算法设计,应考虑首先建 立过程模型.此问题中要充分利用好两个空油瓶,用它们起 到称量的作用.
解:算法步骤如下: 第一步,用8 kg油瓶中的油将3 kg油瓶倒满,再将3 kg油倒入
算法设计与一般意义上的解决问题不同,它是对一类问题的 一般解法的抽象与概括,它要借助一般的问题解决方法,又 要包含这类问题的所有可能情形.它往往是把问题的解法 划分为若干个可执行的步骤,有时有些甚至是重复多次,但 最终都必须在有限个步骤之内完成.
例1:已知平面直角坐标系中的两点A(-1,0),B(3,2),写出求线
(1)利用自上而下的方法设计算法; (2)利用顺序结构、条件结构、循环结构这3种基本逻辑结构来
设计算法; (3)要有优美的算法表达风格.
2.程序框图是用一些图形符号表示各种操作,它直观形象,易 于理解,便于人们之间的交流与合作.学习这部分内容时,我 们要掌握基本的图形符号,在书写算法或画流程图时,要熟 练地运用顺序结构、条件结构、循环结构这3种基本逻辑结 构来表达算法.
例3
:已知函数y
x(x 0) (x 1)2 (x≥0)
,
输入任意一个实数x,
求相应的函数值,画出程序框图,写出程序.
分析:根据输入的x确定x的范围,从而确定代入哪一个表 达式.故采用条件语句,可先画出程序框图,再写程序.
解:程序框图如下图所示:
程序如下:
INPUT x IF x<0 THEN y=x ELSE y=(x+1)*(x+1) END IF PRINT y END
入5 kg油瓶中,这时5 kg油瓶中有4 kg油,8 kg油瓶中也有4 kg油.
上述各步可用下图表示:
点评:以上给出了该问题的一种算法,当然其算法不是唯一的, 同学们可思考其他的算法,并比较它们的优劣.
专题二 程序框图及其画法
程序框图是用规定的图形和指向线来准确、直观、形象地表示 算法的图形.画程序框图之前应先对问题设计出合理有效 的算法,然后分析算法的逻辑结构,根据逻辑结构画出相应 的程序框图.
段AB的垂直平分线方程的一个算法.
分析:线段AB的垂直平分线是指经过线段AB的中点且与直线
AB垂直的直线,故可先由中点坐标公式求出线段AB的中
点N(1,1),然后计算直线AB的斜率
k1
20 3 (1)
1 2
.
由垂直关系可知AB垂直平分线的斜率是k=-2,最后由点斜式
写出直线方程.
解 : 第一步, 计算x0
第一章 算法初步 本章回顾
知识结构
重点知识回顾 一、算法与程序框图
1.解决问题的步骤就是算法.
任何一个能够利用计算机解决问题的算法必须具备以下5个 特性:
(1)可执行性;(2)确定性;(3)有穷性;(4)有输入信息的说明;(5) 有输出结果的步骤.
在书写算法时,为了得到易读、易懂、易修改扩充的算法,应做 到以下几点:
一、循环结构的两种基本类型
二、用循环结构的关键点 (1)确定循环变量和初始值;(2)确定算法中反复执行的部分,即
循环体;(3)确定循环的终止条件.循环结构有两种——直到 型(UNTIL)和当型(WHILE).
三、循环结构的应用 1.用于迭加运算
例5
:
设计用循环语句描述求
6
6
6
1 1 1 1
6 6
程序:
x1Hale Waihona Puke Baidu6
i=1 WHILE i <=6 x 1
6 x i=i+1 WEND PRINT x END
2.用于递推运算
例6:用砖砌一堵墙,第一层用了全部砖的一半还多一块,第二 层用了剩下的砖的一半还多一块,以后每一层都用了剩余 砖的一半还多一块,到第20层时恰好剩下1块砖,问这堵墙 一共用了多少块砖?试编写程序,解决这个问题.
2(12 x),8 x≤12.
程序:
INPUT “x=”;x IF x>=0 and x<=4 THEN y=2*x ELSE IF x<=8 THEN y=8 ELSE y=2*(12-x) END IF END IF PRINT y END
程序框图如下图所示:
专题三 循环结构及其应用
算法中的逻辑结构是根据指定条件决定是否重复执行一条或 多条指令的控制结构.由于计算机的运算速度快,最适宜做 重复性的工作,因此循环是计算机解题的一个重要特征,正 因为如此,在算法的三种逻辑结构中,循环结构是最重要、最 常用的一种,也是学者在应用中感到最为困惑的一种.本文 进一步探析循环结构及其应用.
二、基本算法语句 本章介绍了输入语句、输出语句、赋值语句、条件语句、循环语
句,通过这些语句,我们可以编写出计算机能够读懂的程序.
三、算法案例 1.用辗转相除法与更相减损术求两个数的最大公约数时,一定
要弄清每一次除法和减法中的被除数、除数和被减数、减数, 同时要掌握两种方法中除法和减法分别应在何种情况下停 止运算,得出结果.
例4:如右图,在边长为4的正方形ABCD的边上有一点P,沿着 折线BCDA由点B(起点)向点A(终点)运动.设点P运动的路 程为x,△APB的面积为y,求y与x之间的函数关系式,画出程 序框图,写出程序.
分析:按照题意,根据x的变化,写出分段函数的解析式.
2x, 0≤x≤4, 解 :函数关系式为y 8, 4 x≤8,
1 2
3
1,
y0
0 2
2
1,得AB的中点N 1,1.
第二步, 计算k1
20 3 (1)
1 2
, 得AB的斜率.
第三步,计算k 1 2,得AB垂直平分线的斜率. k1
第四步, 得直线AB垂直平分线的方程, 输出.
点评:该算法步骤的设计依据了解析几何中求线段垂直平分 线的一般方法.同学们还可以思考:如果把已知的两点坐标 改为A(x1,y1),B(x2,y2).算法设计将会发生怎样的变化呢?
2.要注意不同进制的数之间的转换方法.k进制数化为十进制 数的方法是把k进制数写成各位上数字与k幂的乘积之和的 形式,再按十进制数的运算规则计算出结果;十进制数化为 k进制的方法是用k连续去除十进制数与所得的商,直到商 为零为止,然后把各步得到的余数倒写就是相应的k进制数
专题探究 专题一 算法设计
1 1
6
1
6
值的算法程序,并画出相应的程序框图.
分析 : 本题显然是一个迭加问题,故可用循环语句设计算法.
利用循环结构实现算法需搞清初始值是谁,
本题中初始值可定为a1
1 6
,
第一次循环得到a
2
1 6 1
1 6 a1
,
6
第二次循环得到a3
6
1 a2
,, a7
6
1 a6
, 共循环了6次.
解:程序框图为:
解:程序:
m=1 n=1 WHILE n<20 m=2*(m+1) n=n+1 WEND PRINT m END
分析:依题意知,砌第20层时剩余砖为a20=1块,砌第19层时剩 余砖为a19=(1+1)×2=4块,砌第18层时剩余砖为 a18=(4+1)×2=10块,…,砌第n层时剩余砖为 an=(an+1+1)×2块,所以递推公式为 a20=1,an=2(an+1+1),n=1,2,…,19.故本题可用循环结构实现 算法.