当前位置:K88软件开发文章中心编程语言C/C++C/C++01 → 文章内容

1.1 程序与程序语言

减小字体 增大字体 作者:佚名  来源:翔宇亭IT乐园  发布时间:2019-1-3 0:07:05

:2010-03-20 14:14:00

随着科学技术的迅猛发展,计算机技术日新月异,计算机程序设计语言也层出不穷。那么,什么是程序语言,什么是程序设计?应该学哪一种程序语言,如何进行程序设计?这些都是程序设计初学者首先遇到的问题,也是程序设计的基本问题、共性问题。

不论是什么样的计算机语言,其程序设计的基本方法是相同的。本书作为程序设计的入门教材,将以C语言程序设计为主线,介绍程序设计的基本概念和基本方法,讲述C语言的语法规则和实用的C程序设计技术。作为全书的开篇,本章就程序设计的基本知识作概括性讨论,重点介绍算法的概念、特征、设计算法的方法和策略、流程图的表示和结构化程序设计方法等内容。需要说明的是,有些概念和方法要随着后续各章的深入学习才会有深刻的理解,不必在一时不懂的问题上停滞不前。

1.1.1 程序与程序语言

1.计算机语言

什么是计算机语言?为什么要使用计算机语言?过去,一提到语言这个词,人们自然想到的是像英语、汉语等这样的自然语言,因为它是人和人相互交流信息不可缺少的工具。而今天,计算机遍布了我们生活的每一个角落,除了人和人之间的相互交流之外,我们必须和计算机交流。用什么样的方式和计算机做最直接的交流呢?人们自然想到的是最古老也最方便的方式--语言。人和人交流用的是双方都能听懂和读懂的自然语言,同样,人和计算机交流也要用人和计算机都容易接受和理解的语言,这就是计算机语言。人们用自然语言讲述和书写,目的是给另外的人传播信息。同样,我们使用计算机语言把我们的意图表达给计算机,目的是使用计算机。

计算机语言是根据计算机的特点而编制的,它没有自然语言那么丰富多样,而只是有限规则的集合,所以它简单易学。但是,也正因为它是根据机器的特点编制的,所以交流中无法意会和言传,而更多地表现了说一不二, 表现了"规则"的严谨。例如该是";"的地方不能写成".",该写"a"的地方不能写成"A",这使得人和计算机的交流在一开始会有些不习惯。不过,只要认识到计算机语言的特点,注意学习方法,把必须的严谨和恰当的灵活相结合,一切都会得心应手。

2.程序

我们知道,计算机是一种具有内部存储能力的自动、高效的电子设备,它最本质的使命就是执行指令所规定的操作。如果我们需要计算机完成什么工作,只要将其步骤用诸条指令的形式描述出来,并把这些指令 存放在计算机的内部存储器中,需要结果时就向计算机发出一个简单的ming令,计算机就会自动逐条顺序执行操作,全部指令执行完就得到了预期的结果。这种可以被连续执行的一条条指令的集合称为计算机的程序。也就是说,程序是计算机指令的序列,编制程序的工作就是为计算机安排指令序列。

但是,我们知道,指令是二进制编码,用它编制程序既难记忆,又难掌握,所以,计算机工作者就研制出了各种计算机能够懂得、人们又方便使用的计算机语言,程序就是用计算机语言来编写的。因此,计算机语言通常被称为"程序语言",一个计算机程序总是用某种程序语言书写的。

3.程序语言的发展

程序语言的产生和发展,直接推动了计算机的普及和应用。自第一个高级语言问世以来,人们已发明了上千种程序语言,常用的也有上百种。这些语言之间有什么区别,我们应该学习哪一种?

计算机语言按使用方式和功能别可分为低级语言和高级语言。低级语言包括机器语言和汇编语言。机器语言就是计算机指令的集合,它与计算机同时诞生,是第一代的计算机语言;汇编语言是用符号来表示计算机指令,被称为第二代语言。机器语言和汇编语言都是围绕特定的计算机或计算机族而设计的,是面向计算机的语言。要使用这种语言必须了解计算机的内部结构,而且难学、难写、难记忆,把这种语言称为低级语言。因为低级语言是难以普及应用的,为此便产生了第三代语言--高级语言。它采用了完全符号化的描述形式,用类似自然语言的形式描述对问题的处理过程,用数学表达式的形式描述对数据的计算过程。可见,高级语言只是要求人们向计算机描述问题的求解过程,而不关心计算机的内部结构,所以把高级语言称为"面向过程语言",它易于被人们理解和接受。典型的面向过程语言有BASIC、FORTRAN、COBOL、C、Pascal等等。

