程序設(shè)計及其編程語言課件_第1頁
程序設(shè)計及其編程語言課件_第2頁
程序設(shè)計及其編程語言課件_第3頁
程序設(shè)計及其編程語言課件_第4頁
程序設(shè)計及其編程語言課件_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一節(jié)程序設(shè)計及其編程語言一、程序設(shè)計程序是可以被計算機(jī)處理的指令序列。通常,程序是為完成一項任務(wù)由匯編語言或高級語言編寫的代碼的集合。程序設(shè)計的過程一般包括以下步驟:⑴問題定義根據(jù)所要解決的問題,確定解決問題的方法,定義數(shù)據(jù)的輸入輸出格式,用日常語言盡可能清晰、準(zhǔn)確、完整地表達(dá)解決問題的過程。⑵算法設(shè)計根據(jù)所確定解決問題的方法,建立相應(yīng)的數(shù)學(xué)方法及數(shù)學(xué)模型(公式),并考慮選取哪種方法更適合于計算機(jī)數(shù)據(jù)處理。程序設(shè)計的過程一般包括以下步驟⑶流程圖設(shè)計根據(jù)用日常語言所描述的解決問題的過程,用計算機(jī)程序設(shè)計語言所規(guī)定的流程圖符號進(jìn)行框圖描述所要解決問題的過程。⑷程序編制用選定的程序設(shè)計語言并按流程圖所提供的解決問題的步驟寫出源程序。⑸程序調(diào)試和運(yùn)行對所編寫的程序進(jìn)行編譯、運(yùn)行。若發(fā)生錯誤,則需進(jìn)行調(diào)試、排錯處理,直到該程序能正確運(yùn)行為止。二、編程語言編程語言即程序設(shè)計語言C,F(xiàn)ortran,Java,VisualBasic,低級語言和高級語言。所謂低級語言是一種面向機(jī)器的程序設(shè)計語言,如機(jī)器語言,匯編語言均屬低級語言。機(jī)器語言完全由二進(jìn)制數(shù)碼的機(jī)器指令集合所構(gòu)成,具有難寫,難記,難理解,不可移植等特點(diǎn)。高級語言是面向人類思維的程序設(shè)計語言,一般由英文單詞和數(shù)字符號構(gòu)成。具有易學(xué)、易懂、易記等特點(diǎn),但使用高級語言所編寫的程序計算機(jī)不能直接運(yùn)行。運(yùn)行前需要進(jìn)行編譯連接等。不同的高級語言具有不同的編譯系統(tǒng),如C語言的編譯環(huán)境有TurboC2.0編譯系統(tǒng)。第二節(jié)C語言的發(fā)展及特點(diǎn)C語言的發(fā)展C語言誕生于1972年,它是UNIX系統(tǒng)的主力語言。C語言由美國電話公司(AT&T)貝爾實(shí)驗(yàn)室的D.M.Ritchie(里奇)和K.Thompson(湯普森)設(shè)計并首先在UNIX操作系統(tǒng)的DECPDP-11計算機(jī)上實(shí)現(xiàn)的。C語言實(shí)際上是由ALGOL60語言逐漸演變而來的。1963年英國劍橋大學(xué)推出一種近于硬件的語言CPL,1967推出了BCPL,1970年,美國貝爾實(shí)驗(yàn)室以BCPL語言為基礎(chǔ),設(shè)計出一種更為簡單且接近于硬件的高級語言,并取BCPL第一個字母為其命名,稱為B語言,并用B語言寫出了第一個UNIX操作系統(tǒng)。1972年,貝爾實(shí)驗(yàn)室在B語言的基礎(chǔ)上,開發(fā)出了新的語言,并把它命名為C語言。二、C語言的特點(diǎn)C語言是一種結(jié)構(gòu)化程序設(shè)計語言所謂結(jié)構(gòu)化程序設(shè)計語言,又稱為模塊化程序設(shè)計語言,這種語言的程序設(shè)計方法采用結(jié)構(gòu)化的程序設(shè)計方法。在C語言中,函數(shù)是結(jié)構(gòu)化程序的最小模塊。每個函數(shù)實(shí)現(xiàn)一個功能,多個函數(shù)則完成一個較大的功能。C語言實(shí)際上就是由諸函數(shù)構(gòu)成。<二>C語言運(yùn)算符豐富C語言是一種表達(dá)式語言,與其他語言相比,C語言提供了功能極強(qiáng)的運(yùn)算符,如:增(減)運(yùn)算符(++)和(--)、取地址運(yùn)算符(&)和間接運(yùn)算符(*)、賦值運(yùn)算符(如+=、-=、*=、/=)等,利用這些運(yùn)算符可以使程序書寫更為簡潔和提高程序運(yùn)行效率。靈活的使用C語言所提供的運(yùn)算符可以實(shí)現(xiàn)在其他高級語言中難以實(shí)現(xiàn)的運(yùn)算功能。(三)C語言編程簡潔C語言是一種非常簡潔的語言,用C語言編寫的程序簡潔明了。由于C語言把括號、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理,并用一對花括號“{}”表示復(fù)合語句的開始和結(jié)束,因此,用C語言編寫出的程序一般來說相對小巧,簡潔,緊湊。(四)C語言具有良好的可移植性由于C語言具有一些預(yù)處理命令,加之C語言編譯系統(tǒng)較小,這些都對C語言的移植性能帶來一些方便。C語言的移植性好表現(xiàn)在只要對它稍作修改,就可以在其他平臺上運(yùn)行。(五)C語言結(jié)構(gòu)化強(qiáng)C語言具有的結(jié)構(gòu)化特征,稱其為結(jié)構(gòu)化語言。C語言的主要結(jié)構(gòu)成分是函數(shù)。第三節(jié)簡單的C程序介紹例1.1編程輸出文字信息“ThisisaC-Languageprogram.”程序代碼如下:main(){printf("ThisisaC-Languageprogram.");}例1.2main() /*求兩數(shù)之和*/{inta,b,sum; /*這是定義變量*/a=123;b=456; /*以下3行為C語句*/sum=a+b;printf(“sumis%d\n”,sum);}輸出結(jié)果為:sumis579第三節(jié)簡單的C程序介紹第三節(jié)簡單的C程序介紹例1.3main() /*主函數(shù)*/{inta,b,c; /*聲明部分,定義變量*/scanf(“%d,%d”,&a,&b);/*輸入變量a和b的值*/c=max(a,b);/*調(diào)用max函數(shù),將得到的賦給c*/printf(“max=%d”,c);/*輸出c的值*/}intmax(intx,inty)/*定義max函數(shù),函數(shù)值為整型, 形式參數(shù)x,y為整型*/{intz; /*max函數(shù)中的聲明部分,定義 本函數(shù)中用到的變量z為整型*/if(x>y)z=x;elsez=y;return(z);/*將z的值返回,通過max帶回調(diào)用處*/}第四節(jié)C語言程序的實(shí)現(xiàn)一、C語言程序的編輯二、C語言程序的編譯和連接編譯和連接是實(shí)現(xiàn)C語言程序的第二步驟。將編輯好的C語言程序通過編譯和連接后,在沒有錯誤的情況下,先生成目標(biāo)文件(擴(kuò)展名為.obj),再生成可執(zhí)行文件(擴(kuò)展名為.exe)。接著,就可以對可執(zhí)行文件直接運(yùn)行了。(一)編譯過程編譯過程的功能是將源程序編譯生成為目標(biāo)文件。編譯過程主要由兩部分功能組成。一是將源程序先通過預(yù)處理器。將程序中出現(xiàn)的預(yù)處理命令進(jìn)行處理,預(yù)處理命令是以字符#開始的命令。二是通過編譯器,將經(jīng)過預(yù)處理后的源程序再經(jīng)過編譯器進(jìn)行處理。編譯過程就是將詞法分析和語法分析的結(jié)果加上符號表中的信息一起用來生成程序的目標(biāo)代碼,該代碼類似于匯編語言的代碼,被存放在目標(biāo)文件中,其擴(kuò)展名為.obj。(二)連接過程經(jīng)過編譯過程后生成的目標(biāo)代碼雖然是由可執(zhí)行的機(jī)器指令組成的,但是并不能由機(jī)器直接執(zhí)行。通過執(zhí)行一個連接程序?qū)⒉煌哪繕?biāo)程序文件進(jìn)行連接處理,這稱為連接過程。連接處理后生成一個可執(zhí)行的程序,存儲這個可執(zhí)行程序的文件稱為可執(zhí)行文件,其擴(kuò)展名為.exe,該文件名便是一個可執(zhí)行的命令。三、C語言程序的運(yùn)行經(jīng)過編譯過程和連接過程處理后,將生成可執(zhí)行文件,文件名既為程序名,擴(kuò)展名為.exe,直接執(zhí)行該命令便可運(yùn)行該程序。例1.4編寫一個求出任意給定兩整數(shù)之和的程序。main(){inta,b,sum;printf("Inputa,b=?\n");scanf("%d,%d",&a,&b);sum=add(a,b);printf("sum=%d+%d=%d\n",a,b,sum);}add(intx,inty){return(x+y);}第五節(jié)C語言程序的書寫格式C語言的書寫格式比較自由,沒有嚴(yán)格的位置格式要求為提高程序的可讀性,需要養(yǎng)成良好的程序書寫習(xí)慣,以便提高程序的可讀性和易于對程序的分析理解。C語言程序中的每條語句以分號(;)結(jié)束。C語言程序根據(jù)語句格式的意義不同,往往采用縮進(jìn)式書寫方式,以區(qū)分不同程序片段或不同程序結(jié)構(gòu)之間程序成分。習(xí)慣上使用/*……*/的方式對程序進(jìn)行注釋說明。第五節(jié)C語言常用輸入輸出函數(shù)C語言常用輸入函數(shù)輸入函數(shù)又稱為讀函數(shù),用來從標(biāo)準(zhǔn)輸入設(shè)備讀入數(shù)據(jù)。計算機(jī)的標(biāo)準(zhǔn)輸入設(shè)備通常是鍵盤。故常用輸入函數(shù)是從鍵盤獲取輸入信息。(一)getchar()函數(shù)該函數(shù)為獲取單字符函數(shù)。其功能是從鍵盤上獲取一個字符,并將其所獲取的字符賦給一個字符型變量。該函數(shù)的格式說明如下:

