1. 程式人生 > >程式設計基本功訓練 流程圖畫法及練習

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

對於“程式設計”的工作,許多初學者的理解就是“寫程式碼”。同樣,新手們苦惱的問題是,他們只會“寫程式碼”。當接到一個新的任務,不少人總是在第一時間就爬到鍵盤上去敲程式碼。敲著敲著,就把自己繞糊塗了。頭暈腦脹地堅持下來,程式能執行,阿彌託佛,趕緊撤。這樣做出的程式,並不可靠。

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

  講解視訊:

  1、控制結構與流程圖    練習和解答

  2、迴圈控制結構與流程圖   練習和解答

 

  最新推出:能動起來的流程圖視訊課程——Raptor是一個視覺化的,基於流程圖的程式設計工具,不僅可以編寫簡單程式解決實際問題,其更大的價值在於程式設計思維的訓練。課程適合用C、C++、Java和其他語言學習程式設計,希望學會“如何想演算法”的人士,通過流程圖訓練程式設計思維,還將有助於養成良好的思維習慣、形成規範的程式設計思想。

  程式設計思維啟蒙(Raptor)視訊課程主頁(點連結....)——用C、C++、Java和其他語言學習程式設計,解題沒有思路可以用Raptor訓練!

 

  一、什麼是程式流程圖

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

    勘誤:最後的結果,該是output a。感謝8樓童鞋指出!

  畫流程圖是每個程式設計師的基本功。流程圖有其規範,這是用於技術人員之間交流的需要,並不是想怎麼畫就怎麼畫。流程圖中常用的符號見右圖,在前述求最大公約數的流程圖中找出對應的部分。

  

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

  這部分不再寫文字,各種程式設計的教材中都會寫一些,至少在講各種控制結構時,總時要講的。請參考自己手頭能找到的教材,認真品味。
  我們直接提示若干任務,畫一畫,就會了。

 

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

  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)畫出銀行系統的流程圖(各具體業務點到為止,不必全畫)

 

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

 

 

 

 

=================== 迂者 賀利堅 CSDN部落格專欄=================
|== IT學子成長指導專欄 專欄文章的分類目錄(不定期更新) ==|
|== C++ 課堂線上專欄  賀利堅課程教學連結(分課程年級) ==|
|== 我寫的書——《逆襲大學——傳給IT學子的正能量》    ==|
===== 為IT菜鳥起飛鋪跑道,和學生一起享受快樂和激情的大學 =====

 

  

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!希望你也加入到我們人工智慧的隊伍中來!http://www.captainbed.net