[其它课程]算法与程序设计教育科学出版社.ppt

上传人:音乐台 文档编号:2003165 上传时间:2019-01-30 格式:PPT 页数:49 大小:1.30MB
返回 下载 相关 举报
[其它课程]算法与程序设计教育科学出版社.ppt_第1页
第1页 / 共49页
[其它课程]算法与程序设计教育科学出版社.ppt_第2页
第2页 / 共49页
[其它课程]算法与程序设计教育科学出版社.ppt_第3页
第3页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[其它课程]算法与程序设计教育科学出版社.ppt》由会员分享,可在线阅读,更多相关《[其它课程]算法与程序设计教育科学出版社.ppt(49页珍藏版)》请在三一文库上搜索。

1、算法与程序设计,第一章 如何用计算机解决问题,算法与程序设计,1.1 计算机解决问题的过程,从一个生产方案问题了解用计算机解决问题的步骤:P3,算法与程序设计,1、具体问题:,相传我国汉代有位大将军叫韩信,他在点兵时让士兵分别从13、15、17报数,然后报告各次报数的余数,这样他就能推算出总共有多少士兵。 假设余数分别为2、3、2,2、分析问题:,算法与程序设计,算法与程序设计,3、设计算法:,算法与程序设计,4、编写程序,Dim n As Integer N = 1 Do If (N Mod 3=2) And (N Mod 5=3) And (N Mod 7=2) Then Print N

2、Exit Do End If N=N+1 Loop,算法与程序设计,Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer, f As Integer, n As Integer n = Text1.Text a = Text2.Text b = Text3.Text c = Text4.Text d = Text5.Text e = Text6.Text f = Text7.Text For i = 1 To n If i Mod a = b And i Mod c = d And i Mod e =

3、f Then Text8.Text = i End If Next i,算法与程序设计,Private Sub About_Click() MsgBox “我的第一个VB程序!“ End Sub Private Sub Command1_Click() YSF.Caption = “+“ Text3.Text = Val(Text1.Text) + Val(Text2.Text) End Sub Private Sub Command2_Click() YSF.Caption = “-“ Text3.Text = Val(Text1.Text) - Val(Text2.Text) End Su

4、b Private Sub Command3_Click() YSF.Caption = “*“ Text3.Text = Val(Text1.Text) * Val(Text2.Text) End Sub Private Sub Command4_Click() If Text2.Text = “0“ Then MsgBox “除数不能为0“ Else YSF.Caption = “/“ Text3.Text = Val(Text1.Text) / Val(Text2.Text) End If End Sub Private Sub Command5_Click() Text1.Text =

5、 “ Text2.Text = “ Text3.Text = “ End Sub,算法与程序设计,5、调试程序、得到结果,1)、新建工程; 2)、在窗体添加按钮控件; 3)、给按钮添加单击事件过程; 4)、在单击事件过程内输入编写好的程序; 5)、运行程序调试结果。,相同点:无论何种解题方式,在解决某一实际问题时,都应该正确的理解问题的题意,从看似复杂的问题中整理出一个头绪,然后通过算法(即解决问题的一个一个步骤)描述出某一问题的解决过程,进行一定量的计算,最后都必须验证计算结果。,不同点:当计算量较大时,人工解题就有点力不从心了,而计算机每秒上亿次的计算速度却不在话下,并且只要算法正确,编程

6、语句无误的话,使用计算机编写的解题程序可以反复使用。例如:sum=1+2+3+4+5+(n-1)+n这样的问题。,算法与程序设计,1.2 算法描述与设计,1、算法的概念,算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。即,用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。,算法的特征: 1)、有0或多个输入。解题算法中可以没有数据输入,也可以同时输入多个需 要算法处理的数据。 2)、确定性。解题方法中的任何一个操作步骤都是清晰无误的,不会使人产生 歧义或者误解。 3)、有穷性。任何一种提出的解题方法都是在有限的操作步骤内可以完成的, 哪怕是失败的解题方法。 4)、有

