2020-11-13

关于入门C语言编写程序思路——函数

之前写过一篇关于入门C语言的编写程序的基础思路,在这篇文章里我们就来具体说说一种问题的有效解决工具——函数。

函数是什么东西?如果是第一次在计算机领域解除这个词,首先会想起来的便是数学中让一部分人喜、让另一部分人痛苦不堪的“函数”吧?不过数学中的函数与计算机函数的根本定义是不同的,尽管它们在某些方面的确有相似联系之处。数学中的函数是发生在集合之间的一种对应的关系,而计算机领域中更多人为是一段能够被其他程序或代码所引用的程序或代码,是一种实现某个目的的方法。一个是对应关系,一个是实现目的的方法,相信在这样简洁的描述下两者的不同之处会更加明显且容易理解。

笔者在开头说到的文章中整理过编写程序的简单思路。拿到一个问题首先要对问题本身进行分析并确认我们具体要做什么,再上手去干活。但在那篇文章中我们只讨论了较为单一的问题种类,通常不需要太过于复杂的思考和分块。我们更多时候需要去解决的是由各种不同的小问题交错重叠成一个有机的整体问题,这个时候我们就要将一个大问题科学合理地拆分成一个个小模块来解决。函数就是为了更好地解决小模块而生的。

科学合理地拆分

不过笔者在这里更多想说的不是如何定义和调用函数(如果实在想要知道的话笔者会先建议读者自己去搜索学习,自己动手丰衣足食,笔者在这些文章中着重讨论的一直都是思维思路)。拆分主体不科学,主函数编写调用泪满颊。科学合理地分配各个模块正起了程序编写路上的安全保命措施。

科学合理地拆分主体,主要是为了让从整体到细节都能够清晰明了,让各个部位各司其职。我们可以把主体看作人体,而各种小模块则是人体中担任着不同的功能职责的器官。通过参考人体各部位器官的功能与特点,我们可以联想到面前的程序结构。你现在正在做一项伟大的“造人”工作,为了不让人造人出现各种问题,你需要将它的各个器官清晰分配相关的任务。

一般情况下,我们会选择相对最清晰的方式——一个子模块分配一个函数房间。当然你也可以将两个、或者三个子模块分配在一个函数房间里,但是当进行对不同功能的调用时就会变得非常麻烦且不清晰,而且大大增加了运行时间的耗费。我们也可以在别的函数中调用该函数来实现有层次的结构。一个好的函数要简洁干净思路清晰,拖泥带水往往会导致思路的走偏与迷路。尽管我们编写的程序是有规则固定的死板的东西,我们在设计时同样可以让结构灵活起来并让整体更加干净令人舒适,这就涉及到了程序编写设计者的思维灵活程度,而这是可以通过后天不断培养起来的,可能够称为艺术、令人感到愉快沉迷的东西。

在科学合理地拆分之后便是用代码将各个函数实现的步骤,这里我们就不具体说了(毕竟这不是这篇文章的重点)。

整合编写主体

现在你完成了各种零件的制作,就差把它们组合起来了。把它们组合起来并不困难,只要你还记得你都写了什么函数来解决什么子问题,主干问题也会迎刃而解。尽管拼装不会再特别让你特别头疼,但还是要注意保持自己的头脑思路清醒,以免在赛车的最后一个岔路拐错了方向错过了终点。

感谢看到这里的你。

这是一个 SQL 语句,用于向借阅表中插入数据。该表包含以下字段:借阅编号、读者编号、书籍编号、借阅日期、归还日期、借阅状态。每条数据表示一次借阅记录。其中借阅编号、读者编号、书籍编号、借阅日期和借阅状态是必填项,归还日期为可选项,如果借阅状态为“已还”则必须填写归还日期。 具体插入的数据如下: - 借阅编号:100001,读者编号:123413,书籍编号:0001,借阅日期:2020-11-05,归还日期:NULL,借阅状态:借阅 - 借阅编号:100002,读者编号:223411,书籍编号:0002,借阅日期:2020-9-28,归还日期:2020-10-13,借阅状态:已还 - 借阅编号:100003,读者编号:321123,书籍编号:1001,借阅日期:2020-7-01,归还日期:NULL,借阅状态:过期 - 借阅编号:100004,读者编号:321124,书籍编号:2001,借阅日期:2020-10-09,归还日期:2020-10-14,借阅状态:已还 - 借阅编号:100005,读者编号:321124,书籍编号:0001,借阅日期:2020-10-15,归还日期:NULL,借阅状态:借阅 - 借阅编号:100006,读者编号:223411,书籍编号:2001,借阅日期:2020-10-16,归还日期:NULL,借阅状态:借阅 - 借阅编号:100007,读者编号:411111,书籍编号:1002,借阅日期:2020-9-01,归还日期:2020-9-24,借阅状态:已还 - 借阅编号:100008,读者编号:411111,书籍编号:0001,借阅日期:2020-9-25,归还日期:NULL,借阅状态:借阅 - 借阅编号:100009,读者编号:411111,书籍编号:1001,借阅日期:2020-10-08,归还日期:NULL,借阅状态:借阅
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值