用解析法和穷举法设计程序

4.1—4.2 用解析法、穷举法设计程序

【学习目标:】1、理解解析法和穷举法

2、分清两者之间的区别

在经过大量编程实践之后,人们总结出很多行之有效的算法来解决实际问题。常用的方法有:解析法、穷举法、查找法、排序法、递归法等。

4.1 解析法

所谓解析法是指:通过分析问题中各要素之间的关系,用最简练的语言或形式化的符号来表达它们的关系,得出解决问题所需的表达式,然后设计程序求解问题的方法。

例1:求三角形面积

已知a、b、c分别为三角形的三条边长,利用海伦公式求该三角形面积

p=(a+b+c)/2

编程实现:输入边长a,b,c,如果能构成三角形,输出面积,否则输出“No Answer!”界面如下:

Dim a As Single , b As Single , c As Single

a=val(text1.text)

b=val(text2.text)

c=val(text3.text)

If then

p=(a+b+c)/2

s=sqr(p*(p-a)*(p-b)*(p-c))

text4.text=format(s,”0.00”) ‘结果保留两位小数

Else

text4.text=”no answer”

End If

根据上述回答下列问题(8分,每空4分)

(1)、利用海伦公式求三角形面积的算法是_____(解析法/查找法/枚举法/排序法)。(2)、填写出参考程序中空白处的表达式________(填写字母:A/B/C/D)

A、a + b > c or a + c > b and b + c > a

B、a + b > c or a + c > b or b + c > a

C、a + b > c and a + c > b or b + c > a

D、a + b > c and a + c > b and b + c > a

(1)解析法(2)D

用解析法求解问题,许多时候并非只是计算一个解析式就可以完事,还要根据问题给出的已经条件,运用归纳、演绎等逻辑方法,揭示问题各要素之间的关系,寻找表示这种关系的表达式,有时需要计算的解析式是一组而不仅仅是一条。

例子2、GDP增长问题

某省2016年的GDP是6.7万亿元,如果每年按7%的比例增长,问多少年以后此省的GDP超过15万亿?

【算法分析】

假设n年后此省的GDP超过15万亿元,根据题意得出数学关系式?求最小的n。【参考程序】

Dim p As Single ‘ p用于记录GDP的值

Dim r As Single ‘ r用于记录GDP的年增长比例

Dim n As Integer ‘用于统计年数

p=6.7

r=0.07

n=0

Do while ____________

p=p*(1+r)

n=n+1

Loop

Print n_”年后,GDP的值超过15万亿元。”

根据上述回答下列问题:(共6分,每空3分)

(1)本题采用的算法是__________(填写:解析法/枚举法/排序法/递归法)。

(2)写出程序中空白处表达式____________________________

(1)解析法(2)p<=15

4.2 穷举法

穷举法也称为枚举法,这种算法是把问题设计的可能情况一一罗列出来,并且根据题目的条件和实际背景逐个做出判断,从中挑选出符合条件的解答。

例子1、勾股数

勾股数是指满足条件a2+b2=c2的自然数,求出100以内满足a

【算法分析】

a的取值范围[1,100];

b的取值范围[1,100];

c的取值范围[1,100].

【参考程序】

Dim a As Integer,b As Integer,c As Integer

For a=1 To 100

For b=1 To 100

For c=1 To 100

If _________________Then

Print a;b;c ‘abc之间以分号分隔

End If

Next c

Next b

Next

(1)本题采用的算法是___________(填写:解析法/枚举法/排序法/递归法)。

(2)程序代码中空白处应填写的条件是_____________(填写字母:A/B/C/D)A、a

C、a

D、a

(1)枚举法(2)C

使用穷举法时,要恰当地设计变量,并且决定用哪些变量作为搜索的主线,以便穷举出所有可能的情况。穷举一般使用循环结构,要注意循环的起点和终点,对可能的情况不能遗漏,一般也不应重复。编制程序时,还应当根据题目要求准确地写出是否符合条件的判断语句。

例子2、换钱问题

要将一张100元的钞票,换成等值的5元、2元、1元一张的钞票共50张。其中一种换发如下:

5元:3张2元:38张1元:9张求出所有的换钱方案。

【算法设计】

x表示5元的张数:1≤x≤20;

y表示2元的张数:1≤y≤50;

z表示1元的张数:1≤z≤100.

【参考程序】

Dim x As Integer,y As Integer,z As Integer

For x=1 To 20

For y=1 To 50

For z=1 To 100

If _____________________Then

Print x;y;z ‘x y z 之间以分号分隔

End if

Next z

Next y

Next x

根据上述回答下列问题:(8分,每空4分)

(1)本题采用的算法是_________________(填:解析法/枚举法/排序法/递归法)。(2)程序代码中空白处应填写的条件是______(填写字母:A/B/C/D)。

A、5x + 2y + z=100 Or x + y + z = 50

B、5x + 2y + z=100 And x + y + z = 50

C、5*x + 2*y + z=100 Or x + y + z = 50

D、5*x + 2*y + z=100 And x + y + z = 50

(1)枚举法(2)D

解析法和枚举法最大的区别是:枚举法会舍弃一些不符合题意的数据。比如枚举法计算能被3整除的数,从1开始一直枚举,1和2都不符合题意,都舍去,保留符合题意的

3 。如果步骤中的任何数据都不能舍去,前一步计算的结果后一步要用的话,就是解析法

【随堂练习】

1、水仙花数是三位整数:其各位数字立方和等于该数本身,如153=1^3+5^3+3^3,如果要求出所有的水仙花数,下列算法最合适的是()

A、解析法

B、排序法

C、查找法

D、枚举法

2、某市出租车收费标准如下:

(1)3公里内(含3公里),收费8元;

(2)超过3公里但未超过6公里部分,按1.5元/公里收费;

(3)超过6公里部分,按2.25元/公里收费。

根据以上标准,输入出租车行驶的公里数,请计算顾客需付费多少元?

【算法分析】

假设总费用为p,则可以分段计算

p=8 (s≦3)

