2-2-1算法
1-2 减少误差的计算原则

S 14
S 15 S 16 S 17 S 18
0. 06273108042387
0. 05903379364190 0. 05545930172957 0. 05719187059731 -0. 02945367075154
e e ) x dx 0 x e dx (max 0 0 x 1 n 1
0. 14553294057308 0. 12680235656153 0. 11238350406930 0. 10093196744559
S 14
S 15 S 16 S 17 S 18
0. 06273216394138
0. 05901754087930 0. 05571934593124 0. 05277111916899 0. 05011985495809
x n
S8
0. 10093196744509
S9
0. 09161229299417
0. 08387707005829
S 19
S 20
1. 55961974427919
-30. 19239488558378
S 10
对积分值有估计式:
9/12
算法二:
由递推公式
有 由In 的估计式
取
10/12
有 利用递推式可得20个数据如下表:
2/12
避免两个相近的数据相减
如果 y ≈ x,现分析两个数的近似数作减法所得结果的 误差. 设 z= y – x,则利用误差估计
有相对误差估计
当 y ≈ x 时,有 z≈0,计算结果的相对误差限可能很大, 导致数值计算结果的有效数字位数减少。
3/12
要防止大数“吃掉”小数
1-2算法和算法的描述

作用:算法是程序设计的核心,是程序设计的灵魂。算法的好坏,直接影 作用:算法是程序设计的核心,是程序设计的灵魂。算法的好坏, 响着程序的通用性有有效性,影响着问题解决的效率。 响着程序的通用性有有效性,影响着问题解决的效率。程序的编制依赖于 算法的设计,程序的效率主要取决于算法的效率。 算法的设计,程序的效率主要取决于算法的效率。
Private Sub Command1_Click() Dim m, n, r, gbs As Long m = Val(Text1.Text) n = Val(Text2.Text) gbs = m * n r = m Mod n Do While r <> 0 m=n n=r r = m Mod n Loop gbs = gbs / n Text3.Text = Val(gbs) End Sub
2 算法和算法的描述
算法的描述 自然语言 流程图 优势 不足
书写较烦、不确定性、对复 杂的问题难以表达准确、不 容易理解 能被计算机识别和执行 直观、形象 、清晰 不能被计算机识别和执行 简洁 书写方便、格式紧 因语言的种类繁多,不容易 凑、易于理解、便 规范,有时会产生误解 于向计算机程序设 计语言过渡
流线 连接圈
一条流线
1-2 算法和算法的描述
开始 输入a,b,c
是否为 三角形
输出不构 成三角形
S=(a+b+c)/2 Area=sqr (s*(s-a)*(s-b)*(s-c)) 输出area
结束
1-2 算法和算法的描述
1-2 算法和算法的描述
INPUT m,n r=m mod n Do while r<>0 m=n n=r r= m mod n Loop Print n
高一数学必修3课件:1-2-3循环语句

[答案] D
第一章 1.2 1.2.3
成才之路 ·数学 ·人教A版 · 必修3
[解析]
本题给定的分段函数有三段, 所以在条件结构中
需运用两次判断框,故选 D.
第一章
1.2
1.2.3
成才之路 ·数学 ·人教A版 · 必修3
4.已知如下程序: INPUT x IF x>=0 THEN y=1 ELSE y=-1 END IF PRINT “y=”;y END
新赋值i=i-1后输出. (2)本题也可利用UNTIL语句编写程序如下: i=0 DO i=i+1 T=i^2 LOOP UNTIL T>=2000 i=i-1 PRINT i END
第一章
1.2
1.2.3
成才之路 ·数学 ·人教A版 · 必修3
3.请思考改为求平方值大于2000的最小整数,该怎样 修改程序.最关键的是要明确,例2在当型循环中条件不满 足时,i的值已比满足条件的i值大了1,还应注意i=i+1与T =i^2语句的先后顺序对输出表达式的影响.
第一章
1.2
1.2.3
成才之路 ·数学 ·人教A版 · 必修3
解法2:程序框图如下图所示.
第一章
1.2
1.2.3
成才之路 ·数学 ·人教A版 · 必修3
程序如下: S=0 i=1 DO S=S+i i=i+2 LOOP UNTIL S>10000 PRINT “最小整数为”;i-2 END
第一章
第一章
1.2
1.2.3
成才之路 ·数学 ·人教A版 · 必修3
解法二:(直到型循环)程序框图如下图.
第一章
1.2
1.2.3
成才之路 ·数学 ·人教A版 · 必修3
§1.3.1-2算法案例(二)

2013-8-15
重庆市万州高级中学 曾国荣 wzzxzgr@
7
§1.3.1-2算法案例(二)
开始
程序框图
第一步:输入多项式次数n、最 高次项的系数an和x的值
输入n,an,x的值
v=an
i=n-1 i=i-1 v=vx+ai i≥0?
N Y
第二步:将v的值初始化为an, 将i的值初始化为n-1
n次加法运算
对该多项式按下面的方式进行改写
f ( x ) an x n an1 x n1 a1 x a0 (an x n1 an1 x n 2 a1 ) x a0 ((an x n 2 an1 x n 3 a2 ) x a1 ) x a0 ( (an x an1 ) x an 2 ) x a1 ) x a0
2013-8-15 重庆市万州高级中学 曾国荣 wzzxzgr@ 6
§1.3.1-2算法案例(二)
f ( x ) an x n an1 x n1 a1 x a0 ( (an x an1 ) x an 2 ) x庆市万州高级中学 曾国荣 wzzxzgr@
2
§1.3.1-2算法案例(二)
复习
1、求两个数的最大公约数的两种方法分别是( ( ).
)和
2、两个数21672,8127的最大公约数是( A、2709 B、2606 C、2703
)
D、2706
2013-8-15
重庆市万州高级中学 曾国荣 wzzxzgr@
§1.3.1-2算法案例(二)
重庆市万州高级中学 曾国荣 wzzxzgr@
§1.3.1-2算法案例(二)
1-2-1输入语句、输出语句和赋值语句

