信息学奥赛之路丨一文告诉你为什么要学C++

网友投稿 2019-08-12 12:40

NOI信息学奥赛的宗旨在于通过竞赛活动培养大批计算机爱好者,选拔优秀的计算机后备人才。

信息学奥赛重要性不言而喻,而要学好则必须学会使用程序语言。具体到信奥使用的重要工具——C++语言——作为编程中的明星语言,C++是信息奥赛的基础语言。

它是怎么来的,为什么被选为信奥语言,新手又该如何入门?本篇为你一一揭晓。

https://cdn.china-scratch.com/timg/190814/1240236463-0.jpg

C++:灵活且重要的参赛语言

C++语言是什么 

1、从C到C++

计算机诞生初期,用机器语言或汇编语言编写程序

第一种高级语言FORTRAN诞生于1954年

BASIC语言(1964)是由FORTRAN语言的简化而成的是为初学者设计的小型高级语言

C语言是1972年由美国贝尔实验室的 D.M.Ritchie 研制成功的

它是为计算机专业人员设计的

大多数系统软件和许多应用软件都是用C语言编写的。随着软件规模的增大,用C语言编写程序渐渐吃力了,于是便创造出了C++语言。

2、C++的特点

C++是由 AT&T Bell实验室 于20世纪80年代初在C语言的基础上成功开发出来的。C++是C语言的继承,它保留了C语言原有的所有优点,并增加了面向对象的机制。

C++是由C语言发展而来的,与C兼容

用C语言写的程序基本上可以不加修改地用于C++

从C++的名字可以看出它是C的超集

C++既可用于面向过程的程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型程序设计语言。

C++语言灵活,运算符的数据结构丰富、具有结构化控制语句、程序执行效率高,被认为一种中级语言,同时具有高级语言与汇编语言的优点

https://cdn.china-scratch.com/timg/190814/124024C12-1.jpg

信奥未来只考C++ 

根据国际信息学奥林匹克竞赛(IOI)的相关最新决议,CCF做出以下决定:

1、2020年开始,除NOIP以外的NOI系列其他赛事(包括冬令营、CTSC、APIO、NOI)将不再支持Pascal语言和C语言;

2、从2022年开始,NOIP竞赛也将不再支持Pascal语言。

即从NOIP2022开始,NOI系列的所有赛事将全部取消Pascal语言

在无新增程序设计语言的情况下,NOI系列赛事自2022开始将仅支持C++语言

C++语言为何重要?


C++语言更适合竞赛 

首先,c++语言完全兼容c语言

其次,c++语言可以使用标准模板库,极大方便程序设计,如竞赛中经常用到的排序,如果用c语言考生需自己编写排序函数,但c++提供标准的排序算法,其时间复杂度为O(NlogN),这已相当高效了。

再次,竞赛中使用C++语言,并不需要选手学完C++语言的全部,一些较难的内容并不学习,适合青少年学生

其实就是c语言+标准模板库,所以在信息学竞赛学习,选用C++也是必然趋势。现在绝大多数学生也会选择c++作为信息学程序语言。

https://cdn.china-scratch.com/timg/190814/1240242U6-2.jpg

C++语言行业应用广泛 

C++凭借先进的数值计算库、泛型编程等优势在各行业领域应用颇多:网络游戏开发、服务器端开发、数字图像处理、网络软件、移动(手持)设备音视频技术、Socket网络通信……

另外,苹果/谷歌/微软 等大型软硬件公司的系统或者软件上面都支持C/C++语言的集成开发

举个简单例子,你常用的软件大多数都是C++写的——Office软件:MS Office,WPS Office,OpenOffice/LibreOffice,你所用的Windows也用了大量的C++……

游戏行业几乎所有3A游戏都是使用C++编写的。大众公认电子游戏的开发者是软件行业里回报最高的工作之一,也是需求量最大的领域之一。因为速度非常重要,所以编写高效的代码就是最基本的要求。

服务器端:除了在游戏开发中运用得比较多,很多互联网公司的后台服务器程序也都是基于C++开发的,而且大部分是linux,unix等类似操作系统。

IBM、微软、中软、阿里巴巴、TOM、新浪、联想、大唐电信等世界知名企业每年预定几千名C++工程师的情况中我们便可以看出,C++在互联网、通信等领域的运用是多么广泛。

https://cdn.china-scratch.com/timg/190814/1240244393-3.jpg

换句话说,学会了C++,就算以后找相关工作,选择也不会少呀!(虽然大部分学生肯定不是冲着这一目的,但是它就有这层好处呢~)

C++语言有助于培养计算思维 

C++可以培养孩子的思维能力,锻炼创新思维

C++课程中,需要学习组合数学、图论、基本算法、数据结构、搜索算法及数学建模等知识,可以加深学生对数学的理解,提升孩子的逻辑思维,而这些又能帮助其更好地学习其他学科。

新手如何入门学习C++

不可否认的是,C++是一门难学的编程语言。

怎样才能让孩子学懂C++、学好C++?

在入门之初,首先应规划好何时开始学习以及从什么学起(接下来会针对学习方法另写详文,请期待~)。

五年级以下的学生可以从scratch学起,早点接触编程,培养对计算机和编程的兴趣;

五六年级开始学习C++,通过C++语言的学习培养编程思维和动手能力,对C++代码有基本的认知。

通过系统学习,建立基本的编程思想,掌握基本指令(包括输入输出语句、运算符、变量的使用、顺序结构、分页结构、循环结构的基本使用)等,这时可以对复杂的数学和逻辑问题有着更好的理解。

当孩子初步具备了编程基础,再进行进阶学习时,就可以从高深的编程语言入手了。

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com