<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                現在你應該可以閱讀并理解一個完整的C++函數了。但是到底怎么設計函數可能還不清楚。我會馬上介紹**增量開發**技術。 舉個例子,假設要計算兩點之間的距離,其中兩個點分別用坐標 (x1, y1)和(x2, y2)表示。按照定義,?![enter image description here](https://box.kancloud.cn/2015-09-01_55e55d62f2259.jpg)第一步要考慮的是,在C++中距離函數應該如何表示,也就是要確定函數的輸入(即參數)和輸出(即返回值)。 在這個例子中,兩個點就是參數,很自然,可以用四個double值表示。返回值就是距離,也是double類型的。 我們已經可以寫出這個函數的輪廓了: ~~~ double distance (double x1, double y1, double x2, double y2) { return 0.0; } ~~~ 返回語句只是用于占位,以便函數通過編譯并返回一個值,即使這個值是不正確的。眼下這個函數并沒有做什么有用的事情,但嘗試編譯一下這個函數還是值得的,因為這樣可以在函數變得更復雜之前發現任何語法錯誤。 為了測試這個新函數,我們必須使用樣本值值調用它。在main函數的某個位置我添加了下面語句: ~~~ double dist = distance (1.0, 2.0, 4.0, 6.0); cout << dist << endl; ~~~ 我選擇這些值,這樣兩個點的水平距離是3,垂直距離是4;那樣,距離就是5(3-4-5直角三角形的斜邊)。測試函數時,知道正確答案是有用的。 一旦函數定義的語法驗證無誤,我們就可以開始一次一行的添加代碼了。每次增量改變,我們都重新編譯并運行程序。這樣,在任何點我們都能精確地知道錯誤的位置——肯定是在我們最后增加的代碼中。 計算的下一步就是求出x2?x1和y2?y1的差。我會把這些值存在臨時變量dx和dy中。 ~~~ double distance (double x1, double y1, double x2, double y2) { double dx = x2 - x1; double dy = y2 - y1; cout << "dx is " << dx << endl; cout << "dy is " << dy << endl; return 0.0; } ~~~ 我添加了輸出語句,在繼續之前先驗證中間值。前面提到過,我們已經知道這兩個值應該是3.0和4.0。 函數完成之后我會刪除輸出語句。這樣的代碼稱為**支架代碼**,因為它雖然有助于構建程序,但并非最終產品的組成部分。有時保留支架代碼,僅將其注釋掉是個好想法,以防后面再用到。 開發的下一步就是求dx和dy的平方。我們可以使用pow函數,但更簡單快捷的方法是通過每一項自乘來計算。 ~~~ double distance (double x1, double y1, double x2, double y2) { double dx = x2 - x1; double dy = y2 - y1; double dsquared = dx*dx + dy*dy; cout << "dsquared is " << dsquared; return 0.0; } ~~~ 現在,再次編譯運行程序,并檢查中間值(它應該是25.0)。 最后,可以使用sqrt函數計算并返回結果。 ~~~ double distance (double x1, double y1, double x2, double y2) { double dx = x2 - x1; double dy = y2 - y1; double dsquared = dx*dx + dy*dy; double result = sqrt (dsquared); return result; } ~~~ 然后,我們應該在main函數中輸出并驗證結果值。 隨著編程經驗的增多,你會發現自己可以一次編寫和調試多條語句。不過,增量開發過程能節省很多調試時間。 這一過程的幾個關鍵方面是: ? 從一個小的、可以工作的程序開始,加以微小的增量變化。在任何時候,如果出現錯誤,都能精確地知道錯誤位置。 ? 使用臨時變量保存中間值,以便于輸出并驗證它們。 ? 一旦程序正常工作,你可能想刪除一些支架代碼或者將多條語句合并為符合表達式,但要確認這不會讓代碼難以閱讀。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看