大学计算机基础程序设计基础文史类_第1页
大学计算机基础程序设计基础文史类_第2页
大学计算机基础程序设计基础文史类_第3页
大学计算机基础程序设计基础文史类_第4页
大学计算机基础程序设计基础文史类_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十章程序设计基础--1第十章程序设计基础纲要算法2VB入门33程序与程序设计★31210.1程序与程序设计程序与程序设计31程序设计语言的发展32常见的程序设计语言333软件=计算机程序+文档资料10.1.1程序与程序设计计算机是依靠硬件和软件的配合进行工作的,硬件是计算机系统的基础,软件附着在硬件上,指挥和控制硬件工作。那么,软件是什么呢?

计算机程序(核心)文档资料软件软件安装说明书

用户使用手册

有关技术资料、服务信息等

10.1程序与程序设计4计算机程序=一系列指令的集合10.1程序与程序设计10.1.1程序与程序设计那么什么是计算机程序呢?事实上,为了能让计算机解决实际问题并完成预定功能,人们需要按照解题步骤和功能要求,从计算机的指令系统中选出相关的指令并进行编排(称为编程),形成一组有序的指令集合。所以,计算机程序就是计算机为完成某一任务所必须执行的一系列指令的集合。

而用程序设计语言(也称计算机语言)来编写计算机程序的过程就叫程序设计。510.1.2程序设计语言的发展计算机程序设计语言经历了从机器语言、汇编语言到高级语言的发展历程。机器语言汇编语言高级语言第4代语言1GL2GL3GL4GL10.1程序与程序设计610.1.2程序设计语言的发展1.机器语言

机器语言是计算机诞生和发展初期使用的语言。机器语言程序是由0和1的二进制代码按一定规则组成的,并能被机器直接理解和执行的指令集合。例如,计算A=8+12的机器语言程序如下:

10110:把8放入累加器A中

0010110000001100:12与累加器A中的值相加,结果仍放入A中

11110100:结束,停机10.1程序与程序设计710.1.2程序设计语言的发展1.机器语言

机器语言编写的程序不仅难读、难懂、难修改,而且不同机器使用的指令系统也不尽相同,所以现在已经没有人使用机器语言直接编程了。当然,机器语言也有其优点,编写的程序代码不需要翻译,因此占用空间少,执行速度快。

10.1程序与程序设计810.1.2程序设计语言的发展2.汇编语言

汇编语言开始于20世纪50年代初。为了克服机器语言的缺点,人们将机器指令的代码用英文助记符来表示,例如用ADD表示加、JMP表示程序跳转等。例如,计算A=8+12的汇编语言程序如下:

MOV

A,8

:把8放入累加器A中

ADD

A,12

:12与累加器A中的值相加,结果仍放入A中

HLT

:结束,停机

10.1程序与程序设计910.1.2程序设计语言的发展2.汇编语言汇编语言克服了机器语言难读、难懂的缺点,同时又保持了其编程质量高,占存储空间少,执行速度快的优点。故在编写系统软件和过程控制软件时,仍经常采用汇编语言。

但汇编语言仍然是面向机器的语言。使用汇编语言编程需要直接安排存储,规定寄存器和运算器的动作次序等。此外,不同计算机的指令长度、寻址方式、寄存器数目等都不一样,所以汇编语言程序的通用性较差。

10.1程序与程序设计1010.1.2程序设计语言的发展2.汇编语言汇编语言编写的程序(源程序),必须经过汇编程序(一种语言处理程序)翻译成计算机所能识别的机器语言后,才能被计算机执行

10.1程序与程序设计1110.1.2程序设计语言的发展3.高级语言

从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,它接近于数学语言或自然语言,同时又不依赖于计算机硬件,编出的程序能在所有计算机上通用。经过努力,1954年,第一个完全脱离机器硬件的高级语言FORTRAN语言问世了。高级语言的表示形式近似于自然语言,对各种公式的表示近似于数学公式。而且,一条高级语言语句的功能往往相当于十几条甚至几十条汇编语言的指令,程序编写相对比较简单。因此,在工程计算、数据处理等方面,人们常用高级语言来编写程序。

