程式的整體複雜性。

2021-07-30 20:51:57 字數 1010 閱讀 5595

現在我們已經討論了什麼是函式和它們的一些基本功能,讓我們來仔細看看它們為什麼有用。

為什麼要使用功能?

新程式設計師經常會問:「我們在**裡面放的**不能直接放在main裡面嗎?」「在許多情況下(特別是簡單的例子),它可以。然而,功能提供了一些好處,使他們非常有用的非平凡的程式。

組織程式越來越複雜,有所有的**都生活在main()功能變得越來越複雜。乙個函式幾乎就像乙個小型程式,我們可以單獨編寫主程式,而不必考慮程式的其餘部分,而我們寫它。這使我們能夠將複雜的任務分解成更小、更簡單的任務,並大大降低了程式的整體複雜性。

可重用性:一旦函式被寫入,它可以從程式內多次呼叫。這避免了重複的**,最大限度地減少複製/貼上錯誤的概率。功能還可以與其他程式共享,減少必須從頭開始編寫的**量(測試)每一次。

測試--因為函式減少了**冗餘,所以首先要測試的**更少。也因為函式是自包含的,一旦我們測試了乙個函式,以確保它的工作原理,我們不需要再測試它,除非我們改變它。這減少了我們必須在一次測試的**量,使之更容易找到錯誤(或避免他們在首位)。

擴充套件性-當我們需要擴充套件我們的程式來處理它以前沒有處理過的情況時,函式允許我們在乙個地方進行更改,並且每次呼叫該函式時都會發生更改。

抽象-為了使用乙個函式,你只需要知道它的名字,輸入,輸出,以及它的生活在**。你不需要知道它是如何工作的,或者它依賴於什麼其他**來使用它。這是非常有用的,使其他人的**訪問(如在標準庫中的一切)。

雖然它看起來並不喜歡它,每次你使用std::cin或std::cout進行輸入或輸出,你使用乙個函式的標準庫,符合上述標準的規定。

有效的使用功能

新的程式設計師遇到的最大的挑戰之一(除了學習語言)是學習何時以及如何有效地使用功能。以下是編寫函式的一些基本準則:

std::cout << "enter your age: ";

int age;

std::cin >> age;

const int usersage (age); // usersage can not be changed

程式系統的複雜性

近來在做一些專案,對程式複雜性給開發帶來的困難又有了進一步的認識。對於乙個從零開始的系統,我們要做的設計有以下這些工作 1.確定系統架構,具體講就是要多少臺機器,每個機器上執行哪些應用程式,每個應用程式的功能是什麼,這些程式通過什麼接 術進行互動。2.確定整個系統的資料模型。3.確定每個應用程式的資...

簡化根本複雜性,消除偶發複雜性

根本複雜性 essential complexity 指的是問題與生俱來的,無法避免的困難。比如,協調全國的空中交通就是乙個 天生的 複雜問題,必須實時跟蹤每架飛機的位置 包括飛行高度 航速 航向和目的地,才能預防空中和地面上的衝突。像天氣驟變這樣的情況會令航班計畫全盤失效,航班時刻表必須適應不斷變...

複雜性思考

複雜性思考 基本資訊 原書名 think complexity 原出版社 o reilly media 譯者 張龍 叢書名 o reilly精品圖書系列 出版社 機械工業出版社 isbn 9787111419990 出版日期 2013 年5月 開本 16開 頁碼 117 版次 1 1 所屬分類 計算...