高中数学人教A版必修3第一章算法初步 课件

文档属性

名称 高中数学人教A版必修3第一章算法初步 课件
格式 zip
文件大小 1.8MB
资源类型 教案
版本资源 人教新课标A版
科目 数学
更新时间 2020-02-16 12:52:21

文档简介

(共14张PPT)
算法的概念
巧渡河:
两个大人和两个小孩一起渡河,渡口只有一条小船,每次只能渡1 个大人或两个小孩,他们四人都会划船,但都不会游泳。试问他们怎样渡过河去?请写出一个渡河方案。
渡河方案:
S1 两个小孩同船过河去;
S2 一个小孩划船回来;
S3 一个大人划船过河去;
S4 对岸的小孩划船回来;
S5 两个小孩同船渡过河去;
S6 一个小孩划船回来;
S7 余下的一个大人独自划船渡过河去;对岸的小 孩划船回来;
S8 两个小孩再同时划船渡过河去。
算法的概念:
由基本运算及规定的运算顺序所构成的完整的解题步骤,或者是按照要求设计好的有限的计算序列,并且这样的步骤或序列能解决一类问题。
算法的五个重要特征:
(1)有穷性:
(2)确切性:算法的每一步必须有确切的定义;
(3)可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次即可完成;
(4)输入:一个算法有0个或多个输入,以刻划运算对象的初始条件。所谓0个输入是指算法本身定出了初始条件。
(5)输出:一个算法有1个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。
鸡兔同笼问题
例1 一群小兔一群鸡,两群合到一群里,要数腿共48,要数脑袋整17,多少只小兔多少只鸡?
算法1:
S1 首先计算没有小兔时,小鸡的数为:17只,腿的总数为34条。
S2 再确定每多一只小兔、减少一只小鸡增加的腿数2条。
S3 再根据缺的腿的条数确定小兔的数量: (48-34)/2=7只
S4 最后确定小鸡的数量:17-7=10只.
算法2:
S1 首先设x只小鸡,y只小兔。
S2 再列方程组为:
S3 解方程组得:
S4 指出小鸡10只,小兔7只。


例2.写出一个求有限整数序列中的最大值
的算法。
S1先将序列中的第一个整数设为最大值;
S2将序列中的下一个整数值与“最大值”比较,如果它大于此“最大值”,这时就假定“最大值”就是这个整数;
S3如果序列中还有其它整数,重复 S2;
S4在序列中一直进行到没有可比的数为止,这时假定的“最大值”就是这个序列中的最大值。
例3、任意给定一个大于1的整数n,试设计
一个程序或步骤对n是否为质数作出判定。
第一步:判断n是否等于2。若n=2,则n是质数;若n>2,则执行第二步;
第二步:依次从2到(n-1)检验是不是n的因数,即是否能整除n的数。若有这样的数,则n不是质数;否则,n是质数。
练习:
1、写出一个求整数a、b、c最大值的算法。

2、任意给定一个正实数a,试设计一个算法求以a为直径的圆的面积。
解:
第一步:输入a的值.
第二步:________________________.
第三步:________________________.
第四步:输出圆的面积的值.
小 结
算法的概念:
算法的五个重要特征:
作 业
1.设计一个算法,求1+2+3+4+5的值。

2. 给出求 的一个算法。

3.有一桶啤酒(多于8升),给定3升和5升的两个空容器,要求能倒出1升啤酒,写出算法步骤。
谢谢聆听
(共14张PPT)
1.1.2
程序框图与算法的基本逻辑结构
知识回忆
1、程序框图的概念
2、程序框图的图示和意义
3、顺序结构和条件结构的特点
变量的值可以由输入的方式给定,也可以直接以赋值的方式给定。在算法中,我们可以根据需要改变变量的值,也就是说可以给变量重新赋值,取代原来的值。
形象的说,变量就像个盒子,可以装不同的数值,但是每次只能装一个,当放入新值,原来的值就会被取代。
例2 交换两个变量A和B的值
算法
第一步:输入A,B,
第二步:令x=A,
第三步:令A=B,
第四步:令B=x,
第五步:输出A,B.
程序框图:
开始
B=x
输出A,B
结束




A=B
x=A

