第一章 程序設(shè)計的基本概念_第1頁
第一章 程序設(shè)計的基本概念_第2頁
第一章 程序設(shè)計的基本概念_第3頁
第一章 程序設(shè)計的基本概念_第4頁
第一章 程序設(shè)計的基本概念_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

C語言程序設(shè)計第1章程序設(shè)計的基本概念11.1程序和程序設(shè)計1.1.1C程序

計算機現(xiàn)已廣泛的應(yīng)用于社會的各個領(lǐng)域,成為大眾化的現(xiàn)代工具.其實,計算機不過是一種具有內(nèi)部存儲能力,由程序自動控制的電子設(shè)備.人們將需要計算機做的工作寫成一定形式的指令,并把它們存儲在計算機內(nèi)部的存儲器中,當(dāng)人們給出了命令之后,它就按指令順序自動進行操作.人們把這種可以連續(xù)執(zhí)行的一條指令的的集合稱為”程序”.可以說,程序就是人與機器”對話”的語言,也就是我們常說的”程序設(shè)計語言”.

目前,在社會上使用的程序設(shè)計語言有上百種,它們中的大多數(shù)被稱為計算機的“高級語言”,如VisualBasic、C++、Java以及C語言等.這些語言都是用接近人們習(xí)慣的自然語言和數(shù)學(xué)語言作為表達式.

但是,對計算機來說,它并不能直接識別由高級語言編寫的程序,它只能接受和處理由來0和1的代碼構(gòu)成的二進制指令或數(shù)據(jù).由于這種形式的指令是面向機器的,因次也被稱為”機器語言”.

我們把由高級語言編寫的程序稱為”源程序”,把由二進制代碼表示的程序稱為”目標程序”.為了把源程序轉(zhuǎn)化成機器能夠接受的目標程序,軟件工作者編制了一系列軟件.通過這些軟件可以把用戶按規(guī)定語法寫出來的語句一一翻譯成二進制的機器指令.這種具有翻譯功能的軟件稱為”編譯程序”,每種高級語言都有它對應(yīng)的編譯程序,C語言編譯程序就是這樣的一種軟件,其功能如圖1.1所示:C語言源程序C語言編譯程序二進制機器指令我們所寫的每條C語句,經(jīng)過編譯最終都將轉(zhuǎn)換成二進制的機器指令.由C語言構(gòu)成的指令序列稱為C源程序;按C語言的語法編寫C的過程,稱為C語言的代碼編寫.

C源程序經(jīng)過編譯程序編譯之后生成一個后綴為.OBJ的二進制文件(稱為目標文件),然后由稱為”連接程序”(Link)的軟件,把.OBJ文件與C語言提供的各種庫函數(shù)連接起來生成一個后綴為.EXE的可執(zhí)行文件.在操作系統(tǒng)下,只需點擊或輸入此文件的名字(而不必輸入后綴.EXE),該文件就可運行.1.1.2程序設(shè)計簡單的程序設(shè)計一般包含以下幾個部分:1.確定數(shù)據(jù)結(jié)構(gòu).2.確定算法.3.編碼.4.在計算機上調(diào)試程序.5.整理并寫出文檔資料.1.2算法

學(xué)習(xí)計算機程序設(shè)計語言的目的,是要用語言作為工具,設(shè)計出可供計算機運行的程序.

在編程除了合理的數(shù)據(jù)結(jié)構(gòu)外,最關(guān)鍵的就是算法.

著名計算機科學(xué)家沃思提出一個公式數(shù)據(jù)結(jié)構(gòu)+算法=程序算法的概念和特性:算法是為解決某個特定的問題而采取的確定且有限的步驟.

算法的特性:1.有窮性.2.確定性.3.可行性.4.有零個或多個輸入.5.有一個或多個輸出.算法可以用各種方法來描述,常用大的是偽代碼和流程圖.偽代碼是一種近似于高級語言但又不受語法約束的一種語言描述方式,在英國國家中使用.流程圖也是描述算法很好的工具,一般的流程圖由圖1.2中所示的幾中基本圖形組成.開始或終止框處理框輸入輸出框判斷框流程線連接點圖1.2一般的流程圖所用的幾種基本圖形隨著結(jié)構(gòu)化程序設(shè)計方法的出現(xiàn),1973年美國學(xué)者I.Nassi和B.Shniedermant提出了一種新的流程圖,這種流程圖完全去掉了流程線,算法的每一步都用一個矩形框來描述,把一個個矩形框按執(zhí)行的次序連接起來就是一個完整的算法描述.這種流程圖用兩位學(xué)者名字的第一個英文字母命名,稱為N-S流程圖.在下一節(jié)將會介紹.1.3結(jié)構(gòu)化程序設(shè)計和??旎Y(jié)構(gòu)1.3.1結(jié)構(gòu)化程序結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)組成.1.順序結(jié)構(gòu).