10.1程序与程序设计1210.1.2程序设计语言的发展3.高级语言

用高级语言编写的程序称为高级语言源程序,也不能直接执行,必须经过语言处理程序的解释或编译后才能执行。10.1程序与程序设计1310.1.2程序设计语言的发展4.非过程化的程序语言

人们称高级语言是第3代语言,其特点是面向过程。面向过程是指用户在程序中不但要说明解决什么问题,还要告诉计算机如何去解决。计算机技术的发展要求新一代的计算机语言能够根据用户说明的问题,智能化的去自动寻找解决方案,具有这种功能的语言称为第4代语言(Fourth-GenerationLanguage,4GL)。目前4GL尚未发展成熟,主要面向基于数据库应用的领域(SQL),还不适用于科学计算、高速实时系统和系统软件等的开发。10.1程序与程序设计1410.1.3常见的程序设计语言

第一个高级程序设计语言是FORTRAN语言,它是由美国IBM公司在20世纪50年代开发出来的。之后,随着计算机应用的发展,先后出现了COBOL、BASIC、PASCAL、C、C++、Java等高级语言。1.FORTRAN语言

由美国著名的计算机先驱人物约翰·巴克斯(JohnWamer)于1954年提出。FOUTRAN是FORmulaTRANslator的缩写,意思是“公式翻译机”。顾名思义,该语言主要用于科学计算。FORTRAN自推出之日起,版本不断更新,功能不断增强,目前在工程应用领域,FORTRAN仍然被广泛使用。10.1程序与程序设计1510.1.3常见的程序设计语言2.COBOL语言

COBOL(COmmonBusinessOrientedLanguage,通用事务处理语言)是在美国国防部推动下,由政府机构和工业界联合开发的一种语言,于1960年正式推出,主要用于商业数据处理。

COBOL语言曾经使用非常广泛,20世纪70年代近一半的程序是用COBOL语言编写的。当前,在商业领域,COBOL语言仍然占有重要席位。10.1程序与程序设计1610.1.3常见的程序设计语言3.BASIC语言

BASIC(Beginner’sAll-purposeSymbolicInstructionCode,初学者的通用符号指令代码)是1964年由美国的JohnG.Kemeny和ThomasE.Kurtz在FORTRAN语言的基础上开发的。由于简单易学,BASIC语言得到了广泛普及。Microsoft公司对BASIC可谓是一往情深,从早期微型机上内置的BASIC,到80年代产生的第一个编译版本QuickBASIC,直到目前非常流行的VisualBasic,一直没有中断过对BASIC语言的的改进。

最新出现的VisualBasic.NET,是采用Microsoft的.NET技术的VisualBasic语言。

10.1程序与程序设计1710.1.3常见的程序设计语言4.PASCAL语言

PASCAL是由瑞士计算机科学家NiklausWirth设计的一种语言,1968年提出后被全世界广泛接受。这个语言的名字是为了纪念著名的法国数学家,也是计算科学的先驱BlaisePascal而起的。由于结构小巧、语法严谨、数据类型丰富,从20世纪70年代末往后的很长一段时间里,PASCAL成为世界范围的计算机专业教学语言。

20世纪80年代,随着C语言的流行,PASCAL走向了衰落。目前,在商业上仅有Borland公司仍在开发基于PASCAL语言系统的Delphi,它使用了面向对象与软件组件的概念,主要用于开发商用软件。

10.1程序与程序设计1810.1.3常见的程序设计语言5.C与C++语言

C是由美国贝尔实验室的KennetL.Thompson和DennisM.Ritchie于1972年设计开发的,当时主要用于编写UNIX操作系统。后来由于其功能丰富、使用灵活、执行速度快、可移植性强,迅速成为最广泛使用的程序设计语言之一。

