chore: 尝试切换到 ali oss

This commit is contained in:
camera-2018
2023-04-21 01:59:02 +08:00
parent 9a5d376115
commit 3cf4715781
81 changed files with 416 additions and 416 deletions

View File

@@ -6,7 +6,7 @@
进入 [https://www.luogu.com.cn/](https://www.luogu.com.cn/)
![](static/wenjing1.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/wenjing1.png)
## 社交模块
@@ -16,11 +16,11 @@
点开题库,我们看见以下界面
![](static/wenjing2.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/wenjing2.png)
在上方我们可以筛选我们想要的题目,接下来我们点开 P1000 为例
![](static/wenjing3.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/wenjing3.png)
右侧三个模块为折叠状态,下面介绍他们的作用
@@ -34,7 +34,7 @@
点击提交答案
![](static/wenjing4.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/wenjing4.png)
左侧可以选择语言类型C++ 用户建议选择 C++14。
@@ -44,7 +44,7 @@ O2 优化是一种优化(废话)假如您的代码复杂度正确但 TLE
怎么知道自己代码的问题出在哪里呢?记录模块是帮助你的好工具。
![](static/wenjing5.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/wenjing5.png)
AC通过该数据点
@@ -64,7 +64,7 @@ OLE输出超限 放心你见不到的
点开侧栏题单
![](static/wenjing6.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/wenjing6.png)
建议新手从官方精选题单开始,由浅入深,由简到难。等到对算法形成概念,针对漏洞补习时可以尝试用户分享题单(到那个阶段已经有很多手段去找题了,刘教练的题单就够你做了)
@@ -76,7 +76,7 @@ OLE输出超限 放心你见不到的
进入 [https://codeforces.com/?locale=en](https://codeforces.com/?locale=en)
![](static/wenjing7.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/wenjing7.png)
比起 Luogu这样的 UI 设计离 CN 互联网已经很远了然而比起更硬核的一些做题网站CF 的 UI 真是越看越顺眼)
@@ -100,7 +100,7 @@ OLE输出超限 放心你见不到的
进入比赛页面
![](static/wenjing8.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/wenjing8.png)
上方为将举办比赛显示开始时间UTC+8 也就是我们时区的时间)和持续时间大多都开始的比较晚,例如笔者就没有这么晚学习的习惯,所以一般赛后写题。比赛分为以下几种类型(例如写在括号里的 Div.2
@@ -114,14 +114,14 @@ Div.1、Div.2、Div.3、Div.4 数字越小难度越大。
## VP
![](static/wenjing9.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/wenjing9.png)
这是一场笔者之前赛后补过的 Div.2,画面右下角分别为赛后公告和题解,右侧便是开启 VP 的按钮。
![](static/wenjing10.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/wenjing10.png)
<em>VP</em><em>模拟赛时的好处就是在虚拟参赛中获得真实比赛才能积累的经验,比如这里笔者发现通过前三题后,我应该先去看看 F 题因为做出来的人更多我有更大的可能性做出来ACM 中题目并不是 100% 按难度排序。</em>
![](static/wenjing11.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/wenjing11.png)
进入 VP 后,我们可以发现比起正常赛后补题有了明显不同。
@@ -135,25 +135,25 @@ Div.1、Div.2、Div.3、Div.4 数字越小难度越大。
让我们点开 A 题,来看看如何提交答案
![](static/wenjing12.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/wenjing12.png)
可以看见,右侧有一个 submit与 luogu 不同的是,你需要上传源代码文件(如 cpp然后选择 G++17 为语言,提交。
当然,你也可以点开上侧的 submit code
![](static/wenjing13.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/wenjing13.png)
选择题目、语言,填写代码后提交,就和 Luogu 的方式一样了。
同样,在上侧 MY SUBMISSIONS 处可以查看已提交的代码和状态
![](static/wenjing14.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/wenjing14.png)
## PROBLEMSET
同样CF 也有题库
![](static/wenjing15.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/wenjing15.png)
如果你只想做某道题而不是某场比赛,这里也许更适合你。

View File

@@ -10,7 +10,7 @@
首先附上一张经典老图
![](static/boxcnW0YQY58RXhwdtRj5k6ndlc.jpeg)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnW0YQY58RXhwdtRj5k6ndlc.jpeg)
## C 语言/C++
@@ -56,6 +56,6 @@ Python 在图里是电锯,适合干比较“狂野”的任务,也是深度
<strong>频繁应用于</strong><strong>W</strong><strong>eb 开发,安卓应用等等。</strong>
![](static/boxcnPv2FcyQxGLjYHThSaJNwRf.jpeg)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnPv2FcyQxGLjYHThSaJNwRf.jpeg)
当然还有各种形形色色的编程语言等着同学们去探索。

View File

