C 語 言 入 門 教 室
請在XP下, 以tc3.0練習編譯下列範例
example -01
//雙斜線後面表示為註解
#include <stdio.h> //包含 printf function 的標頭檔
void main() { //主程式開始
printf("Hello Robot!"); //印出字串
} //主程式結束
亂數的使用
example -02
//雙斜線後面表示為註解
#include <stdio.h> //包含 printf function 的標頭檔
#include <stdlib.h> //包含 srand, rand function 的標頭檔
#include <time.h> //包含 time function 的標頭檔
void main() { //主程式開始
int a; //宣告一個整數integer的變數variable
srand(time(NULL)); //產生每次變數均不同的效果;用 srand() 函數改變一開始的亂數值
a=(rand()%100)+1; //計算, 取 1-100 的亂數
printf("The Random Number is %d .\n", a); //印出隨機數的字串
} //主程式結束
for 迴圈
example -03
//雙斜線後面表示為註解
#include <stdio.h> //包含 printf function 的標頭檔
#include <stdlib.h> //包含 srand, rand function 的標頭檔
#include <time.h> //包含 time function 的標頭檔
void main() { //主程式開始
int a; //宣告一個整數integer的變數variable
int n;
srand(time(NULL)); //產生每次變數均不同的效果;用 srand() 函數改變一開始的亂數值
for (n=1; n <= 10; n++) { //for 迴圈loop , n=1開始, 當n<=10時, 執行 loop 內的指令, 執行完畢 n+1
a=(rand()%100)+1; //計算, 取 1-100 的亂數
printf("The %ith Random Number is %d .\n", n, a); //印出第n個隨機數的字串
} // for 迴圈loop 程式碼區塊結束
} //主程式結束
example -04
//雙斜線後面表示為註解
#include <stdio.h> //包含 printf function 的標頭檔
#include <stdlib.h> //包含 srand, rand function 的標頭檔
#include <time.h> //包含 time function 的標頭檔
void main() { //主程式開始
int a; //宣告一個整數integer的變數variable
int n;
srand(time(NULL)); //產生每次變數均不同的效果;用 srand() 函數改變一開始的亂數值
//模擬光感測器讀值10次
for (n=1; n <= 10; n++) { //for 迴圈loop , n=1開始, 當n<=10時, 執行 loop 內的指令, 執行完畢 n+1
a=(rand()%100)+1; //計算, 取 1-100 的亂數
printf("The %ith Random Number is %d .\n", n, a); //印出第n個隨機數的字串
//////////////////////////////////////////////////////////////////////////////////////////////////
//模擬跟線自走車的演算法
//////////////////////////////////////////////////////////////////////////////////////////////////
if (a < 45) { // if 條件判斷
printf("Light Sensor: %i , Detect: BLACK, Left Power: 80, Right Power: 50 \n", a);
// printf("光感值: %i , 偵測到黑色區域, 左輪Power輸出: 80, 右輪Power輸出: 50 \n", a);
} // if 條件判斷結束
if (a > 45) { // if 條件判斷
printf("Light Sensor: %i , Detect: WHITE, Left Power: 50, Right Power: 80 \n", a);
// printf("光感值: %i , 偵測到白色區域, 左輪Power輸出: 50, 右輪Power輸出: 80 \n", a);
} // if 條件判斷結束
if (a == 45) { // if 條件判斷
printf("Light Sensor: %i , Detect: EDGE, Left Power: 80, Right Power: 80 \n", a);
// printf("光感值: %i , 偵測到黑線邊緣, 左輪Power輸出: 80, 右輪Power輸出: 80 \n", a);
} // if 條件判斷結束
//////////////////////////////////////////////////////////////////////////////////////////////////
} // for 迴圈loop 程式碼區塊結束
} //主程式結束
example -05
//雙斜線後面表示為註解
#include <stdio.h> //包含 printf function 的標頭檔
#include <stdlib.h> //包含 srand, rand function 的標頭檔
#include <time.h> //包含 time function 的標頭檔
void main() { //主程式開始
int a; //宣告一個整數integer的變數variable
int b, loop;
int n;
srand(time(NULL)); //產生每次變數均不同的效果;用 srand() 函數改變一開始的亂數值
//模擬光感測器讀值30次
loop = 0; //紀錄自走車完成迴圈數--變數歸零
for (n=1; n <= 30; n++) { //for 迴圈loop , n=1開始, 當n<=10時, 執行 loop 內的指令, 執行完畢 n+1
a=(rand()%100)+1; //計算, 取 1-100 的亂數
printf("The %ith Random Number is %d .\n", n, a); //印出第n個隨機數的字串
//////////////////////////////////////////////////////////////////////////////////////////////////
//模擬跟線自走車的演算法
//////////////////////////////////////////////////////////////////////////////////////////////////
if(n%5 == 0){ //n除以5的餘數等於0, n 為 5 的倍數
b=30; //表示第二顆感測器看到黑色起跑線
}
else{
b=60; //表示第二顆感測器看到白色區域 (奔跑中)
}
if (b<45){ //表示第二顆感測器看到黑色起跑線
loop = loop + 1; //紀錄自走車完成迴圈數--變數+1更新
printf("Run %ith Loop..\n", loop);
}
if (loop >=5 ) { //表示自走車已完成5圈
printf("Five-loop Task Completed!\n");
exit(1); //退出程式
}
if (a < 45) { // if 條件判斷
printf("Light Sensor: %i , Detect: BLACK, Left Power: 80, Right Power: 50 \n", a);
// printf("光感值: %i , 偵測到黑色區域, 左輪Power輸出: 80, 右輪Power輸出: 50 \n", a);
} // if 條件判斷結束
if (a > 45) { // if 條件判斷
printf("Light Sensor: %i , Detect: WHITE, Left Power: 50, Right Power: 80 \n", a);
// printf("光感值: %i , 偵測到白色區域, 左輪Power輸出: 50, 右輪Power輸出: 80 \n", a);
} // if 條件判斷結束
if (a == 45) { // if 條件判斷
printf("Light Sensor: %i , Detect: EDGE, Left Power: 80, Right Power: 80 \n", a);
// printf("光感值: %i , 偵測到黑線邊緣, 左輪Power輸出: 80, 右輪Power輸出: 80 \n", a);
} // if 條件判斷結束
//////////////////////////////////////////////////////////////////////////////////////////////////
} // for 迴圈loop 程式碼區塊結束
} //主程式結束
example -05 for RoboLab
example -05 for NXT-G
沒有留言:
張貼留言