chore: add 3.0 3.1 3.2 3.2.1 3.3
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# 3.1 该使用哪个编辑器???
|
||||
|
||||
# 编辑器,编译器,集成开发环境
|
||||
## 编辑器,编译器,集成开发环境
|
||||
|
||||
我们平时所说的程序,是指双击后就可以直接运行的程序,这样的程序被称为可执行程序(Executable Program)。
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
(你也不想用一沓纸带写程序吧)
|
||||
|
||||
## 什么是编辑器
|
||||
### 什么是编辑器
|
||||
|
||||
编辑器的概念很简单,百度百科上这么写道:
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
- <em>Vim </em>: Vim 是从 vi 发展出来的一个文本编辑器,在程序员中被广泛使用,运行在 Linux 环境下。
|
||||
- <em>GNU Emacs</em> : Emacs 是一个轻便、可扩展、免费的编辑器,它比其它的编辑器要更强大,是一个整合环境,或可称它为集成开发环境。它可以处理文字,图像,高亮语法,将代码更直观地展现给开发者。
|
||||
|
||||
## 什么是编译器
|
||||
### 什么是编译器
|
||||
|
||||
C 语言代码由固定的词汇按照固定的格式组织起来,简单直观,程序员容易识别和理解,但是对于 CPU,C 语言代码就是天书,根本不认识,CPU 只认识几百个二进制形式的指令。这就需要一个工具,将 C 语言代码转换成 CPU 能够识别的二进制指令,也就是将代码加工成 .exe 程序;这个工具是一个特殊的软件,叫做编译器(Compiler)。
|
||||
编译器能够识别代码中的词汇、句子以及各种特定的格式,并将他们转换成计算机能够识别的二进制形式,这个过程称为编译(Compile)。
|
||||
@@ -56,7 +56,7 @@ C 语言代码由固定的词汇按照固定的格式组织起来,简单直观
|
||||
|
||||
编译器可以 100% 保证你的代码从语法上讲是正确的,因为哪怕有一点小小的错误,编译也不能通过,编译器会告诉你哪里错了,便于你的更改。
|
||||
|
||||
## 什么是集成开发环境
|
||||
### 什么是集成开发环境
|
||||
|
||||
实际开发中,除了编译器是必须的工具,我们往往还需要很多其他辅助软件,例如:
|
||||
|
||||
@@ -72,7 +72,7 @@ C 语言代码由固定的词汇按照固定的格式组织起来,简单直观
|
||||
|
||||
集成开发环境也是这个道理,只有编译器不方便,所以还要增加其他的辅助工具。
|
||||
|
||||
# 我的推荐
|
||||
## 我的推荐
|
||||
|
||||
作为个人使用比较顺手的几款 IDE
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
author:wenjing
|
||||
|
||||
先验条件:保证你可以在每天进行练习和学习此方面内容即使是假期也不能超过三天以上休息,如果你想验证一下这件事当然也可以,注意心态的保持很重要
|
||||
先验条件:保证你可以在每天进行练习和学习此方面内容即使是假期也不能超过三天以上休息,如果你想验证一下这件事当然也可以,注意心态的保持很重要
|
||||
|
||||
## 将时间花在 ACM 上值得吗?
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 3.2 算法杂谈
|
||||
|
||||
# 学计算机要先学算法吗?
|
||||
## 学计算机要先学算法吗?
|
||||
|
||||
也许有的同学在高中阶段接触过信息学奥赛,那么也许你已经对基础的算法知识已经有了一定的了解。
|
||||
|
||||
@@ -10,19 +10,19 @@
|
||||
|
||||
学习算法的基础是拥有最基本的计算机素养,你需要优先学习一些基本的计算机概念、编程语言、简单的数据结构(数组、链表等),这些基本知识是你能够灵活利用算法的基础。
|
||||
|
||||
# 学了算法就相当于学好了计算机吗?
|
||||
## 学了算法就相当于学好了计算机吗?
|
||||
|
||||
学好了算法当然不等于学好了计算机科学。计算机科学是一个非常庞大的知识体系,包括更为底层的计算机组成原理、编译原理等,更为表层的 AI,开发等,是一门综合性学科。总的来说,算法是计算机科学中较为重要的一部分,但<strong>远远</strong>不是全部。
|
||||
|
||||
# 学算法就要用《算法导论》一类的书吗?
|
||||
## 学算法就要用《算法导论》一类的书吗?
|
||||
|
||||
我的答案是否定的。它更适合作为“工具书”(就像你英语的词典那样),而不是一本适合新生入门学习的书。可以使用《我的第一本算法书》一类的更为基础更为有趣的算法内容。相比于完全严谨的逻辑推导, 初学者的诉求是在"看得见, 摸得着的例子和环境下探索和吸收新概念". 像这样的大部头可以在之后进行阅读.
|
||||
我的答案是否定的。它更适合作为“工具书”(就像你英语的词典那样),而不是一本适合新生入门学习的书。可以使用《我的第一本算法书》一类的更为基础更为有趣的算法内容。相比于完全严谨的逻辑推导,初学者的诉求是在"看得见,摸得着的例子和环境下探索和吸收新概念". 像这样的大部头可以在之后进行阅读。
|
||||
|
||||
# 学算法一定要用 C 语言吗?不用 C 语言可以吗?
|
||||
## 学算法一定要用 C 语言吗?不用 C 语言可以吗?
|
||||
|
||||
不一定要用 C 语言。但是 C 语言作为一种贴近底层面向过程语言,对日后学习其他的语言会有较大的帮助。你也可以先学习 Python、JAVA 等等。学校的课程仅仅是教授一些比较基础的知识,如果想要真正掌握一门语言,需要在学校课程的基础上更进一大大大步。
|
||||
|
||||
# ACM 怎么说?
|
||||
## ACM 怎么说?
|
||||
|
||||
前情提要,请尽量不要以功利的心态去参加 ACM,你想要的与你能得到的可能存在过大落差
|
||||
|
||||
@@ -32,6 +32,6 @@ ACM 是美国计算机协会(Association for Computing Machinery)的缩写
|
||||
|
||||
在我校,参加 ACM 社团(姑且叫做社团)并不代表能够参加有含金量的团体赛(ICPC、CCPC 等)。你需要先参加由我校教练刘春英老师组织的各种比赛,有资格进入集训队后,才有机会代表学校参加比赛(当然不限名额的个人赛想参加就参加)。
|
||||
|
||||
进入集训队后采取末位淘汰制度(最后留下来的人在 20 人左右),最后留下来的人才有机会参加比赛。<strong>因此个人并不推荐 0 基础的同学对于 ACM 过于执着</strong>,有 0 基础的同学最后进入校队的例子,不过这通常意味着你一天至少得刷一道算法题。如果还是想尝试的同学,可以去洛谷(www.luogu.com.cn)、Codeforces(www.codeforces.com)、Atcoder(atcoder.jp)等平台上注册账号,练习题目,参加这些网站定期组织的一些比赛。
|
||||
进入集训队后采取末位淘汰制度(最后留下来的人在 20 人左右),最后留下来的人才有机会参加比赛。<strong>因此个人并不推荐 0 基础的同学对于 ACM 过于执着</strong>,有 0 基础的同学最后进入校队的例子,不过这通常意味着你一天至少得刷一道算法题。如果还是想尝试的同学,可以去洛谷 ([www.luogu.com.cn](http://www.luogu.com.cn))、Codeforces([www.codeforces.com](http://www.codeforces.com))、Atcoder([atcoder.jp](https://atcoder.jp/)) 等平台上注册账号,练习题目,参加这些网站定期组织的一些比赛。
|
||||
|
||||
如果经过一段时间的练习能够在 Codefoces([www.codeforces.com](http://www.codeforces.com))上达到 1400 以上的 Rating,那么可以再观望观望参与 ACM。
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
# 3.3 如何选择编程语言
|
||||
|
||||
# 编程语言的工具属性
|
||||
## 编程语言的工具属性
|
||||
|
||||
在回答这个问题之前,需要各位同学明确的一点是,编程并不是一个独立的学科,像数学那样做题是学不好的。
|
||||
|
||||
编程语言的选择更像是锤子与扳手之间的选择,更大程度上看的是你需要解决什么样的问题。当你需要砸钉子的时候,使用螺丝刀总归是不顺手的,因此了解不同语言的特性,针对任务进行选择是非常有必要的。
|
||||
|
||||
# 编程语言特性
|
||||
## 编程语言特性
|
||||
|
||||
首先附上一张经典老图
|
||||
|
||||

|
||||
|
||||
## C 语言/C++
|
||||
### C 语言/C++
|
||||
|
||||
C 语言/C 艹一脉同源,从图中来看,C 和 C 艹都像多功能瑞士军刀,说明其是用来做细活的工具,C 上面的优盘说明其可以进行硬件开发的相关工作。
|
||||
|
||||
@@ -26,7 +26,7 @@ C 语言其实是一门优秀的承上启下的语言,既具有高级语言的
|
||||
|
||||
<strong>我们的任务一部分会使用 C 语言,一方面培养大家编程能力,一方面辅助大家期末考试。</strong>
|
||||
|
||||
## C++
|
||||
### C++
|
||||
|
||||
现代 C++ 程序可看成以下三部分组成。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user