C语言既可以用来开发系统软件,也可以用来开发应用软件,应用领域很广泛。例如,在中国广泛使用的计算机辅助设计软件AutoCAD、数学软件系统Mathematica等,以及许多语言编译系统本身,其软件系统的全部或部分都是用C语言开发的。C语言已经成为最重要的软件系统开发语言之一。10.1程序与程序设计1910.1.3常见的程序设计语言5.C与C++语言

1980年,贝尔实验室的BjarneStroustrup对C语言进行了扩充,加入了面向对象的概念,并于1983年改名为C++。目前,C++已经成为应用最广的面向对象程序设计语言。Microsoft公司的VisualC++和Borland公司的C++Builder是C++语言最常用的开发工具,利用这些开发工具,可以高效率的开发出复杂的Windows应用程序。

最新出现的C#语言使用了C++的语法和语义,是基于Microsoft公司推出的新一代软件开发环境.NET平台的高级程序设计语言。10.1程序与程序设计2010.1.3常见的程序设计语言6.Java语言

Java是Sun公司开发的一种跨平台的网络编程语言,于1995年正式发布。其语言风格与C++接近,但舍弃了C++中一些不常用或容易被误用的成分,如指针等。

Java语言最主要的特点是,同一个Java程序不用重新编译就可以在不同平台的计算机上运行。Java在网络上的独特优势以及其跨平台的特点,使得它已经成为Internet上最受欢迎的编程语言之一。10.1程序与程序设计2110.1.3常见的程序设计语言7.网页设计类语言

目前,最常用的3种动态网页设计语言有ASP(ActiveServerPages)、JSP(JavaServerPages)、PHP(HypertextPreprocessor)。三者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。

ASP是一个Web服务器端的开发环境,利用它可以产生和执行动态的、互动的、高性能的Web服务应用程序。ASP支持VBScript、JScript等脚本语言。JSP是用Java语言作为脚本语言的,并可以在Servlet和JavaBean的支持下,完成功能强大的站点程序。

PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C、Java和Perl语言的语法,并融合PHP自己的特性,使Web开发者能够快速地写出动态生成页面。10.1程序与程序设计2210.2算法算法的基本概念31算法的特征32算法的表示方法33算法的评价34常用算法★352310.2算法10.2.1算法的基本概念广义的说,为解决一个问题而采取的方法和步骤,就称为“算法”。本书所关心的当然只限于“计算机算法”。所谓的计算机算法就是使用计算机来解决一个问题时所采取的特定方法和步骤。2410.2算法10.2.1算法的基本概念例如,要求出1+2+3+…+100的和,可设计如下的计算机算法。设两个变量:一个变量sum用来存放求和的结果,另一个变量i用来存放每次被加的数值;

S1:使0=>sum;S2:使1=>i;

S3:使i的值累加到sum中,即sum+i=>sum;

S4:使i的值加1,i+1=>i;

S5:如果i<=100,返回S3继续执行;否则,算法结束。最后得到的sum的值就是要求的和。2510.2算法10.2.1算法的基本概念算法设计完成后,用某种程序设计语言描述出来就是计算机程序了。

算法与程序设计语言及程序的关系如图所示。

2610.2.2算法的特征1.确定性算法的描述必须无歧义,以保证算法的执行结果是确定的。

2.可行性

算法中的每一步操作都必须是可执行的,也就是说算法中每一步都能通过手工或机器在有限时间内完成。

3.输入

一个算法有0个或多个输入,在算法运算开始之前给出算法所需数据的初值,这些输入取自特定的对象集合。4.输出

作为算法运算的结果,一个算法产生一个或多个输出,输出是同输入有某种特定关系的量。5.有穷性

一个算法总是在执行了有穷步的运算后终止,即该算法是可达的。10.2算法2710.2算法10.2.3算法的表示方法算法有很多种表示方法,常用的有自然语言、流程图、N-S图、伪代码等。

1.自然语言用人们日常使用的语言,即自然语言来描述算法通俗易懂,但存在以下缺陷:

(1)易产生歧义,往往要根据上下文才能判别其确切含义;

(2)语句繁琐、冗长,尤其是描述包含选择和循环的算法时,不太方便。因此,一般不用自然语言来描述算法,除非是很简单的问题。2810.2算法10.2.3算法的表示方法2.流程图流程图是用如图所示的一些图框、线条以及文字说明来描述算法。

流程图表示的算法形象、直观,便于交流。因此被广泛使用。2910.2算法流程图顺序结构入口分支结构循环结构P条件,A语句1,B语句2出口AB出口入口nPAByP当型出口入口nyA直到型P出口入口nyA30真假要求出1+2+3+…+100的和开始结束0→s1→i输出si<=100s+i→si+1→i3110.2算法10.2.3算法的表示方法3.N-S图

N-S图是一种简化的流程图,去掉了流程图中的流程线,全部算法写在一个矩形框内。N-S图三种基本结构——顺序结构、选择结构、循环结构的符号如图所示。

N-S图表示算法直观、形象,且比流程图紧凑易画。实际应用中也经常采用。3210.2算法10.2.3算法的表示方法4.伪代码

用流程图和N-S图表示算法直观易懂,但画起来比较费事,尤其当设计一个复杂算法并需要反复修改时,就更加麻烦。为了设计算法时方便,常用一种称为伪代码的工具。所谓“伪代码”就是用介于自然语言和计算机语言之间的文字和符号来描述算法。伪意味着假,因此用伪代码写的算法是一种假代码——不能被计算机所理解,但便于转换成某种语言编写的计算机程序。用伪代码写算法并无固定的、严格的语法规则,只要意思表达清楚,书写格式清晰易读即可。3310.2.4算法的评价1.正确性:无歧义,四个含义:

a.程序不含语法错误;

b.程序对几组输入的数据能够得出满足规格说明要求的结果;

c.程序对于精心选择的典型、苛刻而带有刁难性的几组数据能够得出满足规格说明要求的结果;

d.程序对于一切合法的输入数据都能产生满足规格说明要求的结果。达到d层的正确性极为困难,一般以c层作为正确性的衡量标准。2.可读性:有助于对算法的阅读、交流、理解、调试和修改。3.健壮性:对非法输入数据,能适当作出反映或进行处理。4.效率与低存储量要求:时间复杂度和空间复杂度10.2算法3410.2算法10.2.4算法的评价时间复杂度:是从算法效率的角度来考虑的,指依据算法编写出的程序在计算机上运行所消耗的时间。常常从算法中选取一种基本操作,以该基本操作重复执行的次数作为算法的时间复杂度。空间复杂度:指依据算法编写出的程序在计算机上运行时所占存储空间的大小。通常也用算法所占辅助存储空间大小的数量级来表示算法的空间复杂度。

3510.2算法10.2.5常用算法1.交换两个变量的值

引例:设有两个杯子A和B,分别盛放酒和醋,要求将它们互换。S1:C←AS2:A←BS3:B←C3610.2算法10.2.5常用算法1.交换两个变量的值

已知变量x和y中分别存放了数据,现在要交换其中的数据。为了达到交换的目的,需要引进一个中间变量m(每个变量代表着一块内存区域),其算法如下:①将x中的数据送给变量m,即x→m;②将y中的数据送给变量x,即y→x;③将m中的数据送给变量y,即m→y。自然语言描述算法37开始结束输入x,yx→my→xm→y输出x,y开始输入x,yx→my→xm→y输出x,y结束流程图NS流程图3810.2算法10.2.5常用算法2.累加和累乘

累加和累乘是程序设计常用的算法,累加是指将数值不断的累加到累加器上,如前面所介绍的1+2+3+…+100。累加器,存放累加和的变量。sum+xsum=sum+x累加器,sum为累加器变量3910.2算法10.2.5常用算法2.累加和累乘

