观前提醒: 本章干货极多, 书中以表格展现为主, 本人认为这样反人类反直觉, 且极难学习, 故在本篇笔记中穿插了大量具体实例辅助理解, 同时对于一些结论性的内容辅以具体推算, 不要一口气吃完, 读读写写才有效
第一个程序里我们用 int age; 存过一个年龄, 但没解释那个 int 是什么意思. 这篇就来说清楚"数据往哪儿放、能放什么"
0 综述
1234567891011121314数据类型├── 1 为什么需要变量├── 2 变量的三个要素: 类型、名称、值├── 3 命名规则与标识符├── 4 基本数据类型├── 5 类型修饰符├── 6 各类型占多少字节: sizeof├── 7 常量├── 8 转义字符├── 9 类型转换├── 10 printf/scanf 格式符├── 11 单字符 IO: putchar 与 getchar├── 12 一个完整的例子└── 13 拓展: 数据在内存中的存储形式
1 为什么需要变量
第一个程序最后的那个例子是这样的:
1234int age;printf("Input your age:");scanf("%d",&age ...
准备操作那篇里敲过一段代码,
当时说”目前不用知道原理”. 现在该把那段代码拆开看一看了
这篇不打算先讲什么数据类型、什么运算符,
因为脱离代码去记这些名词没什么意义. 我们直接盯着一个能跑的程序,
一行一行搞清楚它在干什么. 等有了”一个C程序大概长什么样”的印象,
后面的东西才好往这个框架里塞
0 综述
123456789第一个程序├── 1 最小程序逐行拆解├── 2 头文件与 #include├── 3 main 函数: 程序的出入口├── 4 函数的形状: 首部 + 函数体├── 5 语句、分号与注释├── 6 输出: printf 初步├── 7 输入: scanf 初步└── 8 其他猎奇题目
1 最小程序逐行拆解
把准备操作里的那段拿来:
123456#include <stdio.h>int main() { printf("type in whatever you want to print"); return 0;}
四行代码, 去掉空行其实就四件事:
行
代码
在干什么
1
#i ...
波形发生识别系统开发日志
G431(波形发生器)部分
文件清单与角色
文件
角色
关键内容
main.c
主入口(5种波形版)
按键切波、串口命令、justfloat发送
main copy.c
旧版备份(正弦+方波互斥)
含DacDbg_Run自检,已被main.c取代
wavegen.c
5种波形表生成
正弦/方波/三角/锯齿/阶梯,全走PA4
wave_gen.c
2种波形互斥版
方波走TIM3/PA6,正弦走DAC/PA4
dac.c
DAC1配置
G4特有:外设侧必须WORD对齐
adc.c
ADC1配置
单通道PA1,T2_TRGO触发,DMA循环
dma.c
DMA时钟+NVIC
DMAMUX1 + DMA1,两个通道中断
tim.c
TIM2/TIM3
TIM2=100kHz TRGO,TIM3=1kHz PWM
usart.c
USART1
921600 8N1,PC4=TX / PA10=RX ...
上一篇历史知识里提到存储器时只说了句”分内存、外存”.
但真到算容量、算地址、看八进制常量的时候, 这些概念是绕不开的,
所以单独开一篇.
这一篇在卷面上的权重不低: 进制转换几乎年年有,
地址与容量的计算题也常出.
而”各类存储介质的特点”这种纯背诵的内容近年考得很少, 书上却写得极多,
下面会明确标出哪些看一眼就行.
计算部分(地址与容量、进制互转)是必考的,
建议连例题一起动手算一遍; 概念部分只需记结论
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 条事件│ ├─ Debri ...
经过开学前两天的捣鼓, 终于捣鼓出了第一个单片机项目,
现将实现方式与最终效果加以记录
本例所用单片机型号为
0 目标
上电: 红灯亮绿灯灭,
屏幕(简称屏幕)打印”“,
串口输出”系统初始化成功”
准备模式下, 按下按钮A后, 红灯以0.5秒亮灭, 绿灯常亮, 屏幕显示”“,
串口输出”用户授权成功”; 每次短按按钮B屏幕计数器增加0.1s,
长按持续1s计数器连续递增, 串口输出”系统运行时间设置为…s”
设置完计时器后, 按下按钮A, 绿灯常亮,
红灯在所设定的时间内完成2次完整的呼吸灯, 串口输出”系统运行中”
运行时, 若按下按钮B, 则进入故障模式, 绿灯灭, 红灯快速闪烁,
蜂鸣器短促地响两声, 屏幕显示”“, 串口输出”系统运行异常, 请求复位操作”
若无故障, 则运行结束后红绿灯常亮, 蜂鸣器响1s, 回到初始状态,
串口输出”系统运行结束”
1 分析
由于先前做的项目与实践均为纯计算机,
这些要求用计算机模拟自然是十分简单的,
而突然要用实物电路实现突然有些不知所措, 于是先来整理下要求
整个系统一共包含5 ...
仅作记录, 未刻意排版
汇总扣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 泰勒展开的推导
有没有想过, 在遇到如三角函数,
对数函数等难以研究的函数的时候如果有一种方法能够将其表达为多项多次式的时候,
无论是求导积分还是计算都被大大简化. 比如 和 的函数图像是这样的:
可以看到二者在一个邻域内非常接近,
那么这个二次函数的解析式是如何得到的呢?
我们不妨就来考虑 的图像,
要找到一个二次函数
使其最接近余弦函数. 首先对于
处, , 因此
那这时候我们就会想, 二次函数
时的值确定下来了, 那要是此时二者切线也相同, 那贴合程度岂不大大增加了?
容易知道 ,
因此二次函数在此处的导数 ,
那么这时候两个参数已经被确定了, 只剩二次项系数. 此时只是确保 处切线水平, 但是如果 , 那么二次函数开口向上,
差距未免也太大了, 这时候我们就想到上一章所说的高阶导,
要是这时候二阶导数值也相同, 那么贴合程度不就更接近了? 赶紧计算一下,
,
而二次函数二阶导数值 , 就得到了上文中的函数, 这也被称为函数在 处的展开
回顾一下,
的 ...
博客快捷键
shift K
关闭快捷键功能
shift A
打开/关闭中控台
shift M
播放/暂停音乐
shift D
深色/浅色显示模式
shift S
站内搜索
shift R
随机访问
shift H
返回首页
shift F
友链鱼塘
shift L
友链页面
shift P
关于本站
shift I
原版/本站右键菜单
数据库加载中
通知
你好呀











