您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 算法与程序设计(教育科学出版社)
算法与程序设计第一章如何用计算机解决问题算法与程序设计1.1计算机解决问题的过程从一个生产方案问题了解用计算机解决问题的步骤:P3开始分析问题设计算法编写程序运行程序验证结果问题解决算法与程序设计1、具体问题:相传我国汉代有位大将军叫韩信,他在点兵时让士兵分别从1~3、1~5、1~7报数,然后报告各次报数的余数,这样他就能推算出总共有多少士兵。假设余数分别为2、3、2探究的问题探究过程设所求的数为X,则X应该满足:X整除3余2X整除5余3X整除7余21、令X为1。2、如果X整除3余2,X整除5余3,X整除7余2,则记下这个X的值。3、令X=X+1(为算下一个做准备)4、如果求出了X,则结束程序,否则跳转执行第2步。5、输出答案。2、分析问题:算法与程序设计算法与程序设计3、设计算法:算法与程序设计4、编写程序DimnAsIntegerN=1DoIf(NMod3=2)And(NMod5=3)And(NMod7=2)ThenPrintNExitDoEndIfN=N+1Loop算法与程序设计DimaAsInteger,bAsInteger,cAsInteger,dAsInteger,eAsInteger,fAsInteger,nAsIntegern=Text1.Texta=Text2.Textb=Text3.Textc=Text4.Textd=Text5.Texte=Text6.Textf=Text7.TextFori=1TonIfiModa=bAndiModc=dAndiMode=fThenText8.Text=iEndIfNexti算法与程序设计PrivateSubAbout_Click()MsgBox我的第一个VB程序!EndSubPrivateSubCommand1_Click()YSF.Caption=+Text3.Text=Val(Text1.Text)+Val(Text2.Text)EndSubPrivateSubCommand2_Click()YSF.Caption=-Text3.Text=Val(Text1.Text)-Val(Text2.Text)EndSubPrivateSubCommand3_Click()YSF.Caption=*Text3.Text=Val(Text1.Text)*Val(Text2.Text)EndSubPrivateSubCommand4_Click()IfText2.Text=0ThenMsgBox除数不能为0ElseYSF.Caption=/Text3.Text=Val(Text1.Text)/Val(Text2.Text)EndIfEndSubPrivateSubCommand5_Click()Text1.Text=Text2.Text=Text3.Text=EndSub算法与程序设计5、调试程序、得到结果1)、新建工程;2)、在窗体添加按钮控件;3)、给按钮添加单击事件过程;4)、在单击事件过程内输入编写好的程序;5)、运行程序调试结果。6、在计算机上执行该指令序列5、通过编辑、编译和连接产生计算机能够识别的指令序列4、选用一种编程语言根据算法编写程序4、验证计算结果3、生成解题算法3、用笔、纸和算盘、计算器等工具进行计算2、寻找解题的途径和方法2、寻找解题的途径和方法1、理解和分析所要解决的问题1、理解和分析所面临的问题计算机解题步骤人工解题步骤相同点:无论何种解题方式,在解决某一实际问题时,都应该正确的理解问题的题意,从看似复杂的问题中整理出一个头绪,然后通过算法(即解决问题的一个一个步骤)描述出某一问题的解决过程,进行一定量的计算,最后都必须验证计算结果。不同点:当计算量较大时,人工解题就有点力不从心了,而计算机每秒上亿次的计算速度却不在话下,并且只要算法正确,编程语句无误的话,使用计算机编写的解题程序可以反复使用。例如:sum=1+2+3+4+5……+(n-1)+n这样的问题。算法与程序设计1.2算法描述与设计1、算法的概念算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。即,用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。算法的特征:1)、有0或多个输入。解题算法中可以没有数据输入,也可以同时输入多个需要算法处理的数据。2)、确定性。解题方法中的任何一个操作步骤都是清晰无误的,不会使人产生歧义或者误解。3)、有穷性。任何一种提出的解题方法都是在有限的操作步骤内可以完成的,哪怕是失败的解题方法。4)、有1个或多个输出。一个算法执行结束之后必须有数据处理结果输出,哪怕是输出错误的数据结果,没有输出的算法使毫无意义的。5)、能行性。解题方法中的任何一个操作步骤在现有计算机软硬件条件下和逻辑思维中都能够实施实现。算法与程序设计辗转相除法又名欧几里德算法(Euclideanalgorithm)是求两个正整数之最大公约数的算法。它是已知最古老的算法,其可追溯至前300年。它首次出现于欧几里德的《几何原本》(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的《九章算术》。它并不需要把二数作质因子分解。1.a÷b,令r为所得余数(0≤r<b),若r=0,b即为最大公约数;算法结束。2.互换:置a←b,b←r,并返回第一步。例如:求112和64的最大公约数.算法如下:(1).112除以64,余数为______;(2)._____除以_____余数为_______;(3)._____除以_____余数为_______.答:112和64的最大公约数为______.两数的最大公约数乘以其最小公倍数=两数相乘例如:求112和64的最小公倍数.(1).利用辗转相除法求得它们的最大公约数为______;(2).利用表达式求得最小公倍数:答:112和64的最小公倍数为______.练习:求164和64的最大公约数.求256和24的最大公约数.练习:求164和64的最小公倍数.求256和24的最小公倍数.算法与程序设计2、算法的描述表示算法的语言有自然语言、流程图、伪代码等。1)、用自然语言描述算法;2)、用流程图描述算法:掌握流程图的基本图形及其功能。3)、用伪代码描述算法。注意对比三种算法描述方式的优劣。1).输入m和n的值;2).r=m除以n的余数;3).如果r=0,则输出n值;否则令m=n,n=r返回第2步;4).结束.开始输入正整数m和nr=m除以n的余数r=0m=n,n=r输出n的值结束是否输入m和n值r←mModndowhiler0m=nn=rr=mmodnloop输出n值算法与程序设计优点缺点自然语言不需专门训练,通俗易懂P7流程图描述清晰简洁,容易表达选择结构;利于不同环境的程序设计.P8无法被计算机直接接受并进行操作伪代码书写方便,格式紧凑,易于理解,便于向计算机程序设计语言过渡.P8种类繁多,语句不容易规范.P8三种算法描述方式的优劣算法与程序设计使用自然语言描述算法的方法虽然比较容易掌握,但是存在着很大的缺陷。例如,当算法中含有多分支或循环操作时很难表述清楚。另外,使用自然语言描述算法还很容易造成歧义(称之为二义性),譬如有这样一句话——“武松打死老虎”,我们既可以理解为“武松/打死老虎”,又可以理解为“武松/打/死老虎”。自然语言中的语气和停顿不同,就可能使他人对相同的一句话产生不同的理解。又如“你输他赢”这句话,使用不同的语气说,可以产生3种截然不同的意思,同学们不妨试试看。无论是使用自然语言还是使用流程图描述算法,仅仅是表述了编程者解决问题的一种思路,都无法被计算机直接接受并进行操作。伪代码通常采用自然语言、数学公式和符号来描述算法的操作步骤,同时采用计算机高级语言(如C、Pascal、VB、C++、Java等)的控制结构来描述算法步骤的执行顺序。算法与程序设计在运用计算机程序解决问题的过程中,算法设计有着举足轻重的地位和作用,算法是程序设计的核心,是程序设计的灵魂.算法的好坏,直接影响着程序的通用性和有效性,影响着问题解决的效率.程序的编制依赖于算法的设计。程序的效率主要取决于算法的效率。算法的地位:算法与程序设计1.3、程序与程序设计语言1)、程序是一组机器操作的指令或语句的序列,是算法的一种描述。2)、程序的基本结构:P16顺序结构:各语句依次按照顺序执行。选择结构:通过检验条件是否成立来决定做还是不做的控件结构。循环结构:在一定条件下需要重复执行的控件结构。任何复杂的算法都可以用顺序结构、选择结构、循环结构三种基本结构组合而成的程序表示。算法与程序设计S1S2Sn…CS1S2CS1顺序结构选择结构循环结构算法与程序设计4)、程序设计:即是编写程序的过程。一个高质量的程序,应具备以下条件:(1)、建立正确的灵堂模型和确定有效的计算方法;(2)、运行结果必须正确,且在精度和其他各方面均满足要求;(3)、程序本身具有良好的结构,逻辑清楚,易读易懂。(4)、程序运行时间尽可能短,同时尽可能合理地使用内存;(5)、便于检查、修正、移植和维护。5)、程序设计语言的产生与发展(P18)(1)、机器语言:由“0”和“1”组成的二进制代码,是能够被计算机直接接受和执行的计算机语言。优缺点:(2)、汇编语言:采用类似英语缩写略词且带有助记性的符号形式代替二进制机器代码的计算机语言。是符号化了的机器语言。用能反映指令功能的助记符表达的计算机语言。优缺点:(3)、高级语言:相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如VB、C、C++,VC、Java、Pascal等。算法与程序设计语言种类优势不足机器语言能被计算机直接接受和执行程序设计任务繁重,效率低下,与自然语言存在巨大鸿沟,程序员不易培养。汇编语言比机器语言更易理解必须有语言翻译器支持,效率低,汇编源程序较冗长、复杂,容易出错。高级语言更接近自然语言,移植性好。要语言翻译器支持。各种程序设计语言的比较算法与程序设计程序的编辑和翻译1、理解什么是源代码、源文件、程序的编辑?2、高级语言的翻译程序有两种类型:编译程序和解释程序。编译程序:把用高级程序设计语言书写的源程序,翻译成等价的计算机汇编语言或机器语言书写的目标程序的翻译程序。解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。VB主要功能和特点1.具有面向对象的可视化设计工具;2.事件驱动的编程机制;3.提供了易学易用的应用程序集成开发环境;4.结构化的程序设计语言;5.支持多种数据库系统的访问;6.Active技术;7.VB6.0在开发环境上、网络功能等的增强;8.完备的help联机帮助功能。VisualBasic程序的书写规则任何计算机语言在使用时都有一些约定,书写程序时要遵循这些约定。1.VB代码中英文字母不区分大小写。但是在代码窗口向计算机内输入代码时,VB将把程序中用到的关键字的首字母自动转换成大写,其余转换成小写,如果关键字由多个英文单词组成,VB将把每个英文单词首字母转换成大写,其余转换成小写。2.程序书写方法。程序书写时,一般一行只写一个语句.如果一行要放几个语句,各语句之间可以用冒号分开。如果语句太长窗口一行放不下,可以续行,续行的方法是在行后使用续行符,续行符是由一个空格加一个下划字符”_”组成,但一个行最多写255个字符。3.注释语句。注释语句的作用是对程序或者程序段进行说明。注释语句使用单撇号’时,可以放在被注释语句的后边注释语句使用REM或者单撇号’开头。例如:Rem求解方程,或者:’求解方程。VisualBasic6.0的集成开发环境菜单栏工具栏代码窗口工具箱窗体窗口立即窗口监视窗口工程窗口属性窗口布局窗口1.主窗口应用程序窗口,由标题栏、菜单栏和工具栏组成。2.窗体(form)窗口设计VB程序的界面。3.代码(code)窗口编辑窗体、标准模块中的代码。4.属性(properties)窗口所有窗体或控件的属性设置。5.工程资源管理器(projectexpror)窗口保存一
本文标题:算法与程序设计(教育科学出版社)
链接地址:https://www.777doc.com/doc-6204357 .html