中央电大计算机专业高级程序设计C语言参数详解手册.docx

上传人:b****5 文档编号:12381639 上传时间:2023-04-18 格式:DOCX 页数:48 大小:29.33KB
下载 相关 举报
中央电大计算机专业高级程序设计C语言参数详解手册.docx_第1页
第1页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册.docx_第2页
第2页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册.docx_第3页
第3页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册.docx_第4页
第4页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

中央电大计算机专业高级程序设计C语言参数详解手册.docx

《中央电大计算机专业高级程序设计C语言参数详解手册.docx》由会员分享,可在线阅读,更多相关《中央电大计算机专业高级程序设计C语言参数详解手册.docx(48页珍藏版)》请在冰豆网上搜索。

中央电大计算机专业高级程序设计C语言参数详解手册.docx

中央电大计算机专业高级程序设计C语言参数详解手册

********************************************************************

**

**

**

*Mini-CLanguagereference*

**

**

**

********************************************************************

 

index

1:

Mini-c初學者reference

1.1:

給初學寫程式的人

1.2:

用語說明

1.2.1:

所謂的變數

1.2.2:

所謂的函數

1.2.3:

所謂的常數

1.2.4:

所謂的運算子

1.3:

程式的控制文法及命令

1.3.1:

讓程式整體分岐「if-else文」

1.3.2:

反覆執行相同的程式1「while文」

1.3.3:

反覆執行相同的程式2「do-while文」

1.3.4:

反覆執行相同的程式3「for文」

1.3.5:

從反覆的命令中跳離1「break」

1.3.6:

從反覆的命令中跳離2「continue」

1.3.7:

跳離函數「return」

1.3.8:

範例程式說明

1.4:

程式後面;時有時無

2:

Mini-Cprogrammersreference

2.1:

程式的構成要素

2.1.1:

compiler識別的文字

2.1.2:

命令行

2.1.3:

Mini-C中support的keyword

2.1.3.1:

int

2.1.3.2:

return

2.1.3.3:

其他support的keyword

2.1.4:

Mini-C不support的keyword

2.1.4.1:

因資料型態的限制而刪除

2.1.4.2:

因scope等的限制而刪除

2.1.4.3:

因structure的限制而刪除

2.1.4.4:

因語言體係的簡略化而刪除

2.1.5:

參數

2.1.6:

運算子

2.1.6.1:

Mini-C中support的運算子

2.1.6.2:

不support的運算子

2.1.7:

常數

2.8:

其他限制事項

2.9:

用語解說

2.9.1:

keyword

2.9.2:

參數

2.9.3:

compiler

2.9.4:

資料型

2.9.5:

參數

3:

Mini-C常數reference

4:

Mini-C標準函數reference

5:

HR2標準搭載程式reference

 

********************************************************************

**

*1:

Mini-C初學者reference*

**

********************************************************************

1.1:

給初學寫程式的人

此reference為介紹關於所謂的「Mini-C」程式語言。

Mini-C為根據C語言所開

發出來「HR2」的原始C語言。

將市面上C語言具有的功能,刪除一部分。

「Mini-

C」只能在「HR2」中控制機器人。

理解「Mini-C」之後,只要稍微再進修,或許

能成為「會寫C語言的程式設計師」?

使用Mini-C,了解程式的有趣之處實為一

大樂事。

 

程式及程式語言

程式為讓電腦依照所想動作的命令集合。

程式語言為紀錄程式的語言。

就如同英國說英語、法國說法語,我們所處的日本

說日語般,每個國家都有自己的語言,程式語言即為在「電腦圖」使用的語言。

國中初學英語時,雖完全不懂,但畢業後至少應該了解一些。

提起程式語言,不

要持有「我一定不行」的想法。

英語的規則(文法、句法結構等)雖很多,但如果

決定學「C語言」,其規則比英語少很多。

C語言的規則綜合的話,大約占A4紙的

一張。

 

程式是將對電腦所下的命令記錄下來。

寫程式即為「對電腦下命令」。

所謂的

「寫程式」作業稱為「programing」,寫程式的人稱為「程式設計師」。

