對于“程序設(shè)計”的工作,許多初學(xué)者的理解就是“寫代碼”。同樣,新手們苦惱的問題是,他們只會“寫代碼”。當(dāng)接到一個新的任務(wù),不少人總是在第一時間就爬到鍵盤上去敲代碼。敲著敲著,就把自己繞糊涂了。頭暈?zāi)X脹地堅持下來,程序能運行,阿彌托佛,趕緊撤。這樣做出的程序,并不可靠。
在程序設(shè)計中,最重要的不是寫程序,而是設(shè)計。就像建筑、機械等行業(yè)的要畫設(shè)計圖、施工圖,程序設(shè)計的思路也有必要用圖的形式畫出來。畫圖的過程就是思考的過程,由于其直觀性,畫圖的過程本身又促進了思考。在軟件工程中,已經(jīng)發(fā)展出了很多種實用的圖,為軟件產(chǎn)品設(shè)計的質(zhì)量提供保證。這部分練習(xí)幫助程序設(shè)計者掌握和實踐的“程序流程圖”。
一、什么是程序流程圖
“程序流程圖”常簡稱為“流程圖”,是一種傳統(tǒng)的算法表示法,程序流程圖是人們對解決問題的方法、思路或算法的一種描述。它利用圖形化的符號框來代表各種不同性質(zhì)的操作,并用流程線來連接這些操作。在程序的設(shè)計(在編碼之前)階段,通過畫流程圖,可以幫助我們理清程序思路。下圖是一個簡單的流程圖,描述求兩個數(shù)的最大公約數(shù)的算法(輾轉(zhuǎn)相除法)。
畫流程圖是每個程序員的基本功。流程圖有其規(guī)范,這是用于技術(shù)人員之間交流的需要,并不是想怎么畫就怎么畫。流程圖中常用的符號見右圖,在前述求最大公約數(shù)的流程圖中找出對應(yīng)的部分。

二、三種控制結(jié)構(gòu)的流程圖表示
這部分不再寫文字,各種程序設(shè)計的教材中都會寫一些,至少在講各種控制結(jié)構(gòu)時,總時要講的。請參考自己手頭能找到的教材,認真品味。
我們直接提示若干任務(wù),畫一畫,就會了。
三、練習(xí)題目(各部分分別至少選兩個畫一畫,注意用一張質(zhì)量好一些紙,書寫整齊,確保越畫越高興)
1、熱身
(1)將英尺轉(zhuǎn)換為米
(2)輸入兩個點的坐標(biāo),求兩點之間的距離并輸出
2、分支程序
(1)描述一下今晚的計劃:如果下雪,校園內(nèi)玩雪;否則,在103上機(懷念)
(2)丟硬幣決定今晚:正面,K歌;反面:逛街;立起來,學(xué)C++
(3)求函數(shù)值:

(4)輸入一元二次方程ax^2+bx+c=0的各項系數(shù),并根據(jù)各系數(shù)的值的情況,分別進行求解(考慮對系數(shù)的各種可能太復(fù)雜時,給自己降低些難度,先從不考慮系統(tǒng)直接求解開始)
(5)輸入個人月收入總額,計算出他本月應(yīng)繳稅款和稅后收入(稅率等參考第9周任務(wù))
3、循環(huán)結(jié)構(gòu)
(1)求1+2+3+.。.+100(三種循環(huán)結(jié)構(gòu)都畫一畫)
(2)輸出1/3-3/5+5/7-7/9…+19/21的結(jié)果
(3)一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。找出1000內(nèi)的所有完數(shù)。
(4)輸出1000以內(nèi)的所有回文數(shù)
(5)雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,百錢買百雞,如何買?
4、復(fù)雜結(jié)構(gòu)的程序
在解決問題中,利用函數(shù)可以讓我們利用更“有序”的思維去想問題,“自頂向下,逐步求精”,真理。例:下面的流程圖用于輸出星號圖,體現(xiàn)的是這種思維,右邊的圖可以嵌入到左邊中,替代“輸出第i行”的框子,也可以指導(dǎo)我們專門編成一個函數(shù)。

任務(wù):
(1)輸出10000以內(nèi)的所有回文素數(shù)。將判斷回文和判斷素數(shù)分別單獨畫,對應(yīng)將這兩個功能用函數(shù)實現(xiàn)的方法。
(2)畫出銀行系統(tǒng)的流程圖(各具體業(yè)務(wù)點到為止,不必全畫)
注:在傳統(tǒng)教學(xué)中,未學(xué)寫代碼,先學(xué)畫流程。以前的實踐中,感覺效果不好??刂平Y(jié)構(gòu)為何物都暈,如何能畫出來。有一定編程體驗后再畫,是改革的思路。這是編程的一項基本功,務(wù)必掌握!
-
編程
+關(guān)注
關(guān)注
89文章
3705瀏覽量
96515 -
流程圖
+關(guān)注
關(guān)注
2文章
63瀏覽量
19213
發(fā)布評論請先 登錄
從3小時到3分鐘:EdgeCAM 如何重構(gòu)數(shù)控編程流程
【「零基礎(chǔ)開發(fā)AI Agent」閱讀體驗】操作實戰(zhàn),開發(fā)一個編程助手智能體
MCU+CPLD 聯(lián)合編程(概念及流程)
PID管道儀表流程圖識讀方法【推薦下載】
LED產(chǎn)品SMT生產(chǎn)流程防硫注意事項
PLC常見的故障和因素及5大排除流程圖
【「零基礎(chǔ)開發(fā)AI Agent」閱讀體驗】總體預(yù)覽及入門篇
開關(guān)電源反激和正激的區(qū)分
實時時鐘模塊選擇指南和比較表
在HMI上如何顯示PLC代碼流程呢?
數(shù)控加工工藝流程詳解
做ADS解碼專用 實踐ADS1605
PLD設(shè)計流程的詳細步驟
歐姆龍協(xié)作機器人TM25S可使用多種方法進行編程

編程基礎(chǔ)之流程圖畫法及練習(xí)
評論