观前提醒: 本章干货极多, 书中以表格展现为主, 本人认为这样反人类反直觉, 且极难学习, 故在本篇笔记中穿插了大量具体实例辅助理解, 同时对于一些结论性的内容辅以具体推算, 不要一口气吃完, 读读写写才有效
第一个程序里我们用 int age; 存过一个年龄, 但没解释那个 int 是什么意思. 这篇就来说清楚"数据往哪儿放、能放什么"
0 综述
1234567891011121314数据类型├── 1 为什么需要变量├── 2 变量的三个要素├── 3 命名规则与标识符├── 4 基本数据类型├── 5 类型修饰符├── 6 各类型占多少字节├── 7 常量├── 8 转义字符├── 9 类型转换├── 10 printf/scanf 格式符├── 11 单字符 IO├── 12 一个完整的例子└── *13 数据在内存中的存储形式
1 为什么需要变量
第一个程序最后的那个例子是这样的:
1234int age;printf("Input your age:");scanf("%d",&age);printf( ...
上一篇历史知识里提到存储器时只说了句”分内存、外存”.
但真到算容量、算地址、看八进制常量的时候, 这些概念是绕不开的,
所以单独开一篇.
这一篇在卷面上的权重不低: 进制转换几乎年年有,
地址与容量的计算题也常出.
而”各类存储介质的特点”这种纯背诵的内容近年考得很少, 书上却写得极多,
下面会明确标出哪些看一眼就行.
计算部分(地址与容量、进制互转)是必考的,
建议连例题一起动手算一遍; 概念部分只需记结论
0 综述
1234567891011存储器与进制├── 1 存储器基础(★★★★)│ ├── 存储单元与存储地址│ ├── 存储单位(bit/B/KB/MB/GB/TB)│ └── 内存与外存的区别├── 2 地址与容量计算(★★★★★)│ └── 地址总线根数 → 寻址范围├── 3 进制转换(★★★★★)│ ├── 十 ↔ N│ └── 二 ↔ 八 ↔ 十六(不必过十进制)└── 4 各类进制的用途与优缺点(★★)
1 存储器基础(★★★★)
1.1 存储单位
从小到大共六层. 相邻两级之间除 ...
开始学 C 之前, 大多数教材都要先铺一堆计算机发展史. 问题是这部分内容在书里动辄写几十页, 而真正会出现在卷子上的可能就两三个空.
所以这篇笔记的写法是: 先按框架把该懂的讲清楚, 再把"书上写了一大堆但根本不考"的挑出来, 最后单独开一节写"书上没细讲但真题考过"的. 凡是我觉得不值得深究的, 则仅贴出应试所需背诵的结论
部分内容部分教材不作涉及可跳过
关于进制转换、存储容量计算这些偏计算的内容见后续笔记
0 综述
这章的知识点只有五块, 而且彼此是并列关系
12345678C语言概念知识├── 1 冯·诺依曼体系结构 ← 最常考, 必须记牢│ └── 程序存储思想├── 2 电子计算机发展历程 ← 只考"名称的先后顺序"├── 3 程序设计语言的种类 ← 略懂即可├── 4 C语言的优势 ← 选择题常出└── 5 C语言的开发过程 ← 最常考, 必须记牢 └── 编辑 → 编译 → 链接 → 运行
按重要度排, 大概是这样:
板块
重要度
说明
冯·诺依 ...
本章跟着做就行, 不用背, 考试不考配置环境
俗话说磨刀不误砍柴工, 写代码选对合适的工具很重要,
C语言开发环境本人只推荐三款, Dev-C++,
Visual Studio Code(VSC)和Visual Studio(VS),
其中入门只推荐Dev-C++, 过于权威, 过于好用(好配置),
用作大学学习已经足够(甚至足以用该工具拿到国奖),
若追求一定的舒适度可选择VSC,
而VS由于体积太过庞大(但功能是真的全)且绝大多数功能学习阶段完全用不到因此不作教学(其实是因为我懒得下载安装这么大个玩意儿了)
根据我的经验, 平时上课作业的编写使用DevC++完全没有问题,
期末考试等大概率是笔试,
此时DevC++其完全没有代码补全功能反倒成了优势:
其会强制你背下相关头文件函数等,
若代码补全用习惯根据我的经验到了闭卷考场上容易因为简单名称想不起来而扰乱心态;
若学习过程中有实验课等且学校只提供VS作为唯一开发环境,
那么也不需要在自己电脑上安装,
熟练掌握DevC++的使用后去B站上搜索VS基础操作教程, 了解编译运行,
新建项目和文件等 ...
复现了 Wang 等人 2022 年发在 Scientific Data 上的一个数据论文, 数据在
Zenodo 上, 内容是 2008
年汶川地震之后龙门山一带的泥石流事件和降雨记录
论文: Two multi-temporal datasets to track debris flow after the 2008
Wenchuan earthquake 论文 doi: 10.1038/s41597-022-01658-y 数据 doi:
10.5281/zenodo.6891244
代码在 kanwuqing/debris-flow-reproduction
这篇论文本身只发数据, 不给模型也不给阈值,
所以下面的模型和阈值都是我自己写的, 不是抄论文的
数据
压缩包解压放到 data/raw/, 里面是这样
12345678data/raw/├─ dataset1/Dataset1 Debris flow and Triggering rain/│ ├─ Dataset1_Debris flow.csv 186 ...
经过开学前两天的捣鼓, 终于捣鼓出了第一个单片机项目,
现将实现方式与最终效果加以记录
本例所用单片机型号为 \(STM32F401CCU6\)
0 目标
上电: 红灯亮绿灯灭, \(oled\)
屏幕(简称屏幕)打印”\(READY\)“,
串口输出”系统初始化成功”
准备模式下, 按下按钮A后, 红灯以0.5秒亮灭, 绿灯常亮, 屏幕显示”\(Please enter the runtime\)“,
串口输出”用户授权成功”; 每次短按按钮B屏幕计数器增加0.1s,
长按持续1s计数器连续递增, 串口输出”系统运行时间设置为…s”
设置完计时器后, 按下按钮A, 绿灯常亮,
红灯在所设定的时间内完成2次完整的呼吸灯, 串口输出”系统运行中”
运行时, 若按下按钮B, 则进入故障模式, 绿灯灭, 红灯快速闪烁,
蜂鸣器短促地响两声, 屏幕显示”\(ERROR!!!PLEASE
\hspace{1em} RESET\)“, 串口输出”系统运行异常, 请求复位操作”
若无故障, 则运行结束后红绿灯常亮, 蜂鸣器响1s, 回到初始状态,
串口输出 ...
仅作记录, 未刻意排版
汇总扣1,3,5,6,9,12的常见情况(文档内出现过的情况)以及口诀(如6分:占扣轻信,1分:车带会倒掉,禁检)
特别注意易混淆的点,比如组织他人审验弄虚作假/虚假材料等不同的处罚方式
杂项
注意找黄色 人行横道:蓝色菱形 人在跑:急 隧道找出口 箭头找“线”
科目一仅有“命名”编号 荒无人烟-》有烟无人 一条线50m 干路->火箭
两边虚线->车道 实习期要么没有要么12个月 有拘役就选;有徒刑就错
两证(驾驶,行驶)+两标(检验/保险)+一牌,没有扣留+罚款
牵引挂车申请:20~70岁 无未处理/处理完毕
伪造/高速公路倒车掉头逆行/谋取经济利益/醉酒/饮酒12分
灯(不按规定灯光)带(安全带)会(会车)倒(倒车)掉(掉头),禁(禁令标志)检(年检),一次1分
长宽高超规定1分 醉驾>=80 危险驾驶:醉驾/追逐/超载,5年不得申请
拼装报废超(速)50,200~2000,吊驾照 弄虚作假,代替他人->假1代2 礼让3分,
拼装/报废>=80%,200~2000,吊销驾照 报废包括吊销(对)/不美观( ...
这是再全国数学卷中使用得非常频繁的各种放缩的真正基础
1 泰勒展开的推导
有没有想过, 在遇到如三角函数,
对数函数等难以研究的函数的时候如果有一种方法能够将其表达为多项多次式的时候,
无论是求导积分还是计算都被大大简化. 比如 \(cosx\) 和 \(1-\frac{x^2}{2}\) 的函数图像是这样的:
可以看到二者在一个邻域内非常接近,
那么这个二次函数的解析式是如何得到的呢?
我们不妨就来考虑 \(cosx\) 的图像,
要找到一个二次函数 \(f(x)=ax^2+bx+c\)
使其最接近余弦函数. 首先对于 \(x=0\)
处, \(cos 0=1\), 因此 \(f(0)=c=1\)
那这时候我们就会想, 二次函数 \(x=0\)
时的值确定下来了, 那要是此时二者切线也相同, 那贴合程度岂不大大增加了?
容易知道 \(cos^\prime(0)=0\),
因此二次函数在此处的导数 \(b=0\),
那么这时候两个参数已经被确定了, 只剩二次项系数. 此时只是确保 \(x=0\) 处切线水平, 但是如果 \(a>0\), 那 ...
0 积分与求导的关系
事实上,
积分与求导互为逆运算这个关系似乎是显而易见的,
我们使用对 \(x-t\)
关系求导的方法求出了瞬时速度,
那么当我们知道每时每刻的速度与时间后自然而然将速度累积起来就得到了路程.
只不过由于速度在自然状态下每时每刻都在变化,
因此我们需要取极短的一段时间内的速度来代替这段时间内的平均速度,
再与这段时间相乘, 进而得到这段时间的近似路程, 而时间取得越短,
平均速度更接近瞬时速度, 求出的路程也更接近实际路程
举个例子, 从汽车加速再减速到 \(0\)
期间速度函数是 \(v(t)=t(8-t)\),
那么我们将 \(0~8s\) 分割成许多小份,
比如 \(1s\),
并取每秒初的速度来代替该秒的平均速度, 由此可以计算出近似路程为 \(\Sigma_{i=0}^{7}v(i)=84\)
那么如果取每 \(0.5s\) 呢? \(\Sigma_{i=0}^{15}v(i)=85\)
再精确一些, 取 \(0.25s\), \(\Sigma_{i=0}^{31}v(i)=85.25\)
由此我们可以发现, 随着时间的选 ...
其实在写这篇笔记之前, 我对极限已经有了一定的感受与理解,
相信正在读这篇博客的你也是. 但是问题是,
我们需要像教科书那样严谨地定义极限究竟是什么,
而不是单纯说好像是越来越逼近于某数.
且我们要给出一个合理且严谨的判定方式来客观判断一个式子的极限是否真的存在,
而不是每次靠不断去越来越小的数感觉是存在的
本篇笔记会给出所谓的 \(\varepsilon-\sigma\) 定义, 但勿惊慌,
放心食用
1 导数的标准定义
在导数那篇笔记中我们了解到导数之所以能和切线产生联系,
是因为其利用了无穷小,
即要多小有多小这个强有力的工具, 因此,
我们比需要在平均变化率的公式前加上一个 \(\lim_{dx \to 0}\)
来使这个式子表达的是切线的斜率
然而, 在公认的导数表达式中, \(\lim\)
与 \(d\) 并不同时出现, 具体地: \(\frac{df}{dx}(x)=\lim_{\Delta x \to
0}\frac{f(x+\Delta x)-f(x)}{\Delta x}\), 原因是通常情况下, \(d\) 就已经代表了将某 ...
博客快捷键
shift K
关闭快捷键功能
shift A
打开/关闭中控台
shift M
播放/暂停音乐
shift D
深色/浅色显示模式
shift S
站内搜索
shift R
随机访问
shift H
返回首页
shift F
友链鱼塘
shift L
友链页面
shift P
关于本站
shift I
原版/本站右键菜单
数据库加载中
通知
你好呀