寫程式

時使用特殊的語言。

此語言稱為「程式語言」。

程式語言有各個種類。

「COBOL」

「FORTRAN」「C語言」等。

程式語言是以人們易於了解的方式寫成。

如果是電腦無

辨識的就必須翻譯成電腦可辨識的東西。

進行翻譯作業的稱之為compiler。

 

1.2:

用語說明

 

本章關於做程式說明,以受予必要的予備知識為目的,說明程式的編寫方法及

必要的用語。

對本章的說明或許會有疑問,對於此疑問請先將之視為「是那種

東西嗎」進行下一步。

進入下一步應該可以解決疑問點。

 

1.2.1:

所謂的變數

請將變數視為代表輸入的某一數值,舉例說明的話,如同水會自水龍頭中流出一樣

,水如果流入排水溝即不能收回。

但是,如果有茶杯的話,會如何呢?

可用茶杯取水。

此時,「水」為數值、「茶杯」為變數,亦即可保存輸入值的稱為「變數」,此外,

變數(茶杯)使用之前,必須先準備好,準備變數(茶杯)稱之為「宣告變數」。

變數宣告及變數名稱

宣告變數時,在變數名稱之前加上int,變數名稱之後留空白,記述變數名稱,最後加上;

變數名稱最多可辨識10個文字,即使大小寫的錯誤也可以辨識。

記述方法

main(){

intcup;←宣告變數cup

cup=7;←將7置入變數cup

}

 

1.2.2:

所謂的函數

所謂的函數即「做某些一定的處理,將其處理結果傳回的程式」。

函數中可將必要的要素

傳達至「某些一定的處理」。

這些必要的要素稱之為「參數」。

Mini-C中函數最多可傳達

3個參數。

「傳回之處理結果」稱之為「傳回值」。

一般「傳回值」會傳回「一定的處理」

成功或失敗。

以自動販賣機為例說明,沒有將錢投入,自動販賣機不會運作。

因此將錢投

入後,和所投金額相同的鈕會亮燈,然後在欲購買東西的鈕上按一下,自動販賣機即會將

該物放下。

將這一連串的動作譬喻成函數,自動販賣機即為「函數」,錢即為「叫出函數」

,按下按鈕即為「參數」,放出東西即為「傳回值」,「某些一定的處理」即為「依據按

的鈕不同,變化放出得東西」。

函數名稱可辨識10個文字,即使大小寫的錯誤也可以辨識。

 

構成程式的要素一般為「函數」。

Mini-C準備了讓機器人做基本動作的函數,此函數稱為標準函數。

關於標準函數的詳細說

明請呼叫標準函數REFERENCE。

記述的方法

沒有參數時

func(){←函數func()的開始

intcup;

cup=7;

}←函數func()的結束

有參數時

func(intvalue){←函數func()的開始,參數VALUE的宣告

intcup;

cup=value+7;

}←函數func()的結束

範例程式

0|main(){

1|inta;

2|a=func(10);

3|print(a);

4|}

5|

6|func(intvalue){

7|intcup;

8|cup=value+7;

9|return(cup);

10|}

執行此範例程式,畫面右下方會出現17。

第2行的參數10改變後,會顯現出變更後的值和

7加起來之值。

第6行的函數func()用於第2行,使用第2行的函數func(),稱之為「呼叫函

數」。

 

1.2.3:

所謂的常數

所謂的常數即為可將一定的數值輸入,常數和變數不同,一旦宣告即不能變更。

Mini-C中標準函數的傳回值,完全回歸常數。

宣告常數請在函數以外的行進行。

記述的方法

 

#defineVAL7←常數VAL的宣告

func(intvalue){

intcup;

cup=value+VAL;←增加常數VAL及變數之value

}

說明函數之地方為「cup=value+7;」因將「7」宣告為常數,所以變成

「cup=value+VAL;」。

 

1.2.4:

所謂的運算子

運算子用於數字的計算、數值的比較。

以下說明Mini-C中使用的基本運算子。

因尚有其它的運算子,詳細的內容請參照「Mini-CREFERENCE」。