P=1.5*(s-3)+8 (3

P=2.25*(s-6)+1.5*3+8 (s>6)

【参考代码】

Dim s As Single ’s记录出租车行驶的公里数

Dim p As Single ’p记录总费用

s=Val(InputBox(“s=”)) ’读入出租车行驶的公里数

If s<=3 Then

p=8

End If

If ______________Then

p=1.5*(s-3)+8

End If

If s>6 Then

p=2.25*(s-6)+1.5*3+8

End If

Print p

根据上述回答下列问题:

(1)、本题采用的算法是__________(填写:解析法/查找法/枚举法/排序法)。(2)、程序代码中空白处应填写的条件是____________(填写字母:A/B/C/D).

A、3

B、3 ≦s≦6

C、s>3 And s<=6

D、s>3 Or s<=6

3、算法设计与程序实现

假设公鸡一只5钱,母鸡一只3钱,小鸡一钱3只。现用100钱来买100只鸡。问:公鸡、母鸡、小鸡各买多少只?(要求公鸡、母鸡、小鸡都是整数)

设计算法并编写程序输出所有的买鸡方案

Dim x As Integer, y As Integer, z As Integer

For x=0 To 20

For y=0 To 33

For z=0 To 99 Step 3

If____________________ Then

Print “公鸡:”x, “母鸡:” y,”小鸡:”z

Exit For

End If

Next z

Next y

Next x

End Sub

根据上述回答如下问题(共8分,每题4分)

(1)、本题采用的算法是_________(填写:解析法/枚举法/排序法/递归法)(2)、程序代码中空白处应填写的条件是___________(填:A/B/C/D)

A、x + y + z=100 AND 5x+3y+z/3=100

B、x + y + z=100 OR 5x+3y+z/3=100

C、x + y + z=100 AND 5*x+3*y+z/3=100

D、x + y + z=100 OR 5*x+3*y+z/3=100

4、人口增长问题

假设我国目前人口数为13亿,如果每年增长率为1.2%,填写程序,计算多少年后我国人口数超过20亿。

【算法分析】

设n年后,我国人口数超过20亿。根据题意得出数学关系式:13*(1+1.2%)^n>20 ,求最小的n。

【参考程序】

Dim p as single,r as single, n as integer

P=13

r=0.012

n=0

Do while__________

n=n+1

p=p*(1+r)

Loop

Print n:”年后”:”人口超过”:p

根据上述回答下列问题(8分,每空4分)

(1)、本题采用的算法是__________(填写:解析法/枚举法/递归法)

(2)、写出参考程序中空白处表达式___________________

5、分析解决问题:

有一张单据,编号为四位数,号码为:8□□0,中间两位被污浊看不出来。

已知该单据能够被23和37整除,请编程求出该单据号码

【算法设计】

设百位数字为x,十位数字为y,x和y的范围都是0到9

4位数8xy0=8*1000+x*100+y*10

列举□□里的两个数字所有可能情况;

00,01,02,03,04,05,06,07,08,09

10,11,12,13,14,15,16,17,18,19

………

90,91,92,93,94,95,96,97,98,99

逐一判断找出符合条件的数字

【参考代码】:

Dim x as long ,y as long, n as long

For x=0 to 9

For y=0 to 9

n=8*1000+x*100+y*10

If then

Print n

End If

Next y

Next x

根据上述回答下面问题

(1)、解决该问题采用的算法是:(填:解析法/枚举法/排序法/递归法) (2)、根据题意程序中的空白处应该填写:(填:A/B/C/D)

A、n mod 23=0 OR n mod 37=0

B、n\23=0 AND n\37=0

C、n\23=0 OR n\37=0

D、n mod 23=0 AND n mod 37=0

(3)、根据算法设计,参考程序中循环体中的语句“n=8*1000+x*100+y*10”一共重复执行了多少次。。

【参考答案】

1、D

2、(1)解析法(2)C

3、(1)枚举法“百鸡百钱”采用的一一举例试验的方法,故为枚举法。

(2)C 鸡的只数和钱数都是100,故用and连接。

4、(1)解析法(2)p<=20

5、(1)枚举法通过一一列举,试验所有的可能情况,故用的是枚举法。

(2)D 因为n能同时被23和37整除,所以用and连接两个条件。

(3)100 本题考查的是循环结构,利用两个for循环的嵌套,循环次数由x的变化次数*y的变化次数,即10*10=100.

解析法

解析法 一、教学目标: 1、知识与技能 (1).理解解析法的基本概念。 (2)学会选择恰当的算法并综合应用各种学科知识解决实际问题的方法 2、过程与方法 通过实例,掌握用解析法设计程序的基本思路; 3、情感、态度与价值观 (1).通过问题和算法分析过程,促进逻辑分析能力的提高。 (2).培养根据算法写出程序代码并上机调试程序的能力。 二、教学重点与难点: 重点:理解解析法解决问题的思想; 难点:列出求解问题的解析式或方程(组); 三、教学资源: 大屏幕电子白板、多媒体课件 四、教学过程: (学生探讨并分组讨论) 【探讨问题一】:使用一根长度为L厘米的铁丝,制作一个面积为S的矩形框,请计算出满足这种条件的矩形的长和宽。 (要求:列出求解问题的方程式并编程实现。) 【提问并小结问题一的探讨】 (让学生明确建立数学模型、写出求解式的重要性) 1.分析问题:本例问题可归结为求解一元二次方程的根。设矩形宽为x,则长为L/2-x,

则列出方程:x(L/2-x)=S 即:x2-1/2*L*x+S=0 (让学生通过分组讨论探究,明确设计算法如何从已知条件入手来逐步求解问题的方法)2.设计算法: (1)输入长度L; (2)输入矩形框面积S; (3)计算D=L*L/4-4*S (4)若D>=0,则计算方程的两个根并输出,否则输出“找不到”。 (引导学生编写程序代码并上机调试,理解如何根据算法编写程序) 3.编写程序: 4.调试程序: 【探讨交流解析法概念】 (让学生阅读P98,并结合该实例总结解析法的基本概念) 解析法:综合运用数学、物理、化学等各学科的知识来分析问题,寻求各要素之间的关系,抽取出数学模型,得到解决问题的解析式,然后设计程序求解问题的方法。 【探讨问题二】:小球弹跳问题(见P99):小球从10米高处落下,每次弹起的高度是下落高度的70%。当小球弹起的高度不足原高度的千分之一时,小球很快停止跳动。计算小球在整个弹跳过程中所经历的总的路程 (要求:分组讨论,用解析法求解问题,利用已学物理、数学知识综合分析,写出解析式和算法设计步骤,并编程、上机调试程序。) 【小结问题二的探讨】:选取小组中调试出的典型程序,由该小组选一名成员讲解其设计思路、过程。达到共同提高的目的。 【学生总结反思】: 【作业:】 计算从y1年m1月d1日起,到y2年m2月d2日之间的天数。

用解析法和穷举法设计程序

4.1—4.2 用解析法、穷举法设计程序 【学习目标:】1、理解解析法和穷举法 2、分清两者之间的区别 在经过大量编程实践之后,人们总结出很多行之有效的算法来解决实际问题。常用的方法有:解析法、穷举法、查找法、排序法、递归法等。 4.1 解析法 所谓解析法是指:通过分析问题中各要素之间的关系,用最简练的语言或形式化的符号来表达它们的关系,得出解决问题所需的表达式,然后设计程序求解问题的方法。 例1:求三角形面积 已知a、b、c分别为三角形的三条边长,利用海伦公式求该三角形面积 p=(a+b+c)/2 编程实现:输入边长a,b,c,如果能构成三角形,输出面积,否则输出“No Answer!”界面如下: Dim a As Single , b As Single , c As Single a=val(text1.text) b=val(text2.text) c=val(text3.text) If then p=(a+b+c)/2 s=sqr(p*(p-a)*(p-b)*(p-c)) text4.text=format(s,”0.00”) ‘结果保留两位小数 Else text4.text=”no answer” End If 根据上述回答下列问题(8分,每空4分) (1)、利用海伦公式求三角形面积的算法是_____(解析法/查找法/枚举法/排序法)。(2)、填写出参考程序中空白处的表达式________(填写字母:A/B/C/D) A、a + b > c or a + c > b and b + c > a

B、a + b > c or a + c > b or b + c > a C、a + b > c and a + c > b or b + c > a D、a + b > c and a + c > b and b + c > a (1)解析法(2)D 用解析法求解问题,许多时候并非只是计算一个解析式就可以完事,还要根据问题给出的已经条件,运用归纳、演绎等逻辑方法,揭示问题各要素之间的关系,寻找表示这种关系的表达式,有时需要计算的解析式是一组而不仅仅是一条。 例子2、GDP增长问题 某省2016年的GDP是6.7万亿元,如果每年按7%的比例增长,问多少年以后此省的GDP超过15万亿? 【算法分析】 假设n年后此省的GDP超过15万亿元,根据题意得出数学关系式?求最小的n。【参考程序】 Dim p As Single ‘ p用于记录GDP的值 Dim r As Single ‘ r用于记录GDP的年增长比例 Dim n As Integer ‘用于统计年数 p=6.7 r=0.07 n=0 Do while ____________ p=p*(1+r) n=n+1 Loop Print n_”年后,GDP的值超过15万亿元。” 根据上述回答下列问题:(共6分,每空3分) (1)本题采用的算法是__________(填写:解析法/枚举法/排序法/递归法)。 (2)写出程序中空白处表达式____________________________ (1)解析法(2)p<=15

PLC简单程序设计方法

第一节PLC 简单程序设计方法 一、解析法 解析法是借鉴逻辑代数的方法,确定各种输入信号、输出信号的逻辑关系并化简,然后编制控制程序的一种方法。这种方法编程十分简便,逻辑关系一目了然,比较适合初学者。 在继电控制线路中,线路的接通和断开,都是通过控制按钮、继电器元件的触点来实现的,这些触点都只有接通、断开两种状态,和逻辑代数中的“ 1”、“0”两种状态对应。梯形图设计的最基本原则也是“与”、“非”、“或”逻的辑组合,规律完全符合逻辑运算基本规律。按照输入与输出的关系,梯形图电路也可以像逻辑电路一样分为两种:组合逻辑电路和时序逻辑电路。 二、翻译法 所谓翻译法是将继电器的控制逻辑图直接翻译成梯形图。对于传统的工业技术改造常选用翻译法。对于原有的继电器控制系统,其控制逻辑图在长期的运行中,实践已证明该 系统设计合理、运行可靠。在这种情况下可采用翻译法直接把该系统的继电器的控制逻辑 图翻译成PLC 控制的梯形图。其翻译法的具体步骤如下: 1)将检测元件(如行程开关)、按钮等合理安排,且接入输入口。 2)将被控的执行元件(如电磁阀等)接入输出口。 3)将原继电器控制逻辑图中的单向二极管用接点或用增加继电器的办法取消。 4)和继电器系统一一对应选择PLC软件中功能相同的器件。 5)按接点和器件对应关系画梯形图。 6)简化和修改梯形图,使其符合PLC 的特殊规定和要求,在修改中要适当增加器件或接点。 对于熟悉机电控制的人员来说很容易学会翻译法,将继电器的控制逻辑直接翻译成梯形图。 例3 机床工作台往复运动控制,其示意图如图1-4所示。 (1)控制要求有1台机床,它的工作台被三相交流异步电动机拖动,可以实现前进或后退。当按下启动按钮SB1 ,接触器KM1 吸合,工作台前进;当碰到前进限位开关SQ1 时,KM1 释放,工作台停止前进,同时KM2 吸合,工作台后退;当碰到后退限位开关SQ2时,KM2释放,工作台停止后退,同时KM1吸合,工作台前进,……当电动机发生过载或按下停止按钮SB2 时,所有接触器释放,工作台停止运行。

