加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

畢設那一年,我的C語言通關了

2018/06/01
27
閱讀需 20 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

上個世紀 90 年代,對于信息類的學生來說,哪一門最難學?


大多數(shù)的答案可能是 C 語言或者是匯編。


為什么?
答案一:因為它是“機器語言”,非人類交流的語言,邏輯不通、語言不通,人機交流,談何容易?。
答案二:學習“機器語言”太“費力”,費財力、費人力。學習 C 語言勞心傷神還在其次,關鍵是“僧多肉少”,唯一的機房,每次上機不超過 30 人,所以無論春夏秋冬,人氣最高的就是計算機系的機房。

如今回想起來當年的情景已經(jīng)歷歷在目:計算機的 CPU 是 286 的,操作系統(tǒng)是 DOS 的,上電之后是需要輸入指令才能進行操作的,所以擁有一張 C 語言的啟動盤,絕對是最亮的招牌之一。


C 語言,起初語法還簡單,但是越來越難學:前腳剛剛把運算的邏輯理順,接下來數(shù)組、指針、結構體,都來湊熱鬧,而且是混在一起使用,更是令人應接不暇;最后當學到枚舉和遞歸的時候,才發(fā)現(xiàn)前面的簡直是小 case。在老師的嚴格要求下,在助教學長們的孜孜不倦指導下,戰(zhàn)戰(zhàn)兢兢地提交了機考試卷,當看到現(xiàn)場的考評成績是 80+的那一刻,如蒙大赦,如釋重負,暗自發(fā)誓:此生不再碰 C 語言半個指頭。

希望是美好的,現(xiàn)實是很殘酷的,F(xiàn)lag 是很邪性的,總是向著相反的方向發(fā)展。大四選擇畢業(yè)設計,80%的同學選擇了設計,而自己偏偏選擇了論文,選擇論文也就算了,偏偏選擇了一位沒有見過面、沒上過課的年輕博士做指導教師。


博士的研究課題很特別,分配到自己頭上的課題是一個基于神經(jīng)元網(wǎng)絡算法的某類化學反應釜的數(shù)學模型的預測。拿到課題,如墜深淵:神經(jīng)元是什么鬼,連題目都沒讀懂,如何做畢業(yè)論文呢?但是木已成舟,反悔已經(jīng)來不及了。沒辦法,頂著大大的問號,在校期間泡圖書館、查資料,寒假在家里翻著英文字典,翻譯老師布置的假期作業(yè),所以在新學期開始的時候,總算讀懂了題目:不就是用 C 語言編一個程序,解一個一階的微分方程嗎?然后根據(jù)輸入變量的情況,調整相關的參數(shù),最終實現(xiàn)收斂的控制。

過程明確了,基礎算法明確了,編程也變得容易多了。但是時間久遠,編程只記得少許語法了,于是不得不遍歷了圖書館里的關于算法的書籍,重溫 C 語言,在同組同學的協(xié)助下,順利完成了基礎程序的編寫與調試,原以為會苦盡甘來,但殘酷的現(xiàn)實總是向著期望的方向反其道而行之,運算的結果總是發(fā)散的。


雖然可以在實驗室里暫時擁有屬于自己的計算機,雖然 286 已經(jīng)升級位 386,并且增加了 486 的協(xié)處理器,但是面對微分方程的運算和每次 100 組數(shù)據(jù)的處理,運算的時間是相當“可觀”的——每次半小時,半小時后發(fā)現(xiàn)數(shù)據(jù)的收斂性不好,再修改程序、修改參數(shù),繼續(xù)運算,周而復始。對于本科生,實驗室只開放半天,一個半天的時間,去掉修改程序和糾錯,能夠有多少“半個小時”進行“揮霍”呢?白天的時間不夠用,只好晚上加班,以至于被室友猜忌。


她們一邊云淡風輕地繪制著圖紙,一邊“調笑”:“我們的付同學進入了白加黑的模式,難道是談戀愛了嗎?”


于是一臉嚴肅地回答:“是的,我在和我的論文談戀愛,我愛它,但是它不愛我。要不改天把它請到寢室來,大家開導一下?”


話音落地,笑聲一片,臉上的陰云散去。

夜不能寐:論文,想說愛你不容易。


我如此辛苦,為什么你給我的結果是錯誤的?發(fā)散的控制模型注定是失敗的!于是山窮水盡之時,導師指點迷津:如果確信自己的數(shù)據(jù)沒有錯誤,那么不妨換個角度思考一下,你見到的未必是正確的,印刷出來的公式也可能是錯誤的,追根溯源,找到數(shù)學模型最原始的出處。


導師指路,立即踐行。


于是冒雨跑到圖書館,再最安靜的一間資料室里,管理員遞過來一本比字典還厚的硬皮書,迅速地翻到數(shù)學模型的那一頁,只掃了一眼,便如釋重負,在原始的模型中,有一個變量的符號是相反的。


怎么辦?回實驗室來不及了,所以這里安靜,手工計算吧。好在是帶著記事本的,好在記事本里有程序的流程圖,沒有計算機,那么自己當一次計算機吧,選擇典型的參數(shù),帶入數(shù)據(jù),然后手工解微分方程,獲取一組結果。結果出來了,不用描圖也可以看到,那是一組收斂的數(shù)據(jù)。興奮之余,踩著積水,一路狂奔到實驗室。半小時之后,100 組數(shù)據(jù)在顯示器上呈現(xiàn)出期待依舊的收斂曲線。

難關攻破了,解決了自己的難題,也解決了同伴的難題,為了快速完成剩余的任務,所以分工合作,坦誠相待,用現(xiàn)在的流行語來說,就是資源共享。資源共享的結果,事實再次證明:Two heads are better than one。


合作的結果也是 better:
4000 多行 C 語言代碼,構建起來的數(shù)學模型幾乎是完美的,兩個人的論文成績都是良好;
4000 多行 C 語言代碼,構建的過程是痛苦的,但是經(jīng)過痛苦的磨練,C 語言的編程通關了,以至于 4 年之后,僅憑 C 語言的優(yōu)勢,便敲開了上市公司研發(fā)部的大門。

與非網(wǎng)原創(chuàng)內容,未經(jīng)允許,不得轉載!

相關推薦

電子產業(yè)圖譜

1996畢業(yè)于華東理工大學自控系,同年7月進入某大型國企擔任電氣員。2000年轉行從事硬件研發(fā)相關工作;后從事RFID相關產品的研發(fā)、設計,曾參與中國自動識別協(xié)會RFID行業(yè)標準的起草;歷任硬件工程師、主管設計師、項目經(jīng)理、部門經(jīng)理;2012年至今,就職于沈陽工學院,擔任電子信息工程專業(yè)教師,研究方向:自動識別技術。已經(jīng)出版教材《自動識別技術概論》,職場故事《51的蛻變 》。