基本算法语句
教学目标:
通过伪代码学习基本的算法语句,更好地了解算法思想. 教学重点:
如何进行算法分析. 教学难点:
如何进行算法分析. 教学过程: Ⅰ. 课题导入
算法基本语句包括赋值语句、输入输出语句、条件语句、循环语句. 伪代码
问题:已知某学生一次考试中语文、数学和英语学科的得分分别为85,90,95,试设计适当的算法求出这名学生三科的总分和平均分.
解:sum ←0 C ←85 M ←90 E ←95
sum ←C +M +E
A ←sum /3 Print sum,A end
Ⅱ. 讲授新课
例1:设计一个解二元一次方程组的通同算法. 设二元一次方程组为
⎧a 1x +b 1y =c 1⎨ (a 1b 2-a 2b 1≠0) ⎩a 2x +b 2y =c 2
用消元法解得
b c -b c
⎧x a
b -a b
⎨a c -a c ⎩y a b -a b
21
12
122112
21
用伪代码表示为 用伪代码表示为 Read a 1,b 1,c 1,a 2,b 2,c 2 x ← y ←
b 2c 1-b 1c 2
a 1b 2-a 2b 1a 1c 2-a 2c 1
a 1b 2-a 2b 1
Print x ,y
例2:已知三角形的三边,试用流程图和伪代码表示求这个三角形的周长的算法. 解:流程图 伪代码
Read a ,b ,c M ← a +b +c Print M
例3:已知一匀变速运动的物体的初速度、末速度和加速度分别为V 1,V 2,a ,求物体运动的距离s . 试编写求解这个问题的一个算法的流程图,并用伪代码表示这个算法.
V -V 解:由题意可知,V 2=V 1+a t,故运动时间t =
a V 22-V 1212
所以,物体运动的距离s =V 1 t+ a t= .
22a
据此,可设计算法如下: 将此算法程序用伪代码表示为:
Read V 1,V 2,a V 22-V 12
s ←
2a
Print s End
例4:写出下列用伪代码描述的算法执行后的结果. (1)算法开始 a ←2; a ←4; a ←a +a ; 输出a 的值; 算法结束 执行结果:( ) 答案:8
(2)算法开始 n ←10; i ←2; sum ←0; while (i ≤n ) sum ←sum+i ; i ←i +2;
输出sum 的值; 算法结束 执行结果:( ) 答案:30 点评:本题主要考查学生对基本算法语句的灵活准确应用和自然语言与符号语言的转化,让学生理解用伪代码表示的算法. Ⅲ. 课堂练习
课本P 17 1,2,3. Ⅳ. 课时小结
Read 是输入语句的一种,输入数据还有其它方式;输入语句与赋值语句不同,赋值语句可以将一个代数表达式的赋于一个变量,而输入语句只能读入具体的数据. Ⅴ. 课后作业
课本P 24 1,2.
基本算法语句(二)
教学目标:
使学生能结合选择结构的流程图学习条件语句,能用条件语句编写程序. 教学重点:
如何在伪代码中运用条件语句. 教学难点:
如何在伪代码中运用条件语句. 教学过程: Ⅰ. 课题导入
某百货公司为了促销,采用购物打折的优惠办法:每位顾客一次购物 (1)在1000元以上者,按九五折优惠. (2)在2000元以上者,按九折优惠. (3)在3000元以上者,按八五折优惠. (4)在5000元以上者,按八折优惠. 编写程序求优惠价.
解析:设购物款数为x 元,优惠价为y 元,则优惠付款公式为
⎧x (x
⎪0. 95x (1000≤x
y =⎨0. 9x (2000≤x
用条件语句表示为: Read x
If x
If x
If x
If x
点评:在准确理解算法的基础上,学会条件语句的使用. Ⅱ. 讲授新课
例1:写出下面流程图所表述的算法的功能并用伪代码表示.
答案:解:输出两个不同的数中小的一个数. 用伪代码表示为 Begin Read a ,b If a >b then Print b Else Print a End if End
例2:某市电力公司为了鼓励居民用电,采用分段计费的方法计算电费:每月用电不超过100度时,按每度0.57元计算;每月用电超过100度时,其中的100度仍按原标准收费,超过部分每度按0.50元计算. 问:如何设计一个计算应交电费的算法?
答案:解:设月用电x 度时,应交电费y 元,当x ≤100和x >100时,写出y 关于x 的函数关系式为
0
y =⎨
57+0. 5(x -100) x >100. ⎩
所以,计算应交电费的算法可以用伪代码表示为 Begin Read x
If x ≤100 then y ←0.57x Else
y ←57+0.5(x -100) End if Print y End
例3:试用条件语句描述计算应纳税所得额的算法过程,其算法如下: S1 输入工资x (x ≤5000); S2 如果x ≤800,那么y =0;
如果800<x ≤1300,那么y =0.05(x -800); 如果1300<x ≤2800,
那么y =25+0.1(x -1300), 否则y =175+0.15(x -2800); S3 输出税收y ,结束.
答案:解:这个算法用条件语句描述为 Begin Read x
If x ≤800 then y ←0
Else if 800
Else if 1300
y ←175+0.15(x -2800) End if Print y End
例4:在水果产地批发水果,100 kg为批发起点,每100 kg 40元;100 kg至1000 kg 8折优惠;1000 kg至5000 kg,超过1000 kg部分7折优惠;5000 kg至10000 kg,超过5000 kg的部分6折优惠;超过10000 kg,超过部分5折优惠. 请写出销售金额y 与销售量x 之间的函数关系,并用伪代码表示计算销售金额的算法.
⎧0. 32x 100
答案:y =⎨
0. 24x +240 500010000.
这个算法用条件语句描述为
Begin Read x
If 100
Else if 1000
Else if 5000
y ←0.2x +640 End if Print y End Ⅲ. 课堂练习
课本P 20 1,2,3. Ⅳ. 课时小结
算法中的选择结构可以用条件语句实现. if 选择结构: if/else选择结构:
Ⅴ. 课后作业
课本P 24 3,4.
基本算法语句(三)
教学目标:
使学生能结合选择结构的流程图学习条件语句,能用条件语句编写程序. 教学重点:
如何在伪代码中运用条件语句. 教学难点:
如何在伪代码中运用条件语句. 教学过程: Ⅰ. 课题导入
写出计算1+2+3+4+„+100之和的伪代码. 答案:解:此问题可以用循环语句表示为 S ←1
For I from 2 to 100 S ←S +I End For Print S Ⅱ. 讲授新课
例1:依次将十个数输入,要求将其中最大的数打印出来. 试用流程图和伪代码表示问题的算法. 用伪代码设计算法如下: Begin Read X max ←X
For I from 2 to 10 Read X
If X >max then max ←X End if End for Print max End
流程图:
例2:已知S =5+10+15+„+1500,请用流程图描述求S 的算法并用伪代码表示. 解析:流程图如下图所示:
从流程图可以看出这是一个循环结构,我们可以运用循环语句来实现. Begin S ←5
For I from 10 to 1500 step 5 S ←S +I End For Print S End
点评:在准确理解算法的基础上,学会循环语句的使用. 循环语句包括for 循环、While 循环和Until 循环. 解题时要根据需要灵活运用.
循环语句包括if „then ,if „then „else ,并且if „then „else 可以嵌套,解题时要根据需要灵活运用. 例3:伪代码算法填空.
有一列数:1,1,2,3,5,8,13,21,„. 这列数有个特点,前两个数都是1,从第3个数开始,每个数都是前两个数的和,例如:3是1和2的和;13是5和8的和等等,这样的一列数一般称为斐波那契数.
下列伪代码所描述的算法功能是输出前10个斐波那契数,请把这个算法填写完整. a ←1; b ←1;
输出a ,b ; n ←2;
while n
答案:①a ←b ②b ←c 例4:求1-
11111
+-+„+-的值. 234910
算法分析:第一步是选择一个变量S 表示和,并赋给初值0,再选一个变量H ,并赋给初值0;
第二步开始进入for 循环语句,首先设i 为循环变量,并设初值、步长、终值; 第三步为循环表达式(循环体);
第四步用“end for”控制一次循环,开始一次新的循环. 伪代码如下: S ←0 H ←0
For i from 1 to 10 H ←(-1)i +1/i S ←S +H End for Print S
例5:小明第一天背一个单词,第二天背两个单词,以后每一天比前一天多背一个单词,问他前十天共背了多少个单词? 解:第一步是选择一个变量S 表示和,并赋给初值0,
第二步开始进入for 循环语句,首先设i 为循环变量,并设初值、步长、终值; 第三步为循环表达式(循环体);
第四步用“end for”控制一次循环,开始一次新的循环. 伪代码如下: S ←0
For i from 1 to 10 S ←S +i End for Print S
例6:求平方值小于2000的最大整数. 解:伪代码: j ←1
While j 2
例7:用伪代码描述求解S =1×2×3ׄ×(n -1)×n 的算法. 解:此问题可以用循环语句表示为 Begin Read n S ←1
For I from 1 to n S ←S ×I End for Print S End
例8:输入一个正整数n ,并计算S =11×22×33ׄ×n n 的值. 解:第一步是选择一个变量n ,并要求输入初值; 第二步是选择一个变量S 表示和,并赋给初值0;
第三步开始进入for 循环语句,首先设i 为循环变量,并设初值、步长、终值; 第四步为循环表达式(循环体);
第五步用“end ”控制一次循环,开始一次新的循环. 伪代码如下: Read n S ←0
For i from 1 to n S ←S ×i i
End for Print S End
例9:某城市现有人口总数为100万人,如果年自然增长率为1.2%,试解答下面的问题: (1)写出该城市人口数y (万人)与年份x (年)的函数关系式; (2)用伪代码写出计算10年以后该城市人口总数的算法;
(3)用伪代码写出计算大约多少年以后该城市人口将达到120万人. 答案:(1)y =100×(1+0.012)x .
(2)10年后该城市人口总数为y =100×(1+0.012)10. 算法如下: Begin y ←100 t ←1.012
For I from 1 to 10 y ←y ×t End for Print y End
(3)设x 年后该城市人口将达到120万人,即100×(1+0.012)x =120. 算法如下: Begin S ←100 I ←1.012 T ←0
While S
课本P 23 1,2,3,4. Ⅳ. 课时小结
算法中的循环结构可以用循环语句实现. 正确理解两种循环语句:for 循环、当型循环和直到型循环. 当型循环:while (条件表达式)循环体语句;
直到型循环:do 循环体语句while (条件表达式);
for 循环:for (表达式1;表达式2;表达式3)循环体语句;
Ⅴ. 课后作业
课本P 24 5,6.
基本算法语句
教学目标:
通过伪代码学习基本的算法语句,更好地了解算法思想. 教学重点:
如何进行算法分析. 教学难点:
如何进行算法分析. 教学过程: Ⅰ. 课题导入
算法基本语句包括赋值语句、输入输出语句、条件语句、循环语句. 伪代码
问题:已知某学生一次考试中语文、数学和英语学科的得分分别为85,90,95,试设计适当的算法求出这名学生三科的总分和平均分.
解:sum ←0 C ←85 M ←90 E ←95
sum ←C +M +E
A ←sum /3 Print sum,A end
Ⅱ. 讲授新课
例1:设计一个解二元一次方程组的通同算法. 设二元一次方程组为
⎧a 1x +b 1y =c 1⎨ (a 1b 2-a 2b 1≠0) ⎩a 2x +b 2y =c 2
用消元法解得
b c -b c
⎧x a
b -a b
⎨a c -a c ⎩y a b -a b
21
12
122112
21
用伪代码表示为 用伪代码表示为 Read a 1,b 1,c 1,a 2,b 2,c 2 x ← y ←
b 2c 1-b 1c 2
a 1b 2-a 2b 1a 1c 2-a 2c 1
a 1b 2-a 2b 1
Print x ,y
例2:已知三角形的三边,试用流程图和伪代码表示求这个三角形的周长的算法. 解:流程图 伪代码
Read a ,b ,c M ← a +b +c Print M
例3:已知一匀变速运动的物体的初速度、末速度和加速度分别为V 1,V 2,a ,求物体运动的距离s . 试编写求解这个问题的一个算法的流程图,并用伪代码表示这个算法.
V -V 解:由题意可知,V 2=V 1+a t,故运动时间t =
a V 22-V 1212
所以,物体运动的距离s =V 1 t+ a t= .
22a
据此,可设计算法如下: 将此算法程序用伪代码表示为:
Read V 1,V 2,a V 22-V 12
s ←
2a
Print s End
例4:写出下列用伪代码描述的算法执行后的结果. (1)算法开始 a ←2; a ←4; a ←a +a ; 输出a 的值; 算法结束 执行结果:( ) 答案:8
(2)算法开始 n ←10; i ←2; sum ←0; while (i ≤n ) sum ←sum+i ; i ←i +2;
输出sum 的值; 算法结束 执行结果:( ) 答案:30 点评:本题主要考查学生对基本算法语句的灵活准确应用和自然语言与符号语言的转化,让学生理解用伪代码表示的算法. Ⅲ. 课堂练习
课本P 17 1,2,3. Ⅳ. 课时小结
Read 是输入语句的一种,输入数据还有其它方式;输入语句与赋值语句不同,赋值语句可以将一个代数表达式的赋于一个变量,而输入语句只能读入具体的数据. Ⅴ. 课后作业
课本P 24 1,2.
基本算法语句(二)
教学目标:
使学生能结合选择结构的流程图学习条件语句,能用条件语句编写程序. 教学重点:
如何在伪代码中运用条件语句. 教学难点:
如何在伪代码中运用条件语句. 教学过程: Ⅰ. 课题导入
某百货公司为了促销,采用购物打折的优惠办法:每位顾客一次购物 (1)在1000元以上者,按九五折优惠. (2)在2000元以上者,按九折优惠. (3)在3000元以上者,按八五折优惠. (4)在5000元以上者,按八折优惠. 编写程序求优惠价.
解析:设购物款数为x 元,优惠价为y 元,则优惠付款公式为
⎧x (x
⎪0. 95x (1000≤x
y =⎨0. 9x (2000≤x
用条件语句表示为: Read x
If x
If x
If x
If x
点评:在准确理解算法的基础上,学会条件语句的使用. Ⅱ. 讲授新课
例1:写出下面流程图所表述的算法的功能并用伪代码表示.
答案:解:输出两个不同的数中小的一个数. 用伪代码表示为 Begin Read a ,b If a >b then Print b Else Print a End if End
例2:某市电力公司为了鼓励居民用电,采用分段计费的方法计算电费:每月用电不超过100度时,按每度0.57元计算;每月用电超过100度时,其中的100度仍按原标准收费,超过部分每度按0.50元计算. 问:如何设计一个计算应交电费的算法?
答案:解:设月用电x 度时,应交电费y 元,当x ≤100和x >100时,写出y 关于x 的函数关系式为
0
y =⎨
57+0. 5(x -100) x >100. ⎩
所以,计算应交电费的算法可以用伪代码表示为 Begin Read x
If x ≤100 then y ←0.57x Else
y ←57+0.5(x -100) End if Print y End
例3:试用条件语句描述计算应纳税所得额的算法过程,其算法如下: S1 输入工资x (x ≤5000); S2 如果x ≤800,那么y =0;
如果800<x ≤1300,那么y =0.05(x -800); 如果1300<x ≤2800,
那么y =25+0.1(x -1300), 否则y =175+0.15(x -2800); S3 输出税收y ,结束.
答案:解:这个算法用条件语句描述为 Begin Read x
If x ≤800 then y ←0
Else if 800
Else if 1300
y ←175+0.15(x -2800) End if Print y End
例4:在水果产地批发水果,100 kg为批发起点,每100 kg 40元;100 kg至1000 kg 8折优惠;1000 kg至5000 kg,超过1000 kg部分7折优惠;5000 kg至10000 kg,超过5000 kg的部分6折优惠;超过10000 kg,超过部分5折优惠. 请写出销售金额y 与销售量x 之间的函数关系,并用伪代码表示计算销售金额的算法.
⎧0. 32x 100
答案:y =⎨
0. 24x +240 500010000.
这个算法用条件语句描述为
Begin Read x
If 100
Else if 1000
Else if 5000
y ←0.2x +640 End if Print y End Ⅲ. 课堂练习
课本P 20 1,2,3. Ⅳ. 课时小结
算法中的选择结构可以用条件语句实现. if 选择结构: if/else选择结构:
Ⅴ. 课后作业
课本P 24 3,4.
基本算法语句(三)
教学目标:
使学生能结合选择结构的流程图学习条件语句,能用条件语句编写程序. 教学重点:
如何在伪代码中运用条件语句. 教学难点:
如何在伪代码中运用条件语句. 教学过程: Ⅰ. 课题导入
写出计算1+2+3+4+„+100之和的伪代码. 答案:解:此问题可以用循环语句表示为 S ←1
For I from 2 to 100 S ←S +I End For Print S Ⅱ. 讲授新课
例1:依次将十个数输入,要求将其中最大的数打印出来. 试用流程图和伪代码表示问题的算法. 用伪代码设计算法如下: Begin Read X max ←X
For I from 2 to 10 Read X
If X >max then max ←X End if End for Print max End
流程图:
例2:已知S =5+10+15+„+1500,请用流程图描述求S 的算法并用伪代码表示. 解析:流程图如下图所示:
从流程图可以看出这是一个循环结构,我们可以运用循环语句来实现. Begin S ←5
For I from 10 to 1500 step 5 S ←S +I End For Print S End
点评:在准确理解算法的基础上,学会循环语句的使用. 循环语句包括for 循环、While 循环和Until 循环. 解题时要根据需要灵活运用.
循环语句包括if „then ,if „then „else ,并且if „then „else 可以嵌套,解题时要根据需要灵活运用. 例3:伪代码算法填空.
有一列数:1,1,2,3,5,8,13,21,„. 这列数有个特点,前两个数都是1,从第3个数开始,每个数都是前两个数的和,例如:3是1和2的和;13是5和8的和等等,这样的一列数一般称为斐波那契数.
下列伪代码所描述的算法功能是输出前10个斐波那契数,请把这个算法填写完整. a ←1; b ←1;
输出a ,b ; n ←2;
while n
答案:①a ←b ②b ←c 例4:求1-
11111
+-+„+-的值. 234910
算法分析:第一步是选择一个变量S 表示和,并赋给初值0,再选一个变量H ,并赋给初值0;
第二步开始进入for 循环语句,首先设i 为循环变量,并设初值、步长、终值; 第三步为循环表达式(循环体);
第四步用“end for”控制一次循环,开始一次新的循环. 伪代码如下: S ←0 H ←0
For i from 1 to 10 H ←(-1)i +1/i S ←S +H End for Print S
例5:小明第一天背一个单词,第二天背两个单词,以后每一天比前一天多背一个单词,问他前十天共背了多少个单词? 解:第一步是选择一个变量S 表示和,并赋给初值0,
第二步开始进入for 循环语句,首先设i 为循环变量,并设初值、步长、终值; 第三步为循环表达式(循环体);
第四步用“end for”控制一次循环,开始一次新的循环. 伪代码如下: S ←0
For i from 1 to 10 S ←S +i End for Print S
例6:求平方值小于2000的最大整数. 解:伪代码: j ←1
While j 2
例7:用伪代码描述求解S =1×2×3ׄ×(n -1)×n 的算法. 解:此问题可以用循环语句表示为 Begin Read n S ←1
For I from 1 to n S ←S ×I End for Print S End
例8:输入一个正整数n ,并计算S =11×22×33ׄ×n n 的值. 解:第一步是选择一个变量n ,并要求输入初值; 第二步是选择一个变量S 表示和,并赋给初值0;
第三步开始进入for 循环语句,首先设i 为循环变量,并设初值、步长、终值; 第四步为循环表达式(循环体);
第五步用“end ”控制一次循环,开始一次新的循环. 伪代码如下: Read n S ←0
For i from 1 to n S ←S ×i i
End for Print S End
例9:某城市现有人口总数为100万人,如果年自然增长率为1.2%,试解答下面的问题: (1)写出该城市人口数y (万人)与年份x (年)的函数关系式; (2)用伪代码写出计算10年以后该城市人口总数的算法;
(3)用伪代码写出计算大约多少年以后该城市人口将达到120万人. 答案:(1)y =100×(1+0.012)x .
(2)10年后该城市人口总数为y =100×(1+0.012)10. 算法如下: Begin y ←100 t ←1.012
For I from 1 to 10 y ←y ×t End for Print y End
(3)设x 年后该城市人口将达到120万人,即100×(1+0.012)x =120. 算法如下: Begin S ←100 I ←1.012 T ←0
While S
课本P 23 1,2,3,4. Ⅳ. 课时小结
算法中的循环结构可以用循环语句实现. 正确理解两种循环语句:for 循环、当型循环和直到型循环. 当型循环:while (条件表达式)循环体语句;
直到型循环:do 循环体语句while (条件表达式);
for 循环:for (表达式1;表达式2;表达式3)循环体语句;
Ⅴ. 课后作业
课本P 24 5,6.