💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 信奥竞赛 信息学奥林匹克竞赛是一项益智性的竞赛活动,核心是考查选手的智力和使用计算机解题的能力,选手首先应针对竞赛题目的要求构建数学模型,进而构造出计算机可以接受的算法,之后编写出计算机能够执行的程序。程序设计是信息学竞赛的基本功,选手参与竞赛活动的第一步是熟练掌握一门程序设计语言,目前竞赛中允许使用的程序设计语言有C语言、C++语言、Pascal。 # 编程语言 学习编程语言之前,首先要搞清楚“编程语言”这个概念。 很小的时候,父母就教我们开口说话,也教我们如何理解别人讲话的意思。经过长时间的熏陶和自我学习,我们竟然在不知不觉中学会了说话,同时也能听懂其他小朋友说话的意思了,我们开始向父母要零花钱买零食和玩具、被欺负了向父母倾诉…… 我们说的是汉语,是“中国语言”,只要把我们的需求告诉父母,父母就会满足,我们用“中国语言”来控制父母,让父母做我们喜欢的事情。 “中国语言”有固定的格式,每个汉字代表的意思不同,我们必须正确的表达,父母才能理解我们的意思。例如让父母给我们10元零花钱,我们会说“妈妈给我10块钱吧,我要买小汽车”。如果我们说“10元给我汽车小零花钱妈妈”,或者“妈妈给我10亿人民币,我要买F-22”,妈妈就会觉得奇怪,听不懂我们的意思,或者理解错误,责备我们。 我们通过有固定格式和固定词汇的“语言”来控制他人,让他人为我们做事情。语言有很多种,包括汉语、英语、法语、韩语等,虽然他们的词汇和格式都不一样,但是可以达到同样的目的,我们可以选择任意一种语言去控制他人。 同样,我们也可以通过”语言“来控制计算机,让计算机为我们做事情,这样的语言就叫做**编程语言(Programming Language)**。 >[info] 编程语言也有固定的格式和词汇,我们必须经过学习才会使用,才能控制计算机。 编程语言有很多种,常用的有C语言、C++、Java、C#、Python、PHP、JavaScript、Go语言、Objective-C、Swift、汇编语言等,每种语言都有自己擅长的方面,例如: | 编程语言 | 主要用途 | | --- | --- | | C/C++ | C++ 是在C语言的基础上发展起来的,C++ 包含了C语言的所有内容,C语言是C++的一个部分,它们往往混合在一起使用,所以统称为 C/C++。C/C++主要用于PC软件开发、Linux开发、游戏开发、单片机和嵌入式系统。 | | Java | Java 是一门通用型的语言,可以用于网站后台开发、Android 开发、PC软件开发,近年来又涉足了大数据领域(归功于 Hadoop 框架的流行)。 | | C# | C# 是微软开发的用来对抗 Java 的一门语言,实现机制和 Java 类似,不过 C# 显然失败了,目前主要用于 Windows 平台的软件开发,以及少量的网站后台开发。 | | Python | Python 也是一门通用型的语言,主要用于系统运维、网站后台开发、数据分析、人工智能、云计算等领域,近年来势头强劲,增长非常快。 | | PHP | PHP 是一门专用型的语言,主要用来开发网站后台程序。 | | JavaScript | JavaScript 最初只能用于网站前端开发,而且是前端开发的唯一语言,没有可替代性。近年来由于 Node.js 的流行,JavaScript 在网站后台开发中也占有了一席之地,并且在迅速增长。 | | Go语言 | Go语言是 2009 年由 Google 发布的一款编程语言,成长非常迅速,在国内外已经有大量的应用。Go 语言主要用于服务器端的编程,对 C/C++、Java 都形成了不小的挑战。 | | Objective-C Swift | Objective-C 和 Swift 都只能用于苹果产品的开发,包括 Mac、MacBook、iPhone、iPad、iWatch 等。 | | 汇编语言 | 汇编语言是计算机发展初期的一门语言,它的执行效率非常高,但是开发效率非常低,所以在常见的应用程序开发中不会使用汇编语言,只有在对效率和实时性要求极高的关键模块才会考虑汇编语言,例如操作系统内核、驱动、仪器仪表、工业控制等。 | 可以将不同的编程语言比喻成各国语言,为了表达同一个意思,可能使用不同的语句。例如,表达“世界你好”的意思: * 汉语:世界你好; * 英语:Hello World * 法语:Bonjour tout le monde 在编程语言中,同样的操作也可能使用不同的语句。例如,在屏幕上显示“世界你好”: * C++语言:printf("世界你好"); * PHP:echo "世界你好"; * Java:System.out.println("世界你好"); 编程语言类似于人类语言,由直观的词汇组成,我们很容易就能理解它的意思,例如在C++语言中,我们使用 `printf` 这个词让计算机在屏幕上显示出文字; ~~~ printf("世界你好"); ~~~ 我们把要显示的内容放在`("`和`")`之间,并且在最后要有`;`。你必须要这样写,这是固定的格式。 总结:编程语言是用来控制计算机的一系列指令(Instruction),它有固定的格式和词汇(不同编程语言的格式和词汇不一样),必须遵守,否则就会出错,达不到我们的目的。 C++语言是编程语言的一种,学习C++语言,主要是学习它的格式和词汇。下面是一个C++语言的完整例子,它会让计算机在屏幕上显示”世界你好“。 ~~~ #include <iostream> int main(){ printf("世界你好"); return 0; } ~~~ 这些具有特定含义的词汇、语句,按照特定的格式组织在一起,就构成了源代码(Source Code),也称源码或代码(Code)。 C++语言肯定规定了源代码中每个词汇、语句的含义,也规定了它们该如何组织在一起,这就是语法(Syntax)。它与我们学习英语时所说的“语法”类似,都规定了如何将特定的词汇和句子组织成能听懂的语言。 编写源代码的过程就叫做编程(Program)。 # C++简介 * C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。 * C++ 被认为是一种**中级**语言,它综合了高级语言和低级语言的特点。 * C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。 * C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。 >[danger] 注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。 # C++语言特点 * 语言简洁紧凑,使用灵活方便 * C++语言一共只有32个关键字和9种控制语句,程序书写自由,主要用小写字母表示。 * 运算符丰富 * C++语言的运算符包含的范围很广泛,共有34个运算符。 * 数据结构丰富 * C++语言的数据类型有:整型、实型、字符型、数组类型等等 * 结构化语言 * 结构化语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。 * 生成的代码质量高 * C++语言在代码效率方面可以和汇编语言相媲美。 * 可移植性强 * C++语言编写的程序很容易进行移植,在一个环境下运行的程序不加修改或少许修改就可以在完全不同的环境下运行。