C++入门:试着写出“helloworld”!

既然要学习编程就不得不提一下信息学奥赛。

信息学奥赛的主旨在于经过比赛活动培育大批核算机爱好者,选拔优秀的计算机后备人才。信息学奥赛作为世界公认的五大奥赛之一,知识点涵盖广泛(如图论、动态规划、数据结构、数论等算法),其目的是拓宽学生的视野、培养思维、紧跟时代步伐,绝非培养青少年软件开发者!

简单来说:信息学=编程语言+算法。信息学奥赛则考查学生对算法和编程能力的掌握。

就算法而言,同一种算法可以由不同的编程语言来写。不同的语言写的算法所实现的效果是一样的,只是它们在语法和运行效率上稍微有点差异而已。编程语言只是工具,验证、实现算法的工具!算法才是核心!

但"工具"掌握得不好,又无法支撑后续的算法学习。

Part1

编程语言有很多,Pascal、C、C++、Java、Python等,为什么要选C++呢?

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

2、从2022年开端,NOIP比赛也将不再支撑Pascal语言。即从NOIP2022开端,NOI系列的一切赛事将悉数取消Pascal语言。在无新增程序规划语言的状况下,NOI系列赛事自2022开端将仅支撑C++语言。

Part2

既然想用C++写出第一个欢迎程序“helloworld”,还是要了解下这个语言的来龙去脉。

Part3

比赛中运用C++语言,并不需要选手完全掌握C++语言,一些较难的内容并不学习,也为后期更复杂的运用打下基础,另外受IOI影响,在信息学比赛学习中选用C++也成了必然趋势,现在绝大多数学生也会选择C++作为信息学程序语言。

C++的学习能够培育孩子的思想能力,训练创新思想。C++课程中,需要学习组合数学、图论、根本算法、数据结构、搜索算法及数学建模等知识,能够加深学生对数学的了解,提高孩子的逻辑思想,而这些又能帮助其更好地学习其他学科。

至于从哪个年龄段去学,我的感觉是适合就好,小学四五年级就可以开端学习C++,经过C++语言的学习培育编程思想和着手能力,对C++代码有根本的认知。经过体系学习,建立根本的编程思想,把握根本指令(包含输入输出句子、运算符、变量的运用、顺序结构、分页结构、循环结构的根本运用)等,这时能够对杂乱的数学和逻辑问题有着更好的了解。当孩子开始具备了编程根底,再进行进阶学习时,就能够从高深的编程语言下手了。

Part4

不可否认的是,C++是一门难学的编程言语,但静下心来学还是可以接受的。想学好它或者想学好C++去参加信奥,必须要有明确的目标和为目标学习下去的勇气和毅力。

因为C语言的学习相对比较枯燥,过程中也必然会经历一段焦躁期。这个时候特别需要家长支持、鼓励和不放弃。

必须要多练习、多动脑、多思考、多总结。这个时候一定要有错题本儿。因为信奥其实是一个黑盒测试,就是给你一个输入。然后让你得到一个输出。这时,某一些输入能得到正确的输出,但是也有一些输入得不到。这时就需要在做题的过程中去多次总结错误的情况和细节。反复纠错、积累经验,增加自己编程的能力。

在解题或比赛的过程中,有很多同学不是不会编这道程序,能编也编的出来,但是因为会忽略掉某一些细节,导致这个程序得不到满分。

学习最快的方法就是有老师的指导,一定要相信老师的专业性。遇到问题,一定要及时沟通,有什么问题及时跟老师提,可以随时去调整进度和安排。

Part5

转入正题,再说估计有人脑袋要炸了,但这篇就是要了解下自己使用的工具,所以还是建议认真准备下。

信息学奥赛中选用的开发工具是Dev-C++,虽然官方已经停止维护该开发工具,LastUpdate停止在2016-11-29,但对于初学C++来说,不失为是一种非常适合入门的应用,大家可以到如下网站去下载安装包:

最新版本是下面这个:

具体安装过程这边不赘述,但安装完成后打开之时,大家要留意选择“简体中文”。尤其是低龄学生学习更方便一些。

Part6

下面我们通过一段经典的入门程序——“helloworld”,来大致了解下c++代码的基本格式:

#include<iostream>usingnamespacestd;intmain(){cout<<"Helloworld!";return0;}如果这是你第一次编写程序,可以尝试把上面的代码复制一份,并且你成功执行了上述过程,那么恭喜你!你已经完成了每一名程序设计者在开始学习编程时接触到的第一个,也是最有价值的一个编程任务:“你好,世界!”。

编写程序输出helloworld,对于编程者来说,是十分具有意义的一刻——这标志着你正式走进了编程的殿堂,你所将要学习的一切编程技巧,都会从此时此刻开始加入你的知识库。

欢迎成为一名编程者!

Welcome,Coder,totheworldofProgramming!

接下来我们解析下代码,里面很多词可能枯燥,慢慢理解,理解不了就无视。

第1行代码:

“#include",include就是引入、包含,iostream是c++语言中的头文件,在这个文件里面包括了很多已经写好的,可以直接给我们重复使用的常用的标准的输入输出函数或者说方法,比如:输入/输出、错误警告等。第5行代码中的cout方法就是该头文件提供的方法。

#include整条语句的意思就是你可以理解为,你的代码比喻为在生产一辆法拉利,然后你联系iostream这个厂商提供给你轮子、螺丝钉等这些原材料,这样,你在生产“法拉利”的时候,就可以直接用iostream厂家提供的轮子了,不用自个一个一个做轮子了,甚至做螺丝钉了。

第2行代码:

"usingnamespacestd;",c++不同于c的地方其中一个就是多了这么一个命名空间,这个是c++中必须要有的。关于用这个命名空间的原因,我们打个比方,随着工业革命的蓬勃发展,能够提供轮子的厂商越来越多,当我们联络的两个厂商中,都提供轮子给你时,你就要说明清楚,是要A厂商的轮子,还是B厂商的轮子。对应:随着C++的蓬勃发展,能能够提供相同方法的头文件越多越多,当我们引用的两个头文件中,都提供同样的方法(比如lunzi())给你时,你就要说明清楚,是要A文件的方法(lunzi()),还是B文件的方法(lunzi()),因此,在引入头文件之后,我们需要有个命名空间来标识,用的是谁的方法。姑且这么理解,如果还是不理解,放过也无妨。

第3行代码:

第4行代码:

是一个大括号,它标识一段代码块的开始,这里跟第7行的大括号是成对出现的,第7行的大括号标识的是这一段代码块的结束。大括号包裹着的内容,就是这个函数能够起到的作用,比如功能等等。

第5行代码:

“cout<<"HelloWorld!";”,cout就是用的iostream这个厂商提供的轮子(方法),作用就是输出“<<”后面的内容,"<<"是可以连续使用的,比如你可以试试cout<<"HelloWorld!"<<"娃哈哈"<<123<<"达拉崩吧"<

第6行代码:

"return0;",表示的返回值,也就是main这个方法,你调用了它之后,它给你反馈的一个信息,就好比是,你问他5+3等于多少,它给你回答8差不多的意思,具体内涵会在以后学习到函数的时候来详细阐述,另外,这个回答的内容,跟main前面的int类型也有关系,当然也是后话。

以上就是对我们第一个c++代码进行的逐行解析,目的也是想通过这样的方式告诉大家,学习编程,就是要学会阅读代码,而阅读代码,就是需要一行一行的读懂每一条指令,有同学一听头就大了,那动辄几百行的代码,不得看的两眼昏花吗?别担心,熟悉了之后,一目十行甚至一目百行都是可能的。

实际操练一下:

大家打开Devc++后通过“Ctrl+N”快捷键新建一源文件,然后试着敲完上述代码,“Ctrl+S”快捷键按照下述方式保存后,按下“F11”快捷键编译运行看看效果吧。