输入A,B

例3 设计一算法,求和:1+2+3+…+100
第一步:确定首数a,尾数b,项数n;
第二步:利用公式“总和=(首数+尾数)×项数/2”求和;
第三步:输出求和结果。
算法1:
开始
结束
输入a,b,n
S=(a+b)*n/2
输出S
例3 设计一算法,求和:1+2+3+…+100
算法2:
第一步:从1开始将自然数1、2、 3、…、100逐个相加;
第二步:输出累加结果。
思考:1、上边的式子有怎样的规律呢?
S=0
S=S + 1
S=S + 2
S=S + 3

S=S + 100
2、怎么用程序框图表示呢?
S=S + i
i = i + 1
4、如何使程序结束?
3、i有什么作用?S呢?
S=S + i

解决方法就是加上一个判断,判断是否已经加到了100,如果加到了则退出,否则继续加。

试分析两种流程的异同点
直到型结构
当型结构
S=S + i
i = i + 1



S=S + i
i = i + 1



i≤100?
i>100?
请填上判断的条件。
S=S + i
i = i + 1
最后的结果
结束
S=S + i
i = i + 1
i≤100?
输出S


i=1,S=0
开始
结束
输出S
i=1,S=0
开始
S=S + i
i = i + 1
i>100?


循环结构的三个要素:循环变量、循环体、循环终止条件。仿照下图你可以画出当型的流程图吗?
循环变量=初值
循环体
循环变量=循环变量的后继
循环变量>终值?





循环变量=初值
循环体
循环变量≤终值?


循环变量=循环变量的后继











步骤A

步骤B
思考:将步骤A和步骤B交换位置,结果会怎样?能达到预期结果吗?为什么?要达到预期结果,还需要做怎样的修改?
答:达不到预期结果;当i = 100时,退出循环,i的值未能加入到S中;修改的方法是将判断条件改为i<101
结束
S=S + i
i = i + 1
i≤100?
输出S


i=1,S=0
开始
练习巩固
1、设计一算法,求积:1×2×3×…×100,画出流程图
结束
输出S
i=1,S=1
开始
S=S*i
i = i + 1
i>100?


思考:该流程图与前面的例3中求和的流程图有何不同?
的值,并画出程序框图.
开始
输入正整数n
输出S
结束
S=0
i=1
S=S+1/i
i=i+1
i>n?


设计一个算法求
练习巩固
2、设计一算法输出1~1000以内能被3整除的整数
结束
i= i+1
i<1000?
输出i


i=0
开始
3整除i?


算法:
S1:确定i的初始值为0;
S2:判断i是否等于1000,若是则程序结束,否则进入S3;
S3:使i增加1,判断i是否能被3整除,若能输出i,并返回S2;否则直接返回S2
小结
1、循环结构的特点
2、循环结构的框图表示
3、循环结构有注意的问题
避免死循环的出现,设置好进入(结束)循环体的条件。
当型和直到型
重复同一个处理过程
(共34张PPT)
1.2.1输入、输出语句和赋值语句
赋值语句
格式说明:“:=”是赋值号。它与比较符“=”是两 个不同的符号。A:=5表明将整数5赋给变量A,完成一个动作。而A=5表明变量A与5相比较判断等与不等,结果是一个布尔值。
赋值语句执行过程:计算赋值号右边的表达式,求出其结果,并将结果赋给赋值号左边的变量名。
注意:赋值语句在使用时,要注意赋值号两边的数据类型必须赋值兼容,即类型相一致或相容。
练习1
说出每执行一次赋值语句后变量a、b的内容变化。
Program examp1_1
Var
a,b: integer;
Begin
a := 3; b :=5;
a := a+b;
b := b*a;
a := b div 2;
End.
练习2
编写程序,交换两个变量的值。
Program ex_2;
var
a,b,t: integer;
Being
read(a,b);
t:=a;
a:=b;
b:=t;
write(‘a=‘,a,’b=‘,b);
End.
输出语句
格式说明:write和writeln是标准过程名,它们是标准标识符。输出项可以是表达式,表达式可以是常量、变量、函数名、表达式。多个输出项用逗号隔开。
输入以下程序,说出write和writeln的区别。
Program ex_3;
Var a,b,c:integer;
Begin
a:=30; b:=5; c:=20;
write(a);
write(b);
write(c);
End.