42用穷举法设计程序共7页文档

§4.2 用穷举法设计程序 一、教学目标 1、课程标准中的相关内容 课程标准规定本节内容主要在于穷举法与问题解决。包括两个方面:1、了解穷举法的基本概念及用穷举法设计算法的基本过程。2、能够根据具体问题的要求,使用穷举法设计算法,编写程序求解问题。 2、知识与技能 ⑴理解用穷举法设计程序的基本思路。 ⑵分析建立正确的数学模型,归纳穷举法穷举技巧(变量的设置、穷举方案的确定)。 ⑶学会使用穷举法解决现实生活、学习中所遇到的问题。 ⑷探讨穷举法的技术方法与技术思想。 ⑸了解穷举法具有一定的局限性。 3、过程与方法 ⑴经历用穷举法求解问题的基本过程。 ⑵在学习过程中,学习发现知识的规律和方法并把它运用到解决实际问题中去。 ⑶体验穷举策略在穷举法中的地位和作用,并选择适当的穷举方案解决问题。 ⑷针对解决问题的过程与结果进行有效的评价。 4、情感态度与价值观 ⑴引导学生关注穷举法在社会生活中的应用,激发学生学习的热情。 ⑵增强学生合作意识、创新思维与进取精神。 ⑶学会评价各种穷举方案的优劣,并形成反思的意识。 ⑷初步了解穷举法在破解密码方面的现实应用,自觉养成保护密码的良好习惯。 ⑸了解信息技术可能带来的不安全因素,养成健康使用信息技术的习惯。 二、学情分析 本节内容的教学对象是高一或高二年级学生,他们已经具备了一定的逻辑思维、分析问题、表达思想等能力。同时,通过前三个章节的学习与实践,学生已初步体验了穷举法的基本思想,经历了用计算机解决问题的过程与步骤,学会了对计算机程序进行调试,掌握了程序的三种分支结构等基础知识,为本节内容的学习提供了良好的基础。 三、教材分析 1、本节主要内容介绍 穷举法是程序设计中使用得最为普遍、大家必须熟练掌握和正确运用的一种算法。它利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情