種類特記事項及例子

+加算運算子10+7=17

-減算運算子10-7=3

*乘算運算子10*7=70

/除算運算子求出除算的答案10/7=121/7=3

%餘數運算子求出除算的餘數10%7=14%7=0

=代入運算子代入一定從右至左進行

<不等式左邊運算子a<0左邊比右邊小

<=等式左邊不等運算子a<=0左邊比右邊小或相等

>不等式右邊運算子a>0右邊比左邊小

>=等式右邊不等運算子a>=0右邊比左邊小或相等

==等式運算子a==1左邊和右邊相等

!

=不等式運算子a!

=0左邊和右邊不相等

&&關係理論積運算子a>b&&c

||關係理論和運算子a>b||c

++增加運算子1加算,變數a為0時,a++的答案變成1。

--減少運算子1減算,變數a為1時,a--的答案變成0。

 

1.3:

程式控制文法和命令

 

主要是為了比較演算的結果,以下為命令的說明及使用例。

最後則為範例程式的執行結果。

 

1.3.1:

讓整個程式分道執行「if-else」文

此文法為將程式控制的內容分成2個的命令。

判定是否滿足if後面()中所寫的條件。

滿足時

,執行()之後用{}總括的程式。

範例1

0|main(){

1|inta;

2|intb;

3|

4|a=buggage();

5|if(a==FAIL){

6|do{

7|b=seek(ERG);

8|}while(b==CONT);

9|get();

10|}

11|else{

12|do{

13|b=seek(WALL);

14|}while(b==CONT);

15|put();

16|}

17|}

此程式第4行的函數buggage()的傳回值,歸在所謂的a變數中。

因此,第5行

變數a若為常數FAIL的話,會執行自第7行至第10行的函數get()。

此外

「ifelse文」為即使else{}的部份不寫,也不會產生格式錯誤。

範例2

0|main(){

1|inta;

2|

3|a=move();

4|if(a==FAIL){

5|round(RIGHT);

6|}

7|}

此程式第4行的函數move()的傳回值,如果常數FAIL的話,會執行round()。

不是常數

FAIL時,不會做任何動作。

1.3.2:

反覆執行相同的程式1「while文」

此文法為如果滿足while後面()中所寫的條件,即執行其後{開始}為止中間的程式。

範例3

0|main(){

1|inta;

2|

3|a=SUCCESS;

4|while(a==SUCCESS){

5|a=move();

6|}

7|snooze();

8|}

此程式當變數a為常數SUCCESS時,連續執行函數move()。

跳離重覆,函數move()的傳回值

變為1時即結束。

另,while文中將()中的評價進行最初化,函數a的值在第3行定義為常數

SUCCESS,將之初期化。

若在while之後的()中寫入1,將不斷地反覆執行;相反地,寫入0

反覆的命令一次也不會執行,沒有任何意義。

範例4不斷地執行反覆命令

0|main(){

1|inta;

2|

3|a=1;

4|while

(1){

5|a=move();

6|}

7|}

範例5反覆的命令一次也不會執行

0|main(){

1|inta;

2|

3|a=1;

4|while(0){

5|a=move();

6|}

7|}

 

1.3.3:

反覆執行相同的程式2「do-while文」

此文法為和while如同兄弟般的東西,while文在最初會進行條件的判斷,但do-while

則在最後判斷條件。

亦即無條件執行一次do之後所寫{開始while之前}程式為止。

試著將範例3用do-while改寫看看。

範例6

0|main(){

1|inta;

2|

3|do{

4|a=move();

5|}while(a==SUCCESS);

6|snooze();

7|}

此程式和範例3相同,變數a連續執行常數SUCCESS之反覆函數MOVE()。

另亦和WHILE

文一樣,於}WHILE之後的()中寫入1,將不斷的反覆執行,相反地,寫入0,只執行一

次反覆命令,即結束反覆命令。

 

1.3.4:

反覆執行相同的程式3「FOR文」

以上說明WHILE文和DO-WHILE文()中指定的條件不成立時,即結束反覆,此文法執行

