6
阳光家教网 www.ygjj.com 高三数学学习资料
7. 市话话费计算方式为:自接通起。3分钟内(含3分钟)0.2元,超过3分钟的部分每分钟0.1
元(不足1分钟按1分钟计),输入一个证书作为通话时长,用条件语句描述通话话费。
8. 某电视机厂2002年全年生产电视机60万台,计划从2003年开始每年的产量比上一年增长15%,设计一个算法,计算从哪一年开始,该厂的电视机产量超过300万台,只写出伪代码. 9. (斐波那契数列) 假定一对大兔子没一个月可以生一对小兔子,而小兔子出生后两个月就有生育能力,问从一对小兔子开始,一年后能繁殖多少兔子?这就是著名的斐波那契数列问题,其规律是从第三个月开始,每个月的兔子数量都是前两个月的兔子数量的和。用循环语句描述这一算法。
10. 一个三位数的十位和个位上的数字交换,得到一个新的三位数,新旧两个三位时都能被4整
除,设计一个算法求满足条件的三位数的个数,并写出伪代码. 11.若x , y是两个互质的数,则一定存在整数u , v,使得u x ?vy?1 , 设 x? 33 , y?35 设计 一个算法求出一组满足条件的u , v ,并用伪代码表示.
12!13!1n!答案:1. 15 2. 求m , n 的最大公约数 3. e?1???...? 4. n的所有约数
5 . 计算1——100能被7整除的数的个数 6. a= 2 b= 3 c= 2 7. 解: 8. 解:
Read XIf X?3 Then Y?0.2Else If Int?X-3? ? ??X-3? Then Y?0.2??Int?X-3??1??0.1Else Y?0.2?Int?X-3??0.1End IfPrint YS?60I?2002While S?300 S??1?0.15??S I?I?1End WhilePrintI
9.解:
水激石则鸣,励激志则宏!知识改变命运,勤奋成就未来! 共26 页第 6页4/18/2013
7
阳光家教网 www.ygjj.com 高三数学学习资料 S?1T?1For I From 1 to 12 P?S?T S?T T? PEnd F orPrint Pa?1b?1S?2For I From 3 to 12 或者
C?a?b S?S?C a?b b? CEnd F orPrint S
10.解:
I?0For N From 100 to 999 step 4 X?Int N?100?
Y?Int??N?100X?/10? Z?N-100X-10Y If Int??100X?10Z?Y?/4???100X?10Z?Y?/4 Then I?I?1 End IfEnd F orPrint I
11.解: v?1While Int??1-35v?/33?? ? ?1-35v?/33v?v?1End While u??1-35v?/33Print u , v
? 算法案例
这一节要求较低,但要掌握几个重要的算法,对于今后的进一步学习和提高数学的素养都有着重要的意义。(要求掌握的用矩形框框起来)
1.求最大公约数(greatest common factor) 辗转相除法----Euclid algorithm
Read a , b Sub 求最大公约() While Mod (a , b ) ≠ 0 a = InputBox(\输入第一个自然数\ r = a Mod b b = InputBox(\输入第二个自然数\水激石则鸣,励激志则宏!知识改变命运,勤奋成就未来! 共26 页第 7页4/18/2013 a = b While a Mod b <> 0 b = r r = a Mod b End While a = b Excel宏程序 8
阳光家教网 www.ygjj.com 高三数学学习资料
辗转相除法-----VB程序
Private Sub Command1_Click()
Dim M As Long, N As Long, r As Long M = Val(Text1.Text) '取数据 M N = Val(Text2.Text) '取数据 N
If M <> Int(M) Or M < 1 Or N <> Int(N) Or N < 1 Then ' 检验数据合法性! Text3.Text = \数据错误!\ Else Do
r = M Mod N
M = N '求出最大公约数 N = r
Loop Until r = 0 Text3.Text = CStr(M) End If End Sub
Private Sub Command2_Click()
If Text1.Text <> \ '清除文本框1 If Text2.Text <> \ '清除文本框2 If Text3.Text <> \ '清除文本框3 End Sub
Private Sub Command3_Click() End End Sub
★★★★★★★★★★★★★★★★★★★★★★★★★★★★
Private Sub Command1_Click()
a = InputBox(\输入第一个自然数\
水激石则鸣,励激志则宏!知识改变命运,勤奋成就未来! 共26 页第 8页4/18/2013
9
阳光家教网 www.ygjj.com 高三数学学习资料 b = InputBox(\输入第二个自然数\ While a Mod b <> 0 r = a Mod b a = b b = r
Wend
MsgBox (\最大公约数为:\End Sub
Private Sub Command2_Click() End End Sub
2.孙子定理-----VB程序
Private Sub Command1_Click()
m = 2
While m Mod 3 <> 2 Or m Mod 5 <> 3 Or m Mod 7 <> 2 m = m + 1 Wend
MsgBox \不定方程的一个解为\ End Sub
Private Sub Command2_Click() End End Sub
Private Sub Command3_Click() m = 2
Do While m < 10000 Do
m = m + 1
Loop Until m Mod 3 = 2 And m Mod 5 = 3
And m Mod 7 = 2 Print m Loop End Sub
孙子问题-----Excel宏程序
Sub 孙子问题()
m = 2
While m Mod 3 <> 2 Or m Mod 5 <> 3 Or m Mod 7 <> 2
水激石则鸣,励激志则宏!知识改变命运,勤奋成就未来! 共26 页第 9页4/18/2013
10
阳光家教网 www.ygjj.com 高三数学学习资料 m = m + 1 Wend
MsgBox \不定方程的一个解为\ End Sub
m?2 While Mod( m , 3 ) ≠ 2 或 Mod (m , 5 ) ≠ 3或 Mod (m ,7 )≠ 2 说明:孙子问题被称为“孙生剩余定理”,或“中国剩余定理”,出自《孙子算经》,后来我国南宋数学家秦九韶作出比较完整的阐述,并发明“大衍求一术”,是解决一次同余式的关键。1592年明朝程大位的《算法统宗》里有一首“数学诗”暗示了孙子问题的解法:三人同行七十稀,五树梅花廿一枝,七字团圆正半月,除百零五便得知。 m = m + 1 End While Print m 它的运算涉及到数轮的知识,如数轮倒数,同余式等,这在以后的高校中会有更深入地介绍。
其表述有如下几种方式
Mod( m , 3 ) =2 Mod (m , 5 ) = 3 Mod (m ,7 )= 2 m Mod 3 = 2 m Mod 5 = 3 m Mod 7 = 2 m ≡ 2 (Mod 3 ) m ≡ 3 (Mod 5 ) m ≡ 2 (Mod 7 ) 意义为: 3m?2 5m?3 7m?2
3. 二分法问题不作要求,有兴趣的同学可以自行阅读,它是一种很重的数学思想,
我们以后在高校里会再学习。(见课本P29)
说明:里面出现了跳转语句的表达方法:也就是在各语句的前面标上标号,在需要运行跳转时就可用 “ Go to X ” ,其中X表示某行语句的标号。这种表达方式比较自由,在不知用何种语句才能实现想到达的地方时,就可以以Go to…直接跳转,方便易行,但在以后的编程终究要尽量少用这种跳转,因为特别是对于大型的程序设计,Go to语句用多了,就不易于检查,而且它破坏了语言结构的规范性,容易出错。由于我们高一阶段的要求比较低,所以也就不要有这种担心。,
? 一些常用的函数
1. Int(x) :求小于等于x的最大整数 2. Fix(x) :返回x的整数部分
3. Cint(x) :将x的小数部分四舍五入取整 4. Exp(x) :求e的x次方
5. Sqr(x) :求x的平方根
6. Sgn(x) :符号函数,即当x>0时,返回1;0;当x<0时,返回-1
7. RND(x) : 产生一个(0 ,1)之间的随机数,当x<0时,返回相同的随机数;当x>0时,返回随机系列的下一个随机数; 当x>0时,返回上一次生成的随机数
8. Int(Rand((上界-下界)+1))+1 产生上界——下界之间的随机数 颜老师说明:不要求大家都记忆,以后在计算机语言的学习中还会再学习
水激石则鸣,励激志则宏!知识改变命运,勤奋成就未来! 共26 页第 10页4/18/2013