用穷举法解决问题教学设计

用穷举法解决问题 一、教材分析: 《用穷举法解决问题》是高中信息技术选修模块《算法与程序设计》第三章《程序的实现》第二节内容。本章侧重于运用算法解决实际问题,设计合理的算法并编程实现。本节主要阐述穷举法,该方法应用广泛,比较常见,存在于生活与学习之中。经典问题有水仙花数、搬砖问题、鸡兔同笼、百鸡百钱等。 二、学生分析:学生在通过第1、2两章的对VB的基本知识系统加以学习。学生可以利用上述的基础知识,结合前一阶段学习的VB程序设计的基本结构,进一步学习本节的相关知识内容。 三、教学目标 1.知识目标:了解什么是穷举法,穷举法的特点,掌握利用穷举法解决问题的基本要求;学会编写程序实现穷举法。 2.过程与方法:经历用穷举法求解问题的基本过程,发现穷举的规律,并把它运用实际问题的解决中去,从而培养学生的分析问题、解决问题的能力。 3.情感态度与价值观:通过用穷举法解决实际问题,培养学生对程序设计的兴趣和热情。 四、教学重点与难点 教学重点:能够利用穷举法解决实际问题。 教学难点:穷举的范围的确定,穷举效率的评价。 五、教学思路及教法:课本在介绍穷举法时用的例子是一个相对复杂的演讲比赛分组的问题。我个人认为,这样的一个引入部分不适合我们的学生,一是学生不是很感兴趣,二是比较复杂。所以在教学中选取了学生所熟悉的、又能反映穷举思想的例子:水仙花数问题的解决作为主题进行学习穷举法的思想。本节课教学中我主要采取任务驱动法,并结合引导探究、讲授、小组讨论等多种教学方法。从而培养了学生的分析问题、解决问题的能力及合作、参与意识。 六、教学过程: (一)游戏激趣导入 下面请大家打开桌面上的1位数破解密码的程序:小组间通过竞争和协作使得每个学生都积极参与,问题解决请学生运行该程序,破解密码。(每排为一组,看谁破解的快)

用穷举法设计程序教学设计

用穷举法设计程序教学设计

《用穷举法设计程序》教学设计 执教教师:佛山市第三中学杨溢执教学校:绵阳南山中学 一、基本情况 本节内容是广东教育出版社出版的普通高中信息技术(选修1)《算法与程序设计》教材第四章第2节《用穷举法设计程序》的教学内容,包括用穷举法求解问题的基本过程、穷举法的基本思路,穷举法中变量的安排,穷举法中穷举方案的选择等。 本节建议使用两个课时来完成。第一课时:穷举法求解问题的基本过程、穷举法的基本思路,穷举法中变量的安排,第二课时:穷举法中穷举方案的选择。而本节课是穷举法的第一课时。 二、教学目标 课程标准中的相关内容: 1、了解穷举法的基本概念及用穷举法设计算法的基本过程。 2、能够根据具体问题的要求,使用穷举法设计算法,编写程序求解问题。 根据课程标准,确定本节课(用穷举法解决问题的基本过程)的教学目标如下: 1、知识与技能 ⑴了解穷举法的基本概念及特点 ⑵能归纳穷举法穷举的关键。(设置穷举变量、变量变化范围、书写验证条件) ⑶了解穷举法设计程序的基本过程。 ⑷能够根据具体问题的要求,使用穷举法思想分析问题,设计算法,编写程序求解问题。 ⑸能够根据具体问题的条件,进行算法优化。 2、过程与方法 ⑴经历用穷举法求解问题的基本过程。 ⑵能通过实际问题的分析、求解过程,尝试归纳出利用穷举法解决问题的思路和方法。 3、情感态度与价值观

⑴在解决问题的过程中进一步培养和提升学生的逻辑思维能力 ⑵培养学生算法优化的思想。 ⑶了解穷举法在破解密码方面的现实应用,自觉养成保护密码的良好习惯。 三、教材分析 1、本节在主要内容介绍 ⑴穷举算法的基本思路:对要解决问题的所有可 能情况,一个不漏地进行检查,从中找出符合 要求的答案。 ⑵用穷举算法解决问基本过程: A)分析问题:问题的条件和未知数是什么?可以用解析法解决吗?适合用穷举法吗? B)算法设计 a.穷举法的基本算法(用循环语句列举穷举变量的穷举范围,用条件语句描述验证条件) b.穷举算法设计的三个关键: ⅰ.确定穷举变量:问题涉及哪些因素需进行穷举; ⅱ.确定穷举范围:问题所涉及的情况有哪些,穷举范围应该如何确定; ⅲ.验证条件:分析出来的这些情况,需要满足什么条件,才成为问题的答案。 C)根据算法编写程序; D) 调试运行; (3)优化穷举,对照题目条件,逐步求精,改善算法(穷举变量的安排、精确穷举范围)。 四、学情分析 ⑴教学对象是绵阳南山中学高一/高二年级学生。 ⑵学生已经具备了一定的逻辑思维、分析问题、表达思想等能力。 ⑶学生未学习过新课改教材。高二学生学习过非 VB语言的基本编程语句,但没有接触过循环嵌 套,也未涉及穷举算法,在编写程序的具体技 术,特别是对VB编程工具的具体操作,各基本 语句的使用程度未达到课标中学习本节内容的 知识准备要求。

4-2节 用穷举法设计程序