反覆命令的次數可事先指定。

FOR之後寫3個式子。

第1為給予初值的式子,第2為條件

判斷,第3為演算式子。

FOR文為第2的條件判斷成立時,執行{}中的程式。

範例7

0|main(){

1|inta;

2|

3|for(a=1;a<10;a++){

4|move();

5|}

6|

7|}

此程式為先將變數a給予1的初值。

再進行第2的條件判斷。

若條件成立時即執行

FOR之後{}中的程式。

在第2次以後的反覆中不再給予初值。

第2次以後先進行第3

的演算式子,再進行第2的條件判斷。

如果成立,即執行反覆的程式。

,執行式此程式,變數a即從1開始,執行比10小{}中

的程式,因此函數MOVE()合計為執行9次。

 

1.3.5:

自反覆的命令中跳離1「BREAK」

此為命令反覆的命令結束之指令。

即使反覆命令的條件成立,反覆中也可從中跳離。

跳離反覆命令的只有1。

範例8

0|main(){

1|inta;

2|intb;

3|for(a=0;a<20;a++){

4|do{

5|b=move();

6|if(b==FAIL){

7|round(RIGHT);

8|break;

9|}

10|}while

(1);

11|}

12|

13|}

此程式為當函數MOVE()的傳回值為常數FAIL時,執行ROUND()、跳離DO-WHILE文

的反覆命令。

但是FOR文的反覆,必須當變數A的值變成20時才能跳離。

 

1.3.6:

自反覆的命令中跳離2「CONTINUE」

此命令為中斷反覆命令{}中的程式,直接跳至反覆命令的}之處。

範例9

0|main(){

1|inta;

2|intb;

3|do{

4|a=move();

5|if(a==FAIL){

6|round(RIGHT);

7|}

8|b=check(FRONT);

9|if(b!

=ERG){

10|continue;

11|}

12|break;

13|}while

(1);

14|snooze();

15|}

此程式為函數FIND()的傳回值為常數FAIL時,因第10行的CONTINUE命令變有效

,不執行第12行的BREAK命令,而進行}WHILE嵾?

)的條件判斷。

將反覆停止

,函數CHECK()傳回值必須為常數ERG的值。

 

1.3.7:

跳離函數「RETURN」

此命令若在函數內,在任何地方函數自動結束之前,可強制將函數結束的命令

RETURN只有值為1時,才可將函數結束。

範例10

0|main(){

1|inta;

2|

3|do{

4|a=seek(ERG);

5|}while(a==CONT);

6|return(a);

7|}

此程式為當函數SEEK()的傳回值介於常數CONT時,執行DO-WHILE的反覆命令。

-1以外的傳回值,用RETURN命令將函數SEEK()的傳回值反還。

 

1.3.8:

範例程式說明

以上說明所寫的範圍程式,若在HR2EDITOR中編寫,將如以下說明動作。

初學

寫程式的人試著寫寫看如何。

範例1

機器人持有ERG時,找到作成牆壁的命令,移動至該場所,放置ERG。

未持有ERG

時,不易取得ERG。

範例2

讓機器人前進。

因障礙物等,機器人前進失敗時,讓機器人轉換至右方。

範例3

反覆所謂「讓機器人前進1次」的動作,以障礙物讓機器人變得不能前進為止。

變得不移動時,機器人即睡覺。

範例4

讓所謂「讓機器人前進1次」的動作,無論怎麼樣皆會反覆。

範例5

在該地不動,不執行反覆命令。

範例6

和範例3相同

範例7

將所謂「讓機器人前進1次」的動作反覆9次。

範例8

反覆20次「讓機器人在因障礙物而不能前進之前,使其前進。

不能前進時,讓其轉向

右方」的動作。

範例9

a:

讓機器人前進1次,前進失敗即向右方轉。

機器人不能發現眼前喜歡顏色的ERG時,

即反覆a:

的動作。

若能發現即跳離反覆命令,睡覺。

範例10

機器人在抵達有ERG地點之前,持續呼叫函數seek(),未能發現erg或沒有能抵達的道路,