7、1个或多个输出。一个算法执行结束之后必须有数据处理结果输出,哪怕 是输出错误的数据结果,没有输出的算法使毫无意义的。 5)、能行性。解题方法中的任何一个操作步骤在现有计算机软硬件条件下和逻 辑思维中都能够实施实现。,算法与程序设计,辗转相除法 又名欧几里德算法(Euclidean algorithm)是求两个正整数之最大公约数的算法。它是已知最古老的算法, 其可追溯至前300年。它首次出现于欧几里德的几何原本(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的九章算术。它并不需要把二数作质因子分解。 1. a b,令r为所得余数(0rb),若 r = 0,b 即为最大公约数;算法结束

8、 。 2. 互换:置 ab,br,并返回第一步。 例如:求112和64的最大公约数.算法如下: (1).112除以64,余数为_; (2)_除以_余数为_; (3)_除以_余数为_. 答:112和64的最大公约数为_. 两数的最大公约数乘以其最小公倍数=两数相乘 例如:求112和64的最小公倍数 (1).利用辗转相除法求得它们的最大公约数为_; (2).利用表达式求得最小公倍数: 答: 112和64的最小公倍数为_.,练习:求164和64的最大公约数 求256和24的最大公约数,练习:求164和64的最小公倍数 求256和24的最小公倍数,算法与程序设计,2、算法的描述,表示算法的语言有自然语

9、言、流程图、伪代码等。,1)、用自然语言描述算法; 2)、用流程图描述算法:掌握流程图的基本图形及其功能。 3)、用伪代码描述算法。,注意对比三种算法描述方式的优劣。,1).输入m和n的值; 2).r=m除以n的余数; 3).如果r=0,则输出n值; 否则令m=n,n=r返回第2步; 4).结束.,输入m和n值 r m Mod n do while r0 m=n n=r r=m mod n loop 输出n值,算法与程序设计,三种算法描述方式的优劣,算法与程序设计,使用自然语言描述算法的方法虽然比较容易掌握,但是存在着很大的缺陷。例如,当算法中含有多分支或循环操作时很难表述清楚。另外,使用自然

10、语言描述算法还很容易造成歧义(称之为二义性),譬如有这样一句话“武松打死老虎”,我们既可以理解为“武松/打死老虎”,又可以理解为“武松/打/死老虎”。自然语言中的语气和停顿不同,就可能使他人对相同的一句话产生不同的理解。又如“你输他赢”这句话,使用不同的语气说,可以产生3种截然不同的意思,同学们不妨试试看。,无论是使用自然语言还是使用流程图描述算法,仅仅是表述了编程者解决问题的一种思路,都无法被计算机直接接受并进行操作。,伪代码通常采用自然语言、数学公式和符号来描述算法的操作步骤,同时采用计算机高级语言(如C、Pascal、VB、C+、Java等)的控制结构来描述算法步骤的执行顺序。,算法与程

11、序设计,在运用计算机程序解决问题的过程中,算法设计有着举足轻重的地位和作用,算法是程序设计的核心,是程序设计的灵魂.算法的好坏,直接影响着程序的通用性和有效性,影响着问题解决的效率.,程序的编制依赖于算法的设计。程序的效率主要取决于算法的效率。,算法的地位:,算法与程序设计,1.3、程序与程序设计语言,1)、程序是一组机器操作的指令或语句的序列,是算法的一种描述。,2)、程序的基本结构:P16,顺序结构:各语句依次按照顺序执行。,选择结构:通过检验条件是否成立来决定做还是不做的控件结构。,循环结构:在一定条件下需要重复执行的控件结构。,任何复杂的算法都可以用顺序结构、选择结构、循环结构三种基本

12、结构组合而成的程序表示。,算法与程序设计,顺序结构,选择结构,循环结构,算法与程序设计,4)、程序设计:即是编写程序的过程。,一个高质量的程序,应具备以下条件: (1)、建立正确的灵堂模型和确定有效的计算方法; (2)、运行结果必须正确,且在精度和其他各方面均满足要求; (3)、程序本身具有良好的结构,逻辑清楚,易读易懂。 (4)、程序运行时间尽可能短,同时尽可能合理地使用内存; (5)、便于检查、修正、移植和维护。,5)、程序设计语言的产生与发展(P18),(1)、机器语言:由“0”和“1”组成的二进制代码,是能够被计算机直接接受和执行的计算机语言。 优缺点: (2)、汇编语言:采用类似英语