一、教学目标 1、知识与技能 (1).认识程序调试的意义。 (2).基于计算机解决问题的调整,穷举法是计算机求解问题的基本算法。 (3).穷举法也是人们常用的解决问题的方法,计算机的出现大大提升了这种方法的意义。 (4).掌握用穷举法设计程序的基本思路。 (5).通过调试不同的例程,掌握穷举法穷举技巧(变量安排、穷举方案的确定)。 (6).计算机只是人类的工具,穷举方案的确定得靠人脑来完成,但穷举过程的实施计算 机却比人脑有效。 (7).通过深入研究穷举的技巧,积累程序设计的经验,提升自己设计程序求解问题的能 力。 (8).对于多种解决问题的方案,学会评价它们的好坏。 2、方法与过程 本节以“百钱买百鸡问题”入手,由浅入深讲解了穷举算法的思路。并通过钞票币值问题、电子邮箱密码问题的求解,介绍了如何恰当地安排穷举算法中的多个变量,如何设计穷举方案,使得穷举过程更加合理更有效率,举出了求一个5位密码问题的3种穷举方案,通过讨论、对比、总结,熟练掌握穷举算法的求解问题方法。教学案例在最后部分安排了一个用于交流的问题,介绍了在穷举算法中,变量安排和穷举方案的确定是密切相关的如何安排,求解问题将会有许多方案,而不同的方案可能导致解决的效率有巨大的差异。 组织这些活动,在编程实践之后,对各种方案进行对比试验,加深穷举算法的理解。 3、情感态度和价值观 通过本节内容的学习,学生对设计算法求解问题有了进一步的认识,对设计算法的步骤更加熟练,思考问题更加严密和有条理,程序编制和调试更有经验。本节的学习对算法知识的积累,对继续学习的激发有更加强烈的愿望,培养学生的爱国主义精神。 二、重点难点 1、教学重点 (1)建立正确的数学模型,确定穷举方案。 (2)根据命题确定可解空间(即变量的取值范围)。 (3)正确表达“符合条件”的判断。 2、教学难点 (1)如何确定穷举方案。 (2)如何评价各种穷举方案的优劣。 三、教学环境 1、教材处理 教材选自《广东省普通高中信息技术选修一:算法与程序设计》第四章第二节,本节由一个植树数量的IQ题人手,引入穷举算法的思路。并通过钞票币值问题、电子邮箱密码问题的求解,介绍了如何恰当地安排穷举算法中的多个变量,如何设计穷举方案,使得穷举过程更加合理更有效率,教材举出了求一个5位密码问题的3种穷举方案,希望通过讨论、对比、总结,熟练掌握穷举算法的求解问题方法。教材在最后部分安排了一个用于交流的问题,介绍了在穷举算法中,变量安排和穷举方案的确定是密切相关的如何安排,求解问题将会有许多方案,而不同的方案可能导致解决的效率有巨大的差异。组织这些活动,在编程实践之后,对各种方案进行对比试验,加深穷举算法的理解。 教材经处理后,以公元前5世纪,我国数学家张丘建在《算经》一书中提出了一个

算法的程序实现——解析法、穷举法

算法的程序实现——解析法、穷举法 一、目标导学: 1、 认识并学会使用解析法、穷举法分析问题、解决问题; 2、 尝试编程实现解析法、穷举法实例。 二、自主探究: 1、解析法: 就是在分析具体问题的基础上,抽取出一个数学模型,这个数学模型能用若干解析表达式表示出来,解决了这些表达式,问题也就得以解决。 用解析法解决问题的关键是寻找________________。 ☆实例:画钻石图案(如右图,教师机展示) 分析:钻石图案是由一个圆周上的各个点的连线组成的,要首先建立一个坐标系,并求出各个点的坐标,然后画线(line 方法)。如右图:可以得出第一个点的坐标是(r*cos(θ),r*sin(θ)),第二个点的坐标是(r*cos(2*θ),r*sin(2*θ)),……依次类推,可得出所有点的坐标。 实现:(1)设置界面。在form1上添加picture1和command1。设置picture1的height 和width 属性相等,command1的caption 属性为“绘制钻石”。 (2)双击command1按钮,打开其代码窗口,输入相关代码。运行验证。

2、穷举法:(枚举法、列举法) 将求解对象一一列举出来,然后逐一加以分析、处理,并验证结果是否满足给定的条件,穷举完所有对象,问题最终得以解决。 ☆实例: 输出100~200间不能被3整除的数。 分析:验证100到200间所有的数,如果满足条件则输出。 实现:在窗体上添加command1按钮,在其代码窗口中输入代码,如右所示。 说明: (1)10个数打印一行,a 为计数变量。i 为要验证的数。 (2)“Print ”为打印一回车,光标跳至下一行;“Print i;” 为在当前位置打印,光标向后移动。 三、交流点拨: 思考:1、我们前面解决的以下问题用的是解析法还是穷举法? “韩信点兵”_________ “圆的周长、面积”__________“水仙花数”__________ 2、穷举法的适用问题的范围? 求解对象是________(有限/无限) 的,________(可/不可)按规则列举。 一元二次方程求根________(可/不可)用穷举法列举? 四、建构拓展: 五、效果评价:

高中信息技术 第4章算法与程序设计教案 选修1

一、教材分析 1、本章的作用和地位 本章是算法与程序设计模块的重点。学生在必修模块中对程序设计的概念有了初步的了解,然后在本模块前面的章节加深了对程序设计语言VB的认识,对设计程序解决问题作了一些实践,积聚了初步的编程经验,本章把这些原始的编程经验上升到“算法〞的高度,把以模仿为主的编程实践过渡到以创造为主的程序设计过程。算法在程序设计中占有重要的地位,算法是程序设计的核心,被比作程序设计的灵魂。算法强调按照逻辑顺序进行程序设计的过程和步骤,因此,算法的学习和掌握,有利于培养学生的逻辑思维能力。 程序设计在计算机应用中处于比较高端的位置,要纯熟掌握自由主义的技巧去解决问题,需要一个不断学习、总结的过程。因此,学习程序设计,除了本身的价值外,对于陪养终生学习的习惯和建立正确的学习方法将起到很好的作用,为学生形成良好的学习惯奠定根底。 2、本章主要内容介绍 掌握编程技术是信息社会的建设者的根本素质。本章通过解决具体的问题方式,介绍了一些常见的算法。但本章所介绍的算法仅仅是算法的一局部,实际上,算法的种类远不止这几种。而且,问题的解决并不都是依靠单独的一种算法就能完成的,多数情况是,需要配合使用几种算法才能到达整个目的。也就是说,算法存在多样性、复杂性等特征,这些特征有利于学生形成对算法的正确认识,从而提高利用算法来解决问题的能力,所以,在实际教学中需要对这些内容给予关注。 本章设置了6节内容。 “4.1 用解析法设计程序〞。本节介绍了主要靠列出解析式来解决问题的方法。这种得法对工程技术界是常见的。解析式的导出可能需要专门的知识,本节只探讨了一些在程序设计中常见的问题解析解法。更深入的探究可能需要“计算方法〞的专门学问。 “4.2 用穷举法设计程序〞。本节介绍的算法是比较容易理解,算法也相对直观。人们解决问题时,通常都会考虑用穷举法,但没有计算机帮助时,穷举法所需要的计算量往往令人望而生畏,但应用穷举法设计程序解决问题,那么显得游刃有余。应用计算机作穷举法,关键是穷举过程的设计。 “4.3 查找得法设计〞。本节介绍了顺序文件查找的思路,还介绍了一种非常有用的数据结构――数组。从这一节开始,我们有意识地留下一些在进行程序设计实践时常常会遇到的问题让同学们自己解决,有时例子中给出的程序亦非尽善尽美,我们希望在教师的引导下,同学们能够通过讨论和探索找到解决问题的途径。这种发现和排除错错误的能力,是进行程序设计所必不可少的。 “4.4 排序算法设计〞。本节介绍了选择排序和拖入排序两种常见的排序算法。这两种排序算法是庞大的排序算法家族比较粗浅的,效率不高,但比较容易理解,因此在数据量不太多的场合,应用还是很广泛的。

