程序设计语言基础.doc

上传人:re****.1 文档编号:560783739 上传时间:2023-05-21 格式:DOC 页数:21 大小:1,017.50KB
返回 下载 相关 举报
程序设计语言基础.doc_第1页
第1页 / 共21页
程序设计语言基础.doc_第2页
第2页 / 共21页
程序设计语言基础.doc_第3页
第3页 / 共21页
程序设计语言基础.doc_第4页
第4页 / 共21页
程序设计语言基础.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《程序设计语言基础.doc》由会员分享,可在线阅读,更多相关《程序设计语言基础.doc(21页珍藏版)》请在金锄头文库上搜索。

1、程序设计语言基础先来认识一下程序,要使计算机能完成人们预定的工作,就必须把要完成工作的具体步骤编写成计算机能执行的一条条指令,计算机执行这些指令序列后,就能完成指定的功能,这样的指令序列就是程序。简单地说,程序是能完成一定功能的指令序列。要想学会编写程序,首先要学习能提供指令的程序设计语言;其次要学习更多和程序设计有关的知识和技巧,就好像认识许多字不一定能写出好文章一样,仅仅学习了程序设计语言还不能编写出好的程序。程序的功能一般是指其处理数据的能力,所以一个程序包括以下两个方面的内容。(1)对数据的描述。在程序中要指定处理数据的类型和组织形式,即数据结构(data structure)。(2)

2、对操作的描述。即操作步骤,也就是算法(algorithm)。数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。作为程序设计人员,必须认真考虑和设计数据结构与操作步骤(即算法)。因此,著名计算机科学家沃思(Nikiklaus Wirth)提出一个公式:程序=数据结构+算法当然这些要素都离不开一个与计算机交互的平台语言工具和环境。因此,可以这样表示程序:程序=算法+数据结构+语言工具和环境算法是程序的灵魂,是解决问题所需要采用的合适方法,决定程序“做什么”和“怎么做”;数据结构是加工对象的组织方式;程序设计语言是程序设计的工具和环境。大家更熟悉的一个词可能是“软件”,软件是具有一

3、定综合功能的程序、数据及相关文档的集合。只有打好程序设计的基本功,并掌握一定的软件开发技术后,才有可能去开发具有实用性的软件。1.1 引 言1.1.1 程序设计语言及其分类1什么是程序设计语言?其功能又如何“程序设计语言是一种指挥机器的工具?一种程序员之间交流的方式?一种表述高层设计的媒介?一种算法的记述方式?一种表述观念间关系的途径?一种试验工具?一种控制计算机化的设备的途径?我的观点是,一种通用程序设计语言必须是所有这些东西,这样才能服务于它缤纷繁杂的用户集合。”这是Stroustrup1994 对程序设计语言的论述。程序设计语言是一种记法,它们被用做计算过程的描述、组织和推导。发明它的目

4、的就是为了使机器更容易使用。程序设计语言是计算机软件中非常独特的一部分,它属于系统软件,但又和应用软件息息相关。它的作用是使人类能够用某些命令、指令去让计算机为人类进行数值、逻辑运算。2程序设计语言可以按对硬件依赖的程度分类人们把程序设计语言按其与计算机硬件依赖的程度分为低级语言和高级语言。低级语言包括机器语言和汇编语言。机器语言就是一台机器本身的语言,是这台机器可以直接响应的指令的记述形式,是唯一可以被计算机直接执行的语言。面向机器程序语言的指令由许多的0、1组成,一条计算机指令指示计算机一次完成一个最基本的操作。由于这种语言编写的程序冗长、可读性差、移植性差,容易出错,晦涩难懂,是一般人所