Program ex_3;
Var a,b,c:integer;
Begin
a:=30; b:=5; c:=20;
writeln(a);
writeln(b);
writeln(c);
End.
自定义输出格式
单场宽
设e为输出项,单场宽的书写形式为e:n1。n1是正整数,用来表示输出的列数。
输入以下程序,改变场宽,观察变化
Program ex_4;
Var
a:integer;
ch:char;
flag:boolean;
Begin
a:=1234;
ch:=‘a’
flag:=true;
writeln(a,ch,flag);
writeln(a:8,ch:8,flag:8);
End.
如果场宽小于标准场宽,将会如何?
实数的输出
输入下面的程序,观察输出结果。
Program ex_5; var a:real; begin a:=13.56; writeln(a); end.
双场宽
双场宽是用来控制实型数的输出格式的。双场宽输出格式为e:n1:n2。其中n1、n2是两个正整数,并且n1大于n2。n1表示输出的总列数,包括符号位、整数部分、小数点、小数部分;n2表示小数部分占的列数。
通过双场宽可以将实数不按科学记数法的形式输出。
修改场宽,观察输出结果
Program ex_5; var a:real; begin a:=13.56; writeln(a:10:2); end.
如果a:=12345678,如何输出?
输入语句
格式说明:read和readln是标准过程。多个变量之间用逗号分隔,必须是变量名,不可以是常量和表达式。如read(2,a*b)。变量不可以是布尔型。
Read后必须有参数,readln后可以没有参数,只是等待输入一个回车。
当执行输入语句时,机器等待用户从键盘输入数据,输入的数据先进入键盘缓冲区,从键盘缓冲区中再依次输入给程序中相应的变量。如果输入语句有ln则给程序中变量输入完数据后,清空键盘缓冲区。没有ln则输入完后不清空。
如果输入数据类型不匹配,语句报错停止执行。报错信息为ERROR 106。
数据输入
输入数据必须为常量,不可以是变量或表达式。
输入以下程序,运行时输入数据,分清read、readln的区别。
Program ex_5; var a,b,c:integer; begin readln(a,b); read(c); write(‘a=‘,a,’b=‘,b,’c=‘,c); end.
输入的相容问题
Program ex_5; var a,b:integer; c:char; begin readln(a,b); read(c); write(‘a=‘,a,’b=‘,b,’c=‘,c); end.
输入以下数据,看发生什么情况:
1.2*10 30
2.2 10
2
3 a 20
§1.2.2条件语句
算法初步
复习巩固
1、输入语句、输出语句和赋值语句对应于算法中的哪种结构?这三种语句的一般格式是什么?
2、什么是条件结构?用程序框图表示这种结构
顺序结构
输入语句
输出语句
赋值语句
INPUT “提示文字”;变量
PRINT “提示内容”;变量
变量=表达式
新课讲解
阅读P16,思考以下问题
1、条件结构用怎样的程序语句来描述?这种语句的一般格式是怎样的?
2、把下列语句的意义翻译成程序框图
(1)IF x>0 THEN
y=1
ELSE
y=0
END IF
(2)IF x<0 THEN
x=ABS(x) END IF PRINT“x的绝对值为:”;x
IF 条件 THEN
语句1
ELSE
语句2
END IF
IF 条件 THEN
语句
END IF

例5 编写程序,输入一元二次方程
算法描述:
S1:输入a,b,c
S2:计算判别式△
S3:如果△<0有两不同实根, △=0有两个相同实根, △<0否则没实数根。根据情况输出结果。
开 始
输入a,b,c
Δ=b2-4ac
p= -b/2a
q=SQR(ABS (Δ))/(2a)
x1=p+q
x2=p-q
Δ≥0?
x1=x2?
原方程有两个不等
的实数根x1,x2
原方程有两个相等
的实数根x1,x2
原方程无实数根
结 束