用穷举法解决问题教学设计

《用穷举法解决问题》教学设计 教学分析 1.教学目标 知识与技术:了解什么是穷举法及其特点,和用穷举法设计算法的大体进程;能够按照具体问题的要求,利用穷举法设计算法。 进程和方式:运用观察、发现、归纳、应用的方式,发展学生的归纳思维;培育学生独立探讨与自主发现的学习能力。 情感态度与价值观:了解算法和程序设计在计算机解决问题进程中的重要性;体验将算法转变成程序的进程,享受计算机解决问题的快乐。 2.教学重点和难点 重点:用穷举算法解决问题的一般步骤;能按照具体问题的要求,提高运用穷举算法解决问题的能力。 难点:通过观察、类比多种方式培育学生归纳思维。 教学进程 1.创设情境激趣引入 教师活动:我这有一张交通银行的卡,好久没有利用了,里面还有几十元钱,今天中午想到交行取款机把钱掏出来,可密码记不清了,连输两次,密码错误,不敢尝试了,为何呢?第三次要再错,取款机缘把卡锁住,你们今天就见不到这张卡了,你们有无碰到过相同或类似的问题?(上网的时候)银行为何要限制三次输入,不让无穷尝试下去? 学生思考,回答 教师活动:一个一个的尝试是不是很慢,也很辛苦?可是有了计算机这个快速运算的工具,这就是一个很好的方式。(显示穷举法的概念,提出学习目标) 二、探讨活动一:

百钱百鸡问题: 相传我国南北朝时期,京城有个卖鸡的张姓老汉,他有一个儿子超级伶俐,尤其擅长算术,到十二三岁时已是远近著名的“小神童”了。当朝宰相听说后想试探个究竟,于是派仆人到张老汉的店里探问鸡的价钱,张老汉告知:“公鸡五文钱一只,母鸡三文钱一只,小鸡一文钱三只”。于是,仆人给他一百文钱,要求公鸡、母鸡、小鸡都要,数量不多很多正好一百只,命他第二天送到府上。这可难为了张老汉,他怎么凑也凑不够这个数,只好问儿子。“小神童”不慌不忙,掐指一算就给出了答案,第二天照数送到宰相府。宰相见难不倒“小神童”,又让仆人给张老汉一百文钱,要求再买一百只鸡,搭配方式不能和上次一样。结果“小神童”又很快给出了答案,宰相悄悄称奇,想最后再试一次,谁知仍是没有难倒“小神童”。请用穷举法求解所有的组合方式。 教师活动:请同窗位尝试用解析法求解 教师活动:解析法效率高,可是有些问题要总结出解析式很难,乃至无法用解析法求解。 观察—发现—归纳—应用 边编写程序边提问 从循环次数上提高穷举法的效率 教师活动:大家能归纳出用穷举法解决问题的大体要求吗? 学生归纳:①肯定穷举对象及搜索范围:用循环或循环嵌套实现;②写出符合问题解的条件:用IF语句实现;③尽可能缩小搜索范围,减少程序运行时间,提高程序的执行效率。 3、探讨活动二: 若是一个3位数等于它的列位数字的立方和,则这个3位数称为“水仙花”数。

C程序设计教程第三版作业题解(第四章)

第四章 4.1统计全单位人员的平均工资,单位人数不固定,工资数从键盘先后输入,当输入-1时表示输入结束。 //程序1 用if语句 #include int main() { int n=0; float gz=0,sum=0,pj; printf("请输入职工工资(数据用空格分隔,输入-1结束输入):\n"); while(gz!=-1) { scanf("%f",&gz); if(gz==-1)break; sum=sum+gz; n++; } pj=sum/n; printf("平均工资是:%10.2f\n",pj); return 0; } //注意,如gz定义成double(双精度),则输入数据后要用加.0,如最后的-1要用-1.0的形式输入,否则出错。 4.2 一个单位下设三个班组,每个班组人数不固定。需要统计每个班组的平均工资。分别输入三个班组所有职工工资,当输入-1时,表示该班组的输入结束。输入出班组号和该班组的平均工资 #include int main () { int gz,i,n; float sum,pj; for(i=1;i<=3;i++) {/*外循环控制班组序号*/ n=0;gz=0;sum=0; printf("请输入第%d组的职工工资(数 据用空格分隔,输入-1结束输入):\n",i); while(gz!=-1) { /*内循环计算班组平均工资*/ scanf("%d",&gz); if(gz==-1)break;/*判断是输入结束标识,则跳出循环,数据不累加,也不记人数*/ sum=sum+gz; n++; } pj=sum/n; /*根据工资累加数和总人数求平均值*/ printf("第%d组的平均工资是:%10.2f\n",i,pj); } return 0; } 4.3百元买百鸡:公鸡每只值5元,母鸡每只值3元,小鸡3只值1元。100元买100只鸡,

c语言程序设计问题解答和实例解析方法

