表格模板-流程图与程式 精品.ppt

上传人:lao****ou 文档编号:14169 上传时间:2022-09-25 格式:PPT 页数:27 大小:249.50KB
下载 相关 举报
表格模板-流程图与程式 精品.ppt_第1页
第1页 / 共27页
表格模板-流程图与程式 精品.ppt_第2页
第2页 / 共27页
表格模板-流程图与程式 精品.ppt_第3页
第3页 / 共27页
表格模板-流程图与程式 精品.ppt_第4页
第4页 / 共27页
表格模板-流程图与程式 精品.ppt_第5页
第5页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《表格模板-流程图与程式 精品.ppt》由会员分享,可在线阅读,更多相关《表格模板-流程图与程式 精品.ppt(27页珍藏版)》请在第一文库网上搜索。

1、第 二 章 流程圖與程式 流程圖(flow chart)是用來表示演算法(algorithm)或程式執行的過程,是一種常用的方法,讓您能夠輕鬆掌握整個問題的架構。 2.1 流程圖 流程圖藉著各種不同的圖形以及一些帶有箭頭的直線來表示各種作業或功能,帶有箭頭的直線則表示流向。熟練流程圖技巧,可建立良好的程式設計基楚。 一般常用之流程圖其圖形及帶箭頭的直線如下圖所示。 2.2 演算法 演算法是指使用有限的指令以解決某一指定問題的步驟,其特性如下: 1。輸入 可以沒有輸入資料,或有多個輸入資料。 2。輸出 至少有一個輸出資料。 3。有限性 演算法必須經過有限步驟執行後停止作業。 4。有效性 可在紙上

2、作業追蹤執行的結果。 5。明確性 每個指令必須明確,不可模稜兩可。 說明演算法常用的方式有三種,文字敘述、演算法語言、流程圖。 2.3 C 語言程式 將演算法或流程圖轉化為 C 語言程式並不困難,因為演算法或流程圖都已經將解決問題的步驟明白敘述,您只須將每一個步驟使用 C 語言程式的語法表示出來就是一個 C 語言的程式了,然後交給電腦去執行,自然就得到答案了。 那麼電腦如何處理您的程式呢?通常要經過編輯、編譯、執行等三個動作。 編輯 編輯指您根據演算法或流程圖製作一個 C 語言程式,您可使用任何文字編輯的應用程式,例如 Windows 裡的記事本、Word、或文書處理程式等軟體,在 UNIX

3、或 Linux 系統您可以使用 vi 編輯程式等等。C 語言程式的附檔名為.c,如下面的例一程式,它的檔名為average.c。 編譯 編譯指將原始程式轉換為目的程式的動作。原始程式指您所製作的 C 語言程式,例如 average.c,它是人們所看得懂的文件,但目的程式只含由零0與一1兩個符號所組成的指令,這些指令只有電腦看得懂,也因為電腦看得懂這些指令,電腦才有辦法執行這些指令,執行這些指令的結果就是您要的答案。 若編譯成功會產生一個電腦的可執行檔,例如編譯 average.c 成功時會產生一個 average.exe 檔,您直接執行 average.exe 就可得到答案。您在編譯時可能產生

4、錯誤,這時必須透過編輯程式改正錯誤,改正之後再行編譯,一直到編譯成功時才可以開始執行目的程式。 執行目的程式時電腦會輸出執行的結果,輸出的結果可能是正確的答案,也可能是錯誤的資料,當然要找出錯誤的地方加於更正,再一次編譯及執行,總要得到正確的結果才算完成,它的步驟如下圖所示。 【例一】 輸入兩個數 a 及 b,求其平均值 avg。 【以文字敘述說明】 1。輸入兩個數分別命名為 a 及 b。 2。總和 sum 為 a 及 b 之和。 3。平均值 avg 為總和 sum 除於 2 的商數。 4。輸出平均值 avg。 5。停止。 【以演算法語言說明】 1。INPUT a,b 2。sum a+b 3。

5、avg sum/2 4。PRINT avg 5。END 以流程圖說明演算法【程式average.c】 /* average.c */ #include int main() double a,b,sum,avg; scanf(%lf %lf, &a, &b); /*步驟1*/ sum=a+b; /*步驟2*/ avg=sum/2; /*步驟3*/ printf(%f, avg); /*步驟4*/ return (0); /*步驟5*/ 【執行結果】 1.0 3.0 註輸入兩個數1.0 3.0後按Enter鍵 2.000000 註輸出平均值avg=(1.0+3.0)/2 為了說明方便,將程式每一

6、列編號,原來的程式是沒有編號的,編號只為了方便說明而已。 1 /* average.c */ 2 #include 3 int main() 4 5 double a,b,sum,avg; 6 scanf(%lf %lf, &a, &b); /*步驟1*/ 7 sum=a+b; /*步驟2*/ 8 avg=sum/2; /*步驟3*/ 9 printf(%f, avg); /*步驟4*/ 10 return (0); /*步驟5*/ 11 程式 average.c 中 第 5 列 double a,b,sum,avg; 宣告 a、b、sum、avg 均為浮點數,沒賦予初值,如下圖所示。圖中最

