第1章 概述

  1. 程序与程序设计。
    1. 程序。
      1. 从自然语言角度来说,程序是对解决某个问题的方法步骤的描述;从计算机角度来说,程序是用某种计算机能理解并执行的计算机语言描述解决问题的方法和步骤。
      2. 程序的特点是有始有终,每个步骤都能操作,所有步骤执行完后,问题便得到解决。
    2. 程序设计。
      1. 程序设计就是分析解决问题的方法步骤,并将其记录下来的过程。从自然语言角度来说,就是用自然语言记录;从计算机角度来说,必须用计算机语言记录下来。
      2. 编写程序(包括程序输入、调试直到正确)的过程叫做程序设计。
  2. 高级语言与C语言。
    1. 计算机程序设计语言。
      1. 最早期的语言是二进制语言,程序设计人员用计算机能直接识别和执行的二进制代码来编写程序。
      2. 为减轻程序设计人员的负担,很快又出现了汇编语言,这种语言是用符号来代表二进制代码的,所以称为符号语言。用这种语言编写的程序需要通过一种软件(称为汇编程序)翻译后才能执行,所以又称为汇编语言。
      3. 不同的计算机上提供不同的二进制语言或汇编语言,所编写的程序一般只能在同类型的计算机上运行,所以这种语言又称为“面向机器的语言”。
      4. 程序设计的关键是将解决问题的方法步骤(称为算法)描述出来,设计人员很快就提供了一种描述算法过程很方便,同时脱离了对机型的要求,能在任何计算机上运行的语言。专家们将这种语言称为“高级语言”,而将二进制语言和汇编语言统称为“低级语言”。
      5. 由于高级语言是面向算法过程进行描述的,所以又将高级语言称为“面向过程的语言”。
      6. 高级语言编写的程序称为“源程序”。源程序是不能在计算机上直接运行的,必须将其翻译成二进制程序后才能执行。
      7. 翻译过程有两种方式:
        1. 一种是翻译一句执行一句,称为“解释执行”方式,完成翻译工作的程序就称为“解释程序”;
        2. 另一种是全部翻译成二进制程序后再执行,承担翻译工作的程序就称为“编译程序”,编译后的二进制程序称为“目标程序”。
      8. 世界上第一个高级语言是“ALGOL(算法语言的缩写)”,第二个高级语言是“FORTRAN(公式翻译的缩写)”。之后出现的多种高级语言中,是用较广的有BASIC语言,COBOL语言,PASCAL语言和C语言等。
    2. C语言。
      1. C语言的前身是ALGOL语言。
      2. 1960年推出ALGOL60版本。
      3. 1963年剑桥大学在ALGOL语言基础上增添了处理硬件的能力,并命名为“CPL(复合程序设计语言的缩写)”。
      4. 1967年剑桥大学的马丁·理查德对CPL语言进行简化,推出名为“BCPL(基本复合程序设计语言)”。
      5. 1970年美国贝尔实验室的肯·汤普逊对BCPL进行了进一步简化,突出了硬件处理能力,并取了“BCPL”的第一个字母“B”作为新语言的名称。同时用B语言编写了UNIX操作系统。
      6. 1972年贝尔实验室的布朗·W·卡尼汉和丹尼斯·M·利奇对B语言进行了完善和扩充,并取了“BCPL”的第二个字母C作为新语言的名称。此后,两人合作,重写了UNIX操作系统。
      7. 1977年为了让C语言脱离UNIX操作系统,成为通用的计算机语言,卡尼汉和利奇(K&R)撰写了“C程序设计语言”一书,成为当时的标准。
      8. 1987年美国标准化协会(ANSI)制定了C语言标准,称为“ANSI C”。通常将K&R的标准称为旧标准,将“ANSI C”称为新标准。
      9. C语言的主要特点可以概括如下:
        1. 比其他高级语言更接近硬件,比低级语言更容易描述算法,程序易编、易读、易查错、易修改。可以说兼有高级语言和低级语言的优点。
        2. 数据类型和运算符十分丰富,程序设计和算法描述更为简单和方便。
        3. 语法结构简单,语句数目少,简单易学。
        4. 它是一种结构化程序设计语言,提供了完整的程序控制语句(选择语句和循环语句),很适合结构化的程序设计方法。
        5. 它是一种模块化程序设计语言,适合大型软件的研制和调试。
        6. 它提供了大量的库函数供调用,简化了程序设计工作。
  3. 算法及其描述。
    1. 算法。
      1. 广义的说,算法就是解决问题的方法。
      2. 从计算机角度来说,算法是计算机程序中解决问题的方法步骤。
      3. 在计算机的程序设计中,算法应该能够分解成具体的若干个操作步骤,而且,每一个步骤都是能用某种计算机语言提供的语句或者语句串来完成的。
      4. 算法必须是有始有终的,所以算法步骤中必须有“开始”和“结束”两个步骤。
      5. 算法是程序的灵魂,是程序设计的第一步。正确的选择算法,分解出算法步骤是完成程序设计的关键。
    2. 算法的描述。
      1. 算法可以用自然语言来描述。
      2. 对于复杂的算法,可以用一种称为“流程图”(又称为“框图”)的描述方法,它用标准的图形元素来描述算法步骤,结构一目了然。
      3. 组成流程图的常用图形元素:
        1. 圆角矩形——开始或结束框。表示算法的开始或结束。
        2. 菱形——判断框。表示某个判断,并按判断结果选择不同的操作。
        3. 矩形——操作框。表示某个具体的操作步骤。
        4. 平行四边形——输入输出框。表示输入和输出。
        5. 箭头。用来连接各个图素,表示程序执行时的流向。

发表评论

电子邮件地址不会被公开。 必填项已用*标注