未来每节课内容不会很多,关键是希望想学的同学一定要自己动手实践,把代码可以熟练运用到不用“临摹”,都可以自行完成为止,就好比写作文一样。课后大家也可以试试尝试不同的输出内容。

Part7

目前,我们知道了C++的HelloWorld程序写法、运行的结果样式和代码含义,接下来可以思考一下。

THE END
1.人工智能51CTO.COM算法 自然语言处理 语音识别 人脸识别 机器视觉 知识图谱 无人驾驶 机器人 开发 云计算 开源 大数据 网络 安全 全部话题 关注该话题的人还关注了 机器学习 2011内容 算法 1605内容 深度学习 1675内容 机器视觉 64内容 知识图谱 70内容 自然语言处理 109内容 机器人 914内容 人脸识别 460内容 我关注的话题 相关https://ai.51cto.com/
2.Hello算法腾讯云开发者社区今天给大家推荐一个网站:Hello 算法,网站内容质量极高,强烈推荐。 地址:https://www.hello-algo.com/ 这个网站提供一个动画图解、能运行、可讨论的数据结构与算法快速入门教程。 作者是 LeetCode 题解区大佬 Krahets,人称 K 神,力扣(LeetCode)全网阅读量最高博主。 https://cloud.tencent.com/developer/article/2207751?areaSource=102001.16&traceId=G3tKvwGhcBrWFYHDGFArd
3.Hello算法Hello 算法浏览人数已经达到81,如你需要查询该站的相关权重信息,可以点击"5118数据""爱站数据""Chinaz数据"进入;以目前的网站数据参考,建议大家请以爱站数据为准,更多网站价值评估因素如:Hello 算法的访问速度、搜索引擎收录以及索引量、用户体验等;当然要评估一个站的价值,最主要还是需要根据您自身的需求以及需要,一https://openi.cn/sites/282705.html
4.初识算法宝藏网站有没有hello算法这样的网站前有<<啊哈,算法>>,后有<<hello,算法>>,对于算法初学者真的是救星,里面的数据结构与算法的讲解针对是图文结合,还有清楚的动画图解,提供的多种语言的代码,包括C++,Java,python,GO,Swift等等等等,而且还有K神大佬参与补充更多语言的算法代码。我真的,快学起来?https://blog.csdn.net/LINcc18/article/details/133825484
5.Hello算法(C++版)《 Hello 算法 》 动画图解、一键运行的数据结构与算法教程 全书动画图解 内容清晰易懂、学习曲线平滑 电脑、平板、手机全终端阅读 代码一键运行 提供各个算法与数据结构的简洁实现与测试样例,皆可直接运行 支持Java, C++, Python, Go, JS, TS, C#, Swift, Zig 等语言教程https://m.w3cschool.cn/hellocpp/
6.Hello算法Hello算法致力于让数据结构与算法的学习变得简单和有趣。无论你是初学者还是有一定经验的开发者,我们都为你准备了丰富的资源,帮助你掌握关键的编程基础。 网站特色内容包括: 通俗易懂的解释:以简单易懂的语言讲解复杂的数据结构与算法概念,让你轻松理解每一个知识点。 https://www.jspoo.com/wz/4792.html
7.Hello算法Hello 算法浏览人数已经达到768,如你需要查询该站的相关权重信息,可以点击"5118数据""爱站数据""Chinaz数据"进入;以目前的网站数据参考,建议大家请以爱站数据为准,更多网站价值评估因素如:Hello 算法的访问速度、搜索引擎收录以及索引量、用户体验等;当然要评估一个站的价值,最主要还是需要根据您自身的需求以及需要,https://www.codernav.com/sites/2902.html
8.Hello算法Hello 算法 纸质书已发布,详情请见这里 Hello 算法 Hello 算法 简体中文 繁體中文 English 键入以开始搜索 krahets/hello-algo 1.2.0 103k 12.9k Hello 算法? 动画图解、一键运行的数据结构与算法教程。http://www.xiaorabbit.cn/
9.Hello算法《Hello 算法》:动画图解、一键运行的数据结构与算法教程,支持 Java, C++, Python, Go, JS, TS, C#, Swift, Rust, Dart, Zig 等语言。 Hello 算法 1.0.0b6 Latest 该版本为《Hello 算法》1.0.0 版的预发布 b6 版本。 现已支持 Python, C++, Java, C#, Go, Swift, JavaScrihttps://www.bandianxiang.com/info/ZluNetf
10.电子书Hello算法Github仓库:github.c来自蚁工厂电子书《Hello 算法》 Github仓库:github.com/krahets/hello-algo 这是一本动画图解、能运行、可提问的数据结构与算法快速入门教程 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍https://weibo.com/2194035935/MFfIPaoGX
11.Hello算法V1.1.0PDF下载一定要收藏这个宝藏网站防止丢失,求助资源~!!! 内容简介 Hello 算法 1.1.0 版本电子书包含了下列语言 Python、C++、Java、C#、Go、Swift、JavaScript、TypeScript、Dart、Rust、C 和 Kotlin 等语言,感兴趣的同学可以学习。 相关截图 下载地址 重要提示!一旦取消关注公众号后将无法再启用回复功能,不支持解封!https://cmsblogs.cn/?p=5154
12.全网最全程序员学习网站汇总,还不赶快收藏简介:经典的刷题网站,主要是算法题。 推荐指数:? 2、LintCode 地址: LintCode 简介:和LeetCode相似 推荐指数: 3、牛客网 地址: 牛客网 简介:一个联网求职学习交流社区。 推荐指数: 最后 我目前从事Java开发,给各位Java程序员推荐一下干货知识点和聚集地。在学https://www.songma.com/news/txtlist_i66992v.html
13.helloalgo,一个免费的算法学习开源项目在线学习的网站链接为:https://www.hello-algo.com/ 同时,项目提供了下载的pdf,地址为:https://github.com/krahets/hello-algo/releases。 如果有朋友无法前往下载,也可以在本公众号回复消息【算法】关键字进行下载。 内容介绍 我们从书中的内容来看 https://developer.aliyun.com/article/1437987
14.Hello!GitHub好用好玩值得收藏的开源项目集合~ ?awesome-leetcode(各大 IT 公司的算法面试题) GitHub地址:http://github.com/Blankj/awesome-java-leetcode LeetCode of algorithms with java solution(updating). ?BrowserQuest(JavaScript多人在线游戏) GitHub地址:http://github.com/mozilla/BrowserQuest https://maimai.cn/article/detail?fid=1475370684&efid=VfsByAn5y7pBiausQZV-1A
15.信息学奥赛一本通:题解目录OJ网站:点击这里【语言及算法基础篇】第一部分:C++语言第一章:C++语言入门 Hello,World!(信息学奥赛一本通-T1001):点击这里输出第二个整数(信息学奥赛一本通-T1002):点击这里对齐输出(信息学奥赛一本通-T1003):点击这里字符三角形(信息学奥赛一本通-T1004):点击这里地球人口承载力估计(信息学奥赛一本通-T100http://xinao.ainoob.cn/article/738
16.Hello算法数据结构与算法入门教程《Hello 算法》是一本面向数据结构与算法初学者的开源、免费电子书,由靳宇栋(Krahets)编写并发布在GitHub上。这本书通过动画图解和一键运行的方式,使读者能够更直观地理解复杂的概念,并且支持多种编程语言,包括Python、Java、C++、C#等。 Hello 算法官网网址:https://www.hello-algo.com/ https://www.bgrdh.com/sites/31811.html
17.《Hello算法》《Hello 算法》是一本开源免费的数据结构与算法入门教程。该项目采用动画图解和一键运行的方式,引导初学者探索数据结构与算法的知识地图。 主要功能点 采用动画图解的方式,内容清晰易懂、学习曲线平滑 源代码可一键运行,帮助读者在练习中提升编程技能 支持多种编程语言,包括 Python、Java、C++、Go 等 https://www.clzg.cn/article/641727.html
18.分享《Hello算法》正式版发布!《Hello 算法》正式版终于发布了! 快来戳戳! ? 动画图解、一键运行的数据结构与算法教程 代码仓库>在线阅读>下载 PDF> 关于本书 本项目旨在创建一本开源、免费、对新手友好的数据结构与算法入门教程。 全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂,学习曲线平滑。 https://leetcode-cn.com/circle/discuss/PFqqKj
19.6.3哈希算法观察以上公式,当哈希表容量capacity固定时,哈希算法hash()决定了输出值,进而决定了键值对在哈希表中的分布情况。 这意味着,为了降低哈希冲突的发生概率,我们应当将注意力集中在哈希算法hash()的设计上。 6.3.1 哈希算法的目标? 为了实现“既快又稳”的哈希表数据结构,哈希算法应具备以下特点。 http://ok200.cc/chapter_hashing/hash_algorithm/
20.ReleaseHello算法1.1.0·krahets/hello《Hello 算法》1.1.0 版本的 PDF 电子书请见附件,支持 Python、C++、Java、C#、Go、Swift、JavaScript、TypeScript、Dart、Rust、C 和 Kotlin 等语言。 主要改动 新增小节:纸质书、序,重写小节:术语表。 新增繁体中文版(由@Shyam-Chen、@Dr-XYZ审阅)。 https://github.com/krahets/hello-algo/releases/tag/1.1.0
21.Hello算法(C++语言版)中文PDF电子书下载《Hello算法 (C++语言版)》旨在创建一本开源免费、新手友好的数据结构与算法入门教程。书中内容主要包括复杂度分析、数据结构、算法三部分,涵盖了该领域的大部分主题。 若您是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与不会之间反复横跳,那么这本书正是为您量身定制https://www.jb51.net/books/907953.html
22.Hello,密码学:第三部分,公钥密码(非对称密码)算法在《Hello,密码学:第二部分,对称密码算法》中讲述了对称密码的概念,以及DES和AES两种经典的对称密码算法原理。既然有对称密码的说法,自然也就有非对称密码,也叫做公钥密码算法。对称密码和非对称密码两种算法的本质区别在于,加密密钥和解密密钥是否相同: 对称密码的加解密密钥相同,用密钥A加密,也用密钥B解密。 https://www.jianshu.com/p/0b48bef65504
23.《HelloGitHub月刊》第81期HelloGitHub 分享 GitHub 上有趣、入门级的开源项目,每月28 号更新一期。这里有好玩和入门级的开源项目、开源书籍、实战项目、企业级项目,让你用极短的时间感受到开源的魅力,对开源产生兴趣。 C 项目 1、 ecapture Star 1.4w Fork 1.4k 2 年前 详情 一款无需 CA 证书即可抓取 HTTPS 明文的工具。该项目基于 https://hellogithub.com/periodical/volume/81
24.#算法#数据结构与算法教程https://www.helloalgo.com#算法#数据结构与算法教程 https://www.hello-algo.com/ 全部评论 推荐 最新 楼层 相关推荐 昨天13:50 北京科技大学 系统策划 昨日牛马感言 牛马感言: 这个打工的世界真的很癫。 昨天上午领导把我叫过去,问我19号做的方案有没有做好,有没有和合作方去谈,谈成了没有? 我一脸懵逼,说https://m.nowcoder.com/feed/main/detail/e1413946a6e241ee8b5b549104260cfa
25.Claude3成功破解未公开算法?智商测试101分超越人类/碾压GPT网友测试Claude之后惊呼:实测比跑分厉害多了!智商测试中碾压GPT-4,得分高达101。而且能发现量子物理学家还未发表的量子算法。 Claude 3上线之后,网友开始疯狂测试,实测效果确实惊人。 不少网友体感Claude 3超大杯确实强,实测已经达到了博士水平: 这实在太疯狂了!Claude是唯一理解我的量子物理学博士论文的「人」! https://36kr.com/p/2677606361200131