中央电大计算机专业高级程序设计C语言参数详解手册.docx
- 文档编号:2257873
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:48
- 大小:29.33KB
中央电大计算机专业高级程序设计C语言参数详解手册.docx
《中央电大计算机专业高级程序设计C语言参数详解手册.docx》由会员分享,可在线阅读,更多相关《中央电大计算机专业高级程序设计C语言参数详解手册.docx(48页珍藏版)》请在冰点文库上搜索。
中央电大计算机专业高级程序设计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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中央电大 计算机专业 高级 程序设计 语言 参数 详解 手册