百合文库
首页 > 网文

如何用轻小说的方式学C (二) 天秤(上)(2)

2023-04-01编程Ccpp 来源:百合文库
“就是用别人写过的代码嘛,我知道。”
“那么下一行代码。”
“虽说我很不想把它称之为‘函数’,但是很多翻译都这么翻译的所以算了。比起Function我更倾向于Procedure。”
(???)
“就相当于你把一些要干的事情集中在一块,然后宏观上面抽象一下而已。”
“呃那个...我更迷糊了。”
“那我问你,把一个大象关进冰箱里面要几步?”
“哦那个经典的脑筋急转弯吗?3步啊,打开冰箱门,把大象塞进去,关上冰箱门。”
“没错,程序可以是长这个样子:”
void pushElephantIntoFridge() {
openFridgeDoor();
pushElephant();
closeFridgeDoor();
}
“那么我接着问,把长颈鹿塞进冰箱门要几步?”
“4步啊,打开门,把大象拿出来,长颈鹿塞进去,关门。”
“很好。示例程序我也不写了。我再问一个问题,丛林开运动会,有谁没参加?”
“大象和长颈鹿啊,一个冻感冒了一个还在冰箱里。”
“Bingo~你应该注意到了,因为第一问影响了冰箱的状态,所以第二问的结果和第一问不径相同吧。第三问则更有影响了。”
“的确。”
“数学上的‘函数’是纯函数,也就是输入值一样输出值就一样。而计算机里面更倾向于过程,相同的过程但是因为之前的操作影响了很多东西,所以体现出来的东西也不太相同。”
“那么,让我们进入编程的一大重点概念:‘过程’吧!”
“吾徒刹那哟,你还记得一个简单的CPU模型能干哪几类事情吗?”
“呃...计算,访存,分支跳转,以及其他?”
“差不多。因为寄存器小而快,内存大而慢,所以计算通常是计算寄存器里存的数值,访存则是内存与寄存器之间的数据交换,可存可取;最后一个分支跳转则代表可以根据数据以及计算结果来动态决定执行哪些代码,可谓核心之一。”
“比如刹那,你现在要计算1 2 3 ... 100,应该怎么办?”
“直接输出5050就可以了啊。”
被弹了额头。
“那1 2 3 ... n呢?”
“那输出n*(n 1)/2.”
“那输出平方和?”
“平方和公式没背。”
凛音拿出纸扇狠狠地扇在了刹那的脑瓜子上。“就不能用其他办法吗?”
“呃...比如写个流程图?算1加1,算2加2,每次都判断一下是不是已经加到了n?”
“大致是这个想法。这其实就是一个过程了。”
久远在旁边边泡杯面边抱怨到:“哟呵语法都还没讲就开始讲算法了?”
啊好香。
久远:“别想了没多的了。”
凛音:“这样啊,那我和刹那酱分了没你的份了。”
猜你喜欢