intgetchar();C語言中的getchar()函數(shù)是包含在標(biāo)準(zhǔn)輸入輸出頭文件stdio.h中的,因此,若在C語言程序中使用getchar()函數(shù),需在程序中調(diào)用相應(yīng)的頭文件。例1.5應(yīng)用getchar()函數(shù)接收字符信息并輸出其信息/***Theprogramexampleofgetchar()function***/#include<stdio.h>main(){chara;printf("Pleaseinputacharacter:");a=getchar();printf("\n%c\n",a);}上機(jī)驗(yàn)證(二)gets()函數(shù)功能是從鍵盤上獲取一串字符,并賦給相應(yīng)的字符串變量。該函數(shù)的格式說明如下:

char*gets(s);其中,char*是字符型指針類型說明符,gets是函數(shù)名,()為語法括號。該函數(shù)有一個參數(shù)s,它是字符數(shù)組名或字符指針名,用來存放從鍵盤上讀取的字符串。從鍵盤上輸入的字符串以換行符(即回車)作為結(jié)束符。例1.6應(yīng)用gets()函數(shù)接收字符串?dāng)?shù)據(jù)并輸出其信息/***Theprogramexampleofgets()function***/#include<stdio.h>main(){charabc[20];printf("Pleaseinputacharacterstring:");gets(abc);printf("%s\n",abc);}上機(jī)驗(yàn)證(三)scanf()函數(shù)該函數(shù)為標(biāo)準(zhǔn)格式輸入函數(shù)。功能是從鍵盤上按指定格式讀取數(shù)據(jù),賦給指定的變量。該函數(shù)格式如下:

