国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++抽象編程——函數與庫(1)

2019-11-06 07:59:39
字體:
來源:轉載
供稿:網友

      最近在學c++的一本經典的教材——PRogramming abstraction in C++. 教材沒有中文版,所以我就把大致的意思寫下來,權當自己做個筆記吧。先從第二章開始總結,第一章有機會再補上吧。

      2.1 函數思想

       正如我們知道的,C++程序大部分都是由一系列函數而構成的,而C++中函數的概念與數學中的概念是很接近的,也就意味著我們不是在學習新的概念。舉個例子,高中學的一元二次函數的定義 

函數f 把x變成右邊的形式,使得任意的數x,都能代入式中,算出結果。同樣的在C++中,我們也可以執行這樣的一個函數,像這樣

 

那么,意思是,同樣的輸入一個x,返回的是X*X+1的值。那么,為什么我們在編程中要用到函數呢?試想,如果重復執行一個小功能,每一次我們都要寫一遍代碼,這樣就顯得一個小程序的代碼非常多,可讀性很差,而且在重復寫的過程中,萬一其中哪一個寫錯了一個參數,回去調試的時候,工作量是很大的。而我們將一個功能定義成一個函數,到時候要用的時候直接調用,就可以很完美的解決這個問題。

總之,函數有以下幾點優點:

a. 一次代碼,多次使用

b.便于程序的維護跟修改

c.減少程序的代碼量,增強代碼的可讀性

d.最重要的一點,函數可以把一個大程序分割成一個一個的小函數。

在d中,我們通常把大程序盡可能的分割成小函數,小到我們自己可以解決的程度,這樣的設計理念,我們稱之為自頂向下設計(top-down-design)

函數與算法

       函數之所以在編程中如此重要,原因是它為算法提供基本的運行程序。算法,就是用于解決一系列計算問題的嚴格詳細的策略(which are precisely specified strategies for solving computational problems.)。舉個例子 ,求兩個數的最大公約數(greatest common divisor)。簡稱為gcd,比如49跟35的最大公約數是7. 用算法可以這樣描述:

 1. Divide x by y and compute the remainder; call that remainder r.2. If r is zero, the algorithm is complete, and the answer is y.3. If r is not zero, set x to the old value of y, set y equal to r, and repeat the process.

我的理解就是

1.用y去除以x,并計算其余數記為r.

2.如果r=0;算法結束,結果為y;

3.如果r!=0;將y的值賦給x,并令y=r,然后重復操作。

當時我考慮了一下,要是有y<x呢,這時候就用到了取余,返回的就是x,那么相當于兩者對調位置,然后正常運行。最好動筆算一下。很容易把它轉換為C++代碼

int gcd(int x, int y) {int r = x % y;while (r != 0) {x = y;y = r;r = x % y;}return y;}那么,像這樣的一系列的簡單的數學算法,我們就沒必要去一個一個都要寫,c++為我們提供了很便利的工具 叫<cmath>。

<cmath>庫

下圖就是<cmath>中提供的一些數學運算


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 垫江县| 大足县| 大余县| 措美县| 镇江市| 徐汇区| 岢岚县| 乐陵市| 土默特右旗| 神池县| 大厂| 崇左市| 固原市| 桂平市| 洪洞县| 会泽县| 马龙县| 弥勒县| 民县| 莆田市| 奉贤区| 海兴县| 图片| 南召县| 双流县| 沁水县| 乌什县| 句容市| 保康县| 全椒县| 威信县| 沙洋县| 宁陵县| 县级市| 苏尼特左旗| 普宁市| 淮北市| 临江市| 体育| 石嘴山市| 会宁县|