請幫忙點一下!謝謝!

2015年9月26日 星期六

14. C++ 函數的進階應用

前面函數的介紹,是說明程式可以模組化的程式寫法!
例如: 汽車裡面的每一個元件都可視為一個模組module
函數是方便獨立開發與測試,降低開發的難度
這次進階應用,是要介紹overloading,亂數的取得,遞迴函數
排序與搜尋等內容!!

一. overloading
      當函數名稱相同,但宣告內容和定義不同時,稱為overloading
      int Money(int, int)
      double Money(double, double)
   
      函數的引數可以指定"預設值",稱為預設引數
      double Area(double Width, double Length = 12.0);
二. 亂數的取得
      亂數random numbers是隨機變化,無法預測的數值。
      ex: 模擬量測訊號,需要加上雜訊,已獲得逼真的效果
      需要再程式一開始加上"<cstdlib>"
      rand();   可以產生0~RandMax 的整數, RandMax是0x7FFFU
       
      產生指定範圍的整數亂數,介於0~N-1的整數亂數
      rand()%N,用"%"餘數運算來達成目標
三. 遞迴函數
      遞迴函數的定義式使用相同的函數來定義自己
     
      最大公約數 Greatest Common Divider, GCD
      int GCD(int M, int N){
         if ((M%N) = = 0 )
            return N;
         else
            return GCD(N, M%N);
      }
四. 排序與搜尋
      排序的目的是將一群資料依照字母的順序或數值的大小重新排列
      1. 泡沫排序法,  2. 插入排序法,  3. 合併排序法,  4. 選擇排序法
      5. Shell排序法.....等!
     
      搜尋是從一群資料中找出符合某個條件的元素
      1. 線性搜尋法,  2. 二分搜尋法
               
           
       
       

沒有留言: