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

上传人:b****2 文档编号:4257035 上传时间:2023-05-03 格式: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_第6页
第6页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册文档格式.docx_第7页
第7页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册文档格式.docx_第8页
第8页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册文档格式.docx_第9页
第9页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册文档格式.docx_第10页
第10页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册文档格式.docx_第11页
第11页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册文档格式.docx_第12页
第12页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册文档格式.docx_第13页
第13页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册文档格式.docx_第14页
第14页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册文档格式.docx_第15页
第15页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册文档格式.docx_第16页
第16页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册文档格式.docx_第17页
第17页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册文档格式.docx_第18页
第18页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册文档格式.docx_第19页
第19页 / 共48页
中央电大计算机专业高级程序设计C语言参数详解手册文档格式.docx_第20页
第20页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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*

此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。

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

必要的用語。

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

東西嗎」進行下一步。

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

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

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

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

可用茶杯取水。

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

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

變數宣告及變數名稱

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

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

記述方法

main(){

intcup;

←宣告變數cup

cup=7;

←將7置入變數cup

}

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

函數中可將必要的要素

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

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

Mini-C中函數最多可傳達

3個參數。

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

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

成功或失敗。

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

因此將錢投

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

該物放下。

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

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

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

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

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

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

關於標準函數的詳細說

明請呼叫標準函數REFERENCE。

記述的方法

沒有參數時

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

}←函數func()的結束

有參數時

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

cup=value+7;

範例程式

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(),稱之為「呼叫函

數」。

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

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

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

#defineVAL7←常數VAL的宣告

func(intvalue){

cup=value+VAL;

←增加常數VAL及變數之value

說明函數之地方為「cup=value+7;

」因將「7」宣告為常數,所以變成

「cup=value+VAL;

」。

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

以下說明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<

da和b、c和d兩者皆成立

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

b||c<

da和b、c和d兩者有一成立

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

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

程式控制文法和命令

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

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

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

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

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

滿足時

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

範例1

2|intb;

3|

4|a=buggage();

5|if(a==FAIL){

6|do{

7|b=seek(ERG);

8|}while(b==CONT);

9|get();

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

2|

3|a=move();

4|if(a==FAIL){

5|round(RIGHT);

6|}

7|}

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

不是常數

FAIL時,不會做任何動作。

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

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

範例3

3|a=SUCCESS;

4|while(a==SUCCESS){

5|a=move();

7|snooze();

8|}

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

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

變為1時即結束。

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

SUCCESS,將之初期化。

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

相反地,寫入0

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

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

3|a=1;

4|while

(1){

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

4|while(0){

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

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

則在最後判斷條件。

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

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

範例6

3|do{

4|a=move();

5|}while(a==SUCCESS);

6|snooze();

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

另亦和WHILE

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

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

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

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

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

FOR之後寫3個式子。

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

判斷,第3為演算式子。

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

範例7

3|for(a=1;

a<

10;

a++){

4|move();

5|}

6|

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

再進行第2的條件判斷。

若條件成立時即執行

FOR之後{}中的程式。

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

第2次以後先進行第3

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

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

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

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

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

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

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

跳離反覆命令的只有1。

範例8

3|for(a=0;

20;

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時才能跳離。

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

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

範例9

6|round(RIGHT);

8|b=check(FRONT);

9|if(b!

=ERG){

10|continue;

12|break;

13|}while

(1);

14|snooze();

15|}

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

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

)的條件判斷。

將反覆停止

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

跳離函數「RETURN」

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

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

範例10

4|a=seek(ERG);

5|}while(a==CONT);

6|return(a);

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

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

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

初學

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

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

未持有ERG

時,不易取得ERG。

讓機器人前進。

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

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

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

範例4

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

範例5

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

和範例3相同

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

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

不能前進時,讓其轉向

右方」的動作。

a:

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

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

即反覆a:

的動作。

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

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

即在該地不動。

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

程式後面的;

程式1行之後的;

時有時無;

密切注意載於前項的範例程式的話,或許有人已經察覺到{或}

的後面不加上;

變數的宣告或函數的呼叫之後加上;

,使用if或while{}的命令不加;

do-while之後的while部份加上;

可說是例外。

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

被關閉,不得不加上;

,最後do-while的;

或許不太容易理解,但只要知道有此東西即可

*2:

Mini-CPROGRAMMERSREFERENCE*

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

對初學C語言的人而言,

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

電腦識別的文字

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'

'

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

註解行

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

註解以'

//'

標示,該行'

的右側即為註解(C++型)。

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

Mini-C中support的keyword

因Mini-C不support一部分的命令、資料型;

因此,keyword的數目和標準C語言相較比

較少。

Mini-C中support的keyword如下:

breakcontinuedoelseforintreturnwhile

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

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

做解說。

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

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

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

Xintaaa,bbb;

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

//Mini-C中是錯誤的。

intaaa;

intbbb;

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

Xintaaa=0;

aaa=0;

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

的為-32768~32767。

Xreturn(40000);

因比32767大,所以不正確。

return(100);

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

reutrn(aaa+bbb*2);

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

其它support的keyword

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

break,continue,do,for,while

Mini-C中不support的keyword

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

autocharcaseconstdefaultdoubleenum

externfloatgotolongregister

shortsignedsizeofstaticstructswitch

typedefunionunsignedvoidvolatile

以下為詳細的說明

因資料型的限制而刪除

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

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

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

因scope的限制而刪除

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

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

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2