13、缩写略词且带有助记性的符号形式代替二进制 机器代码的计算机语言。是符号化了的机器语言。用能反映 指令功能的助记符表达的计算机语言。 优缺点: (3)、高级语言:相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如VB、C、C+,VC、Java、Pascal等。,算法与程序设计,各种程序设计语言的比较,算法与程序设计,程序的编辑和翻译,1、理解什么是源代码、源文件、程序的编辑? 2、高级语言的翻译程序有两种类型:编译程序和解释程序。 编译程序:把用高级程序设计语言书写的源程序,翻译成等价的计算机汇编语言或机器语言书写的目标程序的翻译程序。 解释程序是高级语言翻译程序的一种

14、,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。,VB主要功能和特点,1. 具有面向对象的可视化设计工具; 2. 事件驱动的编程机制; 3. 提供了易学易用的应用程序集成开发环境; 4. 结构化的程序设计语言; 5. 支持多种数据库系统的访问; 6. Active技术; 7. VB 6.0在开发环境上、网络功能等的增强; 8. 完备的help联机帮助功能。,Visual Basic程序的书写规则,任何计算机语言在使用时都有一些约定,书写程序时要遵循这些约定。 1VB代码中英文字母不区分大小写。 但是在代码窗口向计算机内输入代码时,VB将把程序

15、中用到的关键字的首字母自动转换成大写,其余转换成小写,如果关键字由多个英文单词组成,VB将把每个英文单词首字母转换成大写,其余转换成小写。 2程序书写方法。 程序书写时,一般一行只写一个语句. 如果一行要放几个语句,各语句之间可以用冒号分开。 如果语句太长窗口一行放不下,可以续行,续行的方法是在行后使用续行符,续行符是由一个空格加一个下划字符”_”组成,但一个行最多写255个字符。 3注释语句。 注释语句的作用是对程序或者程序段进行说明。注释语句使用单撇号时,可以放在被注释语句的后边 注释语句使用REM或者单撇号开头。 例如: Rem 求解方程,或者: 求解方程。,Visual Basic 6

16、.0的集成开发环境,1. 主窗口 应用程序窗口,由标题栏、菜单栏和工具栏组成。 2. 窗体(form)窗口 设计VB程序的界面。 3. 代码(code)窗口 编辑窗体、标准模块中的代码。 4. 属性(properties)窗口 所有窗体或控件的属性设置。 5. 工程资源管理器(project expror)窗口 保存一个应用程序所有的文件。 6. 工具箱(toolbox)窗口 显示各种控件的制作工具,供用户在窗体上设计。 7. 窗体布局窗口 8. 立即窗口,2.窗体(Form)设计窗口,窗体设计窗口是屏幕中央的主窗口,它可以作为自定义窗口用来设计应用程序的界面。用户可以在窗体中添加控件、图形和

17、图片来创建所希望的外观。每个窗口必须有一个的窗体名字,建立窗体时缺省名为Form1,Form2, . . .。 应注意窗体名即Name属性和窗体文件名的区别,3.代码(code)窗口,在设计模式中,通过双击窗体或窗体上任何对象或通过“工程资源管理器”窗口中的“查看代码”按钮来打开代码编辑器窗口。代码编辑器是输入应用程序代码的编辑器。,4. 属性(properties)窗口,属性是指对象的特征,如大小、标题或颜色等数据。在Visual Basic6.0设计模式中,属性窗口列出了当前选定窗体或控件的属性的值,用户可以对这些属性值进行设置。,工程是指用于创建一个应用程序的文件的集合。工程资源管理器列

18、出了当前工程中的窗体和模块,5. 工程资源管理器(project explorer)窗口,工具箱提供一组工具,用于设计时在窗体中放置控件生成应用程序的用户接口。系统启动后缺省的General工具箱就会出现在屏幕左边,上面有常用“部件”,6. 工具箱(ToolBox)窗口,窗体布局窗口显示在屏幕右下角。用户可使用表示屏幕的小图像来布置应用程序中各窗体的位置。这个窗口在多窗体应用程序中很有用,因为这可以指定每个窗体相对于主窗体的位置。,7窗体布局窗口,程序的基本结构,顺序结构是最简单的程序结构,它是由若干个依次执行的处理步骤组成的。如图,A语句和B语句是依次执行的,只有在执行完A语句后,才能接着执