例:5+10+15+…+100请同学们讨论有多少种算法?算法1、直接赋值。如右图注意:实际编程时,省略号也必须换成数字,显然本例中只有20个数字累加,还可以用这种方法,如果有几万个数字累加,这种方法就没有办法实现。4010.2算法10.2.5常用算法2.累加和累乘

例:5+10+15+…+100请同学们讨论有多少种算法?算法2、使用公式。(5+100)+(10+95)+(15+90)+…+(50+55)

=105*10注意:本例中,根据数字规律可以使用上面的公式。但不具有通用性。4110.2算法10.2.5常用算法算法3、使用累加。使用循环变量i,取5~100之间的数字,步长为5。5*(1+2+3+…+20),循环变量i,取1~20之间的数字,步长为1请看右图。真假4210.2算法10.2.5常用算法算法3、使用累加。使用循环变量i,取5~100之间的数字,步长为5。5*(1+2+3+…+20),循环变量i,取1~20之间的数字,步长为1请看右图。真假4310.2算法10.2.5常用算法算法4、使用枚举。使循环变量i取1~100之间的每个整数,步长为1。

在循环中只有当i是5的倍数时才将i累加到S中。请看右图,这种方法的通用性最好。真真假假4410.2算法10.2.5常用算法3.枚举法(穷举法或试凑法)

1.根据条件确定答案的范围,利用循环将范围内所有可能的情况一一列出。2.对所有可能的情况逐一验证。若某个情况符合条件,则为一个解;若全部情况均不符合条件,则问题无解。4510.2算法10.2.5常用算法3.枚举法(穷举法或试凑法)

1.m的因子范围为1-m之间的整数。2.设置变量i取1-m之间的每个整数,对i的每个取值进行判断。例:显示出正整数m的所有因子。真假假真4610.2算法10.2.5常用算法3.枚举法(穷举法或试凑法)

1.m和n最大公约数的范围为n~1之间的整数。2.设置变量i从n开始向1变化,当找到第一个能够同时整除m和n的数,即是m、n最大公约数。例:显示出正整数m和n的最大公约数(m>=n)。真假假真4710.2算法10.2.5常用算法4.递推法(迭代法)

从初值出发,归纳出新值与旧值间的关系,利用循环来完成迭代,每次循环时都从旧值的基础上递推出新值,并由新值代替旧值。例:猴子吃桃子问题。小猴有桃若干,每天吃掉现有数的一半多一个,到第7天要吃时只剩下一个了,问小猴原有桃子多少个?设第n天的桃子为xn,它是前一天的桃子数的一半少1个,递推公式xn-1=(xn+1)×24810.2算法10.2.5常用算法4.递推法(迭代法)

4910.2算法10.2.5常用算法5.求最值

如果要求最大值,在n个数中先假设第1个数为最大值并存入变量max,用变量max依次同第2、3、…、n个数据逐一比较,一旦某个数比max大,则用这个数来替换max中原有的值,所有数比较完,最大值也就获得(打擂法)。5010.2算法10.2.5常用算法5.求最值

例:输入三个数,输出其中的最大值。5110.2算法10.2.5常用算法5.求最值

例:输入n个数,输出其中的最小值。52VisualBasic入门第二讲1.VB简介2.VB安装与启动3.VB的编程环境4.VB应用程序设计的基本步骤531.VB的发展2.VB的特点1.VB简介VisualBasic是Microsoft公司于1991年在BASIC语言基础上开发出的新一代的、面向对象的、可视化的、以事件驱动为运行机制的程序设计语言。1992年至1997年,陆续推出2.0版、3.0版、4.0版、5.0版。1998年,推出了VisualBasic6.0版。Windows2000成功推出后,Microsoft公司又推出了功能更强的版本VB.net。541.VB的发展2.VB的特点可视化的编程面向对象的程序设计事件驱动的编程机制结构化程序设计语言强大的数据库访问能力1.VB简介551.VB的安装2.VB的启动2.