5、无法接受的语言。但这样的程序冗余小,执行效率高,节省内存,运行速度快,所以一般用于直接控制计算机的硬件。为了克服机器语言的缺点,汇编语言应运而生。汇编语言是机器语言的一种变形,它是将机器指令助记成为可读易懂的符号,但仍只能完成机器层次的操作。用汇编语言编写的程序要在计算机上执行,先要将用汇编语言编写的源程序转换成机器语言程序,完成这个转换功能的程序称为“汇编程序”。低级语言的缺点是:指令功能简单,即使完成一个算术表达式的运算也需编写大段程序,而且需要对硬件进行了解,完成的程序不具有可移植性。低级语言的优点是:执行速度快,可直接控制硬件,适用于实时性要求较高的自动控制系统。为了克服以上两种语言的

6、缺陷,产生了许多高级语言。高级语言的共同特点是:完全不依赖于硬件,是接近于自然语言(当然是英语)记法的程序设计语言。其基本构成是语句,而语句的功能要比机器语言指令的功能强大得多,另外还提供了丰富的函数库。3程序设计语言还可以按其采用的范型分类(1)面向过程的语言 面向过程的语言虽可独立于计算机编写程序,但用这类语言编写程序时,程序不仅要说明做什么,更重要的是要非常详细地告诉计算机如何做,程序需要详细描述解题的过程和细节。(2)面向问题的语言不必关心问题的求解算法和求解的过程,只需指出问题是做什么,数据的输入和输出形式,就能得到所需结果。面向问题语言又称为非过程化语言或陈述性语言,如报表语言、S

7、QL(Structured Query Language)语言等。SQL语言是数据库查询和操纵语言,能直接使用数据库管理系统。使用面向问题语言解题只要告诉计算机做什么,不必告诉计算机如 何做。(3)面向对象的语言为克服面向过程语言过分强调求解过程的细节,程序不易复用的缺点,产生了面向对象程序设计方法和面向对象语言。面向对象语言引入了对象、消息、类、继承、封装、抽象和多态性等机制和概念。用面向对象语言进行程序设计时,以问题域中的对象为基础,将具有类似性质的对象抽象成类,并利用继承机制,仅对差异进行程序设计,可以提高软件开发效率。4其他分类方式按应用领域分类有人工智能程序设计语言(如lisp)、逻

8、辑推理程序设计语言(如Prolog)和系统程序设计语言(如C语言)。命令式程序设计语言,由于其适用性强、应用范围广、语句简捷、灵活而得到广泛的使用,如Pascal、Basic、Fortran和C等都属于这类语言。程序设计初学者一般首先学习的就是命令式程序设计语言。程序设计语言只是程序设计的工具,通过对一种程序设计语言的学习,掌握了程序设计的思想方法后是可以触类旁通的。1.1.2 程序的执行高级程序设计语言接近于自然语言,用其编写的程序对人而言可读性是增强了,但其实现是靠机器来完成的,因此机器与高级程序之间需要一个“翻译”就是要把高级语言转化为机器能读懂的指令。就像现实中的翻译有口译(同声翻译)

9、和笔译两种形式一样,程序的翻译也有两种方式:解释和编译。解释就像口译一样,解释一句执行一句,不保留翻译结果;编译和笔译一样,是把一个程序全部翻译并保存翻译结果,以后机器直接运行的是翻译后的结果。用高级程序设计语言编写的程序称为源程序;经编译生成后的机器可识别的程序称为目标程序;最后经过对目标程序进行链接(详见3.2.3节),生成的是可脱离编译环境,在操作系统下执行的程序称为可执行程序。多数高级程序设计语言采用编译方式,也有的高级程序设计语言,既可以是解释方式,也可以是编译方式。C语言采用的是编译方式。目前流行的C语言编译系统有以下几个版本。 Microsoft C(或称MS C) Borlan

10、d Turbo C(或称Turbo C) AT&T C这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充。本书主要针对其标准(共同)的部分,以Turbo C为例进行讲解。附录C、附录D中以Turbo C为例,介绍了程序设计环境和函数库。高级语言系统不仅提供编译功能,还有很好的编程环境。在该环境下,可以对程序进行编辑、编译、链接、调试和运行等工作(详见附录D)。还提供了将编译、链接和运行三项工作集成完成的命令(或菜单),Turbo C对编辑好的源程序只需单击菜单RUN,就对程序进行编译、链接和运行的全部工作。这在方便编程人员的同时,容易让人误解,以为编辑好的程序可以直接运行

