Download presentation
Presentation is loading. Please wait.
1
Miscellanea Switch Bitwise operations ?,
2
break; continue; (example) (example) do { a = getc(stdin); if (a=='q') break; else if (a=='c') continue; n++; printf("a=%c, n=%d\n",a,n); } while (1); printf("a=%c, n=%d\n",a,n); 執行 1 a=1 n=1 1 a=1 n=2 1 a=1 n=3 c 1 a=1 n=4 q break: 跳到下一個 “}” 之後. continue: 跳到下一個 “}” 之前.
3
rand(); a % b; sleep(n); (example) (example) #include rand(); // return a random number between 0 and RAND_MAX a % b : 整數 a 除以整數 b 後的餘數 rand() % 4 // 產生 0, 1, 2 或 3 的整數 sleep(n); // 暫停 n 時間單位 用 devcpp 執行程式後會自動關閉 DOS 視窗。 可以加上 sleep(10000); 延遲關閉時間, 再以 Ctrl-c 結束。
4
Switch (example) (example) unsigned int nd; nd = rand() % 4; switch(nd) { case 0: x++; break; case 1: x--; break; case 2: y++; break; case 3: y--; break; default: printf(“error”); } char a; a = getc(stdin); switch(a) { case ‘q’: return(0); break; case ‘x’: deleteword(); break; case ‘w’: savefile(); break; case ‘n’: nextpage(); default: continue; }
5
Sizeof(..) return size of variable type int a, int_size, float_size, double_size; float b; double c; int_size = sizeof(a); // 2 bytes float_size = sizeof(b); // 4 bytes double_size = sizeof(c); // 8 bytes ※ 用 sizeof() 指令增加程式碼的在不同環境 和不同 compiler 間的適用性 (portibility) 。
6
Variable modifier void -- 不必回傳數值的函數形態 TYPE Modifier: const -- 不能被改變的參數 ( 不可以出現在等號左邊 ) register – 常用的變數, 放在讀取較快的地方 static – 函數執行結束後繼續保留的變數 extern – 由其它方式宣告的變數 volatile – 變數之值可能會被程式外的硬體所改變 ( 如監控系統時間 )
7
Bitwise operators (char or int) & and | or ^ xor ~ 1’s complement >> right shift << left shift unsigned char a=7, b=2; a & b = 0111 & 0010 = 0010 a | b = 0111 a ^ b = 0101 a >> 2; // a = 1 a << 2; // a = 28 ~a; //~a = 248
8
Comma, 和 ? (example) (example) float y = 5, x = 2, z; z = (x *= 5.0, y /= 2.0, x/y); printf("x=%f y=%f z=%f\n",x,y,z); x=10.000000 y=2.500000 z=4.000000 x = (x<0)? (-x) : x; // same as abs(x) x = (r>0)? r*r : exp(-r*r)-1;
9
Arguments of main() (example) (example) main(int argc, char* argv[]) { ….; ….; return(0);} argc: 指令行的參數數目, 大於 1 argv[]: 字串陣列. argv[0]: 為執行檔本身 argv[1]: 第一個參數 DOS> a.exe arg1 arg2 arg3 ※ 在 devcpp 要設定執行參數, 請打開 execute 下的 parameter.. 選項 ※ 改變執行參數與程式無關, 不必再重新 compile.
10
First midterm ( 第一次期中考 ) ?
11
typedef struct {double x, y, z; char a;} Arithmetic; Arithmetic fun1(FILE *fp){….;} 從 inf 讀入一個數學式的資料. double fun2(Arithmetic ss){…;} 計算數學式之值. 以 switch 語法, 用 struct Arithmatic 中的 char 來選擇計算公視式. void fun3(FILE*fp, Arithmetic ss) {…;} 列印數學式和其值, 到 outf 範例 輸入數學式資料 計算其值 輸出數學式, 和計算結果 feof(inf)? 以幅數 argv[] 開 inf 和 outf no Close files fun1 fun2 fun3 yes main(int argn, char *argv[]);
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.