提示 输入语句可使初始数值与程序分开,利用输入语句
改变初始数据时,程序不变,而赋值语句是程序的一部
分,输入语句可对多个变量赋值,赋值语句只能给一个变
量赋值.
课前探究学习
课堂讲练互动
活页规范训练
名师点睛
1.输入语句的理解 (1)输入语句的一般格式是 INPUT “提示内容”;变量 输入语句的作用是实现算法的输入信息功能. (2)输入语句无运算功能,要求输入的值只能是具体的 数,不能是函数、变量或表达式.例如,输入40+5,10- 1,20]INPUT“a=”;a时,屏幕上出现提示信息“a=”,若 我们输入1,程序则把输入的值赋给a,即a=1. 如INPUT“a=,b=,c=”;a,b,c,当我们依次输入 1,2,3时,程序在运行时把输入的值依次赋给a,b,c即a= 1,b=2,c=3.
课前探究学习
课堂讲练互动
活页规范训练
(3)在一个赋值语句中只能给一个变量赋值,故不能出现 两个或多个“=”.如A=B=1就不能实现. (4)一个赋值语句不能同时给两个变量赋值,如A+B=1是 错误的. (5)若两端含有同名变量时,如A=A+1,则赋值后变量A 原值加1,原值丢失;若两端变量名不同,如A=B+1, 则赋值后A的值变化,B的值不变. 对于同一个变量多次赋值时,只保留最后一次所赋的值.
课前探究学习
课堂讲练互动
活页规范训练
题型一 输入、输出和赋值语句的格式
【例1】下列给出的输入、输出语句正确的是
( ).
①输入语句INPUT a;b;c
②输入语句INPUT x=3
③输出语句PRINT A=4
④输出语句PRINT 20,3]
A.①②
B.②③ C.③④ D.④
高三数学一轮复习 第九章 第2课时 基本算法语句、算法案例与框图课件

