- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 流程图及程式
百度文库 百度文库 第 二 章 流程圖與程式 流程圖(flow chart)是用來表示演算法(algorithm)或程式執行的過程,是一種常用的方法,讓您能夠輕鬆掌握整個問題的架構。 2.1 流程圖 流程圖藉著各種不同的圖形以及一些帶有箭頭的直線來表示各種作業或功能,帶有箭頭的直線則表示流向。熟練流程圖技巧,可建立良好的程式設計基楚。 一般常用之流程圖其圖形及帶箭頭的直線如下圖所示。 2.2 演算法 演算法是指使用有限的指令以解決某一指定問題的步驟,其特性如下: 1。輸入 可以沒有輸入資料,或有多個輸入資料。 2。輸出 至少有一個輸出資料。 3。有限性 演算法必須經過有限步驟執行後停止作業。 4。有效性 可在紙上作業追蹤執行的結果。 5。明確性 每個指令必須明確,不可模稜兩可。 說明演算法常用的方式有三種,文字敘述、演算法語言、流程圖。 2.3 C 語言程式 將演算法或流程圖轉化為 C 語言程式並不困難,因為演算法或流程圖都已經將解決問題的步驟明白敘述,您只須將每一個步驟使用 C 語言程式的語法表示出來就是一個 C 語言的程式了,然後交給電腦去執行,自然就得到答案了。 那麼電腦如何處理您的程式呢?通常要經過「編輯」、「編譯」、「執行」等三個動作。 編輯 「編輯」指您根據演算法或流程圖製作一個 C 語言程式,您可使用任何文字編輯的應用程式,例如 Windows 裡的記事本、Word、或文書處理程式等軟體,在 UNIX 或 Linux 系統您可以使用 vi 編輯程式等等。C 語言程式的附檔名為「.c」,如下面的「例一」程式,它的檔名為「average.c」。 編譯 「編譯」指將原始程式轉換為目的程式的動作。原始程式指您所製作的 C 語言程式,例如 average.c,它是人們所看得懂的文件,但目的程式只含由零「0」與一「1」兩個符號所組成的指令,這些指令只有電腦看得懂,也因為電腦看得懂這些指令,電腦才有辦法執行這些指令,執行這些指令的結果就是您要的答案。 若編譯成功會產生一個電腦的可執行檔,例如編譯 average.c 成功時會產生一個 average.exe 檔,您直接執行 average.exe 就可得到答案。您在編譯時可能產生錯誤,這時必須透過編輯程式改正錯誤,改正之後再行編譯,一直到編譯成功時才可以開始執行目的程式。 「執行」目的程式時電腦會輸出執行的結果,輸出的結果可能是正確的答案,也可能是錯誤的資料,當然要找出錯誤的地方加於更正,再一次編譯及執行,總要得到正確的結果才算完成,它的步驟如下圖所示。 以流程圖說明演算法 程式 average.c 中 第 5 列 double a,b,sum,avg; 宣告 a、b、sum、avg 均為浮點數,沒賦予初值,如下圖所示。圖中最 大的長方形格子表示電腦的記憶體,程式裡的變數名稱 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=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;
文档评论(0)