的系数,输出它的实数根。
QBASIC程序:
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 “只有一个实根:”;x1=x1
ELSE
PRINT “有两个实根:”;“x1=”;x1,”x2=”;x2
END IF
ELSE
PRINT “没有实根”
END IF
END
例6 编写程序,使得任意输入3个整数按大到小的顺序输出。
算法分析:
算法思想:3个数两两比较,确定大小。按a、b、c输入,要按a、b、c输出,关键要找到最大值,将它赋值给a,中值赋给b,最小值赋给c。
第一步 输入3个整数a、b、c
第二步 将a与b比较,并把小者赋给b,大的赋给a;
第三步 将a与c比较,并把小者赋给c,大的赋给a
第四步 将b与c比较,并把小者赋给c,大的赋给b
第五步 按顺序输出a,b,c
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
相应的QBASIC程序:
开始
t=a,a=b,b=t
t=a,a=c,c=t
t=b,b=c,c=t
输入a,b,c
输入a,b,c
b>a?
c>a?
c>b?
结束






对应的流程图
练习巩固
开始
输入a,b,c
a+b>c,a+c > b,
b+c > a是否同时成立?
存在这样的
三角形
不存在这样
的三角形
结束


(1)
该程序框图所表示的算法是作用是什么?并根据程序框图写出相应的程序。
2、某快递公司规定甲、乙两地之间物品的托运费用根据下面的方法计算:物品重量在50千克以内,托运费为每千克 0.53 元,超过的话,超过部分每千克0.85元,试画出计算费用f的程序框图,并写出相应的QBASIC程序。
程序框图:
对应的QBASIC程序

INPUT “输入重量G=”;G
IF G<=50 THEN
M=0.53*G
ELSE
M=50*0.53+0.85*(G-50)
END IF
PRINT “运费为:”;M
END
小结
1、条件结构的程序表示
2、注意书写的规范性
IF 条件 THEN
语句1
ELSE
语句2
END IF
IF 条件 THEN
语句
END IF
作业布置
课本P20
练习第3、4题
课外活动
试查找数学课本一些分段函数的事例,看看能否能用条件语句写出解决问题的程序
§1.2.3 循环语句
算法初步
温故而知新
1、顺序结构常用的程序语言和格式
2、条件结构常用的程序语言和格式
输入语句 INPUT “提示文字”;变量列表
输出语句 PRINT “提示文字”;变量列表
赋值语句 变量=表达式
(1)
IF 条件成立 THEN
语句1
ELSE
语句2
END IF
(2)
IF 条件成立 THEN
语句
END IF
3、循环结构的程序框图
思考:如何用程序语句表示呢?
WHILE 条件
循环体
WEND
DO
循环体
LOOP UNTIL 条件
例1 根据下面的程序框图写出相应的QBASIC程序
i = 0
sum = 0
WHILE i<100
i = i + 1
sum = sum + i
WEND
PRINT sum
END
例2 根据下面的程序框图写出相应的QBASIC程序
i = 0
sum = 0
DO
i = i + 1
sum = sum + i
LOOP UNTIL i>=100
PRINT sum
END
例3 根据下面的程序语句画出对应的程序框图,并分析程序的结果。
s=0
i=2
WHILE i<=18
s=s+i
i=i+3
WEND
PRINT “s=”;s
END
(1)
(2)
i=1
sum=0
m=1
DO
m=m*i
sum=sum+m
i=i+1
LOOP UNTIL i>10
PRINT sum
END
练习巩固
1、设计一个算法框图:逐个输出12,22,32,……,n2,并写出相应的QBASIC程序。
INPUT n
i = 0
WHILE i < n
i = i + 1
t = i ^ 2
PRINT t
WEND
END
INPUT n
i = 0
DO
i = i + 1
t = i ^ 2
PRINT t
LOOP UNTIL i > = n
END
2、设计一个算法框图:求满足1+2 + 3 + … + n>10000的最小正整数n,并写出相应的QBASIC程序。
i = 0
sum = 0
DO
i = i + 1
sum = sum + i
LOOP UNTIL sum>10000
PRINT i
END
课堂小结
1、循环结构的程序表示
2、循环语句的一般格式
3、程序框图和程序语言的相互转换
循环语句
WHILE 条件成立
循环体
WEND
DO
循环体
LOOP UNTIL 条件成立
课后作业
课本P23

练习第3题

