《第1章VisualBasic程序设计概述.ppt》由会员分享,可在线阅读,更多相关《第1章VisualBasic程序设计概述.ppt(89页珍藏版)》请在优知文库上搜索。
1、第第1 1章章 Visual BasicVisual Basic程序设计概程序设计概述述第第1 1章章 Visual BasicVisual Basic程序设计概述程序设计概述 本章主要介绍程序设计的一些基本知识、基本概念和本章主要介绍程序设计的一些基本知识、基本概念和基本方法,为学习和掌握基本方法,为学习和掌握Visual BasicVisual Basic程序设计奠定基础。程序设计奠定基础。v1.1 计算机程序设计概述计算机程序设计概述 计算机程序就是计算机解决某些特定问题所需的符号计算机程序就是计算机解决某些特定问题所需的符号化指令序列,或者说是用计算机语言描述的特定问题的解化指令序列,
2、或者说是用计算机语言描述的特定问题的解决步骤。编写程序的过程称为程序设计,在程序设计时离决步骤。编写程序的过程称为程序设计,在程序设计时离不开程序设计语言。通常把给计算机编制程序的符号系统不开程序设计语言。通常把给计算机编制程序的符号系统及规则称为计算机的程序设计语言。及规则称为计算机的程序设计语言。这些符号系统及规则这些符号系统及规则构成了计算机的指令系统。当我们利用计算机完成一项工构成了计算机的指令系统。当我们利用计算机完成一项工作时,只需要告诉计算机什么时候、在什么条件下干什么,作时,只需要告诉计算机什么时候、在什么条件下干什么,计算机便根据指令一条一条地执行,并返回结果。计算机便根据指
3、令一条一条地执行,并返回结果。1.1.1 1.1.1 程序设计语言简介程序设计语言简介 任何一个计算机系统都是按照人们用某种程序设计语任何一个计算机系统都是按照人们用某种程序设计语言编写的程序进行工作的,人们通过程序设计语言编写的言编写的程序进行工作的,人们通过程序设计语言编写的程序来指挥和控制计算机运行。程序设计语言是人与计算程序来指挥和控制计算机运行。程序设计语言是人与计算机进行交流的有效工具,在计算机科学技术的发展过程中,机进行交流的有效工具,在计算机科学技术的发展过程中,发挥了巨大作用。发挥了巨大作用。程序设计语言经历了从低级到高级的发展阶段。程序设计语言经历了从低级到高级的发展阶段。
4、1.机器语言机器语言 计算机能直接识别的程序设计语言只有机器语言。机计算机能直接识别的程序设计语言只有机器语言。机器语言是计算机能执行的指令代码,这种语言是由若干器语言是计算机能执行的指令代码,这种语言是由若干0 0和和1 1的序列组成的指令,也就是人们常说的二进制代码。用机的序列组成的指令,也就是人们常说的二进制代码。用机器语言设计的程序,称为机器语言程序。这是一种最低级器语言设计的程序,称为机器语言程序。这是一种最低级的计算机语言程序。的计算机语言程序。2.汇编语言汇编语言 汇编语言用比较直观、便于记忆的指令符号来代替二汇编语言用比较直观、便于记忆的指令符号来代替二进制数字的机器指令代码,
5、汇编语言的每条指令通常使用进制数字的机器指令代码,汇编语言的每条指令通常使用英文单词的缩写形式表示,也叫助记符。英文单词的缩写形式表示,也叫助记符。3.高级语言高级语言 高级语言接近人们熟悉的自然语言(主要指英语),高级语言接近人们熟悉的自然语言(主要指英语),掌握与使用都十分方便。高级语言具有通用性,在其初始掌握与使用都十分方便。高级语言具有通用性,在其初始阶段是面向过程的语言。高级语言与具体的计算机指令系阶段是面向过程的语言。高级语言与具体的计算机指令系统没有直接关系,因此用高级语言设计的程序可以在各种统没有直接关系,因此用高级语言设计的程序可以在各种类型的计算机上运行。类型的计算机上运行
6、。计算机并不能识别与执行用高级语言设计的程序,因计算机并不能识别与执行用高级语言设计的程序,因此,必须将高级语言程序转换为机器语言程序,才能在计此,必须将高级语言程序转换为机器语言程序,才能在计算机上得以执行,这种转换的过程叫算机上得以执行,这种转换的过程叫“翻译翻译”。任何一种高级语言系统都包含有专门用于任何一种高级语言系统都包含有专门用于“翻译翻译”的的程序。对高级语言的程序。对高级语言的“翻译翻译”有两种方式,一种是有两种方式,一种是“解释解释”方式,即方式,即“翻译翻译”一句执行一句,负责这种一句执行一句,负责这种“翻译翻译”方式方式的程序叫解释程序;另一种是的程序叫解释程序;另一种是
7、“编译编译”方式,是将整个程方式,是将整个程序序“翻译翻译”完毕后再予以执行,负责这种完毕后再予以执行,负责这种“翻译翻译”方式的方式的程序叫程序叫编译程序编译程序。“翻译翻译”前的程序叫源程序或源代码,源代码通常是前的程序叫源程序或源代码,源代码通常是文本形式;文本形式;“翻译翻译”后的程序叫目标程序或目标代码,目后的程序叫目标程序或目标代码,目标代码是二进制形式。标代码是二进制形式。用解释程序用解释程序“翻译翻译”执行程序比编译程序执行程序比编译程序“翻译翻译”执执行程序慢得多。不论是解释还是编译,在行程序慢得多。不论是解释还是编译,在“翻译翻译”过程中过程中都会自动检查源程序中的语法错误
8、。都会自动检查源程序中的语法错误。1.1.2 1.1.2 算法及其描述算法及其描述1.算法的概念算法的概念 什么是算法?当代著名计算机科学家什么是算法?当代著名计算机科学家D.E.KnuthD.E.Knuth称:称:“一个算法,就是一个有穷规则(指令)的集合。其中之一个算法,就是一个有穷规则(指令)的集合。其中之规则规定了一个解决某一特定类型的问题的运算序列。规则规定了一个解决某一特定类型的问题的运算序列。”简单地说,任何解决问题的过程都是由一定的步骤组成的,简单地说,任何解决问题的过程都是由一定的步骤组成的,把解决问题确定的方法和有限的步骤称作为算法。把解决问题确定的方法和有限的步骤称作为算
9、法。通俗地说,算法就是指为解决一个问题而采取的方法通俗地说,算法就是指为解决一个问题而采取的方法和步骤,或者说是解题步骤的精确描述。不要认为只有和步骤,或者说是解题步骤的精确描述。不要认为只有“计算计算”问题才有算法。广义地说,处理任何问题都有一问题才有算法。广义地说,处理任何问题都有一个个“算法算法”问题,例如,菜谱就包含算法,因为它除了列问题,例如,菜谱就包含算法,因为它除了列出做菜的原料以外,还列出操作的每一步骤。当然,这里出做菜的原料以外,还列出操作的每一步骤。当然,这里讨论的是计算机算法,即计算机能执行的算法。讨论的是计算机算法,即计算机能执行的算法。2.算法的表示算法的表示 表示一
10、个算法可以采用不同形式。表示一个算法可以采用不同形式。(1)(1)用自然语言表示算法用自然语言表示算法【例例1-1】计算函数计算函数M(x)的值:的值:其中其中a,b,c为常数。为常数。axcxcaaxabxxM3)(2)(算法分析:本题是一个数值运算问题。其中算法分析:本题是一个数值运算问题。其中M M代表要计代表要计算的函数值,有两个不同的表达式,根据算的函数值,有两个不同的表达式,根据x x的取值决定采用的取值决定采用哪一个算式。根据计算机具有逻辑判断的基本功能,用计哪一个算式。根据计算机具有逻辑判断的基本功能,用计算机解题的算法如下:算机解题的算法如下:1)1)将将a、b、c和和x的的
11、值输入到计算机。值输入到计算机。2)2)判断判断x a,如果条件成立,执行,如果条件成立,执行3),否则执行,否则执行4)。3)3)按表达式按表达式bx+2a计算出结果存放到计算出结果存放到M中,然后执中,然后执行行5)。4)4)按表达式按表达式a(c x)+3c计算出结果存放到计算出结果存放到M中,然中,然后执行后执行5)。5)5)输出输出M M的值。的值。6)6)算法结束。算法结束。(2)用流程图表示算法用流程图表示算法 流程图是用一些图框、流程线以及文字说明来描述解决流程图是用一些图框、流程线以及文字说明来描述解决问题的方法与步骤。用流程图来表示算法,直观、形象、问题的方法与步骤。用流程
12、图来表示算法,直观、形象、容易理解。容易理解。1)传统流程图:美国国家标准化协会传统流程图:美国国家标准化协会ANSI(American National Standard Institute)规定了一些常用的流程图)规定了一些常用的流程图符号,见表符号,见表1-1。用流程线将各种操作图符号连接在一起就构成了一个完用流程线将各种操作图符号连接在一起就构成了一个完整的算法流程图。这种流程图称为传统流程图。整的算法流程图。这种流程图称为传统流程图。表表1-1 流程图符号流程图符号符号名 称说 明起止框表示算法的开始与结束。判断框用来根据给定的条件是否满足决定执行两条路径中的某一条路径。处理框用来表
13、示赋值等一般操作。输入输出框表示输入或输出操作。流程线表示流程的方向。连接点用于将没有画在一起的同一流程的各部分连接起来。例例1-11-1中算法的流程图如图中算法的流程图如图1-11-1所示。所示。图图1-1 传统流程图传统流程图 2)N-S 2)N-S流程图:传统流程图虽然形象直观,但对流程流程图:传统流程图虽然形象直观,但对流程线未作限制,使用者可以毫无顾忌地使流程线随意转来转线未作限制,使用者可以毫无顾忌地使流程线随意转来转去,使流程变得没有规律,阅读者要花很大精力去追踪流去,使流程变得没有规律,阅读者要花很大精力去追踪流程,从而使人们难以理解程序算法的逻辑。如果程序较复程,从而使人们难
14、以理解程序算法的逻辑。如果程序较复杂,流程线就会如同一团乱麻,人们将这种算法比喻成一杂,流程线就会如同一团乱麻,人们将这种算法比喻成一碗面条(碗面条(A Bowl of SpaghettiA Bowl of Spaghetti),乱无头绪。这种算法难),乱无头绪。这种算法难以阅读和修改,从而使算法的可靠性和可维护性难以保证。以阅读和修改,从而使算法的可靠性和可维护性难以保证。在在N-SN-S流程图中,完全去掉了流程线。全部算法写在一流程图中,完全去掉了流程线。全部算法写在一个大矩形框中,在某一矩形框中还可以包含一些属于它的个大矩形框中,在某一矩形框中还可以包含一些属于它的小矩形框。这种流程图又
15、称为盒图,因为每个矩形如同一小矩形框。这种流程图又称为盒图,因为每个矩形如同一个方盒。个方盒。使用使用N-SN-S流程图表示流程图表示【例例1-11-1】的算法如图的算法如图1-31-3所示。所示。说明:本书所绘的说明:本书所绘的N-SN-S流程图是经典流程图是经典N-SN-S流程图的改进,流程图的改进,称为称为N-S-ZN-S-Z流程图。流程图。Input a,b,c和和x若若x=a是是M=bx+2a否否M=a(c x)+3cOutput M1.1.3 1.1.3 程序设计方法概述程序设计方法概述 程序设计方法种类很多,主要有模块化程序设计方法、程序设计方法种类很多,主要有模块化程序设计方法
16、、结构化程序设计方法、面向对象程序设计方法等。结构化程序设计方法、面向对象程序设计方法等。1.模块化程序设计方法模块化程序设计方法 模块化程序设计方法是一个常用且有效的方法。在设计模块化程序设计方法是一个常用且有效的方法。在设计和编写大型程序时,可以对其进行模块化分解,以降低程和编写大型程序时,可以对其进行模块化分解,以降低程序的复杂性,提高程序的正确性、可靠性、可读性和可维序的复杂性,提高程序的正确性、可靠性、可读性和可维护性。护性。模块是数据说明、接口声明和执行语句等程序对象的模块是数据说明、接口声明和执行语句等程序对象的集合,可独立命名,并通过模块名来调用、访问和执行,集合,可独立命名,并通过模块名来调用、访问和执行,如如VBVB语言的子过程、函数、模块等程序对象可看成是模块。语言的子过程、函数、模块等程序对象可看成是模块。模块化就是把大程序划分成若干模块,每个模块完成一个模块化就是把大程序划分成若干模块,每个模块完成一个子功能,模块间相互协调,共同完成特定功能,其实质是子功能,模块间相互协调,共同完成特定功能,其实质是把复杂问题分解成许多容易解决的小问题,如图把复杂问题分解成许