天天看點

程式設計基本功訓練:流程圖畫法及練習

對于“程式設計”的工作,很多剛開始學習的人的了解就是“寫代碼”。相同,新手們苦惱的問題是,他們僅僅會“寫代碼”。當接到一個新的任務,不少人總是在第一時間就爬到鍵盤上去敲代碼。敲着敲着,就把自己繞糊塗了。頭暈腦脹地堅持下來,程式能執行,阿彌托佛,趕緊撤。這樣做出的程式,并不可靠。

  在程式設計中,最重要的不是敲代碼,而是設計。就像建築、機械等行業的要畫設計圖、施工圖,程式設計的思路也有必要用圖的形式畫出來。繪圖的過程就是思考的過程,因為其直覺性,繪圖的過程本身又促進了思考。在軟體project中,已經發展出了非常多種有用的圖,為軟體産品設計的品質提供保證。這部分練習幫助程式設計者掌握和實踐的“程式流程圖”。

  一、什麼是程式流程圖

  “程式流程圖”常簡稱為“流程圖”,是一種傳統的算法表示法,程式流程圖是人們對解決這個問題的方法、思路或算法的一種描寫叙述。它利用圖形化的符号框來代表各種不同性質的操作,并用流程線來連接配接這些操作。在程式的設計(在編碼之前)階段,通過畫流程圖,能夠幫助我們理清程式思路。下圖是一個簡單的流程圖,描寫叙述求兩個數的最大公約數的算法(輾轉相除法)。

    

  畫流程圖是每一個程式猿的基本功。流程圖有其規範,這是用于技術人員之間交流的須要,并非想怎麼畫就怎麼畫。流程圖中經常使用的符号見右圖,在前述求最大公約數的流程圖中找出相應的部分。

  二、三種控制結構的流程圖表示

  這部分不再寫文字,各種程式設計的教材中都會寫一些,至少在講各種控制結構時,總時要講的。請參考自己手頭能找到的教材,認真品味。

  我們直接提示若幹任務,畫一畫,就會了。

  三、練習題目(各部分分别至少選兩個畫一畫,注意用一張品質好一些紙,書寫整齊,確定越畫越高興)

  1、熱身

  (1)将英尺轉換為米

  (2)輸入兩個點的坐标,求兩點之間的距離并輸出

  2、分支程式

  (1)描寫叙述一下今晚的計劃:假設下雪,校園内玩雪;否則,在103上機(懷念)

  (2)丢硬币決定今晚:正面,K歌;反面:逛街;立起來,學C++

  (3)求函數值:

  

  (4)輸入一進制二次方程ax^2+bx+c=0的各項系數,并依據各系數的值的情況,分别進行求解(考慮對系數的各種可能太複雜時,給自己減少些難度,先從不考慮系統直接求解開始)

  (5)輸入個人月收入總額,計算出他本月應繳稅款和稅後收入(稅率等參考第9周任務) 

  3、循環結構

  (1)求1+2+3+...+100(三種循環結構都畫一畫)

  (2)輸出1/3-3/5+5/7-7/9…+19/21的結果 

  (3)一個數假設恰好等于它的因子之和,這個數就稱為“完數”。找出1000内的全部完數。

  (4)輸出1000以内的全部回文數

  (5)雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,百錢買百雞,怎樣買? 

  4、複雜結構的程式

  在解決這個問題中,利用函數能夠讓我們利用更“有序”的思維去想問題,“自頂向下,逐漸求精”,真理。例:以下的流程圖用于輸出星号圖,展現的是這樣的思維,右邊的圖能夠嵌入到左邊中,替代“輸出第i行”的框子,也能夠指導我們專門編成一個函數。

  任務:

  (1)輸出10000以内的全部回文素數。将推斷回文和推斷素數分别單獨畫,相應将這兩個功能用函數實作的方法。

  (2)畫出銀行系統的流程圖(各詳細業務點到為止,不必全畫)

  注:在傳統教學中,未學寫代碼,先學畫流程。曾經的實踐中,感覺效果不好。控制結構為何物都暈,怎樣能畫出來。有一定程式設計體驗後再畫,是改革的思路。這是程式設計的一項基本功,務必掌握!

繼續閱讀