scanf(“<控制串>”,<參數(shù)表>);控制串中的格式符是由格式標(biāo)識符(%)和格式說明符組成,用來指定某種輸入格式。常用格式說明符有如下幾種:d——十進(jìn)制整型數(shù)o——八進(jìn)制整型數(shù)x——十六進(jìn)制整型數(shù)u——無符號十進(jìn)制整型數(shù)f——小數(shù)型單精度浮點(diǎn)數(shù)e——指數(shù)型單精度浮點(diǎn)數(shù)c——單個字符s——字符串例1.7應(yīng)用scanf()函數(shù)接收并處理數(shù)據(jù)。/***Programexampleofscanf()function***/#include<stdio.h>main(){inta,b,c,m;printf("inputa,b,c=?");scanf("%d,%d,%d",&a,&b,&c);m=a+b-c;printf("m=%d\n",m);}上機(jī)驗(yàn)證二、C語言常用輸出函數(shù)輸出函數(shù)又稱為寫函數(shù),其功能主要是將計算結(jié)果輸出到計算機(jī)的屏幕上。(一)putchar()函數(shù)該函數(shù)是一個輸出單字符函數(shù),功能是將指定的字符輸出顯示在計算機(jī)屏幕上。所輸出的字符可以是字符常量,也可以是字符變量,函數(shù)格式說明如下:

intputchar(c);例1.8應(yīng)用putchar()函數(shù)輸出字符信息/***Theprogramofputchar()function***/#include<stdio.h>main(){chara,b,c;a='B';b='O';c='Y';putchar(a);putchar(b);putchar(c);putchar("\n");putchar('m');}上機(jī)驗(yàn)證(二)puts()函數(shù)該函數(shù)是輸出字符串函數(shù)。其功能是將指定字符串信息輸出到屏幕上。該函數(shù)的格式說明如下:

intputs(s);其中,puts是函數(shù)名,括號()為函數(shù)的語法符號,括號中的s為參數(shù),該參數(shù)可能是數(shù)組名稱,也可能是字符指針名。例1.9應(yīng)用puts()函數(shù)輸出信息。/***Theexampleofputs()function***/#include<stdio.h>main(){charabc[20],*p;printf("Pleaseinputacharacterstring:");p=gets(abc);printf("\nTheoutputoftheinformationis:");puts(p);}上機(jī)驗(yàn)證(三)printf()函數(shù)該函數(shù)是標(biāo)準(zhǔn)格式輸出函數(shù),其功能是按照指定格式和變量順序輸出信息到屏幕上。函數(shù)的格式說明如下:printf("<控制串>",<參數(shù)表>);其中,printf是函數(shù)名稱,圓括號()為語法符號,該函數(shù)參數(shù)也被分為兩部分,一部分為控制串,用于描述輸出信息的格式,另一部分為參數(shù)表,用于說明輸出變量或表達(dá)式的輸出順序,若參數(shù)表中的項數(shù)多余一項,之間用逗號分隔。控制串中包含有格式符和一般字符。格式符用來指定輸出信息的格式,它由格式標(biāo)識符%和格式說明符所組成。如%d表示輸出信息為十進(jìn)制整型數(shù)據(jù)。格式說明符有如下幾種:d——十進(jìn)制整型數(shù)o——八進(jìn)制整型數(shù)x——十六進(jìn)制整型數(shù)u——無符號十進(jìn)制整型數(shù)c——字符型數(shù)s——字符串f——小數(shù)型單精度浮點(diǎn)數(shù)e——指數(shù)型單精度浮點(diǎn)數(shù)g——f和e中較短的一種常用的修飾符有如下幾種:〈數(shù)字〉·〈數(shù)字〉——小數(shù)點(diǎn)前的〈數(shù)字〉用來表示輸出數(shù)據(jù)項的最小寬度。l——用在格式符d,o和x前表示長整型數(shù),用在e,f,g前面表示雙精度浮點(diǎn)數(shù)。-——負(fù)號用來表示輸出數(shù)據(jù)在域?qū)捴凶髮R。當(dāng)不用負(fù)號時,則表示右對齊。0——用來表示在右對齊中替換輸出數(shù)據(jù)項左邊的空格符。<控制串〉中出現(xiàn)的一般字符為字符原樣照樣輸出,即將一般字符輸出顯示在屏幕上。在一般字符中,對可打印字符直接用字符符號來表示,對不可打印字符則用轉(zhuǎn)義序列表示。轉(zhuǎn)義序列是表示字符的一種方法,這種方法是使用字符的ASCII碼值來表示字符,其格式有如下兩種:\0ddd或\xhh其中,\0ddd格式是在\0后面用字符的八進(jìn)制的ASCII碼值表示,最多為3位。\xhh格式是在\x后面用字符的十六進(jìn)制的ASCII碼值表示,最多用2位。例如,字符Esc的轉(zhuǎn)義序列表示為\033或\x1b。表1-1轉(zhuǎn)義字符

字符形式含義\n換行,將當(dāng)前位置移到下一行開頭\t水平制表(跳到下一個tab位置)\b退格,將當(dāng)前位置移到前一列\(zhòng)r回車,將當(dāng)前位置移到本行開頭\f換頁,將當(dāng)前位置移到下頁開頭\\反斜杠字符“\”\'單引號字符\"雙引號字符\0ddd

1到3位8進(jìn)制所代表的字符\xhh1到2位16進(jìn)制所代表的字符例1.10常用讀寫函數(shù)應(yīng)用

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論