7、大的長方形格子表示電腦的記憶體,程式裡的變數名稱 a、b、sum、 avg 等就好像郵局裡的信箱名稱一樣,一個變數名稱就相當於一個信箱 名稱,因此本程式在記憶體儲存五個信箱,它的名稱分別為 a、b、sum 、avg。變數的值就相當於信箱裡的信件一樣,因為目前信箱裡頭並沒 有信件,因此以空白表示。 第 6 列 scanf(%lf %lf, &a, &b); 從鍵盤輸入二個值,分別置入 a、b 變數裡,例如您輸入 1.0 3.0 等 二個值,數值之間最少空一格,輸入最後的數值緊接著按Enter鍵 ,您也可以每輸入一個數值後馬上按Enter鍵,如下圖所示。 第 7 列 sum=a+b; 計算 sum

8、=a+b,如下圖所示。圖中除了記憶體之外,還出現一個 CPU,CPU 是 Central Processing Unit 中央處理單元的意思,記憶體只 負責儲存資料,中央處理單元負責處理資料,處理的項目主要包括計算 與比較,因此就將 a、b 的值 1.0、3.0 從記憶體搬到 CPU 執行加法 計算,其和 4.0 再從 CPU 搬到記憶體裡的 sum 變數,這時 sum 變數 的值就是 4.0 了。 第 8 列 avg=sum/2; 計算 avg=sum/2,如下圖所示。將 sum 的值 4.0 從記憶體搬到 CPU 執 行除法計算,其商 2.0 再從CPU 搬到記憶體裡的 avg 變數,這

9、時 avg 變數的值就是 2.0 了。 第 9 列 printf(%f, avg); 從記憶體 avg 處將其內含值 2.0 以浮點數格式輸出至螢幕,如下圖所 示。 第 10 列 return (0); 表示程式結束了,傳回 0 值表示正常結束。 【例二】 重複輸入一數 num,若 num 為正數則累加至總和 sum, 否則印出總和後 停止。 【以文字敘述說明】 1。設總和 sum 為 0。 2。輸入一數 num。 3。若 num 為正數,則 num 加至總和 sum 後跳至步驟 2。 4。輸出總和 sum。 5。停止。 【以演算法語言說明】 1。sum 0 2。INPUT num 3。IF

10、num0 THEN sum sum + num : GOTO 2 4。PRINT sum 5。END 【以流程圖說明演算法】【程式sum.c】 /* sum.c */ #include int main() double num,sum; sum=0.0; /*步驟1*/ again: scanf(%lf, &num); /*步驟2*/ if (num0) sum=sum+num; goto again; /*步驟3,4,5*/ printf(%lf, sum); /*步驟6*/ return (0); /*步驟7*/ 【結果】 1.0 註輸入一個數1.0後按Enter鍵 3.0 註輸入一個數

11、3.0後按Enter鍵 -1 註輸入一個數-1 後按Enter鍵 4.000000 註輸出總和sum=1.0+3.0 為了說明方便,將程式每一列編號,原來的程式是沒有編號的,編號只為了方便說明而已。 1 /* sum.c */ 2 #include 3 int main() 4 5 double num,sum; 6 sum=0.0; /*步驟1*/ 7 again: 8 scanf(%lf, &num); /*步驟2*/ 9 if (num0) sum=sum+num; goto again; /*步驟3,4,5*/ 10 printf(%lf, sum); /*步驟6*/ 11 retur

12、n (0); /*步驟7*/ 12 程式 sum.c 中:第 5 列 double num,sum; 宣告 num、sum 均為浮點數,沒賦予初值,如下圖所示。圖中最大的長 方形格子表示電腦的記憶體,程式裡的變數名稱 num、sum 等就好像郵 局裡的信箱名稱一樣,一個變數名稱就相當於一個信箱名稱,因此本程 式在記憶體儲存兩個信箱,它的名稱分別為 num、sum。變數的值就相 當於信箱裡的信件一樣,因為目前信箱裡頭並沒有信件,因此以空白表 示。 第 6 列 sum=0.0; 將 0.0 指定給 sum 變數,如下圖所示,相當於將 0.0 擺入記憶體 裡 sum 的格子裡。第 7 列 again

13、: 指定該處為 again 標記,因為等一下會從程式的某處跳到這裡,因此 要給一個名稱,例如高雄縣澄清湖大門口要豎立一個門樓,寫上澄清 湖三個大字一樣,澄清湖就是一個標記,我們的 again 也是一 個標記。 第 8 列 scanf(%lf, &num); 從鍵盤輸入一個浮點數,置入記憶體 num 處,例如您輸入 1.0 後 按 Enter 鍵,如下圖所示。第 9 列 if (num0) sum=sum+num; goto again; 將記憶體 num 處的值 1.0 取至 CPU 執行邏輯運算num0,結果 為 true,如下圖所示。 隨即執行 sum=sum+num 計算,如下圖所示。將

14、 sum、num 的值 0.0、 1.0 從記憶體搬到 CPU 執行加法計算,其和 1.0 再從 CPU 搬到記憶 體裡的 sum 變數,這時 sum 變數的值就是 1.0 了。請注意這個敘述 裡有兩個 sum 變數,因為名稱相同,所以在記憶體裡只設一個 sum 變 數而已,因為屬於變數,因此它的內含值是可以改變的,等號右邊的 sum 儲存老的值,等號左邊的 sum 儲存新的值,新的值會蓋掉老的 值,因為它只有一個儲存空間而已。然後回到goto again;標記為 again 處繼續執行。 第 10 列 printf(%lf, sum); 將 sum 處的值 4.0 以浮點數格式輸出至螢幕,如下圖所示。 第 11 列 return (0); 表示程式結束了,傳回 0 值表示正常結束。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 技术资料 > 统计图表

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服