11、。程序需要先编译再运行这个基本常识,可以使读者对程序设计语言的某些语法现象有深入的了解,必须引起注意。1.2 数据及其类型前面已经讨论过程序的主要功能就是处理数据,那么C语言能够处理哪些类型的数据?又是如何表示它们的?下面进行介绍。1.2.1 数据类型首先介绍C程序设计语言中,可以存储和处理的数据类型,如图1-1所示。图1-1 数据类型1.2.2 数据类型的作用通过数据类型的定义,决定了该类型数据的存储空间的大小和存储方式,进而决定了该类数据的取值范围和精度。另外,数据类型还决定了数据运算(操作)的规则,这一点在1.2.3节介绍运算符时会予以详细说明。不同类型数据的取值范围如下。表1-1 整

12、数 表数据类型描述符占用字节数取 值 范 围有符号整数短intshort int232768+32767长longlong int421474836482147483647无符号整数短unsignedunsigned intunsigned short2065535长unsigned long404294967295表1-2 实 数 表单精度实型float4(3.4e383.4e+38)6位精度双精度实型double8(1.7e3081.7e+308)16位精度【注意事项】(1)当计算结果超出范围时,其他高级程序设计语言,输出的结果以“*”代表,提示程序设计人员改写程序中的数据类型。而C语言的

13、输出方式,不容易发现这类错误,因为它输出的是溢出以后(忽略超过存储空间的进位)的数据结果,例:执行int a=32767; b=a+1; printf (%d,b); 的输出为32768。显然输出的结果与真实结果完全背离,因此,读者在编程时一定要认真分析实际问题中数据可能的范围,并依此来选择数据类型。(2)对于实型数据除了有数据范围的限制,还有精度的概念。对正常范围的整型数据计算机是精确存储的,但对实型数据计算机就不能精确存储了。虽然float实型数据范围是(3.4e383.4e+38),但计算机认为:1234567(f)等于1234566(f)、1e7等于0、0.1234567等于0.123

14、4568这就是表1-2中所描述的6位精度。这同样是由于存储空间有限造成的。(3)数据类型还决定了数据运算,如一般语言都限定只对整数进行求余运算,C语言对整数的求余运行符为“%”,另外C语言还提供了对实型数据求余的函数fmod(x,y)。(4)C语言支持不同类型数据的混合运算,运算结果类型由参与运算的数据决定。C语言规定同类型数据运算结果类型不变,如整数与整数运算的结果一定是整数,所以4/5的运算结果为0。不同类型数据运算时,运算结果取高一级的数据类型(图1-1中自上而下,类型由低到高)。算式1/2*2.22的值为0,而非1.11;而1.0/2*2.22的值才为1.11。1.2.3 数据表示常量

15、、变量数据一般以常量(或符号常量)和变量两种基本的形式在程序中出现。1常量常量是在程序运行过程中不可改变的量,其类型根据其书写形式和范围决定。(1)整型常量(常量后缀:L或l表示长整型数、U或u表示无符号数) 十进制整数(基本数字09):110、456、139L、32769U和233445(为长整 型)等。 八进制整数(基本数字07,以0打头):037、010L、026和0776等。 十六进制整数(基本数字09,而1015记为AF,以0X打头):0X331、0X、0X3AC0和0XAF等。(2)实型常量(常量后缀:F或f表示浮点数)实型也称为浮点型。实型常量也称为实数或者浮点数。在C语言中,实数只采用十进制。它有十进制小数形式和指数形式两种形式。 十进制小数形式:由数码09和小数点组成(后缀为“f”或“F”即表示该数为浮点数)。例如:0.0、25.0、5.789、0.13、5.0、300、-267.8230、234F、67f等均为合法的实数。 指数形式:由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号