NOIP学习小站
西安交通大学附属中学航天学校

程序与程序设计语言

本文首先介绍程序与程序设计语言,这样我们对C++这一程序设计语言有一个初步的认识;最后介绍编写程序解决问题的一般方法和步骤。

一、程序与程序设计语言

计算机程序(Computer Program),是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。

计算机程序以某些程序设计语言编写,运行于某种目标结构体系上。打个比方,程序就如同以英语(程序设计语言)写作的文章,要让一个懂得英语的人(编译器)同时也会阅读这篇文章的人(结构体系)来阅读、理解、标记这篇文章。

程序设计语言是用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串就是语言。程序设计语言有3个方面的因素,即语法、语义和语用。

学习编程,至少需要掌握一门程序设计语言才能将自己解决问题的方法步骤(也就是算法)转化为实际的计算机程序来解决问题得出结果。既然称之为程序设计语言,作为一门语言就像英语一样有自己独特的语法,还好,一门成熟的程序设计语言实用的语法并不像英语那样复杂(要坚定学习的信心哦)。

自20世纪60年代以来,世界上公布的程序设计语言已经有上千种之多,但是只有很小的一部分的到了广泛的应用。

C++一直是一个热门的程序设计语言。C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。目前信息学竞赛推荐使用的程序设计语言就是C++

此外,竞赛编程和软件编程有一定的区别。竞赛编程学习初期会有大篇幅的程序设计语言的学习,后期主要内容就转向数据结构和算法了。程序设计语言只是一个能将我们解决问题的算法实现的工具,所以信息学竞赛的学习不要一味追求全面掌握某种编程语言的使用,只需要掌握对于竞赛实用的内容即可

二、编写程序解决问题的步骤

这里简单介绍编写程序解决问题的步骤,在后续教程中还会结合实例对编程解决问题的方法和步骤展开更深入的分析讲解。
编程解决问题的一般步骤
  1. 分析问题。首先理清要处理什么样的数据,要得出什么样的结果;再进一步理清究竟要求解什么样的问题。就像我们做数学题一样,首先要认真读题、审题,明确题意。
  2. 设计算法。在上一步理清了“究竟要求解什么样的问题”的基础上,进一步研究如何求解问题,找到解决问题的方法和步骤(第一步要干什么,第二步要干什么……)。就像我们做数学题一样,认真读题审题后,将问题与我们所掌握的知识进行关联,得出解决问题的方法和步骤。

举一个例子,“把大象放入冰箱”这一问题的步骤:第一步把冰箱门打开,第二步把大象放进去,第三步把冰箱门关上。像这样的解决问题的具体方法步骤,在程序设计领域称之为算法。只不过程序设计时算法的描述往往是可以用程序代码实现的,而不是像这里“把大象放入冰箱的三部曲”比较原始的自然语言描述。

在竞赛学习的过程中会接触到各种算法,并且我们会发现程序设计的精髓就是算法

  1. 编写程序。你没有看错,到了第3步我们才开始动手编写程序。一个良好习惯的程序员在动手编写程序前,会对问题经过思深熟虑的分析,进而得出解决问题的算法,然后才通过编写程序将算法转化成能够解决问题得出答案的程序代码。
  2. 调试运行。最后,我们要调试运行写好的程序代码,查看运行结果是否和我们期望的结果一致。要解决的问题越复杂,往往程序也越复杂,这个时候调试运行也要做到全面不留死角,往往要经过科学合理的多次测试才能确保程序能够很好地解决问题。

如果程序调试运行时出现编译错误,我们需要去检查、找到并改正程序中的语法错误;如果运行结果与预期结果不一致,那么需要我们去分析修改程序中的逻辑错误;甚至运行结果与预期结果严重不符,那么可能是设计的算法有问题,这个时候还需要进一步去分析问题重新设计算法。