@@ -8,7 +8,7 @@
尝试借鉴他人的代码也未尝不可,但是要保证每一行都看懂哦
![](static/boxcnQ4rvJqVbXJaWMOwceHdrQb.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnQ4rvJqVbXJaWMOwceHdrQb.png)
# 我感觉讲义写的不够细
@@ -67,6 +67,6 @@ NJU-ICS-PA 南京大学计算机系统基础
# <strong>坚持了好久还是搞不定, 我想放弃了</strong>
![](static/boxcnuNXrb5zOppCZAlGQ19wuDk.jpg)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnuNXrb5zOppCZAlGQ19wuDk.jpg)
也许是你坚持的姿势不对,来和 ZZM 聊聊吧

View File

@@ -16,7 +16,7 @@ Visual Studio (以下简称 VS )是 Windows 下最完美的 C/C++ 等语言
选择社区版
![](static/boxcnhNeAnlrbcdJciMUY9oNTuc.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnhNeAnlrbcdJciMUY9oNTuc.png)
社区版和专业版等的区别:社区版免费,功能上几乎无差别
@@ -24,7 +24,7 @@ Visual Studio (以下简称 VS )是 Windows 下最完美的 C/C++ 等语言
选择 C++ 桌面开发其他不用选有需要了再说。另外Python 开发不好使,不要像我一样选 Python 开发。
![](static/boxcnkjmKcCxIgRIzA5kyUZckye.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnkjmKcCxIgRIzA5kyUZckye.png)
安装完成后,一般来说 VS 不会自动创建桌面快捷方式,你需要到开始菜单中启动 VS。
@@ -38,19 +38,19 @@ VS 是项目制,你需要创建一个项目才能开始编写代码并运行
打开 VS会打开如下界面我使用深色主题在此处单击“创建新项目”
![](static/boxcn6MgNnY2qBd1yAudeirx6Sh.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn6MgNnY2qBd1yAudeirx6Sh.png)
在创建新项目页面中选择项目模板为控制台应用(空项目亦可,后续手动添加.c 源文件),并单击下一步
![](static/boxcnFwZpWZ3fQkdd3mCO8Mr9Wj.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnFwZpWZ3fQkdd3mCO8Mr9Wj.png)
为你的项目起一个名字以及选择项目的位置一般默认即可如果你有强迫症C 盘一定不能放个人数据,请自行修改。完成后单击“创建”
![](static/boxcnkxd472wIT39DbEiBsyPWzf.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnkxd472wIT39DbEiBsyPWzf.png)
自此就创建了一个项目了,你将会到达如下界面:
![](static/boxcnvOGdjKLnvXvJM7nlE8yVcb.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnvOGdjKLnvXvJM7nlE8yVcb.png)
其中,左侧(如果在一开始没有选择 C++ 开发环境的话可能在右侧)为资源管理器,列出了本项目所用到的所有文件,包括代码(外部依赖项、源文件、头文件),以及将来开发图形化界面所需的资源文件;最中间占据面积最多的是代码编辑器窗口,你以后将会在这里编写你的 C 语言代码。最下面是输出窗口,源代码进行编译时,会在此处给出编译进度以及可能的代码中的错误。
@@ -66,7 +66,7 @@ C 语言是编译型语言,因此说“运行”代码其实并不是十分合
当你编写完自己的代码后,即可单击“本地 Windows 调试器”(或者使用快捷键 F5进行“运行”。
![](static/boxcnhTxhUYMHeYHdrq0zWzLomb.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnhTxhUYMHeYHdrq0zWzLomb.png)
你可能会发现在“本地 Windows 调试器”右侧还有一个绿色三角形,并且单击这个也可以“运行”,这两个的区别在于“本地 Windows 调试器”是调试运行,右侧那个是不调试直接运行。
@@ -74,17 +74,17 @@ C 语言是编译型语言,因此说“运行”代码其实并不是十分合
如果你的代码被 VS 提示“This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.”
![](static/boxcnfrxYjk5CCjMfY0mLK1B1Ze.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnfrxYjk5CCjMfY0mLK1B1Ze.png)
需要你在项目-xxx 属性xxx 是你的项目名)-C/C++-代码生成-安全检查里将安全检查禁用
![](static/boxcniHhCIUQY0oB3ALlxqgciLd.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcniHhCIUQY0oB3ALlxqgciLd.png)
## 调试
IDE 相比于代码编辑器,最强大的一点莫过于成熟的调试系统。通过调试,可以快速定位代码中没有被编译器检查出来的逻辑错误。如果需要调试,则可以在这个位置单击,打下断点,并且运行程序,程序运行时,就会在此处暂停下来,暂停时就可以查看各个变量的值了。
![](static/boxcnydHyaNPqUEVVWmbdGofX0d.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnydHyaNPqUEVVWmbdGofX0d.png)
## <strong>深色主题</strong>
@@ -94,15 +94,15 @@ IDE 相比于代码编辑器,最强大的一点莫过于成熟的调试系统
### 仔细查看报错
![](static/boxcnC6TAAdtS0P5HzebFgFn2lc.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnC6TAAdtS0P5HzebFgFn2lc.png)
如果程序代码中出现红色波浪线,则表示该处代码有“错误”,并且该处的错误会同步显示在下面的这个位置,单击即可看到错误详情。如果代码中出现绿色波浪线,则表示该处代码中有警告。警告和错误的区别是警告可以通过编译运行,但编译器认为你这里可能写错了;错误是完全不可以通过编译。
![](static/boxcn7zL0QFakVTpYBdpOmmWOvc.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn7zL0QFakVTpYBdpOmmWOvc.png)
### 善用提示
![](static/boxcn2ouk043lNQEUkVkIS7bSSd.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn2ouk043lNQEUkVkIS7bSSd.png)
当你打一些函数名或者关键字时VS 会给出你语法提示,如果这个提示正确,按下 Tab 键即可将这个提示补全到你的代码里;或者你也可以跟着这个提示打一遍,防止打错关键字。
@@ -136,7 +136,7 @@ vscode 的项目和 VS 不同vscode 的项目比较松散,并没有 VS 那
编写完代码后,保存文件,并点击运行-启动调试
![](static/boxcnim98FJybpkGl8sfqxP9v9b.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnim98FJybpkGl8sfqxP9v9b.png)
此时会弹出如下选择框,我的电脑上同时安装有 VS 和 gcc 编译器因此有两个大部分的电脑上应该只有一个“C++ (Windows)”,选择你电脑上的编译器并运行即可。
@@ -162,25 +162,25 @@ CLion 是 jetbrains 家族的 C 语言 IDE
XCode 是 mac 官方的 IDE能编写所有 mac 家族设备的软件。但缺点是没有中文。
![](static/boxcn05Ca6Wu5TxFMplZCw2N8Jb.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn05Ca6Wu5TxFMplZCw2N8Jb.png)
打开以后选择 Create a new Xcode project选择 macOS-Command Line Tool
![](static/boxcnbnrVCmNGfriHhU5pL76gsd.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnbnrVCmNGfriHhU5pL76gsd.png)
![](static/boxcnnjaObP5JzpICUx1PMO9MQg.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnnjaObP5JzpICUx1PMO9MQg.png)
两个空里第一个填项目名,第二个随便填就行
next 后选择项目保存的位置,之后即可到达以下界面:
![](static/boxcnl06p0ZS8SSQsWJNLQLYIjc.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnl06p0ZS8SSQsWJNLQLYIjc.png)
点左上方小三角即可运行
在行号上点击并运行即可调试
![](static/boxcnmRygjmZfwFzODP2N6bVoEh.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnmRygjmZfwFzODP2N6bVoEh.png)
# Linux

