44
55CSAPP 第一章配套实验。
66
7- 本实验的目的是加深同学们对整数和浮点数二进制表示的认识 。同学们需要解出若干程序谜题,编写代码并通过正确性测试,最后提交代码和报告。希望同学们多加思考,在解题过程中能学到的远不止二进制本身,还能加深对位运算的理解,以及学到一些算法知识。
7+ 本实验是 CSAPP 第一章配套实验,目的是加深同学们对整数和浮点数二进制表示的认识 。同学们需要解出若干程序谜题,编写代码并通过正确性测试,最后提交代码和报告。希望同学们多加思考,在解题过程中能学到的远不止二进制本身,还能加深对位运算的理解,以及学到一些算法知识。
88
9- 本实验分为常规部和荣誉部分。荣誉部分的难度较高,是本课程比较有挑战性的部分。
10-
11- 荣誉部分虽然占分,但是占分并不高,大家可以自己决定要不要做荣誉部分。生活就像海洋,只有意志坚强的人才能到达彼岸!
9+ 本实验的满分为 110 分。每迟交一天(迟交 1ms 到 24h 均视作一天)会在你的得分上扣除 5 分,扣完为止,报告另外算分。例如:如果你迟交一天,但是完成了 107 分的作业,则你的实验得分为 100 分,多余的 2 分可以加到报告的分数上。
1210
1311## 部署实验环境
1412
15- ### (1)下载
13+ ### 领取作业并克隆仓库到本地
14+
15+ 点击 [ 链接] ( https://classroom.github.com/a/I6F-iQot ) 接受作业。
16+
17+ > [ !warning]
18+ >
19+ > 上一次作业还没选择名字的同学点进链接会提示你选择,请尽快完成这一步!
1620
17- 从 ` github classroom ` 拉取` lab1-datalab-xxx ` 文件夹,其中的内容就是本次实验用到的的文件了 ,拉取指令如下:
21+ 从 ` GitHub Classroom ` 拉取 ` lab1-datalab-xxx ` 仓库,其中的内容就是本次实验用到的文件了 ,拉取指令如下:
1822
1923``` shell
2024git clone git@github.com:ICS-25Fall-FDU/lab1-datalab-xxx.git # 将 xxx 替换为你的 GitHub 用户名
2125cd lab1-datalab-xxx
2226```
2327
24- ### (2)准备工作
28+ ### 安装必要软件
2529
2630#### 确保已安装了 gcc
2731
@@ -54,7 +58,7 @@ sudo apt-get update
5458sudo apt-get install make
5559```
5660
57- 本实验需要用到以下 C 标准库 :
61+ 本实验需要用到以下 C 运行库和编译包 :
5862
5963``` shell
6064sudo apt-get install libc6 libc6-dev libc6-dev-i386
@@ -111,75 +115,70 @@ chmod +x dlc
111115
112116## 实验提示与说明
113117
114- ### (1) 如何入手
118+ ### 如何入手
115119
116120推荐阅读顺序:本文档 > ` README ` > ` bits.c ` 的注释部分。
117121
118- ` README ` 文档中对实验文件做了较为详细的介绍。
119-
120- ` bits.c ` 是同学们唯一需要编辑的文件,其中包含了谜题规则介绍, 18 个谜题以及谜题内容、难度、分数等。
121-
122- 上面的两个文件请务必仔细阅读。
122+ ` README ` 文档中对实验文件做了较为详细的介绍。` bits.c ` 是同学们唯一需要编辑的文件,其中包含了谜题规则介绍,18 个谜题以及谜题内容、难度、分数等。上面的两个文件请务必仔细阅读。
123123
124124注意到,每一个谜题包含了如下信息:
125125
126- * 能使用的运算符。
127- * 能使用的运算符总数量。
128- * 能使用的常数的值域范围。
129- * 变量类型。
130- * 能否使用控制语句(如 ` if ` )等。
126+ - 能使用的运算符。
127+ - 能使用的运算符总数量。
128+ - 能使用的常数的值域范围。
129+ - 变量类型。
130+ - 能否使用控制语句(如 ` if ` )等。
131131
132- ### (2) 测试
132+ ### 测试
133133
134- * 除了 ` bits.c ` ,你不应该编辑任何其余文件。
134+ - 除了 ` bits.c ` ,你不应该编辑任何其余文件。
135135
136- * 完成谜题后,需要检验自己的代码是否正确:
136+ - 完成谜题后,需要检验自己的代码是否正确:
137137
138- * 首先,执行下述指令,检查每个函数使用的运算符类型、数目是否符合要求:
138+ - 首先,执行下述指令,检查每个函数使用的运算符类型、数目是否符合要求:
139139
140- * ``` shell
140+ ``` shell
141141 ./dlc -e bits.c
142142 ```
143143
144- * 如没有任何报错,按顺序执行下述指令,测试每个函数的正确性:
144+ - 如没有任何报错,按顺序执行下述指令,测试每个函数的正确性:
145145
146- * ` ` ` shell
146+ ` ` ` shell
147147 make clean
148148 make all
149149 ./btest
150150 ` ` `
151151
152- * ` btest` 执行时会给出每个谜题(函数)是否通过测试(未通过时会给出测试数据),并且会计算你的最终得分。
152+ - ` btest` 执行时会给出每个谜题(函数)是否通过测试(未通过时会给出测试数据),并且会计算你的最终得分。
153153
154- * 你可以利用上 ` ./ishow` 和 ` ./fshow` 来帮助你调试(用法见 ` README` )。
154+ - 你可以利用上 ` ./ishow` 和 ` ./fshow` 来帮助你调试(用法见 ` README` )。
155155
156156# # 提交实验
157157
158- # ## (1) 内容要求
158+ # ## 内容要求
159159
160160你需要提交至少两份文件,包含你的 ` bits.c` 和一份实验报告。
161161
162162实验报告应该包含以下内容:
163163
164- * 实验标题,你的姓名,学号。
164+ - 实验标题,你的姓名,学号。
165+ - 你在终端中执行 ` ./dlc -e bits.c` 后的截图。
166+ - 你在终端中执行 ` ./btest` 后的截图。
167+ - 描述你实现每个函数的思路。` bits.c` 中不要求给自己的代码写注释(写了也无妨)
168+ - 如果有,请务必在报告中列出引用的内容以及参考的资料。
169+ - 对本实验的感受(可选)。
170+ - 对助教们的建议(可选)。
165171
166- * 你在终端中执行 ` ./dlc -e bits.c` 后的截图。
167- * 你在终端中执行 ` ./btest` 后的截图。
168- * 描述你实现每个函数的思路。` bits.c` 中不要求给自己的代码写注释(写了也无妨)
169- * 如果有,请务必在报告中列出引用的内容以及参考的资料。
170- * 对本实验的感受(可选)。
171- * 对助教们的建议(可选)。
172-
173- # ## (2)格式要求
172+ # ## 格式要求
174173
175174可提交 ` .md` 文件或者 ` .pdf` 文件。请勿提交 ` .doc` 或 ` .docx` 文件。
176175(如果提交 ` .md` 文件,请确保助教能同时看到你报告中的截图!)
177176
178177> [! tip]
179178>
180- > 在你的 Markdown 报告中插入图片时,使用 ** 相对路径** 而不是绝对路径 。如果你不确定这一步是否正确,请进入你的远程仓库预览你的报告。
179+ > 在你的 Markdown 报告中插入图片时,请将图片文件放在仓库的 ` images/ ` 或 ` assets/ ` 文件夹下,并使用 ** 相对路径** (如 ` images/screenshot.png ` )插入图片。常见支持的图片格式有 PNG、JPG 和 GIF。插入图片的 Markdown 语法示例: ` ! [截图说明](images/screenshot.png) ` 。上传报告时,请确保图片文件已一并上传到 GitHub 。如果你不确定这一步是否正确,请进入你的远程仓库预览你的报告。
181180
182- # ## (3) 上传
181+ # ## 上传
183182
184183打开终端,** 在 ` lab1-datalab-xxx` 路径下** 执行以下指令:
185184
@@ -194,20 +193,22 @@ git commit -m "xxx(可以是你的提交注释)"
194193git push
195194` ` `
196195
197- # ## (4) 评分规则
196+ # ## 评分规则
198197
199- * 实验报告要求简洁清晰,不必追求字数,描述清楚思路即可
200- * 对每道谜题请先做思考,不要立即使用搜索引擎。
201- * 不允许抄袭其它人的代码 ,一旦发现,零分处理。
198+ - 实验报告要求简洁清晰,不必追求字数,描述清楚思路即可。
199+ - 对每道谜题请先做思考,不要立即使用搜索引擎,如果使用了 AI,请在提交的报告中注明 。
200+ - 严禁抄袭其它人的代码 ,一旦发现,零分处理。
202201
203202# # 参考资料
204203
205- * [CMU 原版 Lab](http://csapp.cs.cmu.edu/3e/labs.html)
206- * 本文档编写时参考了24年的实验文档 。
204+ - [CMU 原版 Lab](http://csapp.cs.cmu.edu/3e/labs.html)
205+ - 本文档编写时参考了 24 年的实验文档 。
207206
208207> [! info] 本 Lab 负责助教
209208>
210- > * [蔡亦扬](mailto:caiyy23@m.fudan.edu.cn)
211- > * [项正豪](mailto:zhxiang23@m.fudan.edu.cn)
209+ > - [蔡亦扬](mailto:caiyy23@m.fudan.edu.cn)
210+ > - [项正豪](mailto:zhxiang23@m.fudan.edu.cn)
212211>
213212> ** 特别鸣谢** :24 年秋学期 ICS 助教李增昊
213+ >
214+ > 同时感谢 @徐厚泽 助教往本实验中加入了 ` bitReverse` 题目,感谢 @朱程炀 助教往本实验中加入了 ` float_inv` 题目。
0 commit comments