上篇咱们刚把单层 for 循环收拾利索,结尾我留了个话头:下一座小山是循环里再套循环。这不,这周就正式翻这座山了。大晨 GESP 一级备考第 31 篇笔记,接着唠。
嵌套循环是啥:跑圈加俯卧撑我是这么给大晨解释的:外层循环管“跑几圈”,内层循环管“每圈做几个俯卧撑”。
跑 5 圈、每圈 3 个俯卧撑,一共 15 个。累不累?累。但程序不怕累,它就爱干这种傻乎乎重复的活儿。
对应到代码,就是 for 里面再写一个 for。大晨第一眼看到两层 for 套在一起,来了句:“爸爸,这是循环套娃!”
行吧,名字土了点,意思是对的。
上代码:打印星星金字塔按《一本通·编程启蒙C++版》的进度,这周的题是经典款:输入 n,打印 n 行的星号直角三角形。n = 5 时长这样:
12345***************
代码:
1234567891011121314#include <iostream>using namespace std;int main() { int n; cin >> n; for (int i = 1; i &l ...
上篇结尾我说下篇继续聊实操,结果留言区直接被问爆了——好几个会计朋友都在问同一件事:凭证审核、记账之后才发现错了,怎么办?
上周日晚上我在家整理客户资料,大晨在旁边写作业,看我按 Ctrl+Z 撤销打错的字,头都不抬来了句:”爸爸,你的错字可以反悔,那阿姨们账记错了也能反悔吗?”
好家伙,一针见血。会计的世界没有 Ctrl+Z,但有反审核、反记账。今天就掰开揉碎讲讲。
先搞清顺序,别上来就乱按一张凭证的流程是:填制 → 审核 → 记账 → 结账。要往回退,就得倒着拆:
反结账 → 反记账 → 取消审核 → 改凭证 → 再走一遍流程。
顺序反了,一步都退不动。 我远程指导过的客户,一半卡在这一步。
反记账:Ctrl+H 是灵魂T3 里压根没有”反记账”按钮,得先把功能”喊醒”:
用账套主管登录(不是主管,后面全是死胡同);
总账 → 期末 → 对账,进对账界面后按 Ctrl+H,提示”恢复记账前状态功能已激活”;
再到 总账 → 凭证 → 恢复记账前状态,选”月初状态”或”上次记账状态”,输主管口令,确定。
反结账更简单:总账 → 期末 → 月末结账,选中已结账的月份,按 Ctrl+ ...
上篇留的话头,今天兑现上一篇咱们把单层 for 循环刷得差不多了,文末我留了句话:循环还能套着循环用,威力翻倍。今天《一本通·编程启蒙》正好翻到循环嵌套这一节,来兑现承诺。
先给他看题:从键盘读入一个 n,打印 n 行星星,第一行 1 颗,第二行 2 颗……第 n 行 n 颗。大晨扫了一眼说”这不简单?”,第一版代码交上来一跑——n 颗星星全挤在一横排里。
单层循环管不了”行”和”列”两个方向的事,这时候就得请出嵌套循环:外层管行,内层管列。
代码上桌完整代码,直接可以编译运行:
1234567891011121314#include <iostream>using namespace std;int main() { int n; cin >> n; for (int i = 1; i <= n; i++) { // 外层:第几行 for (int j = 1; j <= i; j++) { // 内层:这一行打几颗 cout << &q ...
第31篇。上篇结尾我说,这系列还得接着往下写。行,说到做到,这周记的这点事儿,说实话有点意思。
体重卡在79.2,一动不动每天早上流程雷打不动:上完厕所、脱到只剩短裤、上秤、记小本子上。
这周一称,79.2;周二,79.2;周三,还是79.2。
整整两周,屏幕上的数字跟焊死了一样。
饮食我没乱来——早饭两个全蛋加三个蛋白、50克燕麦,午饭正常吃,晚上鸡胸肉配蔬菜,蛋白质天天稳在110克左右。练也没偷懒,一周四练一次没缺。凭什么不掉秤?
周三早上我蹲在秤边上研究半天,怀疑它坏了,差点想直接扔了换个新的。
大晨看我在卫生间蹲着发呆,凑过来:“爸你干嘛呢?”
“秤坏了。”
他踩上去瞅了一眼:“没坏啊,我30.6。”
小孩的世界真简单,秤说啥就是啥。
周四练腿,腿软心也软周四照例练腿,那天状态其实不错:
深蹲 62.5kg,5组×5
罗马尼亚硬拉 60kg,4组×8
保加利亚分腿蹲,每边12kg哑铃,3组×10
收尾平板支撑1分40秒
全程54分钟。练完扶着墙下楼,腿抖得像筛糠。可心里还在惦记那台秤:练这么狠,凭什么不掉秤?
一条软尺救了我晚上洗完澡,老婆随口来了一句:“你裤子最近怎么老往 ...
上一篇结尾我说,这周要跟体重秤“算总账”。
今天早上六点十分,上完厕所,空腹,光脚,我把秤踩上去,等数字跳完——79.9。
我盯着它看了足足一分钟,下来又重新称了一遍。还是79.9。
三十篇日记,一篇没断,这秤终于低头了。
一、从92.4到79.9,卸了一整箱矿泉水翻回第一篇,今年一月的记录:92.4公斤,腰围104厘米,爬三层楼喘得像拉风箱。
今天早上:79.9公斤,腰围90厘米。
12.5公斤,差不多一整箱24瓶装的矿泉水,我背了它小半年,今天终于卸货了。
数字看着爽,过程一点都不爽。就说这周三,同事聚餐吃火锅,满桌肥牛毛肚,我就涮了青菜、虾和两片豆腐。回家一称,涨了0.8公斤,心里咯噔一下。第二天照常练、照常吃,早上一称,又掉回去了。
一顿饭吓不死人,吓死人的是“破功一次就摆烂”的念头。
二、练腿日,腿抖成筛子庆祝归庆祝,周六,雷打不动的练腿日。
早上七点的健身房没什么人,先蹬10分钟单车热身,然后:
杠铃深蹲:70公斤,5组×5
罗马尼亚硬拉:80公斤,4组×8
保加利亚分腿蹲:自重,3组,每边10个
悬垂举腿:3组×10
全程70分钟,喝水约1.2升。
最难的是硬拉最后一 ...
上篇结尾我留了个话头,说这个系列还得继续往下写。话音没落几天,老同学就给我送来个“活教材”——他开装修公司,上个月中了勒索病毒,8年的图纸、合同、效果图全被加密,对方张口要3个比特币。今天第27篇,就聊聊数据备份和勒索病毒防护。
先说两个真实场景装修公司那台电脑,设计师存的CAD图纸一夜之间全变成”.locked”后缀,双击打开全是乱码。更绝的是,老板图省事,备份用的移动硬盘常年插在同一台电脑上——病毒连备份盘一起加密了,等于白备。
还有一家代账公司,管着300多家小企业的账。中招以后报税数据、凭证全锁死,客户天天打电话催,老板娘三天没睡踏实。最后靠翻出以前导出的Excel残档手工补,整整折腾了20天。
你看,数据没了,公司基本就瘫了。机器坏了花钱能再买,数据没了,花多少钱都买不回来。
勒索病毒是怎么进来的别把黑客想得多神,进来路子翻来覆去就四条:
RDP弱口令:远程桌面开着3389端口,密码还是admin123,暴力破解几分钟就进;
钓鱼邮件:“您有一张发票待查收”,附件一点开,宏病毒就开跑;
U盘乱插:员工拿家里U盘来拷文件,毒就跟着进来了;
漏洞利用:系统不打补丁,老漏洞摆在那 ...
上篇咱们把 for 循环的基本套路捋顺了,大晨自己敲出 1 加到 100 等于 5050,嘚瑟得晚饭多吃了半碗米饭。我当时就撂了句话:别飘,循环的终极形态还没上桌。
今天这篇,上它,循环嵌套:一个 for 里面,再套一个 for。
今天的主角:循环套循环《一本通·编程启蒙 C++版》翻到循环这一章的后半段,书上管这个叫“循环的嵌套”。我给大晨打了个比方:大循环每走一步,小循环都要从头到尾完整跑一遍,跑完了,大循环才能走下一步。
大晨听完第一反应:“爸爸,这不就是套娃吗?for 里面还有 for!”
对,就是套娃。外层循环管大节奏,内层循环管小步子,外层每挪一步,内层得把一整圈跑完。
上代码:让计算机“背”九九乘法表概念讲三分钟就够了,练手得来道有意思的题。我直接选了九九乘法表——大晨当年背口诀背得龇牙咧嘴,现在让计算机自己打一张出来,他眼睛一下就亮了。
123456789101112#include <iostream>using namespace std;int main() { for (int i = 1; i <= 9; i++) { ...
上篇留了个钩子:断网、取证、报案、恢复,一步步怎么走,别错过。今天接着讲完。
老张的机械配件厂,服务器中了勒索病毒,桌面壁纸被换成倒计时,账套文件全变成 .makop 后缀。前三步一晚上加一个白天跑完,最后一步“恢复”,才是这单的胜负手。
第一步:拔网线,不是拔电源老张第一反应是关机,被我一把按住。断网不关机——内存里可能还留着加密进程和线索,一关机,取证难度翻倍。
五分钟做完三件事:拔网线、断 WiFi、挨个查局域网其他机器。财务那台中招最重,库房两台老 XP 反而没事。
取证和报案拍中毒界面和勒索信,拷几个加密样本进 U 盘封存,第二天带营业执照复印件去网安大队报案。民警一句话值得抄下来:不建议付赎金,付了大概率解不开,还容易被盯上。
真正救命的,是那 96MB老张厂里 T3 用了八年,账套输出备份出来就 96MB。
他原本也“天天备份”,但备份路径在 D 盘,和数据库同一块盘——勒索病毒把 C、D 一起加密,等于备份了个寂寞。最后救命的,是财务小王每周五下班拷一份到移动硬盘带回家的习惯。病毒周二凌晨进来的,恢复到上周五,补录了 14 张凭证、38 笔明细,小王补了整整两天。
T3 ...
上一篇咱们把一重循环收了尾,大晨用 for 算 1+2+…+100,一次跑通,尾巴都要翘上天了。我当时就跟他说:别嘚瑟,一重循环只是热身,真正的坎是“循环里再套一个循环”。
这不,这周《一本通·编程启蒙》正好翻到循环嵌套。大晨第一次看到两个 for 叠在一起,表情从“这有啥”秒变“这是啥”。
第一次见面,卡了 15 分钟书上的例题是打印星星三角形:输入 5,输出五行,第一行 1 个星、第二行 2 个……大晨看题时嘴硬:“不就是 cout 五次嘛。”
结果一上手就露馅。他先用一个 for 打了 5 个星,发现全挤在一行;加个 endl,又变成每行只有一个。来回折腾 15 分钟,屏幕上就是出不来那个三角形。
我在旁边忍着不提示。最后他自己嘟囔了一句:“这东西是每行不一样多的……”——这句话说到点子上了:一个循环管不了“每行不同”,得套两层。
外循环管行,内循环管列我把他拉过来,草稿纸上画了个框:外层循环 i 管第几行,内层循环 j 管这一行打几个。记住一句话:外循环管行,内循环管列,endl 要放在两个循环中间。
代码长这样:
1234567891011121314#include < ...
上篇说到,大晨把运动会上“亲子两人三足”的报名表填上了我的名字,还撂了一句“爸爸,你可别给我丢人啊”。这句话在我脑子里循环了一整周,比任何减脂口号都好使。
一根跳绳,绑住两条相差三十二岁的腿周六晚上,我让大晨把跳绳拆了,绑住我的右脚和他的左脚,在客厅先找节奏。
第一趟没走五步,俩人差点一起栽进茶几。大晨扶着墙笑得直不起腰:“爸,你能不能跟着我的拍子走啊?你老自己抢拍!”
我蹲下来跟他商量:你负责喊“一二一二”,我步子砍一半,你步子放大一点,取个中间值。第三趟,客厅一个来回,没摔。
周日晚上下楼加练。大晨拿电话手表掐表,30米,第一趟9秒8,第五趟8秒1。他眉头一皱:“体育委员说他们班去年跑了7秒多,咱俩还得练。”
好家伙,我还没喘匀,指标又涨了。儿子的报名表,比任何私教合同都有约束力。
练腿日,从“最讨厌”变成“最重要”以前我最烦练腿,练完下楼梯跟螃蟹似的横着走。这周主动加到两次:
周三:杠铃深蹲 60kg×5组×8个,弓步走 3组×20步,最后一组扶着栏杆喘成风箱。
周五:保加利亚分腿蹲(2×10kg哑铃)4组,加高抬腿30秒×4轮——练的不是力量,是跟大晨对频的步子。
同样是深蹲, ...






