欢迎来到天天文库
浏览记录
ID:51494775
大小:1.15 MB
页数:29页
时间:2020-03-25
《程序设计基础.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第8章程序设计基础如前所述,计算机之所以能够处理复杂的任务,是因为其不仅具有功能完善的硬件,而更重要的是因为它具有丰富的软件,软件是由程序、数据和文档构成的。那么到底什么是程序?什么是语言?在具体应用中,如何将一个具体的问题转换为计算机可以识别并执行的程序呢?本章将就这些问题展开讨论。8.1程序设计语言8.1.1程序的基本概念1.程序程序是用计算机的语言描述解决某问题的方法和步骤,是完成一件事情的过程和顺序,是用有限条计算机语句组成的语句序列。【例8-1】利用C语言编写程序,计算2个数的和,程序如下。main()/*将程序定义成一个主函数*/{/*函数体用大括号括起
2、来*/inta,b,c;/*定义3个基本型整型变量*/a=7;/*加数赋初值为7*/b=8;/*被加数赋初值为8*/c=a+b;/*计算和*/printf(“c=%d,”,c);/*输出结果*/}/*函数体到此结束*/【例8-2】利用C语言编写程序,求2个数中的大数,程序如下。main()/*将程序定义成一个主函数*/{/*函数体用大括号括起来*/inta,b,max;/*定义3个基本型整型变量*/scanf(“%d%d”,&a,&b);/*输入2个数*/if(a>b)/*对2个数进行判断*/max=a;/*取大数a*/elsemax=b;/*取大数b*/print
3、f(“max=%d,”,max);/*输出大数*/}/*函数体到此结束*/【例8-3】利用C语言编写程序,计算1~100的累加和,程序如下。main()/*将程序定义成一个主函数*/{/*函数体用大括号括起来*/inti,s;/*定义2个基本型整型变量*/第8章程序设计基础161s=0;/*为s赋初值为0*/for(i=1;i<=100;i++)/*利用循环产生1~100之间的每一个数*/s=s+i;/*计算累加和*/printf(“s=%d,”,s);/*输出结果*/}/*函数体到此结束*/2.程序的内容由以上3个程序实例可以看出,一个程序应包括以下两个方面的内容
4、:①对数据的描述在程序中要指定数据的类型和数据的组织形式(数据在内存中的组织形式和数据自身的组织形式),即数据结构(DataStructure)。在上述程序中,第3行均属对数据的描述。②对操作的描述这是对操作方法和操作步骤的描述,也可以说是对“算法”(Algorithm)的描述。上述程序中从第4行开始到结束,均属对操作的描述。数据是操作的对象,操作的目的是对数据进行加工和处理,以得到期望的结果。著名计算机科学家沃思(NiklausWirth)曾把程序精辟地描述为程序=算法+数据结构8.1.2程序设计语言和语言处理程序计算机可执行的程序必须用计算机语言(程序设计语言)
5、表述。所谓计算机语言就是用户在使用计算机的过程中,用来与计算机进行人机对话、交流信息的一种特殊语言。在前面3个例子中,就使用了一种非常流行的C语言,其中“if-else;”和“for…;”等都是C语言的语句。程序设计语言约有百余种,最常用的也有10多种。一般分为以下3类。1.机器语言机器语言的指令是由0和1二进制代码按一定的规则组合而成的。每一条指令代码格式如图8-1所示。图8-1机器语言的指令代码格式如将17送到CPU内部的A累加器中,用机器语言指令可表示为如图8-2的形式。机器语言的优点是能被计算机硬件直接理解和执行,不需要翻译软件,占用空间少,效率高。但缺点也
6、是显而易见的,如编程工作量大,难学、难记,书写易出错,通用性差,且面向机器。2.汇编语言汇编语言采用英文助记符表示机器语言中用二进制代码表示的操作码和操作数,从而基本上消除了机器语言的缺点,相对于机器语言其难度有所下降,但仍然有通用性差和面向机器等缺点。162大学计算机基础如将17送到CPU内部的A累加器中,用汇编语言指令可表示为如图8-3的形式。图8-2机器语言指令示例图8-3汇编语言指令示例必须指出,用汇编语言编写的程序,计算机硬件不能直接理解和执行,需要翻译软件将其翻译成机器语言程序,其翻译和处理过程如图8-4所示。其中,“翻译程序”和“连接程序”统称为语言处
7、理程序。图8-4汇编或高级语言源程序的翻译与处理过程3.高级语言高级语言的指令称为语句,由表达各种意义的英文单词和数学公式按照一定的语法规则构成,接近于自然语言。它消除了机器语言的缺点,使得一般的用户容易学习和记忆,进而学会使用计算机。用户用高级语言编写程序,一般不需要直接与计算机的硬件打交道。如前面提到的“将17送到CPU内部的A累加器中”,用高级语言指令(语句)可简单地表示为“A=17”,即将17赋予A,但其中的“A”不再表示CPU内部的A累加器,而是表示内存变量。同样,用高级语言编写的程序,计算机硬件也不能直接理解和执行,需要语言处理程序将其翻译成机器语言
此文档下载收益归作者所有