View File

@@ -3,7 +3,7 @@
- 本篇不需要任何前置知识,推荐在学习 C 语言和学完 C 语言后各看一遍。
- 我们鼓励你在解决问题的时候进行思考,锻炼解决问题的能力,而不只是成为一个做代码翻译工作的“码农”。
![](static/YAOvb6gquofiAYxsn3tcxcCYngf.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/YAOvb6gquofiAYxsn3tcxcCYngf.png)
解决编程问题的常见误区:
@@ -13,7 +13,7 @@
如果你计划得足够好并且代码编写得正确,你的代码将在第一次工作。即便它第一次不起作用,那么你至少有一个对于代码如何调试的可靠计划。
![](static/HMipbO4vSoM3jhxSZ7Kcuddqnxh.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/HMipbO4vSoM3jhxSZ7Kcuddqnxh.png)
## Work an Example Yourself

View File

@@ -34,6 +34,6 @@
计算机思维与计算机科学与编码能力
![](static/Hqzbbs6iYobnxWxz11Ocfa9gnHd.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/Hqzbbs6iYobnxWxz11Ocfa9gnHd.png)
### <strong>CS education is more than just “learning how to code”!</strong>

View File

@@ -6,13 +6,13 @@
使用链表存储数据,不强制要求数据在内存中集中存储,各个元素可以分散存储在内存中。例如,使用链表存储 {1,2,3},各个元素在内存中的存储状态可能是:
![](static/boxcnuwZzqX4dF8xKTYajwrDSxf.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnuwZzqX4dF8xKTYajwrDSxf.png)
可以看到,数据不仅没有集中存放,在内存中的存储次序也是混乱的。那么,链表是如何存储数据间逻辑关系的呢?
链表存储数据间逻辑关系的实现方案是:为每一个元素配置一个指针,每个元素的指针都指向自己的直接后继元素,如下图所示:
![](static/boxcnAnkVAJmMT0NSNvo6crXYAd.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnAnkVAJmMT0NSNvo6crXYAd.png)
显然,我们只需要记住元素 1 的存储位置,通过它的指针就可以找到元素 2通过元素 2 的指针就可以找到元素 3以此类推各个元素的先后次序一目了然。像图 2 这样,数据元素随机存储在内存中,通过指针维系数据之间“一对一”的逻辑关系,这样的存储结构就是链表。
@@ -20,13 +20,13 @@
在链表中,每个数据元素都配有一个指针,这意味着,链表上的每个“元素”都长下图这个样子:
![](static/boxcncRc5OKZROtxC9rpQYxrjvf.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcncRc5OKZROtxC9rpQYxrjvf.png)
数据域用来存储元素的值,指针域用来存放指针。数据结构中,通常将这样的整体称为结点。
也就是说,链表中实际存放的是一个一个的结点,数据元素存放在各个结点的数据域中。举个简单的例子,图 3 中 {1,2,3} 的存储状态用链表表示,如下图所示:
![](static/boxcn0VMYQlez7tQTNkTPDkCsvg.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn0VMYQlez7tQTNkTPDkCsvg.png)
在 C 语言中,可以用结构体表示链表中的结点,例如:
@@ -66,7 +66,7 @@ typedef struct Node* Link;
例如,创建一个包含头结点的链表存储 {1,2,3},如下图所示:
![](static/boxcnjAoO54txAhnu7Ry8ExjGvc.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnjAoO54txAhnu7Ry8ExjGvc.png)
## 链表的创建
@@ -104,7 +104,7 @@ while (Judgement)
}
```
![](static/boxcn8ZxT5oMkScArZjZhgM6TYb.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn8ZxT5oMkScArZjZhgM6TYb.png)
### 创建结点——尾插法
@@ -121,7 +121,7 @@ while (Judgement) //for同理
}
```
![](static/boxcnnMjc9pwgZgk1GBmBRlBS6d.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnnMjc9pwgZgk1GBmBRlBS6d.png)
## 链表的基本操作
@@ -176,7 +176,7 @@ int GetElem(Link *L, int i; int *e)
例如,在链表 `{1,2,3,4}` 的基础上分别实现在头部、中间、尾部插入新元素 5其实现过程如图所示
![](static/boxcnxjex5Q3Lt9AAx6roN3ClUg.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnxjex5Q3Lt9AAx6roN3ClUg.png)
从图中可以看出,虽然新元素的插入位置不同,但实现插入操作的方法是一致的,都是先执行步骤 1 ,再执行步骤 2。实现代码如下
@@ -207,7 +207,7 @@ int ListInsert(Link *L, int i, int e)
对于没有头结点的链表,在头部插入结点比较特殊,需要单独实现。
![](static/boxcn1hlL1Fk4kDK4CPT2hJxwnV.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn1hlL1Fk4kDK4CPT2hJxwnV.png)
和 2)、3) 种情况相比,由于链表没有头结点,在头部插入新结点,此结点之前没有任何结点,实现的步骤如下:
@@ -253,7 +253,7 @@ temp->next=temp->next->next;
例如,从存有 `{1,2,3,4}` 的链表中删除存储元素 3 的结点,则此代码的执行效果如图 3 所示:
![](static/boxcnn3QHja0tzEwqJl9Mk4KnCg.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnn3QHja0tzEwqJl9Mk4KnCg.png)
实现代码如下:
@@ -282,7 +282,7 @@ int ListDelete(Link *L, int i, int* e)
对于不带头结点的链表,需要单独考虑删除首元结点的情况,删除其它结点的方式和图 3 完全相同,如下图所示:
![](static/boxcnXjwE0yDFvpQxLaPw7FifxV.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnXjwE0yDFvpQxLaPw7FifxV.png)
实现代码如下:
@@ -319,7 +319,7 @@ int ListDelete(Link *L, int i, int* e)
如图所示,假设此时圆周周围有 5 个人,要求从编号为 3 的人开始顺时针数数,数到 2 的那个人出列:
![](static/boxcngx7ZPA7pONbJo82LbNCO1g.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcngx7ZPA7pONbJo82LbNCO1g.png)
出列顺序依次为:
@@ -339,10 +339,10 @@ int ListDelete(Link *L, int i, int* e)
为了使空链表和非空链表处理一致,我们通常设一个头结点,当然,并不是说,循环链表一定要头结点,这需要注意。循环链表带有头结点的空链表如图所示:
![](static/boxcn3l30usevMTgv1ZbZ0mfJdh.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn3l30usevMTgv1ZbZ0mfJdh.png)
对于非空的循环链表如图所示:
![](static/boxcngoLTiM9wto9uCGzH7nkjkW.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcngoLTiM9wto9uCGzH7nkjkW.png)
循环链表和单链表的主要差异就在于循环的判断条件上,原来是判断 p->next 是否为空,现在则是 p->next 不等于头结点,则循环未结束。

