1、4.1 编制计算机程序解决问题,第四章 信息的加工与表达,闽侯一中 林忠,在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神在创造世界的时候,在其中一根针上从下到上穿好了由大到小的片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片。一次只移动一片,不管在哪根针上,小片必在大片上面。当所有的金片都从穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,梵塔、庙宇和众生都将同归于尽。,闽侯一中 林忠,不管这个传说的可信度有多大,如果考虑一下把片金片,由一根针上移到另一根针上,并且始终保持上小下大的顺
2、序。这需要多少次移动呢?运用数学中的递归的方法。不难证明f(n)=2n-1。n=64时,f(64)= 264-1=18446744073709551615 假如每秒钟一次,共需多长时间呢?一年大约有 31536926 秒,计算表明移完这些金片需要多亿年,比地球寿命还要长,事实上,世界、梵塔、庙宇和众生都已经灰飞烟灭。,闽侯一中 林忠,程序体验,任务一:同学们运行汉诺塔程序,移动5个盘子,竞赛看哪位最快?,用计算机可以快速地解决一些人力所无法的问题,这是计算机的优势。,在学习编制计算机程序解决问题之前,我们先来进一步认识一下计算机和程序。,闽侯一中 林忠,计算机基本工作原理,思考: 1、计算机各
3、部件如何配合工作? 2.计算机中数字电路的表示方法是怎样的?,计算机是一种数字化电子设备,在工作时每段电路只有两种状态,可形象地称为开和关。输入计算机时把1、0代码直接转换为开关电路,就可以让计算机工作了。,闽侯一中 林忠,逐条顺序执行预先存放在存贮器中指令,4.1编制计算机程序解决问题,冯诺伊曼:存储程序控制原理,输入,输出,存储器,预先将程序输入存储器,计算机,运算器 控制器,中央处理器,闽侯一中 林忠,0100010001 01101010101 1000 0100010001 01101010111 1001 0100010011 01101010101 01101010111,Mov
4、 ax,8 Mov bx,10 Add ax,bx,Y=8 X=Y+10,4.1编制计算机程序解决问题,指令序列的集合,程序,高级语言,汇编语言,机器语言,闽侯一中 林忠,BASIC(BeginnersAll-purpose Symbolic Instruction Code)“初学者的全方位符号式指令代码”,给初学者使用的程序设计语言,4.1编制计算机程序解决问题,高级编程语言有:BASIC, PASCAL,C,VISUAL BASIC,FORTUAN.,闽侯一中 林忠,刘丽的妈妈是公司经理,需要对业务信函邮件进行加密她的表哥建议可以从一些工具类软件中找加密软件刘丽想自己来编写加密程序来对邮
5、件加密,并钻研了计算机编程,先解决文件中的文本内容的加密,闽侯一中 林忠,任务二:按“练习要求”完成操作,闽侯一中 林忠,前面我们演示操作的加解密程序和汉诺塔程序都是用计算机程序设计语言VB编写的,下面我们就来看看这几段程序的具体内容。,闽侯一中 林忠,探究加密程序,如何加密?,打开任务2源代码:工程1.vbp,阅读代码,秘密:把每个字符的编号(ASC码)+3, 算法: 显示出新编号相对应的字符 a-d A-D o-r,闽侯一中 林忠,before$ = InputBox(“请输入加密前的文本内容“)after$ = “ n = Len(before$) 用函数len()计算before$中存储的字符个数 For i = 1 To nb$ = Mid$(before$, i, 1) 用函数mid()读取出before$中的第i个字符c$ = Chr(Asc(b$) +3) 用函数asc()计算出字符的编号,加3得到新编号,再用chr()转换成对应的字符after$ = after$ & c$ 把新字符连接成新文本串 Next iMsgBox after$, , “加密后的文本内容“,闽侯一中 林忠,任务三:探究解密程序,打开任务三目录文件加密源代码下的工程1.vbp文件,改成解密程序,并生成可执行文件。,下节课见!,