即在該地不動。

以return回到變數a的值(函數seek()的傳回值)。

 

1.4:

程式後面的;時有時無

程式1行之後的;時有時無;密切注意載於前項的範例程式的話,或許有人已經察覺到{或}

的後面不加上;。

變數的宣告或函數的呼叫之後加上;,使用if或while{}的命令不加;

do-while之後的while部份加上;可說是例外。

此乃因為do-while的while部份完全在}

被關閉,不得不加上;,最後do-while的;或許不太容易理解,但只要知道有此東西即可

 

********************************************************************

**

*2:

Mini-CPROGRAMMERSREFERENCE*

**

********************************************************************

此REFERENCE以C語言和M的不同為中心,解說Mini-C的功能。

對初學C語言的人而言,

有一些難的用語,請參考用語解說。

2.1:

程式的構成要素

2.1.1:

電腦識別的文字

compiler及editor識別的文字,雖以ASCII碼為準據,但也有不少沒有對應的東西。

對以

文字標示或escape「\」沒有對應。

只能使用以下的文字

0x00NULL0x2d'-'

0x09TAB0x2f'/'

0x0aLineFeed0x30-0x39'0'-'9'

0x0dCarrigeReturn0x3a':

'

0x1aEOF0x3b';'

0x20''0x3c'<'

0x21'!

'0x3d'='

0x23'#'0x3e'>'

0x25'%'0x41-0x5a'A'-'Z'

0x26'&'0x5f'_'

0x28'('0x61-0x7a'a'-'z'

0x29')'0x7b'{'

0x2a'*'0x7c'|'

0x2b'+'0x7d'}'

0x2c','

上述以外的文字雖為錯誤的文字,但也有例外,在命令行內無論寫什麼皆可識別。

 

2.1.2:

註解行

對C語言中所用的/**/註解,Mini-C沒有對應。

註解以'//'標示,該行'//'的右側即為註解(C++型)。

註解最多為48文字,因註解行被視為一空白文字,其中無論為何種文字列,電腦皆忽視。

 

2.1.3:

Mini-C中support的keyword

因Mini-C不support一部分的命令、資料型;因此,keyword的數目和標準C語言相較比

較少。

Mini-C中support的keyword如下:

breakcontinuedoelseforintreturnwhile

但是,int被視為定義的變數使用,不具有指定型態的意思。

以其和C語言之不同為中心

做解說。

 

2.1.3.1:

int

Mini-C中,變數的資料型態加上符號只有16bit。

因此,能表達的數自為-32768~32767。

Mini-C中,一個INT只能定義一個變數。

Xintaaa,bbb;//在C語言中雖會被識別,但在

//Mini-C中是錯誤的。

intaaa;

intbbb;

此外,也不可在定義變數時給予初值,初值設定為宣告文,請用別的命令執行。

Xintaaa=0;//在C語言中雖會被識別,但在

//Mini-C中是錯誤的。

intaaa;

aaa=0;

 

2.1.3.2:

return

用於指定函數的傳回值,在Mini-C中,因函數皆會變成int的型態,可當傳回值使用

的為-32768~32767。

Xreturn(40000);因比32767大,所以不正確。

return(100);

return之指定,也會使用計算式。

reutrn(aaa+bbb*2);

沒寫return時,傳回值為不定值。

2.1.3.3:

其它support的keyword

以下的keyword之使用方法完全和C語言一樣。

break,continue,do,for,while

 

2.1.4:

Mini-C中不support的keyword

以下所列的keyword在Mini-C中不support

autocharcaseconstdefaultdoubleenum

externfloatgotolongregister

shortsignedsizeofstaticstructswitch

typedefunionunsignedvoidvolatile

以下為詳細的說明

2.1.4.1:

因資料型的限制而刪除

變數加上符號只有16bit,因此,無以下的keyword。

double,long,float,short,unsigned,signed,void

若使用上面的keyword即會產生錯誤。

2.1.4.2:

因scope的限制而刪除

變數只在檔案中存在scope的static型或函數內具有scope的lo

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

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1