c语言程序设计问题解答和实例解析方法解答C语言程序设计问题的方法和实例解析方法如下: 1. 了解问题要求:在解答C语言程序设计问题之前,首先要对问题的要求有一个清晰的了解,明确所需要完成的任务是什么。 2. 分析问题:对于给定的问题,需要仔细地分析问题的输入、输出以及实现的步骤。可以使用流程图、伪代码等方式帮助分析问题。 3. 设计算法:根据问题的要求和分析结果,设计解决问题的算法。可以使用顺序结构、选择结构、循环结构等来实现算法。 4. 编码实现:根据算法,使用C语言来编写源代码。在编码实现时,需要注意代码的可读性和可维护性,使用恰当的命名、注释和缩进,保证代码的清晰易懂。 5. 调试测试:编写完源代码后,需要进行调试测试以验证程序的正确性。可以使用一些测试用例来测试程序的输入、输出是否符合预期。 6. 优化改进:如果在测试过程中发现程序存在问题或者可以进一步优化,可以对源代码进行改进。可以使用一些技巧来提高程序的运行效率,如减少循环次数、避免重复计算等。 示例解析方法: 1. 引出问题:在示例解析中,可以先简单地介绍问题的背景和需求,引起读者对问题的兴趣。 2. 分析问题:分析问题的输入、输出以及实现的步骤。可以使用流程图或伪代码等方式帮助分析问题。 3. 给出解决方案:根据问题的分析结果,给出解决问题的具体步骤和算法,使用合适的C语言语法和函数。 4. 编码实现:使用C语言编写源代码,将解决方案转化为实际可运行的程序。 5. 运行示例:使用示例输入数据运行程序,展示程序的运行结果,并进行解释说明。 6. 总结分析:对于示例的运行结果进行分析和总结,解释程序的具体执行步骤和原理。 通过以上方法,可以更好地解答C语言程序设计问题,并给出清晰的解题思路和实例解析。

用解析法设计程序

用解析法设计程序 用解析法设计程序 在计算机编程中,解析法是一种常用的设计程序的方法。它通 过对问题进行逐步解析和拆分,逐渐构建出完整的程序。这种方法 适用于各种类型的问题,可以帮助程序员清晰地理解问题的本质, 并以模块化的方式实现解决方案。 解析法的基本原理 解析法的基本原理是将复杂的问题分解为简单的子问题,并逐 步解决每个子问题,最终得到完整的解决方案。这种方法可以大大 减少开发过程中的复杂性,使问题的解决过程更加简单和可控。 解析法的设计步骤如下: 1. 分析问题:仔细阅读问题描述,理解问题的要求和限制条件。确定问题的输入和输出,以及可能的边界情况。 2. 拆分问题:将问题分解为更小的子问题。根据问题的特点和 要求,找出可以独立解决的子问题,将其单独处理。 3. 设计算法:为每个子问题设计算法。考虑问题的最优解和常 见解决方法,选择合适的数据结构和算法来解决子问题。

4. 编写代码:按照设计好的算法,编写代码来实现子问题的解决方案。注意代码的可读性和可维护性,遵循良好的编程规范。 5. 测试和调试:对编写的代码进行测试和调试。验证解决方案的正确性和效率,处理可能的异常情况和错误。 6. 整合和优化:将各个子问题的解决方案整合成完整的程序。优化代码的性能和效率,使其能够处理更大规模的问题。 解析法的应用场景 解析法可以应用于各种类型的问题,特别适合于以下场景: - 复杂系统的设计:当需要设计一个复杂的系统时,解析法可以帮助我们将系统拆分为多个模块,分别解决每个模块的问题,最后整合起来实现完整的系统。 - 算法和数据结构的设计:在编写算法和数据结构代码时,解析法可以帮助我们将问题分解为更小的子问题,设计出高效的算法和合适的数据结构来解决这些子问题。 - 项目管理和团队合作:解析法可以帮助项目经理和团队成员理清工作流程和任务分配,将整个项目拆解成可管理和可执行的子任务。 解析法的优势和挑战 使用解析法设计程序有许多优势,但同时也面临一些挑战。

信息技术—用解析法解决问题

用解析法解决问题 【课标要求】 1.了解解析法,学会用解析法分析问题,解决问题。 2.学会编写程序实现解析法。 【教材分析】 本课来自教育科学出版社的《算法与程序设计》第三章算法的程序实现的《3.1用解析法解决问题》,学生在第一章和第二章已经学习了VB函数的基本语句顺序语句、选择语句、循环语句,对程序有了基本的认识和了解,第三章将带领学生学习使用解析法、穷举法、数组、排序等方法来解决生活中的具体问题。本课重点使学生掌握使用解析法解决实际问题。【学生分析】 高一学生由初次认识程序的陌生感到学习兴趣浓郁,求知欲望强烈,在每堂课做练习时能开动脑筋,从一点联想到多点,并思考我们可以利用已学知识解决生活中的哪些问题。学生随着VB函数和VB语句的学习,逐步揭开程序面纱,理解程序实际上是运行人设计的每个指令,并能使用已学知识编写一些简单的程序。那么学生通过本课用解析法解决问题的学习,将程序思维和程序设计理念提高一个新的高度,在学习过程中应当把握分析问题、设计界面、编写程序的步骤,解析法的思路。程序设计时select case语句也是学习时的一个重点和难点。 【教学目标】 知识与目标:培养学生根据实际问题用解析法提炼出数学表达式,并掌握使用多分支语句select case语句解决问题。 过程与方法:循序渐进的引导学生编写“科技馆计费系统”,使学生理解并掌握解析法的思路和求解过程,并能独立的编写“出租车计费”系统或“肯德基订餐计费”系统。 情感态度与价值观:培养学生逻辑思维能力和分析问题解决问题的能力,以及一题多解的发散思维的能力。 【教学重点】使学生掌握解析法的应用。 【教学难点】使学生能根据实际情况使用解析法解决问题,并能灵活使用select case的语句。【教学环境】机房、极域广播系统、VB程序 【教学设计简述】 本课从信息化和数字化的社会发展引出我们可以使用VB程序解决生活中的许多问题,例如“科技馆计费”程序,我们通过针对成人票、团体票、学生票等不同情况设计票价,我们可以使用解析法来实现,引导学生根据问题,写出数学公式,再通过select case语句来实现。建立在对解析法理解的基础上,设计头脑风暴“出租车计价”系统。教师教学重点是培养学生的逻辑思维和一题多解的发散思维,在程序设计教学时培养学生养成良好的分析问题——算法描述——设计界面——编写程序并调试的四个步骤来解决问题。本课“解析法解决问题”重点引导学生根据问题提炼数学公式的方法,select case语句的用法,最后独立设计并编写“出租车计价”系统。针对学生对于select case语句和list列表的用法是一个难点和重点,应当进行详细讲解并举例。 【课时安排】2节课 【教学过程】 一、教学导入 【教师活动】 师:生活中处处信息化、数字化,我们到医院看病刷卡系统,我们乘坐公交车站台显示车站

关于解析法求解连杆机构 (含matlab gui程序)

关于解析法 求解连杆机构的方案设计 分工内容: 1.matlab程序设计及方案编写 2.公式推导及编写 3.绘制图形

