Download presentation
Presentation is loading. Please wait.
1
Lab02 授課:ANT 日期:2011/3/14
2
outline 期末分組 條件判斷 ----if, else if , else ----switch 迴圈 ----for
-----while, do while 亂數介紹 ----rand()
3
條件判斷 授課:ANT 日期:2011/3/14
4
if, else if , else 對於多重的、連續的條件判斷,我們常使用if , else if陳述。其基本語法為: if(運算式1)
運算式1值為true的執行陳述句; else if(運算式2) 運算式2值為true的執行陳述句; else if(運算式3) 運算式3值為true時的執行陳述句; else 前述運算式均不為true時的執行陳述句;
5
判斷條件1 判斷條件2 false 敘述主題1 敘述主題2 敘述主題3 其他敘述 true
6
關係運算子 int a=5,b; b = (a==5); //b會等於1 If常犯錯誤 (if.c)
7
邏輯運算子
8
switch 用來比較字元或者是數值,其基本語法如下。
switch (變數名稱或運算式) { case 符合數字或字元: 陳述句一; break; case 符合數字或字元: 陳述句二; break; default: 陳述三; } 若是判斷字元須加上’ ’
9
運算式 選擇值1 選擇值2 選擇值3 default 敘述主體1 敘述主體2 敘述主體3 break; 敘述主體 其他敘述
10
Loop(迴圈) 授課:ANT 日期:2011/3/14
11
for 一般都是用來跑已知工作次數的流程 基本語法如下: for (初始變數; 判斷式; 遞增式) { 陳述句一; 陳述句二; }
12
設定迴圈初值 判斷條件 迴圈主體 設定增減量 其他敘述 true false
13
while 當面到對一個未知停止時間的流程運作時,就可以使用到while來作此事情 基本語法如下
PS:強制離開迴圈可以使用”break”
14
設定迴圈初值 false 判斷條件 true 迴圈主體 其他敘述 設定增減量
While與for的流程圖 都是一樣的 他們的差別就是差在 一個有須知道已知的執行次數,所以一般在選擇使用for或者while最大的考量就是在於知不知道執行的次數
15
do-while 跟while是相同的功用的,他們的差別只有在while是先判斷條件式在作主體,do-while則是先做主體在去看判斷式
基本語法如下: do { 陳述句一; 陳述句二; } while(條件式); While與do-while的差別 先做再說!! 先斬後奏
16
設定迴圈初值 迴圈主體 設定增減量 其他敘述 判斷條件 true false
17
亂數的使用介紹(rand) 在某些情況下(特別是設計遊戲時),我們會需要使用到亂數,在 C 語言中提供了一個 rand() 函數可以讓我們取得一個亂數,其用法如下。 rand()會回傳出一個0~32767之間的數 若我們把rand() % 10 ->會取出0~9之間的整數 % (mod)我們稱為取餘數的動作 <問題> rand()每次出來的亂數都一樣 程式重複執行數次之後,會發現所得到的亂數是一樣的,這是因為它由上一個數值產生出下一個亂數,而一開始系統都是 0,所以每次產生出來的亂數才會一樣。 srand()一般都用目前時間來當種子 -> srand( time(NULL) ) 必須要先include <time.h> time(NULL)會輸出從格林威治時間 1970年1月1號 0點0分0秒開始到現在的秒數
18
若光只有rand()不管你的程式執行多少次所取出來的值都會一樣 <因為起始點一樣>
所以可以多加上srand()來改變一開始的亂數值 <問題> 如果srand()裡面是常數,每次產生出來的亂數還是一樣,因為起始點還是定值。
19
srand() 括弧裡面要放一個”變數”,這樣每次執行,才會得到不同的數字。
永遠的變數 時間!!! time(NULL)會輸出從格林威治時間 1970年1月1號 0點0分0秒開始到現在的秒數。 Time()被定義在<time.h>,所以要include <time.h> srand(time(NULL)),會一直改變rand()的起始點。
20
範例 #include<stdio.h> #include<time.h>
#include<stdlib.h> mian() { int var; srand(time(NULL)); var = rand()%1000 ; pirntf(“here is the random number = %d”, var); } 要使用 srand()與rand() 函數,必須 include 它的標頭檔 stdlib.h 因為在城市中使用到系統時間作為取亂數的種子,,因此必須使用到time.h 參考網址 -
21
Lab2 利用亂數取值,取出一個亂數,此亂數必須介於50~100間,接著判斷是否大於等於小於75,並印出結果 而此程是必須能重複執行。
提示 – Do while switch For Rand() 、 srand()
23
HW2 內容: 寫一個小樂透的小遊戲 規則: 一開始選擇4個號碼,彼此不重複,並印出於螢幕上 ,接著樂透開獎,由亂數取碼4個數字不重複並作比 較求得相同數字的個數。(程式內必須對功能寫上註 解) 前置動作 1. 必須給訂一個初始範圍1~47,數字的範圍。 2. 中獎號碼必須要是用亂數取得。 過程 1.先由使用者輸入4個數字,可分開或者同時輸入 2.並判斷是否有重覆數字輸入的現象,如有則重新輸入 3.同時在每次輸入時印出過去所有輸入成功的號碼
24
HW2 過程(續) 3.取4個亂數作為中獎號碼,並判斷是有有重複數字的現象 4.最後作對獎的動作,求出有幾個數字相同,並印出其相同的個數
範例
25
偵錯功能
Similar presentations