1、0,信息的加工与表达(下) 用计算机程序解决问题,2007年 12月,高一年级信息技术基础,建大附中,1,用计算机程序解决问题,2x2+5x+3=02x2+8x+8=07x2+8x+9=0,2,用计算机程序解决问题,普通计算方法:根据公式: X=-b + Sqr(b * b - 4 * a * c)/ (2 * a) 根的情况: 通过判断D=b*b-4ac的值来确定。,3,用计算机程序解决问题,读入a,b,c,的值 计算D=b*b-4ac 如果:1.D0时,有两个不相同的实数根:X1=-b+Sqr(b * b - 4 * a * c)/2aX2=-b- Sqr(b * b - 4 * a *
2、c)/2a,4,一元二次方程计算程序代码,Private Sub Command1_Click()Print “请输入方程系数a,b,c (a不为0)“Let a = InputBox(“请输入a“)Let b = InputBox(“请输入b“)Let c = InputBox(“请输入c“)Print “a=“; aPrint “b=“; bPrint “c=“; cLet X0 = b * b - 4 * a * cIf X0 0 ThenPrint “无解“;ElseLet X1 = (-b - Sqr(b * b - 4 * a * c) / (2 * a)Let X2 = (-b
3、- Sqr(b * b - 4 * a * c) / (2 * a)Print “x1=“; X1Print “x2=“; X2End IfEnd Sub,5,程序示例2,6,韩信点兵程序,“韩信点兵,多多益善”这句话大家都知道,那究竟这“多多”的士兵共有多少呢?韩信说:“如果每3个人编为一队,那最后剩下1个人;如果每5个人编为一队,那最后剩下2个人;如果每7个人编为一队,最后也剩下2个人。请你自己算一个,我有多少士兵?”(假设士兵总数不超过100人),7,韩信点兵程序,古代解法 在我国古代的数学著作中,对这个问题也做了非常详细的研究,并总结了解题的方法: 三人同行七十(70)稀, 五树梅花廿
4、一(21)枝, 七子团圆正半月(15), 余百零五(105)便得知。意思是说:把除以3、5、7所得的余数,分别乘以70、21、15,加起来的和再减去105的倍数,所得的差小于105时就是我们所求的这个数了。如本题: 170+221+215=142 142-105=37,8,韩信点兵程序,数学解法 设士兵共有S名。S除以3,5,7所得的商分别为A,B,C,那么由题意,有3A+1=S5B+2=S7C+2=S,9,韩信点兵算法,韩信点兵算法 S100 判断:如果S除以3余1、S除以5余2、S除以7余2同时成立,那么S就是解,输出解S的值,程序结束否则,转 S减1,转重复这个判断过程。,10,结束,给
5、出一随机数 S,开始,是,否,循环执行,S除以3余1、S除以5余2、S除以7余2, 同时成立,S=S-1,韩信点兵程序执行过程,11,韩信点兵程序代码执行过程,Dim a1, b1, a2, b2, a3, b3, s, s1 As Longa1 = 3b1 = 1 a2 = 5b2 = 2 a3 = 7b3 = 2 s = 100 Text1.Text”While s 0If (s Mod a1 = b1) And (s Mod a2 = b2) And (s Mod a3 = b3) Then Text1.Text = “韩信一共有“ & Str(s) & “名士兵“ s = -1 结束搜
6、索过程Elses = s - 1 End Ifend,定义3个除数a1,a2,a3 余数b1,b2,b3,及取值范围S,当三个余数满足条件时 给出结果,不满足条件时给S减1 继续循环直到条件满足,12,程序示例3,13,课本P74页例题,刘丽的妈妈是某公司经理,每天都用电脑处理大量的商业文件。听闻有关计算机信息被盗取的事件报道后,她担心保存在计算机里的重要文件万一被别人窃取后,将会给公司造成不可估量的损失,因此希望找到一个保密方法。,14,加密程序代码,Private Sub Form_Load()FileName$ = InputBox(“请输入需要加密的文件名及路径:“)Open File
7、Name$ For Input As #1Line Input #1, a$MsgBox a$, , “加密前的文本内容“Close #1mm$ = “n = Len(a$)For i = 1 To nb$ = Mid$(a$, i, 1)c$ = Chr(Asc(b$) - 10)mm$ = mm$ & c$NextMsgBox mm$, , “加密后的文本内容“FileName$ = InputBox(“请输入加密后的文件名及路径:“)Open “fileName2$ For Output As #2Print #2, mm$Close #2,15,互动时间,请同学们自己体验刚才的加密程序,并且完成下发的课堂问卷,16,分析问题,设计算法,编写程序,调试程序,检测结果,17,总结,通过本节课的学习,我们知道了用计算机程序解决问题的优点,以及用计算机程序解决问题的具体过程,并且了解到设计解决问题的算法,选用合适的程序设计语言根据算法编写程序,程序一旦测试通过,便可以重复用来解决同类问题。,