目录 一.题目要求 (3) 二.思路分析 (3) 三.公式推导 (4) 四.程序设计 (6) 五.测试程序 (8) 六.参考文献 (9)

一.题目要求 在图示的摇杆机构中,已知l AB=30mm,l AC=100mm,l BD=50mm,l DE=40mm,曲柄以ω1=10rad/s等角速度回转,试用图解法求机构在φ1=45°时,点D和点E的速度和加速度,以及构件2的角速度和角加速度,并用数学软件得到点E的轨迹。 二.思路分析 首先,根据题目要求,用解析法对机构进行位置分析,速度分析及加速度分析,从而求出各点的速度及加速度公式。 然后,在matlab的gui模块中建立所需控件,其中将上部中得到的公式代入按钮1的回调函数,再加入一个按钮2,设计关于点E的轨迹的代码并加入其回调函数。 E点轨迹的计算思路:以φ1为自变量(范围为-360°到360°),CE长度值的因变量,并用CE与水平轴的夹角求出E点坐标,将每一个φ1值对应的E点坐标标至坐标系中便得到了E点轨迹。

三.公式推导 1.位置分析 如图所示,该机构的封闭矢量方程式为 l4⃗⃗⃗ +l1⃗⃗ =s l4+l1e iφ1=se iφ2(a)展开后分别取实部和虚部得:l4+l1cosφ1=scosφ2 l1sinφ1=ssinφ2 两式相除得:tanφ2= l1sinφ1 (1-1) l4+l1cosφ1 (1-2)求得角φ2=9°55’36"后得:s=l1cosφ1+l4 cosφ2 2.速度分析 将式(a)对时间求导数得: l1ω1ie iφ1=v BC e iφ2+sω2ie iφ2(b)两边乘e−iφ2得: l1ω1ie i(φ1−φ2)=v BC+sω2i 展开后分别取实部和虚部得: v BC=−L1ω1sin (φ1−φ2)(2-1) (2-2) ω2=l1ω1cos (φ1−φ2) s 3.加速度分析 将(b)式求导得: −l1ω12e iφ1=(a BC−sω2)e iφ2+(sα2+2v BCω2)ie iφ2 两边乘以e−iφ2得:

算法与程序设计知识点汇总

算法与程序设计知识点汇总 第一章计算机解决问题的基本过程 一、开始 分析问题设计算法编写程序调试、 运行程序问题解决 二、算法-----程序设计的“灵魂” 1、定义:就是解决问题的方法和步骤 2、特征: 1、确定性:每一步都有确切的含义 2、有穷性:执行的步骤和每一步执行的时间都是有限的 3、输入:有零个或多个输入 4、输出:至少产生一个输出 5、可行性:原则上可精确运行 3、算法的描述:1、自然语言 2、流程图(P11) 3、伪代码(p12) 4、计算机语言三:程序设计语言的发展: 机器语言:是能直接被计算机识别的语言,是一串由“0”“1”构成的二进制数 汇编语言:符号化语言,比机器语言容易识别和记忆,用汇编语言编制的程序不能被计算机直接执行,必须经过转换处理。 高级语言:更接近于自然语言(英语)和数学语言的编程语言,容易掌握和使用,也不能直接识别,必须经过转换才能被计算机执行。 第二章 一、visiual basic 可视化程序开发工具,主要是让程序设计人员利用软件本身所提供的各种控件,像搭积木一样构造应用程序的各种界面,然后再编写少量的代码就可以构建应

用程序,提供了程序设计,编辑,调试,运行于一体的集成开发环境。 二、VB6.0的集成开发环境 三个工作栏:标题栏菜单栏工具栏 六个基本窗口: 主窗口(main) 窗体窗口(form) 工具箱窗口(toolbox) 工程窗口(project) 属性窗口(properties) 窗体布局窗口(formlayout) 三、属性---用来描述对象的外部特征 四、常用控件 熟悉常用控件(标签、文本框、命令按钮)的作用,图标及其属性 五、数据的表示与处理 1、Vb数据类型

Pascal算法与问题解决举例

第三章算法与问题解决举例 第一节解析法与问题解决 一、考纲内容 1.理解解析法的基本概念及基本过程 2.能够领悟用解析法求解实际问题的思想,能用解析法独立求解实际问题。 二、考纲解读 1.解析法的基本概念 通过分析问题中各要素之间的关系,用简练的语言或形式化的符号来表达它们的关系,得出解决问题所需的表达式,然后设计程序求解问题,这种设计程序方法就是解析法。 2.解析法基本过程 解析法的基本过程是分析问题(总结所需的表达式)、设计算法、编写程序、调试程序。 3.用解析法求解实际问题 运用解析法解题的常用方法有三类:一是设计方程,运用数学公式求解问题;二是通过观察并掌握数据的规律,总结出一般性的公式;三是对数据进行分类,不同类别的数据用不同的公式处理。要求能熟练运用解析法求解实际问题。 三、试题分析 【例1】输入正整数N,求3N的个位数字(N<)。 【算法分析】 算法1:1. 输入正整数N 2. j=1;k=1 3. 当k<=n 重复 (1) j=j*3 (2) 将j的个位数字赋给j (3) k=k+1 4. 输出j

本算法实质是让j重复乘以3,共乘N次,这个方法在输入N较小时是可行的,但N较大时,运算速度太慢。 算法2:1. 输入正整数N 2. 求N除以4的余数并赋给K 3. 如果K=0则输出 1 4. 如果K=1则输出 3 5. 如果K=2则输出 9 6. 如果K=3则输出 7 如果N 的值分别为1、2、3、4、5、6、7、8……时,对应的3 的N次方的个位数字是3、9、7、1、3、9、7、1……,正好是一个规则的数列,每4个数正好是一个周期。寻找数据的规律并总结计算公式,是常见解析法题型的解题方法。下面给出算法2 的程序。 【FP解析】p01.pas Private Sub Command1_Click() n = InputBox("输入n") k = n Mod 4 If k = 0 Then Print 1 If k = 1 Then Print 3 If k = 2 Then Print 9 If k = 3 Then Print 7 End Sub 【例2】一项工程,甲乙2人一起工作,A天能完成,如果甲先开工B天,再和乙合作,一起工作C天完成。输入A、B、C,求甲、乙分别单独完成该项工作各要几天? 【算法分析】本题实质上是解方程组,因A、B、C是已知,设甲X天可单独完成,乙Y天可单独完成,则有方程组 解方程组得 X=(A*B) /(A-C) X B A C A Y X = - = + 1 1 1 1

相关主题