在本書的第三章將要介紹的如賦值語句、輸入、輸出語句都都可以構(gòu)成順序結(jié)構(gòu).執(zhí)行時將按語句在程序中的先后順序逐條執(zhí)行,沒有分支,沒有轉(zhuǎn)移.順序結(jié)構(gòu)可用圖1.3所示的流程圖表示,其中(a)是一般的流程圖,(b)是N-S流程圖.語句1語句2(a)一般流程圖語句1語句2(b)N-S流程圖圖1.3順序結(jié)構(gòu)流程圖2.選擇結(jié)構(gòu).

在本書的第四章中介紹if語句、switch

語句都可構(gòu)成選擇結(jié)構(gòu),當(dāng)執(zhí)行這些語句時,將根據(jù)不同的條件去執(zhí)行不同分支中的語句.選擇結(jié)構(gòu)可用圖1.4所示的流程圖表示,其中(a)是一般的流程圖,(b)是N-S流程圖.判斷表達式滿足語句1語句2判斷表達式滿足不滿足語句1語句2不滿足a)一般流程圖(b)N-S流程圖圖1.4選擇結(jié)構(gòu)的流程圖3.循環(huán)結(jié)構(gòu)

在第五章中介紹不同形式的循環(huán)結(jié)構(gòu).它們將根據(jù)各自的條件,使同一條語句重復(fù)執(zhí)行多次或一次也不執(zhí)行.循環(huán)結(jié)構(gòu)的流程圖如圖1.5和1.6所示,每個圖中(a)是一般的流程圖,(b)是N-S流程圖.圖1.5是當(dāng)型循環(huán)圖.當(dāng)型循環(huán)的特點是:當(dāng)指定的條件滿足時,就執(zhí)行循環(huán)體,否則就不執(zhí)行.圖1.6是直到型循環(huán)流程圖.直到循環(huán)的特點是:執(zhí)行循環(huán)體直到指定的條件滿足時就不再執(zhí)行循環(huán)體.判斷表達式滿足循環(huán)體不滿足a)一般流程圖循環(huán)體當(dāng)判斷條件滿足(b)N-S流程圖圖1.5當(dāng)型循環(huán)流程圖判斷表達式滿足循環(huán)體不滿足循環(huán)體直到判斷表達式滿足(a)一般流程圖(b)N-S流程圖圖1.6直到型循環(huán)流程圖例1.1先后輸入若干個整數(shù),要求打印出其中最大的數(shù),當(dāng)輸入的數(shù)小于0時結(jié)束.用N-S流程圖表示算法.

解題的思路是:先輸入一個數(shù),在沒有其他數(shù)參加比較之前,它顯然是當(dāng)前最大的數(shù),把它放到變量max中.讓max始終存放當(dāng)前已比較過的數(shù)中最大值.然后輸入第二個數(shù),并與max比較,如果第二個數(shù)大于max,則用第二個數(shù)取代max中原來的值.如此先后輸入和比較,每次比較后都將值大者放在max中,直到輸入的數(shù)小于0時結(jié)束.最后max中值就是所有輸入數(shù)中的最大值.

用N-S流程圖(見圖1.7).讀入一個數(shù)給XMax=x當(dāng)x>0時X>max是否Max=x讀入一個數(shù)給出x輸出max1.3.2模塊化結(jié)構(gòu)

當(dāng)計算機在處理較復(fù)雜的任務(wù)時,所編寫的程序經(jīng)常由上萬條語句組成,需要由許多人來共同完成.這時常常把這個復(fù)雜的任務(wù)分解為若干個子任務(wù),每個子任務(wù)又分解很多個小任務(wù),每個小任務(wù)只完成一項簡單的功能.在程序設(shè)計時,用一個個小模塊來實現(xiàn)這些功能,每個程序設(shè)計人員分別完成一個或多個小模塊.我們稱這樣的程序設(shè)計方法為”模塊化”的方法,由一個個功能模塊構(gòu)成的程序結(jié)構(gòu)為模塊化結(jié)構(gòu).

由于把一個大程序分解成若干相對獨立的子程序,每個子程序的代碼一般不超過一頁紙,因此對程序設(shè)計人員來說,編寫代碼不在變得困難.這時只對程序之間的數(shù)據(jù)傳遞做出統(tǒng)一規(guī)范,同一軟件可由一組人員同時進行編寫,分別進行調(diào)試,這就大大提高了程序編制的效率.

軟件編制人員在進行程序設(shè)計的時候,首先應(yīng)考率主程序的算法,寫出主程序后再動手逐步完成子程序的調(diào)用.對于這些子程序也可用調(diào)試主程序的同樣的方法逐步完成其下一層子程序的調(diào)用.這就是自頂向下、逐步細化、模塊化的程序設(shè)計方法.習(xí)題:1.在VC6.0環(huán)境中用run命令運行一個程序時,程序的后綴是___.2.C語言源程序文件名的后綴是__;經(jīng)過編譯之后的后綴是__;經(jīng)過連接后,生成的后綴是__;3.結(jié)構(gòu)化程序由___,__,__三種基本結(jié)構(gòu)組成.4.上機掌握在VC6.0如何運行c程序.程序1#include<stdio.h>void

main(){

printf("ThisisaCprogram.\n");

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論