随着计算机技术的迅猛发展,自从80年代以来,众多的第四代非过程化语言、第五代智能化语言也竞相推出。如果说第三代语言要求人们告诉计算机怎么做,那么第四代语言只要求人们告诉计算机做什么。因此,人们称第四代语言是"面向对象语言"。面向对象概念的提出是相对于"面向过程"的一次革命,面向对象技术在系统程序设计、多媒体应用、数据库等诸多领域得到广泛应用。但是,"面向过程"是程序设计的基础,尤其对于程序设计的初学者。所以,我们将以面向过程的C程序设计语言为背景,主要介绍程序设计的基本概念和方法。在本书最后一章中,我们将结合Visual C++ 6.0,介绍面向对象程序设计语言的基本概念和初步使用。

:2010-03-20 14:14:00

1.1.2 程序设计

什么是程序设计呢?在日常生活中我们可以看到,同一台计算机,有时可以画图,有时可以制表、有时可以玩游戏,诸如此类,不一而举。也就是说,尽管计算机本身只是一种现代化方式批量生产出来的通用机器,但是,使用不同的程序,计算机就可以处理不同的问题。今天,计算机之所以能够产生如此之大的影响,其原因不仅在于人们发明了机器本身,更重要的是人们为计算机开发出了不计其数的能够指挥计算机完成各种各样工作的程序。正是这些功能丰富的程序给了计算机无尽的生命力,它们正是程序设计工作的结晶。而程序设计就是用某种程序语言编写这些程序的过程。

更确切地说,所谓程序,是用计算机语言对所要解决的问题中的数据以及处理问题的方法和步骤所做的完整而准确的描述,这个描述的过程就称为程序设计。对数据的描述就是指明数据结构形式;对处理方法和步骤的描述也就是下一节我们要讨论的算法问题。因而,数据结构与算法是程序设计过程中密切相关的两个方面。曾经发明Pascal语言的著名计算机科学家N Niklaus Wirth教授关于程序提出了著名公式:程序 数据结构 算法。这个公式说明了程序设计的主要任务。但是在本书中,我们并没有以数据结构和算法为主展开讨论,因为本教材的主题是介绍用C语言进行编程。关于数据结构有专门的课程和教材,关于算法的问题我们在下一节给出初步的介绍。

对于程序设计的初学者来说,首先要学会设计一个正确的程序。一个正确的程序,通常包括两个含义:一是书写正确,二是结果正确。书写正确是指程序在语法上正确,符合程序语言的规则;而结果正确通常是指对应于正确的输入,程序能产生所期望的输出,符合使用者对程序功能的要求。程序设计的基本目标是编制出正确的程序,但这仅仅是程序设计的最低要求。一个优秀的程序员,除了程序的正确性以外,更要注重程序的高质量。所谓高质量是指程序具有良好的结构、可读性好、可靠性高、便于维护等一系列特点。毫无疑问,无论是一个正确的程序,还是一个高质量的程序,都需要设计才能使之达到预期的目标。

那么,如何进行程序设计呢?一个简单的程序设计一般包含以下四个步骤:
  (1) 分析问题,建立数学模型。使用计算机解决具体问题时,首先要对问题进行充分的分析,确定问题是什么,解决问题的步骤又是什么。针对所要解决的问题,找出已知的数据和条件,确定所需的输入、处理及输出对象。将解题过程归纳为一系列的数学表达式,建立各种量之间的关系,即建立起解决问题的数学模型。需要注意的是,有许多问题的数学模型是显然的或者简单的,以致于我们没有感觉到需要模型。但是有更多的问题需要靠分析问题来构造计算模型,模型的好与坏、对与错,在很大程度上决定了程序的正确性和复杂程度。
  (2) 确定数据结构和算法。根据建立的数学模型,对指定的输入数据和预期的输出结果,确定存放数据的数据结构。针对所建立的数学模型和确定的数据结构,选择合适的算法加以实现。注意,这里所说的"算法"泛指解决某一问题的方法和步骤,而不仅仅是指"计算"。关于算法的概念将在下一节中介绍。
  (3) 编制程序。根据确定的数据结构和算法,用自己所使用的程序语言把这个解决方案严ge地描述出来,也就是编写出程序代码。
  (4) 调试程序。在计算机上用实际的输入数据对编好的程序进行调试,分析所得到的运行结果,进行程序的测试和调整,直至获得预期的结果。
由此可见,一个完整的程序要涉及到四个方面的问题:数据结构、算法、编程语言和程序设计方法。这四个方面的知识都是程序设计人员所必须具备的,其中算法是至关重要的一个方面。关于数据结构和算法问题有专门的著作,本书的重点是介绍编程语言和程序设计方法。但是,如果我们对算法还一无所知,就无法进行基本的程序设计。因此,下面一节我们对算法的基本概念、基本设计和表示方法作初步介绍,目的是使初学者了解程序设计如何开始。


上一页  [1] [2] 


1.1 程序与程序语言