上回说到上一篇大晨搞定了 if-else 多层嵌套,那道判断闰年的题做对了,我给他记了一颗星。翻开《一本通•编程启蒙C++版》下一章,标题写着四个字——循环结构。
我心里咯噔一下。顺序、分支都过了,循环是第三个大关,也是从”线性思维”跳到”重复思维”的分水岭。不少孩子就是卡在循环这一步的。
for 循环:让代码替你干重复的活我跟大晨说,你平时从1数到100,嘴巴一直重复说数字对吧?代码也一样,要它重复干一件事,就得用循环。
for 循环长这样:
123for (初始化; 条件判断; 更新) { // 重复执行的语句}
三个部分用分号隔开。我给大晨打了个比方——
初始化是”从几开始”,条件判断是”到几停”,更新是”每次走几步”。
大晨听完点了点头:”就是从1数到100嘛。”
理解到位,行。
经典题:从1加到n直接上经典题。输入一个正整数 n,求 1+2+3+…+n 的和。
代码如下:
12345678910111213141516#include <iostream>using namespace std;int main() { ...
上回说到系列第11篇结尾我提到,凭证做错了不可怕,可怕的是你不知道怎么改回来。这篇就来填坑——专门讲T3里的反审核、反记账操作。
先交代背景。昨晚我在书房写稿子,大晨跑过来问我:”爸你干嘛一直盯着这个蓝屏幕?这个软件好丑。”
我说,这是爸吃饭的家伙,丑也得看。
他撇撇嘴走了。10岁小孩不懂,这个”丑软件”我盯了整整10年。
场景:凭证审核后发现错了上周五下午五点半,一个客户会计打我电话,语气很急:”强哥,我有一张7月的记账凭证已经审核记账了,结果发现管理费用科目选成了销售费用,马上要结账了,怎么办?”
这个场景我一年至少遇到30次以上,几乎每个新手会计都会踩。
T3的逻辑是这样的:凭证 → 审核 → 记账 → 结账。每一步都是单向的,想退回去,就得一步一步反着来。
反审核:先取消审核再说操作路径:
总账 → 凭证 → 恢复记账前状态——等等,不对,先别急。
得先理清顺序。反操作必须从最后一步往前退,不能跳着来。
如果凭证已经审核但还没记账,那只需要反审核:
菜单路径:总账 → 凭证 → 审核凭证,点”取消”按钮,或者直接在凭证列表里选中那张凭证,点上方工具栏的**「取消审核」**。
快 ...
上篇日记结尾我说了句“继续该系列下一篇”,这就赶紧来填坑了。其实这半个多月体重一直卡着不动,搞得强仔我心态差点崩了,连更新日记的力气都没了。
不过今天早上,这该死的平台期,终于让我给硬生生熬破了!
卡了15天的死疙瘩前两周体重死死卡在82.5kg,怎么练都不掉。每天早上上秤,数字连0.1的波动都没有,跟定住了一样。
腰围倒是稍微松了点,从92cm降到了90.5cm。我寻思着,这估计就是老铁们常说的“减脂不减重”阶段吧。脂肪少了,肌肉补充了水分,体重看着没变,其实维度在缩。
今天早上一上秤,81.8kg!整整掉了1.4斤。虽然不多,但老父亲激动得差点把牙刷吞了。中年人的代谢就跟生锈的齿轮一样,你不动它就锈死,动了也得费老鼻子劲才能转起来。
训练计划的小手术为了破这个局,上周我把训练计划做了点微调。
以前我是纯靠力量训练怼,现在加了有氧。周二和周四练完力量,我会去跑步机上爬坡走25分钟。坡度调到12,速度4.5。别看是走,大汗淋漓的,那酸爽简直了。
今天的练胸日,平板杠铃卧推4组,每组10个,重量维持在60kg。接着哑铃飞鸟3组x12次。练完核心,再来3组平板支撑,每组坚持1分15秒。
中 ...
上篇结尾我说”循环搞定了,接下来要进入一个新的阶段”,大晨问是什么,我卖了个关子。今天揭晓——一维数组。
说实话,这是大晨学C++以来我觉得最关键的一个转折点。之前所有的变量都是”一个名字装一个值”,到了数组,思路彻底变了:一个名字,装一串值。
为什么要学数组我先给大晨举了个例子:
“你班上40个同学,期末考试要存40个成绩,你打算怎么办?”
大晨脱口而出:”那就 int a1, a2, a3… 一直写到a40呗。”
这回答太典型了,每个初学者都会这么说。
我说你写写看,写到第15个你就烦了。而且更要命的在后面——如果老师突然说”把所有成绩加起来求平均”,你得写 a1+a2+a3+…+a40,你崩溃不?
大晨愣了一下:”那循环也没法用啊,变量名都不一样。”
对,这就是数组要解决的问题。 一个名字管一整排数据,用下标(编号)去访问每一个,循环就能批量处理了。
数组怎么声明最基础的写法:
1int a[100];
我跟大晨解释:a 是数组名,100 是”最多能装多少个”。注意,下标从 0 开始,不是从 1 开始。 这是无数初学者踩的坑,大晨也没能幸免。
a[0] 是第一个,a[99] 是 ...
上篇说到我给自己立了个规矩:连续四周不碰有氧,专心堆力量。这周早上上秤,心里咯噔一下,79.0公斤,跟两周前一模一样,卡得死死的。
但我今天量腰围的时候,突然就不慌了。
体重不骗人?腰围更实在早上空腹,脱到只剩短裤,皮尺绕肚脐一圈:90厘米,比两周前少了整整1厘米。
体脂秤显示体脂率21.4%,比上个月降了0.8个百分点。翻译过来就是:秤上没掉的那点重量,掉的部分几乎全是脂肪,肌肉基本保住了。
中年人减脂最怕掉肌肉,掉秤掉得飞快、掉的全是肌肉,那是越减越虚。秤不动,尺子在动,这才叫真减脂。
这两周的课表,简单粗暴周一/周四练腿:深蹲4组×8个,60公斤;保加利亚分腿蹲3组×10个,每边12公斤哑铃。
周二/周五练胸肩:卧推4组×8个,50公斤;哑铃肩推3组×10个,单只15公斤。
周三练背:硬拉4组×6个,80公斤。上周三最后一组第六个,我在杠铃前面愣了半分钟,腰带着一口气硬是拉起来了。
周六带大晨去游泳,我在池边做了20分钟核心,平板支撑从90秒熬到了2分钟。周日休息,雷打不动。
大晨的“换零件理论”大晨现在对我的体脂秤比我还上心。周日早上他蹲在秤边上盯着数字,突 ...
上篇文末我说这系列还得继续写,今天兑现承诺。本来想换个轻松点的话题,结果上周又帮朋友处理了一起勒索病毒,实在憋不住,这篇就唠它。
数据没了,公司真的会黄先说真事。前年冬天,一个做代账的朋友半夜打电话给我,声音都在抖:服务器中招了,8年攒下的200多个客户账套全被加密,桌面弹出一封勒索信,要0.5个比特币,折算下来十几万。他没备份,一份都没有。
最后赎金没交(我也不建议交),找数据恢复公司折腾一个星期,花了两万八,只救回来一部分,还丢了3家客户、赔了违约金,肠子都悔青了。
还有家小装修公司,全公司的CAD图纸、报价单、合同扫描件全在一台老台式机上,硬盘一响,全没了。业主天天催图,老板差点跪在机房里。
**数据备份不是IT选项,是企业的生命线。**这话我逢人就讲。
那阵子我在家研究勒索信的截图,大晨凑过来问:”爸爸,电脑生病了要打针吗?”我说比打针狠多了,得提前打疫苗,疫苗就是备份。
病毒是怎么进来的勒索病毒不是凭空掉下来的,常见就四条路:
RDP弱口令:远程桌面开着3389,密码还是admin123,黑客扫一晚上就进来了,这是代账公司中招的头号原因;
钓鱼邮件:”电子发票””快递异常” ...
上一篇讲完 switch 多路分支,我在结尾留了个尾巴:**分支翻篇,下一座大山是循环。**这周如期兑现——《一本通·编程启蒙 C++ 版》正好翻到循环结构第一课,for 循环。
先交代个背景:本来我们瞄着 7 月那场 GESP,结果我们这儿考点名额手慢无,没抢到,索性改报 9 月场。坏事变好事,暑假时间充裕,进度反而从容了,每天雷打不动 20 分钟。
从”罚抄十遍”讲起给小孩讲循环,我憋了个土办法。我说:你们老师罚抄生词十遍,你是不是抄到第五遍就想撕本子?大晨疯狂点头。
我说,电脑最不怕的就是重复。循环就是教电脑”这句话给我重复十遍”,它连眉头都不皱一下。
大晨回了一句让我记到现在的话:”爸爸,电脑最厉害的不是算得快,是不嫌烦。”
行,悟了。
for 循环长什么样for 循环就一行,但里面有仨零件:
for (int i = 1; i <= 10; i++)
我给大晨的白话翻译:
int i = 1:起跑线,从 1 开始数;
i <= 10:每跑一步都要问一句”到 10 了吗”,没到就继续;
i++:往前挪一格。
大晨卡壳在 i++,觉得是个神秘符号。我说 i++ 不 ...
一通晚上九点的电话上篇结尾我说这系列继续往下写,这不,第10篇来了。触发这篇的是上周三晚上九点的一通电话:老客户王会计,7月一张凭证把1200录成了12000,账已经结了,现在都8月中了才发现累计数不对,老板这两天要看报表,她声音都在抖。
我安抚她:没事,T3给账套主管留了”后悔药”,就是反结账、反记账、反审核这套组合拳。当时大晨在旁边写作业,抬头问:”爸,你又在全国各地远程教人按哪个键?”我说对,这套键爸爸按了十年了。
先记住总原则:倒着拆正常流程是制单→审核→记账→结账,要改凭证,就得把链子倒着拆回去:反结账→反记账→反审核→改凭证→再审核→记账→结账。顺序不能乱,乱一步就卡壳。
第一步:反结账,Ctrl+Shift+F6以账套主管身份登录企业门户,菜单路径:总账→期末→结账,进结账向导后选中最后那个已结账月份(7月),同时按 Ctrl+Shift+F6,输主管口令,确定。
注意:只能从最后一个月往前逐月取消,不能跳。王会计只结到7月,取消一次就够。
第二步:反记账,先按Ctrl+H激活这步最多人懵,因为菜单里压根找不到。路径:总账→期末→对账,在对账界面直接按 Ctrl+H,弹出 ...
上一篇结尾我说,体重卡在 80.4kg 整整三个星期,这周要跟这个数字死磕到底。
结果周五早上,赤脚站上秤,79.8kg,破了。
从三月的 85.4kg 到今天,五个多月掉了 5.6 公斤,腰围从 96 缩到 90。数字不算惊天动地,但对我这个四十多岁的老父亲来说,这是近十年第一次,体重以 7 开头。
先报数,这周练了啥周一推日:卧推 50kg 4组8个,哑铃肩推 16kg,绳索下压 30kg,55 分钟收工。
周三拉日:硬拉 85kg 3组6个,高位下拉 45kg,杠铃划船 40kg,60 分钟。
周五腿日:深蹲 60kg 5组8个,保加利亚分腿蹲自重 3组12个,腿弯举 25kg,练完扶墙走了两分钟才缓过来。
每次力量练完加 30 分钟坡度走,坡度 10、速度 5.2。八月的天,健身房空调开着,汗还是跟不要钱似的往下淌。教练说了一句我记到本子上的话:减脂靠的不是某一次练多狠,是每周都能站到铁架子底下。
大晨第一次跟我进健身房周五练腿,家里没人看娃,我就把大晨拎上了。放暑假以来这小子天天沙发瘫,正好带他去开开眼。
我蹲到第三组,他凑过来压低声音说:“爸爸,你脸红得像我们班教室后面的消 ...
上篇(11)咱们把 && 和 || 这对逻辑运算符啃完,大晨做分支选择题正确率 10 题对 8 题,我悬着的心放下一半。文末我说过:顺序、分支都拿下了,下一座大山,是循环。这周末,《一本通·编程启蒙》正式翻到第三章,大晨的编程学习进入了新大陆。
从”罚抄 5 遍”说起周六晚上,大晨生字听写错了俩,被妈妈罚抄 5 遍。他一边抄一边嘟囔:”手都酸了……”
我一看,机会来了,这不就是现成的循环教材吗?我说:”你要是台电脑,这活儿一行代码就能搞定。”
大晨眼睛一亮:”电脑也会偷懒?”
对,程序员的本事,就是把重复一百遍的事,写成只写一遍。 循环干的就是这个。
for 循环”三件套”《编程启蒙》第三章第一节讲 for 语句。格式长这样:
1for (起点; 终点; 每次怎么走)
我给大晨翻译成大白话:从哪儿开始、到哪儿停、一步迈多大,这三件事交代清楚,循环就成了。
于是我让他把”罚抄 5 遍”写出来:
123456789#include <iostream>using namespace std;int main() { for (int i = 1 ...