View File

@@ -20,7 +20,7 @@
当然,如果你选择跳过,也不会对 python 开发那里造成非常大的影响但是你会错失一个非常宝贵的学习机会。
![](static/boxcnustZBhjMu8FPN0Kxi4Mwvf.jpg)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnustZBhjMu8FPN0Kxi4Mwvf.jpg)
在 1980 年代, [文字冒险](http://en.wikipedia.org/wiki/Text_adventure) 是一种受人尊敬的电脑游戏类型。但是时代已经变了,在 21 世纪,它们与 带有 3D 引擎的现代 [MMORPG 相比显得苍白无力。](http://en.wikipedia.org/wiki/Mmorpg)书籍在电影的兴起中幸存下来,而基于文本的游戏很快就输掉了与图形游戏的战斗。“互动小说”由一个活跃的社区保持活力,但它的商业价值早已不复存在。

View File

@@ -28,7 +28,7 @@
- 打印变量, 断点, 监视点, 函数调用栈...
![](static/boxcnaqLMfwqNMTcYEPuF3vFjqg.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnaqLMfwqNMTcYEPuF3vFjqg.png)
# 调试理论

View File

@@ -2,7 +2,7 @@
请在开始进行 C 语言编程之后查阅使用
![](static/boxcnHXggg6eLy86vFmb4shOksh.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnHXggg6eLy86vFmb4shOksh.png)
# GDB 是什么?

View File

@@ -1,6 +1,6 @@
# C 的历史问题undefined behavior
![](static/boxcnIdOChXQUGMvnxWcB7uTWLh.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnIdOChXQUGMvnxWcB7uTWLh.png)
简写为 UB

View File

@@ -6,7 +6,7 @@
值得一提的是,我不会在本教程讲授过于基础的概念,但是会贴出你可能需要学习的内容。
![](static/boxcnAnXUHDqsMYVrDlBfFunoVf.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnAnXUHDqsMYVrDlBfFunoVf.png)
同时我要说的是C 语言为了适配多种多样的硬件以及各式各样的操作,他对非常多的 undefined 操作不做太多限制,也就是说你可能会出现各种各样的问题,<del>甚至把你电脑炸了</del>

View File

@@ -204,7 +204,7 @@ git checkout -B 分支名
页面大概是这样:
![](static/boxcnHemi9HkeAG1fgoznHbHLrc.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnHemi9HkeAG1fgoznHbHLrc.png)
### Git 和 Github
@@ -234,11 +234,11 @@ ssh-keygen -t rsa -C "youremail@example.com" # youremail为你注册用的电
登陆 `GitHub`,打开 `settings`
![](static/boxcn9VFPUYHl8ghJ3C78RsXjtf.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn9VFPUYHl8ghJ3C78RsXjtf.png)
然后打开左侧栏 `SSH and GPG`` keys` 页面
![](static/boxcn1HbQct335qvZ71tGNu7jne.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn1HbQct335qvZ71tGNu7jne.png)
然后,点 `New SSH Key`,填上任意 Title在 Key 文本框里粘贴 `id_rsa.pub` 文件的内容即可
@@ -247,11 +247,11 @@ ssh-keygen -t rsa -C "youremail@example.com" # youremail为你注册用的电
绑定完 GitHub 然后你可以创建仓库了
首先在 GitHub 主页,找到 “New” 按钮,创建一个新的仓库
![](static/boxcn5sVnE76FYpVW2RDxtWDiZc.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn5sVnE76FYpVW2RDxtWDiZc.png)
然后填上这个仓库的大名就可以创建了
![](static/boxcnsN133WrLrbxsX8JgvsQmif.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnsN133WrLrbxsX8JgvsQmif.png)
根据之前学习的方法在本地创建完 git 仓库之后
@@ -282,7 +282,7 @@ git clone [url]
首先,代码的 url 在下图所示的位置
![](static/boxcnTiaT2EnNfKVkretPsyajVd.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnTiaT2EnNfKVkretPsyajVd.png)
然后复制完代码后切换回我们的命令行
@@ -294,7 +294,7 @@ git clone https://github.com/camera-2018/git-example.git
一阵抽搐过后就下载好了
![](static/boxcn8aRDQpe7uuDxFv9v1WvZ4c.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn8aRDQpe7uuDxFv9v1WvZ4c.png)
注意:用完之后别忘记给 camera-2018 点个 follow 呃呃 follow 没用 star 有用
@@ -304,7 +304,7 @@ git clone https://github.com/camera-2018/git-example.git
如图 我在仓库里新建了 `helloworld.c` 并且写了一些代码
![](static/boxcnZpPsp4FP78auolzHvCKP0g.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnZpPsp4FP78auolzHvCKP0g.png)
接下来是提交操作
@@ -312,7 +312,7 @@ git clone https://github.com/camera-2018/git-example.git
git status #看一下文件暂存区
```
![](static/boxcnm4R1ZN0WeUBuYht6zge7pd.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnm4R1ZN0WeUBuYht6zge7pd.png)
红色表示文件没有提交到暂存区 我们要提交
@@ -322,7 +322,7 @@ git status #看一下文件暂存区
git add . #将没有提交的所有文件加入暂存区
```
![](static/boxcnYHd076RAqfDmHjbUkeNSvg.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnYHd076RAqfDmHjbUkeNSvg.png)
绿色表示所有文件已加入暂存
@@ -332,7 +332,7 @@ git commit -m "feat(helloworld): add helloworld file"
将刚才加入暂区的文件发起了一个提交 注释是 `feat(helloworld): add helloworld file`
![](static/boxcni2dupDzNO8qTWPAxS5c67b.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcni2dupDzNO8qTWPAxS5c67b.png)
1. 如果这是你自己的仓库有权限 你就可以直接使用
@@ -343,7 +343,7 @@ git push origin main # origin是第四步里remote add起的远程名字
上传本次提交
![](static/boxcnNBu1EJnva4EkyQZAVlwGMe.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnNBu1EJnva4EkyQZAVlwGMe.png)
1. 如果你没有本仓库的主分支提交权限 可以提交 prpull requests
@@ -351,7 +351,7 @@ git push origin main # origin是第四步里remote add起的远程名字
首先创建一个新分支 命名为 `yourname-dev`
![](static/boxcnaS7aOzdt31vsZZx8R1s33e.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnaS7aOzdt31vsZZx8R1s33e.png)
然后按照上面的方法 `git clone` 并切换到你刚创建的分支
@@ -361,30 +361,30 @@ git switch camera-2018-dev
然后提交一个文件 这里使用 vscode 自带的 git 工具试试
![](static/boxcnmwlYWOzwPbNqTAuSZK9dW3.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnmwlYWOzwPbNqTAuSZK9dW3.png)
点暂存所有更改 写好 comment 之后点提交
![](static/boxcnfcCnAdtdX2oyLIC3NibVnf.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnfcCnAdtdX2oyLIC3NibVnf.png)
最后点同步更改上传
![](static/boxcn9DSPlFgG2WMZhTOE9Zhzgb.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn9DSPlFgG2WMZhTOE9Zhzgb.png)
如果是你提交 在 github 上会显示这个 快捷创建 pr 的按钮
![](static/boxcnHd7Qfi8C0Y7V2Ot5ii4vpf.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnHd7Qfi8C0Y7V2Ot5ii4vpf.png)
![](static/boxcnyt3eeZQyN8b1xM1WjDrTGe.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnyt3eeZQyN8b1xM1WjDrTGe.png)
点它创建 pr
![](static/boxcnJOjh1Zfp9tCd3llL9NsEzb.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnJOjh1Zfp9tCd3llL9NsEzb.png)
这样管理本仓库的人看到 pr 请求就可以 merge 合并辣
![](static/boxcnBMq0sw6c48jvjdPJwmAGtZ.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnBMq0sw6c48jvjdPJwmAGtZ.png)
![](static/boxcngNZOSnYUtCKH6pm8UaUMNd.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcngNZOSnYUtCKH6pm8UaUMNd.png)
实际合作过程中可能会出现代码冲突无法 merge 的情况 😋 遇到了自己去 STFW 吧

View File

@@ -10,21 +10,21 @@
装下来之后具体操作可以看[安装教程](https://blog.csdn.net/in546/article/details/117400839),如果自动配置环境变量的选项是灰色的话,请按照下面的教程把下面的几个文件路径加入环境变量。
![](static/boxcn3PLPIvKSSvYiCnwx50FYvf.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn3PLPIvKSSvYiCnwx50FYvf.png)
![](static/boxcnvTQPcmPpUonmDZFZXNnGWd.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnvTQPcmPpUonmDZFZXNnGWd.png)
![](static/boxcn6ZnAzhaj2Tj7xk9K6FxBJh.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn6ZnAzhaj2Tj7xk9K6FxBJh.png)
在里面添加并写入文件路径加入就好了~
![](static/boxcnnsuoHmhK4dBCLHlKhpRWIe.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnnsuoHmhK4dBCLHlKhpRWIe.png)
然后打开 Pycharm创建新项目设置按照以下方式操作记得挂梯子。
如果不挂梯子,请按照教程配置清华源。[我是教程](https://blog.csdn.net/jasneik/article/details/114227716)
![](static/boxcnTfvjYweuIZFKlcH78X38Pd.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnTfvjYweuIZFKlcH78X38Pd.png)
然后一个新的环境就创建好辣~

View File

@@ -32,7 +32,7 @@
可以输入 `python3 --version` 检验是否成功。
![](static/boxcn95LbcwuMC2dIViOxWk8BFb.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn95LbcwuMC2dIViOxWk8BFb.png)
# Jupyter Notebook
@@ -50,6 +50,6 @@ jupyter notebook
进行使用
![](static/boxcnfwk8gnFAHu5JzVUiugJjQe.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnfwk8gnFAHu5JzVUiugJjQe.png)
[Pycharm](https://www.jetbrains.com/zh-cn/pycharm/):可能很多同学已经用上了,我在这里不做更多解释

View File

@@ -2,7 +2,7 @@
什么是递归呢?
![](static/boxcnCNpeAE9Hy61cyvtxfioIHg.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnCNpeAE9Hy61cyvtxfioIHg.png)
#

View File

@@ -184,7 +184,7 @@ P79*9 乘法表
可能现在对你来说,构建像下图这样的 99 乘法表已经是非常容易的一件事了,可是如果我要求你使用 python 的列表生成器,在两行以内完成呢?
![](static/boxcnccDSRQj5W3lZWEUkCOHz2b.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnccDSRQj5W3lZWEUkCOHz2b.png)
P8couple 情侣

View File

@@ -158,7 +158,7 @@ VS Code 的另一个不错的功能是它具有“嵌入式终端”。因此,
首先,打开一个终端窗口。
![](static/L5HvblSuYonJn4x03a4cMLKknrh.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/L5HvblSuYonJn4x03a4cMLKknrh.png)
#### 主目录
@@ -174,11 +174,11 @@ VS Code 的另一个不错的功能是它具有“嵌入式终端”。因此,
PATH 就像一个地址:它告诉您和计算机到某个文件夹的完整路径(或路由)。请记住,您可以通过两种不同的方式访问计算机上的文件和目录(文件夹)。您可以使用终端(这是一个<strong>命令行</strong>界面或 CLI也可以使用 Finder <strong>。</strong>Finder 是<strong>图形</strong>用户<strong>界面</strong>(或 GUI的一个 例子<strong>。</strong>导航技术不同,但文件相同。例如,这是我的 CS 61A 实验室文件夹在我的 GUI 中的样子:
![](static/CWDhbW6gzogyMFxtd6kcnPBunv2.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/CWDhbW6gzogyMFxtd6kcnPBunv2.png)
这是完全相同的文件夹在终端中的外观:
![](static/HZNMbzGZOoQGAhxQ29gcM5V4nNd.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/HZNMbzGZOoQGAhxQ29gcM5V4nNd.png)
请注意,在这两种情况下,黄色框都显示了 PATH紫色椭圆显示了“labs”文件夹的内容。
@@ -186,7 +186,7 @@ PATH 就像一个地址:它告诉您和计算机到某个文件夹的完整路
让我们停下来思考一下终端和 Python 解释器之间的区别。
![](static/HgTfbMhCGodZbzxBNh9crH3cnCe.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/HgTfbMhCGodZbzxBNh9crH3cnCe.png)
1. 哪个是终端?
2. 哪个是 Python 解释器?
@@ -197,7 +197,7 @@ A 和 D 都是我的终端。在这里您可以运行 bash 命令,例如 `cd`
B 是 Python 解释器。你可以从 >>> 提示中看出这意味着你已经启动了一个 Python 解释器。您还可以判断,因为启动它的命令是可见的:`python3`。该 `python3` 命令启动 Python 解释器。如果您在 Python 解释器中键入 bash 命令,您可能会遇到语法错误!这是一个例子:
![](static/GEN5b1HHdoDegPxAp8WcQDGknoc.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/GEN5b1HHdoDegPxAp8WcQDGknoc.png)
C 是我的代码编辑器。这是我可以编写 Python 代码以通过我的终端执行的地方。
@@ -287,7 +287,7 @@ mkdir lab
现在,如果您列出目录的内容(使用 `ls`),您将看到两个文件夹,`projects``lab`.
![](static/Cpfzb9oK2oMyGxxgkqVceE8DnId.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/Cpfzb9oK2oMyGxxgkqVceE8DnId.png)
### 更多目录更改
@@ -475,7 +475,7 @@ ______
实验室还将包括函数编写问题。在你的文本编辑器中打开 `lab00.py`。您可以 `open .` 在 MacOS 或 `start .` Windows 上键入以在 Finder/文件资源管理器中打开当前目录。然后双击或右键单击以在文本编辑器中打开文件。你应该看到这样的东西:
![](static/FkOybDwtnoQeRyxejlwcjhQ2nch.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/FkOybDwtnoQeRyxejlwcjhQ2nch.png)
三引号中的行 `"""` 称为<strong>文档字符串Docstring</strong>,它描述了函数应该做什么。在 61A 中编写代码时,您应该始终阅读文档字符串!
@@ -483,7 +483,7 @@ ______
在这里,我们圈出了文档字符串和文档测试,以便于查看:
![](static/MF4ZbUZ0qo70gRxeNGocsYvmnwe.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/MF4ZbUZ0qo70gRxeNGocsYvmnwe.png)
`twenty_twenty_two`,

View File

@@ -14,13 +14,13 @@
一路下一步
![](static/boxcntUYJNAaOwB8L6KSEhJJojh.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcntUYJNAaOwB8L6KSEhJJojh.png)
![](static/boxcnQkVQ4uyYCveO6toBujoGOc.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnQkVQ4uyYCveO6toBujoGOc.png)
这俩我推荐勾掉
![](static/boxcndgDKfTuio3nF0QboemIPHe.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcndgDKfTuio3nF0QboemIPHe.png)
安装过后点许可证 输上面的 key 激活
@@ -30,15 +30,15 @@
下好回到 VMware
![](static/boxcnGHnjgZvtcBrm0XXitFl4Jg.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnGHnjgZvtcBrm0XXitFl4Jg.png)
创建新的虚拟机-典型(推荐)-下一步-安装程序 iso 选中你刚下的 iso 下一步
![](static/boxcnXilUhHNEyU4r95FxiVgCdg.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnXilUhHNEyU4r95FxiVgCdg.png)
这里填你一会儿要登录 linux 的个人信息
![](static/boxcnp33Oc3Ia2HzASTZJNOhEWb.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnp33Oc3Ia2HzASTZJNOhEWb.png)
这里建议把位置改到其他盘
@@ -46,21 +46,21 @@
启动后进入 Ubuntu 安装
![](static/boxcn5Uk41JyjjdTzXWQqUkexzc.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn5Uk41JyjjdTzXWQqUkexzc.png)
键盘映射 直接 continue
接下来一路 continue install now
![](static/boxcnLxZnyFN3ohE8zrTwNaCA8e.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnLxZnyFN3ohE8zrTwNaCA8e.png)
最后 restart
![](static/boxcnLguvbHihJ3ngqrtyGLI6zf.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnLguvbHihJ3ngqrtyGLI6zf.png)
![](static/boxcnCX92JHjg8PU3quKs4GziZb.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnCX92JHjg8PU3quKs4GziZb.png)
![](static/boxcnL5Jn3g7AdzVzoBb6ZINs1f.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnL5Jn3g7AdzVzoBb6ZINs1f.png)
这个 skip
@@ -68,15 +68,15 @@
点右上角 settings
![](static/boxcn85Yb3JIQ3520KeaSoyPVDd.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn85Yb3JIQ3520KeaSoyPVDd.png)
![](static/boxcnZLHO1JGWoSqhM9zEEhSMAd.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnZLHO1JGWoSqhM9zEEhSMAd.png)
![](static/boxcnvLxCTKYfogPm9GNaKmusEf.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnvLxCTKYfogPm9GNaKmusEf.png)
然后按指引 restart 系统
![](static/boxcn30VJILYpO81pq89mAmzjTf.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcn30VJILYpO81pq89mAmzjTf.png)
会提示你要不要重新命名这些用户下的文件夹
@@ -84,27 +84,27 @@
如果你的语言还没有变过来的话
![](static/boxcnKzJjY8Dvj13A49bnMAztPg.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnKzJjY8Dvj13A49bnMAztPg.png)
点击这个他会安装语言
![](static/boxcndHnAuGC7TXhQgLkpLkHghf.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcndHnAuGC7TXhQgLkpLkHghf.png)
把汉语拖到英文之上 点应用到整个系统
![](static/boxcnltCL3atXHtC3BUj5VI1Lqf.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnltCL3atXHtC3BUj5VI1Lqf.png)
右上角 logout 重新登陆 就是中文辣
最后在设置-电源把息屏改成从不
![](static/boxcnnLCJzGoFrUbWIMAPGFkxcb.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnnLCJzGoFrUbWIMAPGFkxcb.png)
<strong>至此 恭喜安装完成!</strong>
之后就可以在桌面上右键
![](static/boxcnG6z1VpAYUGMSkSwDBUxEvf.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnG6z1VpAYUGMSkSwDBUxEvf.png)
打开命令行

View File

@@ -15,10 +15,10 @@
(现在可能是只开 `适用于Linux的windows子系统`
![](static/boxcnYVkEecWdUs710e8h6G9GTh.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnYVkEecWdUs710e8h6G9GTh.png)
如果你的 windows 版本为<strong>家庭版</strong> 那么 hyperv 选项是没有的
你需要右键以管理员权限打开以下脚本来强行开启 hyperv
![](static/boxcnoCF5MilDma33yviwRGdDHe.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnoCF5MilDma33yviwRGdDHe.png)

View File

@@ -15,4 +15,4 @@
![](static/boxcnOrKXUsIPJAUXyGB3Txewve.png)
![](https://hdu-cs-wiki.oss-cn-hangzhou.aliyuncs.com/boxcnOrKXUsIPJAUXyGB3Txewve.png)