19、行B语句。,顺序结构,题目:输入两个数,然后交换这两个数,再输出它们交换后的结果。 (1)分析问题。 要交换两个数,要利用几个变量来保存数据?,顺序结构,(2)分析程序的执行步骤,画出流程图。 第一步:输入两个变量A、B的值。 第二步:利用第三个变量C来进行交换,交换的过程如下: C=A A=B B=C 第三步:输出交换后A、B的值。,顺序结构,(3)讲解程序的编写。 Private Sub command1_Click() A=InputBox(“输入第一个数A:“) B=InputBox(“输入第二个数B:“) C=A A=B B=C Print “交换后A=“;A, “交换后B=“;B

20、End Sub,顺序结构,顺序结构的特点: 1. 执行过程是按顺序从第一条语句执行到最后一条语句。 2. 在程序运行的过程中,顺序结构程序中的任何一条语句都要运行一次,而且也只能运行一次。,顺序结构,在处理实际问题时,只有顺序结构是不够的,经常会遇到一些条件的判断,流程根据条件是否成立有不同的流向。如下图所示,程序根据给定的条件P是否成立而选择执行A操作或B操作,这种先根据条件做出判断,再决定执行哪一种操作的结构称为分支结构,也称为选择结构。,选择结构,应用举例:判断输入的一个正整数,是偶数还是奇数。 题目:输入一个正整数,判断它是偶数还是奇数。 (1)分析问题。 提示要判断一个正整数是偶数还

21、是奇数,判断的条件是什么?,选择结构,(2)分析程序的执行步骤,画出流程图。 第一步:输入一个正整数N; 第二步:判断N是否能被2整除,即判断条件N mod 2=0是否成立; 第三步:若判断条件成立,则输出该正整数是偶数,否则输出该正整数是奇数,选择结构,(3)讲解程序的编写。 Private Sub command1_Click() N=InputBox(“输入一个正整数:“) If (N mod 2=0) Then Print N;“ 是偶数。“ Else Print N;“是奇数。“ End If End Sub,选择结构,小结分支结构的特点。 分支结构是根据不同的条件判断来决定程序执行

22、走向的结构。 在程序运行的过程中,在分支结构内,无论P条件是否成立,只能执行A操作或B操作之一,不可能既执行A操作又执行B操作,也不可能A操作和B操作都不执行。,选择结构,有时在解决一些问题时,经常需要重复执行一些操作,如计算123+100的和,我们可以利用循环结构控制程序按照一定的条件或者次数重复执行。 需要重复执行同一操作的结构称为循环结构,即从某处开始,按照一定条件反复执行某一处理步骤,反复执行的处理步骤称为循环体。,循环结构,应用举例:累加求和。 题目:计算123+10的和。 (1)分析问题。 提示进行累加运算,可先设累加变量的值为0,还要准确理解循环次数,避免出现多一次循环或少一次循

23、环的情况。,循环结构,(2)分析程序的执行步骤,画出流程图。 第一步:使累加变量S的值为0; 第二步:循环变量I的初值为1,终值为10,步长值为1; 第三步:判断循环条件I10是否成立,成立,则输出累加变量S的值,否则S=S+I,I=I+1,重复第三步。,循环结构,(3)讲解程序的编写。 Private Sub command1_Click() S=0 For I=1 To 10 Step 1 S=S+I Next I Print “1+2+3+10的和是“; S End Sub,循环结构,小结循环结构的特点: 循环结构中通常都有一个起循环计数作用的变量,这个变量的取值一般都包含在执行或终止循

24、环的条件中。 循环结构主要用在一些有规律的重复计算的算法中,例如累加求和、累乘求积等问题。,循环结构,小结顺序、分支和循环三种程序基本控制结构的共同特点: 三种结构都是只有一个入口,一个出口。 三种结构内都不存在死循环,即无终止的循环,像下图的结构中就存在一个死循环,在程序中是不允许死循环出现的。,总结,总结,本节课我们学习了三种结构:顺序结构、分支结构和循环结构。 顺序结构:按照由上到下的顺序一行一行地执行的程序结构。 分支结构:根据不同的条件判断来决定程序执行走向的结构。 循环结构:需要重复执行同一操作的程序结构称为循环结构。 我们灵活运用这三种基本结构,就可以编写出各种各样的程序,解决许多实际的问题。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1