输入信息
语句
一般格式
功能
输出 _P_R_I_N__T_“__提__示__内__ 输出_常__量__、__变___量__ 语句 _容__”__;__表__达__式___ 的__值___和__系__统__信__息__
赋值 语句
__变__量__=__表__达__式___
将表达式所代表的 值_赋__给__变___量__
1.四位二进制数 1 111(2)表示的十进制数是
()
A.4
B.15
C.64
D.127
解 析 : 1 111(2)= 1×23+ 1×22+ 1×21+ 1×20=8+4+2+1=15.
答案: B
2.用“辗转相除法”求得 168 和 486 的最大
公约数是( )
A.3
B.4
C.6
D.16
解析: 486=2×168+150,168=1×150 +18,
某工种按工时计算工资,每月总工资=每月劳 动时间(小时)×每小时工资,从总工资中扣除 10%作公积金,剩余的为应发工资,当输入劳 动时间和每小时工资数时,试编写一程序输出 应发工资.
解析: 算法分析:第一步,输入月劳动时 间 t 和每小时工资 a; 第二步,求每月总工资 y=每月劳动时间 t× 每小时工资 a; 第三步,求应发工资 z=每月总工资 y×(1 -10%);
答案: 21 4
练规范、练技能、练速度
人教版八年级上
Unit 4 What’s the best movie theater?
课时4 Section B (2a-2e)
二、根据句意,用括号内所给词的适当形式填空。 6. We are looking for the best singers and the most exciting
第二章算法与问题解决课件—浙教版(2019)高中信息技术必修1(46PPT)
控制转 移
在算法执行过程中,有时需要根据数据或运算结果的特点进 行不同的处理,这时就需要运用控制转移来执行不同的操作。
(分支、循环)
算法的描述 同一个算法可以用不同的方式描述
算法的描述 使用自然语言描述算法。
(1)输入苹果的重量x
(2)判断苹果的重量是否大于2千克
(3)如果苹果的重量不大于2千克,应付款y=x*1.5
算法的描述
优点 缺点
自然语言 通俗易懂
流程图
形象直观 容易理解
伪代码
简洁易懂 语法任意
计算机语言 能让计算机执行
易产生歧义
情况复杂时, 过多的流程线 影响理解
不直观 错误不易发现
需要有学习基础
× √
√ × √ ×
算法的描述
小明发现奶茶店的奶茶桶是需要人为更换的,因此他设计了一个算法,当奶茶 容量少于500ml 的时候,会自动添加奶茶直至容量到达 500ml。
2.某景区使用了游客人数控制系统来控制景区内游览人数。该系统在景区各个
人口和出口分别统计人数,并汇总计算得出景区内的大致人数。该过程属于计算
机解决问题的一般步骤中的哪个环节( )
A.抽象建模
B.设计算法
C.编写程序
D.调试运行程序
4 5
×
√ √ √ ×
√
算法的描述 程序语言的发展
• 高级语言更接近自然语言,并不特指某一语言,也不依赖于特定的计算机 系统,因而更容易掌握和使用,通用性也好。比较流行的高级语言有Java、 C/C++、Python等,程序的可读性好,也便于修改、维护。
高级语言代码为:result=2+3
• 机器语言→汇编语言→高级语言 优点:计算机理解执行 缺点:需要学习,难度高
基本算法2-递推法实例
一般地,设原来的符合题意的n-1条直线把这平面分成 个区域,再增加一条直线l,就变成n条直线,按题设条 件,这l必须与原有的n-1条直线各有一个交点, 且这n-1个交点 及原有的交点互不重合。这n-1个交点把l划分成n个区间,每 个区间把所在的原来区域一分为二,所以就相应比原来另增 了n个区域,即:
const max=100; var
f1,f2,s:array[1..max] of longint; i,j,k,l,n:longint; begin readln(n); f1[max]:=0 ; f1[max-1]:=1; {F0=10} for i:= 1 to n do
begin f2:=f1; k:=0; { ×7 } for j:= max downto 1 do begin k:=k+f1[j]*7; f1[j]:=k mod 10; k:=k div 10; end;
end.
var a,b:array[1..100] of longint; i,j,n:longint;
begin readln(n); a[100]:=4 ; b[100]:=1; for i:= 2 to n do begin for j:= 100 downto 1 do b[j]:=b[j]*2; for j:= 100 downto 2 do if b[j]>=10 then begin b[j-1]:=b[j-1]+b[j] div 10 ; b[j]:=b[j] mod 10; end; for j:= 100 downto 1 do begin a[j]:=a[j]+b[j]; if a[j]>=10 then begin a[j-1]:=a[j-1]+a[j] div 10 ; a[j]:=a[j] mod 10; end; end; end; j:=1; while a[j]=0 do j:=j+1; for i:= j to 100 do write(a[i]) ;
算法设计与分析2-2,答案
2-2下面的7个算法……..请给出正确性证明public class TestbinarySearch {public static int binarySearch1(int a[], int x, int n) { int left = 0;int right = n - 1;while (left <= right) {int middle = (left + right) / 2;System.out.println("left=" + left + " right" + right + " middle="+ middle);if (x == a[middle])return middle;if (x > a[middle])left = middle;elseright = middle;}return -1;}public static int binarySearch2(int a[], int x, int n) { int left = 0;int right = n - 1;while (left < (right - 1)) {int middle = (left + right) / 2;System.out.println("left=" + left + " right" + right + " middle="+ middle);if (x < a[middle])right = middle;elseright = middle;}if (x == a[left]) {return left;}return -1;}public static int binarySearch3(int a[], int x, int n) { int left = 0;int right = n - 1;int middle = (left + right) / 2;System.out.println("left=" + left + " right" + right + " middle="+ middle);if (x >= a[middle]) {left = middle;} else {right = middle;}}if (x == a[left]) {return left;}return -1;}public static int binarySearch4(int a[], int x, int n) { if (n > 0 && x >= a[0]) {int left = 0;int right = n - 1;while (left < right) {int middle = (left + right) / 2;System.out.println("left=" + left + " right" + right+ " middle=" + middle);if (x < a[middle]) {right = middle - 1;} else {left = middle;}}if (x == a[left]) {return left;}}return -1;}public static int binarySearch5(int a[], int x, int n) { if (n > 0 && x >= a[0]) {int left = 0;int right = n - 1;int middle = (left + right + 1) / 2;System.out.println("left=" + left + " right" + right+ " middle=" + middle);if (x < a[middle]) {right = middle - 1;} else {left = middle;}}if (x == a[left]) {return left;}}return -1;}public static int binarySearch6(int a[], int x, int n) { if (n > 0 && x >= a[0]) {int left = 0;int right = n - 1;while (left < right) {int middle = (left + right) / 2;System.out.println("left=" + left + " right" + right+ " middle=" + middle);if (x < a[middle]) {right = middle - 1;} else {left = middle + 1;}}if (x == a[left]) {return left;}}return -1;}public static int binarySearch7(int a[], int x, int n) { if (n > 0 && x >= a[0]) {int left = 0;int right = n - 1;while (left < right) {int middle = (left + right) / 2;System.out.println("left=" + left + " right" + right+ " middle=" + middle);if (x < a[middle]) {right = middle;} else {left = middle;}}if (x == a[left]) {return left;}}return -1;}/** 测试方法一方法一的while的循环条件出错,因为middle=(left+right)/2 而left=middle或者right=middle* 所以当left+1=right时,left<=righ一直成立所以无法返回x=5这个值* left=0,right=4.middle=2,x>a[middle],left=2;* left=2,right=4.middle=3,x>a[middle],left=3;* left=3,right=4.middle=3,x>a[middle],left=3;* left=3,right=4.middle=3,x>a[middle],left=3;出现死循环*/public static void Test1() {int a[] = new int[5];for (int i = 1; i < 6; i++) {a[i - 1] = i;}for (int i = 0; i < a.length; i++) {System.out.print(a[i] + "");}System.out.println("");for (int i = 1; i < a.length+1; i++)System.out.println("在下标为"+ binarySearch1(a, i, a.length) + "的位置");;// 当x=5无法查找到边界问题没有出处理好}/** 方法二和方法一差不多但是由于下条件left<rigth-1使下标的判断题条件出错了left=0 right4 middle=2 left=0* right2 middle=1 在下标为0的位置 left=0 right4 middle=2 left=0 right2 middle=1* 在下标为-1的位置 left=0 right4 middle=2 left=0 right2 middle=1 在下标为-1的位置 left=0* right4 middle=2 left=0 right2 middle=1 在下标为-1的位置*/public static void Test2() {int a[] = new int[5];for (int i = 1; i < 6; i++) {a[i - 1] = i;}for (int i = 0; i < a.length; i++) {System.out.print(a[i] + "");}System.out.println("");for (int i = 1; i < a.length + 1; i++)System.out.println("在下标为"+ binarySearch2(a, i, a.length) + "的位置");// 当x=5无法查找到边界问题没有出处理好}/** 方法三也是会出现边界的问题当x5时会出现死循环其它正常 left=0 right4 middle=2 left=0 right2 middle=1* 在下标为0的位置 left=0 right4 middle=2 left=0 right2 middle=1 在下标为1的位置 left=0* right4 middle=2 left=2 right4 middle=3 在下标为2的位置 left=0 right4 middle=2* left=2 right4 middle=3 在下标为3的位置当x=5时会有以下死循环 left=3 right4 middle=3* left=3 right4 middle=3 left=3 right4 middle=3 left=3 right4 middle=3 * left=3 right4 middle=3*/public static void Test3() {int a[] = new int[5];for (int i = 1; i < 6; i++) {a[i - 1] = i;}for (int i = 0; i < a.length; i++) {System.out.print(a[i] + "");}System.out.println("");for (int i = 1; i < a.length + 1; i++)System.out.println("在下标为"+ binarySearch3(a, i, a.length) + "的位置");}/** 方法四也是因为下标出现问题所以出现死循环 left=0 right1 middle=0left=0 right1 middle=0* left=0 right1 middle=0 left=0 right1 middle=0 left=0 right1 middle=0 */public static void Test4() {int a[] = new int[5];for (int i = 1; i < 6; i++) {a[i - 1] = i;}for (int i = 0; i < a.length; i++) {System.out.print(a[i] + "");}System.out.println("");for (int i = 1; i < a.length + 1; i++)System.out.println("在下标为"+ binarySearch4(a, i, a.length) + "的位置");}/** 方法五是正确的结果如下 left=0 right4 middle=2 left=0 right1 middle=1 在下标为0的位置* left=0 right4 middle=2 left=0 right1 middle=1 在下标为1的位置 left=0 right4* middle=2 left=2 right4 middle=3 在下标为2的位置 left=0 right4 middle=2 left=2* right4 middle=3 left=3 right4 middle=4 在下标为3的位置 left=0 right4 middle=2* left=2 right4 middle=3 left=3 right4 middle=4 在下标为4的位置*/public static void Test5() {int a[] = new int[5];for (int i = 1; i < 6; i++) {a[i - 1] = i;}for (int i = 0; i < a.length; i++) {System.out.print(a[i] + "");}System.out.println("");for (int i = 1; i < a.length + 1; i++)System.out.println("在下标为"+ binarySearch5(a, i, a.length) + "的位置");}/** 方法六是错误的由于下标混乱导致除了最后一个元素可以搜索到,其他元素都不可以搜索到结果如下 left=0 right4 middle=2* left=0 right1 middle=0 在下标为-1的位置 left=0 right4 middle=2 left=0 right1* middle=0 在下标为1的位置 left=0 right4 middle=2 left=3 right4 middle=3 在下标为-1的位置* left=0 right4 middle=2 left=3 right4 middle=3 在下标为-1的位置 left=0 right4* middle=2 left=3 right4 middle=3 在下标为4的位置*/public static void Test6() {int a[] = new int[5];for (int i = 1; i < 6; i++) {a[i - 1] = i;}for (int i = 0; i < a.length; i++) {System.out.print(a[i] + "");}System.out.println("");for (int i = 1; i < a.length + 1; i++)System.out.println("在下标为"+ binarySearch6(a, i, a.length) + "的位置");}/** 方法七是错误的,原因是左边的边界没有处理好导致x=1时会出现死循环所以算法是错误的结果如下 left=0 right1 middle=0* left=0 right1 middle=0 left=0 right1 middle=0 left=0 right1 middle=0 * left=0 right1 middle=0*/public static void Test7() {int a[] = new int[5];for (int i = 1; i < 6; i++) {a[i - 1] = i;}for (int i = 0; i < a.length; i++) {System.out.print(a[i] + "");}System.out.println("");for (int i = 1; i < a.length; i++)System.out.println("在下标为"+ binarySearch7(a, i, a.length) + "的位置");}public static void main(String[] args) {Test1();//死循环Test2();//只能找到左边界Test3();//只能有边界Test4();//死循环Test5();//正确Test6();//只能找到右边界Test7();//左边死循环}}。
高一数学必修3课件:1-1-2-3 循环结构、程序框图的画法
[思路分析] i=1,s=2; s=2-1=1, i=1+2=3; s=1-2=-2,i=3+2=5; s=-2-5=-7,i=5+2=7,则判断框内应填 “i<6?”,故选D.
[正解] D
1.在一个算法中,如果出现反复执行某一处理步骤的情 况,最好采用( )
A.顺序结构 B.条件结构 C.循环结构 D.条件结构或循环结构
[解析] 成绩不低于60分时输出“及格”,即x≥60时满 足条件,故框1填“是”,框2填“否”.
3.如下图是某一函数的求值流程图,则满足流程图的 函数解析式为________.
[答案]f(x)=|2x-1|-2
[解析]程序框图判断框中对“x>
1 2
”的判断表示f(x)为分
段函数.
当x>12时,f(x)=2x-3=2x-1-2;
[破疑点] 对循环结构的理解: ①循环结构中必须包含条件结构,以保证在适当的时候 终止循环. ②循环结构内不存在无终止的循环. ③循环结构实质上是判断和处理的结合,可以先判断, 再处理,此时是当型循环结构;也可以先处理再判断,此时 是直到型循环结构.
④循环结构中常量的几个变量: 计数变量:即计数器,用来记录执行循环体的次数,如i =i+1,n=n+1. 累加变量:即累加器,用来计算数据之和,如S=S+i. 累乘变量:即累乘器,用来计算数据之积,如P=P*i. ⑤在程序框图中,一般要根据实际情况先给这些变量赋 初始值.一般情况下,计数变量的初始值为1,累加变量的 初始值为0,累乘变量的初始值为1.
第一章 算法初步
1.1 算法与程序框图 1.1.2 程序框图与算法的基本逻辑结构 第3课时 循环结构、程序框图的画法
温故知新 1.下列问题的算法宜用条件结构表示的是( ) A.求点P(-1,3)到直线3x-2y+1=0的距离 B.由直角三角形的两条直角边求斜边 C.解关于x的方程ax+b=0 D.计算100个数的平均数 [答案] C
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法框图的基本结构及设计
2.1 顺序结构与选择结构
【课标要求】 1.掌握算法框图中的两种算法结构——顺序结构、选择 结构及其特点. 2.通过具体的实例体会用算法框图表示算法的优点. 3.会用算法框图表示简单的算法. 【核心扫描】 1.利用算法框图中的两种算法结构——顺序结构、选择
结构表示简单的算法.(重点)
能结果;另一种是多分支判断,可能有几种不同的结
果. (5)在图形符号内描述的语言要非常简练清楚.
课前探究学习
课堂讲练互动
4. 算法的两种结构 依次执行 (1)顺序结构:按照步骤_________的一个算法,称为具有“顺序 顺序结构 算法的顺序结构 结构”的算法,或者称为_______________. _________是任何 一个算法都离不开的一种基本算法结构. 判断 (2)选择结构:在算法的流程中,需要对条件进行判断, _____ 的结果 _______决定后面的步骤,像这样的结构通常称作选择结构.
算法分析:用变量x,y分别表示自变量和函数值.步
骤如下: 第一步:输入x的值; 第二步:判断x的范围,若x≥0,则用函数y=x2-1求函数 值,否则,用y=2x2-5求函数值.
课前探究学习 课堂讲练互动
第三步:输出y的值. 算法框图如图所示.
课前探究学习
课堂讲练互动
规律方法 (1)求分段函数的函数值时,如果是分两段的函 数,只需引入一个判断框;如果是分三段的函数,需要引 入两个判断框;依次类推.至于判断框内的内容是没有顺 序的. (2)判断框内的内容可以不唯一,但判断框内的内容一经
第五步,输出d. (2)用算法框图来描述算法,如右图所示.
规律方法 本题中的算法设计应用了解析几何中的相关公
式,同时该算法只需按步骤依次执行即可,故采用顺序结 构来实现.顺序结构只须严格按照传统的解决数学问题的 解题思路,将问题解决掉.最后将解题步骤“细化”就可 以.“细化”指的是写出算法步骤、画出算法框图.
想一想:判断框有两个退出点,是否表示在这里要同时执行?
提示 不是.判断框的退出点在任何情况下都是根据条件去执
行其中的一个,而另一个则不会被执行,故判断框后的指向线 应根据情况标注“是”或“否”.
课前探究学习
课堂讲练互动
名师点睛
对算法框图中顺序结构的理解 1. 顺序结构是最简单的算法结构,语句与语句之 间,框与框之间按从上到下(或从左到右)的顺序
题型二
【例2】 已知函数
选择结构的算法框图
x2-1(x≥0) f(x)= 2 编写一个程序,对每输入 2x -5(x<0)
的一个 x 值,都得到相应的函数值,写出算法并画出算法框 图. [思路探索] 凡先由条件作出判断,然后再决定进行哪一个
步骤的问题,在画框图时,必须用到选择结构.
解
进行,它由若干个依次执行的步骤组成,它是
任何一个算法都离不开的一种算法结构,如图 所示,虚线框内表示一个顺序结构,其中A和B
两个框是依次执行的,只有执行完A框所指定的
操作后,才能接着执行B框所指定的操作.
课前探究学习
课堂讲练互动
算法框图中选择结构应注意的问题 2.
(1)无论条件p是否成立,只能执行A框或B
x=0
x
或 x=1 或 x=3,共 3 个值.
高考对程序框图考查的类型之一就是读图,因此 考生需要明白程序框图的作用是什么,解决的是一个什么 样的问题,这样才能解决相应的问题.
课前探究学习 课堂讲练互动
2.准确认识顺序结构、选择结构的特点.(易混点)
课前探究学习 课堂讲练互动
自学导引
1. 算法框图 准确 在算法设计中,算法框图(也叫程序框图)可以_____、 清晰 _____、直观地表达解决问题的思路和步骤.
课前探究学习
课堂讲练互动
2.基本框图及其表示的功能 框图 终端框 (起止框) 输入、 输出框 处理框 功能 表示一个算法的起 始和结束 表示一个算法输 入和输出的信息 赋值、计算 判断某一条件是否 成立
(2)注意该题判断框内的内容为“n为奇数”,所以当n为奇 数时,则按“是”分支执行;否则,按“否”分支执行.
课前探究学习
课堂讲练互动
【训练3】某快递公司规定甲、乙两地之间物品的托运费用根 据下列方法计算:
其中f(单位:元)为托运费,ω为托运物品的重量(单位:千 克),试写出一个计算费用f的算法,并画出相应的算法框
图.
解 算法如下: 第一步:输入物品重量ω; 第二步:如果ω≤50,那么f=0.53ω,否则,f=50×0.53+ (ω-50)×0.85;
第三步:输出托运费f.
课前探究学习 课堂讲练互动
相应的算法框图为
课前探究学习
课堂讲练互动
误区警示
对程序框图的功能理解不透彻而致错
【示例】 如图所示的程序框图,其作用是:输入x的值,输出 相应的y值.若要使输入的x值与输出的y值相等,求这样 的x值有多少个?
改变,其相应的处理框等内容均要有所改变.
课前探究学习
课堂讲练互动
2 【训练2】设计求 y= x 的算法,并画出相应的算法框图.
解
算法如下:
第一步:输入x; 第二步:如果x≥0,使y=x,否则,使y=-x; 第三步:输出y.
课前探究学习
课堂讲练互动
相应的算法框图如图(1)所示,也可画成图(2)所示.
课前探究学习 课堂讲练互动
【训练1】写出下列算法的功能: (1)图(1)中算法的功能是(a>0,b>0)____________. (2)图(2)中算法的功能是____________________.
答案
(1)求以a,b为直角边的直角三角形斜边c的长
课前探究学习 课堂讲练互动
(2)求两个实数a,b的和
画出程序框图
[规范解答]算法如下: 第一步,输入n的值. 2分
课前探究学习
课堂讲练互动
第二步,若 n 为奇数,则输出 3n+1 的值;若 n 为偶数,则 n 输出 的值. 4分 2 程序框图如讲练互动
【题后反思】 (1)题中n是奇数和n是偶数时的计算方式不
同,所以需对n的奇偶性加以判断,然后计算结果.
框之一,不可能既执行A框又执行B框,
选择结构
注意点 也不可能A框和B框都不执行,无论走哪
一条路径,在执行完后,都脱离本条件结 构.
用 途
(2)
选择结构主要用在一些需要 根据条件进行判断的算法中
课前探究学习 课堂讲练互动
题型一
顺序结构的算法框图
【例1】已知点P0(x0,y0)和直线l:Ax+By+C=0,写出求点P0 到直线l的距离d的算法及算法框图. [思路探索] 由于是求点到直线的距离,因此可以直接应用
课前探究学习
课堂讲练互动
[正解] 易知算法的功能是求分段函数
(x≤2), x 2x-3 (2<x≤5), y= 的函数值. 1 x (x>5)
2
x≤2, 2<x≤5, x>5, 欲满足题意,则 2 或 或1 解得 x =x 2x-3=x =x,
判断框
课前探究学习
课堂讲练互动
3. 画程序框图的规则 (1)使用标准的框图的符号. (2)框图一般按从上到下,从左到右的方向画. 进入点 (3)除判断框外,其它框图符号只有一个_______和一个 退出点 退出点 _______.判断框是具有超过一个_______的唯一符号. 两 (4)一种判断框是二选一形式的判断,有且仅有___个可
课前探究学习
课堂讲练互动
[错解] 要使输入的 x 值与输出的 y 值相等,只需 x2=x 或 2x 1 -3=x 或 =x.解得 x=1 或 x=0 或 x=3 或 x=-1, 4 个 共 x 值.
各种程序框图的程序框所表达的含义都不同,
由于对这些程序框的作用、含义记忆不牢,理解不透彻、 不准确,常致使所画的程序框图发生错误.
点到直线的距离公式将相关数据代入即可,因此可用顺序
结构来画图. 解 (1)用数学语言来描述算法: 第一步,输入点的坐标x0,y0,输入直线方程的系数即常 数A,B,C;
课前探究学习 课堂讲练互动
第二步,计算z1=Ax0+By0+C; 第三步,计算z2=A2+B2;
|z1| 第四步,计算 d= ; z2
图(1)
课前探究学习
图(2)
课堂讲练互动
题型三
框图应用
【例3】(12分)给定一个正整数n,若n为奇数,则把n乘3加1;
若n为偶数,则把n除以2.写出算法,并画出程序框图. 审题指导 选择结构在算法框图中是用判断框来表示,判 断框内写上条件,然后它有两个出口,分别对应着条件满
足和条件不满足时所执行的不同指令. [解题流程] 分析算法 → 写出算法 → 选择合适的逻辑结构 →