VB的安装与启动3.VB的退出1.安装要求硬件要求:586以上CPU,16MB以上内存,100MB以上硬盘等。软件要求:Windows95/98/2000/XP或WindowsNT。2.安装安装步骤:将光盘插入光驱,根据安装程序的提示,逐一回答问题,如接受协议、输入序列号、单击“下一步”等,即可完成安装。

VisualBasic6.0的联机帮助文件使用MSDN(MicrosoftDeveloperNetworkLibrary)文档的帮助方式,与VB6.0系统不在同一CD盘上,而与“VisualStudio6.0”产品的帮助集合在两张CD盘上,在安装过程中系统会提示插入MSDN盘。561.VB的安装2.VB的启动3.VB的退出启动运行VisualBasic有以下三种启动方式:1.通过“开始”按钮单击桌面上的“开始”/“程序”菜单,然后打开“MicrosoftVisualStudio6.0中文版”子菜单中的“MicrosoftVisualBasic6.0中文版”程序,即可启动VB6.0。2.利用快捷方式若桌面上有VB6.0的快捷图标,双击快捷图标也可启动VB6.0。3.利用运行命令可以在“开始”菜单的运行对话框中输入如下命令来启动VB6.0。

C:\ProgramFiles\MicrosoftVisualStudio\VB98\VB6.exe2.

VB的安装与启动571.VB的安装2.VB的启动3.VB的退出退出

1.菜单文件/退出方式;

2.标题栏关闭按钮方式;

3.快捷键Alt+F4方式。2.

VB的安装与启动581.主窗口3.VB的编程环境1.主窗口:是设计者的工作环境,由标题栏、菜单栏和工具栏组成,还包含各功能窗口。2.属性窗口:所有窗体或控件的属性设置。3.代码窗口:编辑窗体、标准模块的代码。4.工程资源管理器窗口:保存应用程序所有文件。5.立即窗口:为调试应用程序而设置的。6.窗体(form)窗口:设计VB程序的界面。7.工具箱窗口:供用户在窗体上设计的各种控件的制作工具。2.属性窗口3.代码窗口4.工程资源管理器窗口7.工具箱窗口5.立即窗口6.窗体布局窗口591.主窗口:启动VB进入“新建工程”窗口,选择“标准EXE”,打开主窗口。其他窗口包含在其中1.主窗口2.属性窗口3.代码窗口4.工程资源管理器窗口7.工具箱窗口5.立即窗口6.窗体布局窗口3.VB的编程环境601.主窗口2.属性窗口3.代码窗口4.工程资源管理器窗口7.工具箱窗口5.立即窗口6.窗体布局窗口标题栏菜单栏工具栏窗体窗口代码窗口窗体布局窗口属性窗口工程资源管理窗口立即窗口工具箱窗口3.VB的编程环境61标准工具栏添加标准工程添加窗体菜单编辑器打开工程保存工程剪切复制粘贴查找撤消重复启动工程结束工程中断工程工程资源管理器属性窗口窗体布局窗口对象浏览器工具箱数据视图窗口控件管理器1.主窗口2.属性窗口3.代码窗口4.工程资源管理器窗口7.工具箱窗口5.立即窗口6.窗体布局窗口3.VB的编程环境62对象列表框属性显示排列方式属性列表框属性解释框属性名属性值属性窗口1.主窗口2.属性窗口3.代码窗口4.工程资源管理器窗口7.工具箱窗口5.立即窗口6.窗体布局窗口3.VB的编程环境63代码窗口对象列表框代码框过程查看按钮过程列表框全模块查看按钮事件过程模板1.主窗口2.属性窗口3.代码窗口4.工程资源管理器窗口7.工具箱窗口5.立即窗口6.窗体布局窗口3.VB的编程环境64工程资源管理器窗口查看代码折叠按钮展开按钮切换文件夹查看对象工程文件名窗体文件名1.主窗口2.属性窗口3.代码窗口4.工程资源管理器窗口7.工具箱窗口5.立即窗口6.窗体布局窗口3.VB的编程环境65立即窗

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论