习题1.2A组第4题
(共21张PPT)
教师寄语:
 人们把我的成功,归因于我的
天才;其实我的天才只是刻苦罢了。
---- 爱因斯坦
学习目标:
1. 了解进位制的概念,学会表示进位制数
2. 理解并掌握各种进位制与十进制之间转换的规律, 会利用各种进位制与十进制之间的联系进行各种进位制之间的转换.

重点:各进位制表示数的方法及各进位制之间的转换.
难点:“除k取余法”的理解.
创设情境,引入课题
我们常见的数字都是十进制的,但是并不是生活中的每一种数字都是十进制的.你能举出一些实例吗?
什么是进位制呢?不同的进位制之间又有什么联系呢?
新课内容
1、什么是进位制?
进位制是人们为了计数和运算的方便而约定的一种记数系统
约定“满 k 进一”,就是 k 进制.如满2进一,就是2进制
进位制的概念
思考1:我们了解十进制吗?十进制数用哪些数字进行记数?
十进制可使用的数字有0 , 1 , 2 , … , 8 , 9等十个数字,基数是10;
思考2:二进制用的是哪些数字?十六进制呢?

二进制可使用的数字有0和1,基数是2;
十六进制可使用的数字或符号有0 ~ 9等10个数字以及A ~ F等6个字母(规定字母A ~ F对应10~15),十六进制的基数是16.
2、 k进位制的表示
2、 k进位制的表示
思考3. 若k是一个大于1的整数,那么以k为基数的进制数可以表示为一串数字连写在一起的形式:

  

  
其中 , 对于 有什么要求呢?
(0 思考4:
十进制数3721如何表示成10的幂的乘积之和的形式?
其它进位制的数又是如何的呢?
1×24+1×23+0×22+1×21+1×20
3×53+4×52+2×51+1×50
3721=
3X103+7X102+2X101+1X100
11011(2)=
3421(5)=
思考5:k 进位制的数可以写成什么样的形式呢?
anan-1…a1a0(k)=
an×kn+an-1×kn-1+…+a1×k1+a0×k0 .
题型一:k 进制数 十进制数
例1:把二进制数1011001(2)化为十进制数.
题型二:十进制数 K进制数
89=an×2n+an-1×2n-1+…+a1×21+a0×20
89=64+16+8+1
=1×26+0×25+1×24+1×23+0×22+0×21+1×20
=1011001(2).
例2:把89化为二进制的数.
44 1
例2:把 89 化为二进制的数.
22 0
11 0
5 1
2 1
1 0
0 1
把算式中各步所得的余数从下到上排列,得到
89=1011001(2)
这种方法也可以推广为把十进制数化为k进制数的算法,称为除k取余法.
注意:
1.最后一步商为0
2.将上式各步所得的余数从下到上排列
(3) 1234=_______(3)

  (4) 1750= ______(8)
    
练习:(1)把八进制数7342(8)化为十进制数

(2)十六进制数1AE(16) 化为十进制数
3810
430
1200201
3326
例3 把三进制数10211(3)化为二进制数.
题型三:k进制数 k进制数
[总结] 十进制是 k 进制数与 k 进制数之间相互转换的桥梁
练习3 (1) 1010111(2)=______(4)

(2) 10121(3)=_______(8)
141
1113
目标检测
1、以下给出的各数中不可能是八进制数的是( ) A.312 B.10110 C.82 D.7457
2、下列各数中最小的数是( )
A. B.
C. D.
3、将389化成四进位制数的末位是 ( )
A. 1 B. 2 C. 3 D. 0
C
A
A
目标检测
4、将二进制数101101(2)化为十进制结果为_______;再将该数化为八进制数,结果为__________.


5、若六进数13m502(6)化为十进数为12710,则m=____,把12710化为八进数为____________.

45
55(8)
4
30646(8)
目标检测
6、已知 = , 求 r.
r = 8
课堂小结:
1、进位制的概念及进制数的表示.
2、k 进制数转化为十进制数.
3、十进制数转化为k 进制.
4、k 进制数之间的转化.
半斤=八两吗??
半斤八两:
小故事
中国古代一斤是十六两,半斤就是
八两,用来比喻两个事物或两方面
平分秋色,分不出高低