4-1 變數與條件判斷①

30  Download (0)

Full text

(1)

選擇結構

—歡樂聖誕

4

本章概念

4-1 變數與條件判斷①

—聖誕禮物 P.94

設定提問、認識變數、

設定變數、計算平均、

條件判斷(如果…那麼…)

4-2 條件判斷②

—聖誕大餐 P.107

設定提問、計算金額、

條件判斷(如果…那麼…否則…)

(2)

享用聖誕大餐,開心的慶祝這特別的一天。

(3)

變數與條件判斷①

—聖誕禮物

4-1

期中考終於結束了,如果小潔的國文、英語、數 學這 3科成績平均達85分以上,就可以得到聖誕禮物。

請播放範例影片聖誕禮物 .mp4 ,觀察程式的執 行情形,一起用 Scratch 來完成程式吧!

【程式摘要】

1. 爸爸依序詢問國文、英語、數學 3 科成績,並等待 使用者輸入。

2. 每輸入一科成績後,爸爸就說出該科目與分數,例如:國文分數 88。

3. 計算 3 科的平均分數,並判斷是否達 85 分以上:

(1) 如果達 85 分以上,就說「平均分數   ,恭喜獲得聖誕禮物!」

(2) 如果不到 85 分,就說「平均分數   ,下次加油!」

搭配【逐步解析】說明

題目解析流程

任務說明

檔案

4-1

下載方式請見 P.3

結束 建立變數 國文 、 英語 、

數學 、 平均

設定提問:

國文、英語、數學分數

計算:平均=(國文+英語+數學)/3

設定變數 國文 、 英語 、 數學 、 平均 為0

將答案存入變數 國文 、 英語 、 數學

2

3

設定變數

輸入各科成績

計算平均 開始

1

不成立 達到85 分 不成立 未達到85 分

成立 成立

下次加油 得到禮物

(4)

在這一節中,我們將用 偵測類 積木來輸入資料,

再 以 變數類 與 運算類 積 木 設 定 運 算 式, 最 後 利 用 控制類 的選擇結構來判斷結果(表 1-4-1)。

學習目標 1. 設定變數。

2. 設定詢問。

3. 條件判斷。

1-4-1 本程式所需積木

積木類型 外觀 功能

事件類 當綠旗被點擊後,開始執行下方的指令積木。

偵測類

*

以對話框顯示設定的問題,並等待使用者輸入答案。

*

存放使用者所輸入的答案。

變數類

*

自行定義一個新的變數。

*

將特定的值指定給變數(以國文為例)。

運算類

*

將兩數相加。

*

將兩數相除。

*

判斷左數是否小於右數。

*

判斷左數是否等於右數。

*

判斷左數是否大於右數。

*

判斷兩個條件中,是否至少有一個成立。

*

2 個字串(或變數)合併成為 1 個字串。

。結果:聖誕禮物。

控制類

*

條件

程式區塊1

程式區塊2

依條件進行判斷:

(1) 成立:執行程式區塊 1,再執行程式區塊 2。

(2) 不成立:略過程式區塊 1,直接執行程式區塊 2。

以對話框顯示指定文字,並在指定的秒數後消失,

(* 代表首次使用的積木)

選 擇 結 構 4 — 歡 樂 聖 誕

4-1

4-2

(5)

假設輸入國文分數80、數學分數 70:

(1) 手動計算,結果為  

 。

(2) 程式執行,結果為  

 。

變數

• 什麼是變數

程式語言中有一種「用來存放資 料的容器」,稱為「變數」,裡 面可以是空的,也可以存放數字 或文字資料。

• 變數的特性

一個變數只能存放一筆資料,當 放入新的資料時,舊的資料就會 被覆蓋並取代,只留下最新放入 的資料。

變數

1

放入

3

變數

3

變數

5

放入

5

變數 變數

99

變數

A

  在檔案 4-1-1.sb3 中,先以輸入國文與數學兩科成績為例。爸爸具有下圖的 程式,要計算「國文分數 + 數學分數」。請按綠旗執行程式,假設依序輸入 80、70,執行結果正確嗎?

設定提問、認識變數 使用檔案

4-1-1.sb3

逐步解析 1

01 02 03 04 05 06

詢問:國文分數幾分?(然後等待使用者輸入分數)

說出:國文分數   (2 秒)

詢問:數學分數幾分?(然後等待使用者輸入分數)

說出:數學分數   (2 秒)

說出:總分   

(6)

變數的使用

【逐步解析 1】中用到的 就是一個變數,當我們依序放入國文分數和數學分 數之後,只能保留後面放進來的數學分數,造成計算錯誤。為了避免這個問題,我們可以依 程式需求新增多個變數,並為每個變數命名,用來存放不同的資料。

• 新增變數

(以 國文 為例)

點擊 變數類 。

點擊 建立一個變數 。

輸入變數名稱: 國文 。

點擊 確定 。

控制變數的相關積木。

• 顯示/隱藏變數

我們可以控制舞臺區是否要出現變數的資訊。

右圖中有 國文 、 數學2 個變數:

國文 被勾選。

 → 舞臺上會顯示變數 國文 的值。

數學 未勾選。

 →舞臺上未顯示變數 數學 。

• 把資料放進變數中

詢問國文分數,並將答案放入變數 國文 中的方法:

國文

詢問的 答案

選 擇 結 構 4 — 歡 樂 聖 誕

4-1

4-2

(7)

在【逐步解析 1】中,共需要輸入 2 個答案,為了避免「後面 輸入的答案(數學分數)」取代「前面的答案(國文分數)」,我 們要利用 2 個不同的變數來區別兩者,並以變數 國文 和變數 數學 分別存放國文和數學分數。接下來,我們將進一步練習變數的應用,

處理國文、英語、數學三科的分數。

接續【逐步解析 1】,修改程式:

1. 爸爸分別詢問國文、英語、數學 3 科成績,並等待使用者輸入。

2. 每輸入一科分數後,爸爸就說出該科目與分數,例如:「國文分數 88」。

3. 最後,計算平均分數,並說出「平均分數   」。

重複進行 英語、數學

國文分數幾分? 國文分數88 平均分數85

國文 88、英語 90、數學 77 →平均分數 85。

設定變數、計算平均

逐步解析 2

1

詢問 各科分數

(以國文為例)

1

詢問 各科分數

2

儲存 各科分數

3

說出 各科分數

4

計算 平均分數

5

說出 平均分數

(1) 以 偵測類 的 來詢問「國文分數幾分?」

並等待使用者輸入分數。

(2) 讓使用者輸入國文分數、英語分數、數學分數的方法相同。

問題思考

解題分析

(8)

2

儲存 各科分數

3

說出 各科分數

(以國文為例)

(1) 儲存分數:使用變數。

① 共需設定   個變數,用來儲存國文、英語、數學3 科的分數。

② 要設定   個變數,用來儲存平均分數。

(2) 設定變數:

① 以國文為例:將國文分數 放入變數 國文 。

② 設定各個變數( 國文 、 英語 、 數學 、 平均 )的方法相同。

(1) 說話:用 外觀類 的 來呈現。

(2) 說話的內容:

以 運算類 的 合併文字「國文分數」和變數 。

(3) 說出「國文分數      」。例如:國文分數 90。

文字 變數 的值

(4) 說出各科分數(國文、英語、數學)的方法相同。

(1) 平均=(國文+英語+數學)/3。

(2) 利用變數設定運算式: (國文+英語+數學)/3 。

(3) 將運算式放入變數 平均 中。

(1) 與

3

說出各科分數的方法相同。

(2) 說出「平均分數     」。例如:平均分數88。

文字 變數 的值

國文

平均

4

計算 平均分數

5

說出 平均分數

選 擇 結 構 4 — 歡 樂 聖 誕

4-1

4-2

(9)

【參考程式】(須新增 變數 :國文、英語、數學、平均)

1 2 3

01

02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

-- 當綠旗被點一下開始執行 -- 設定變數 國文 為 0 -- 設定變數 英語 為 0 -- 設定變數 數學 為 0 -- 設定變數 平均 為 0

-- 詢問國文分數並等待輸入

-- 將輸入的答案放入變數 國文 中

-- 說出「國文分數   」 -- 詢問英語分數並等待輸入

-- 將輸入的答案放入變數 英語 中

-- 說出「英語分數   」 -- 詢問數學分數並等待輸入

-- 將輸入的答案放入變數 數學 中

-- 說出「數學分數   」

-- 將平均分數運算式放入變數 平均 中

-- 說出「平均分數   」

5 4

初始值設定

在參考程式的步驟02 ~ 05 中,我們將所有變數的值設為 0,

這個動作稱為「初始值設定」。

在程式中設定不同名稱的變數,電腦會規畫出不同的儲存空 間,以儲存程式執行時所需的資料。當程式執行結束後,這些資 料仍會繼續存在,而重新執行程式時,變數就會以上次儲存的資 料繼續執行。因此在程式一開始,我們通常會指定各變數的「初 始值」,避免產生錯誤。

0

(10)

在【逐步解析 2】中,我們使用不同的變數存放各 科輸入的分數,並計算平均分數。接下來,我們要利用 控制類 的 如果…那麼… ,來判斷小潔的平均分數是 否達到 85 分以上,能不能得到禮物。

如果…那麼…

• 功能說明

針對 條件 進行判斷,並決定執行的內容。

Scratch 積木 流程圖

成立

條件

程式區塊1

程式區塊2

不成立

成立

不成立 條件

程式區塊2

程式區塊1

判斷結果分為「成立」、「不成立」兩種:

1. 成立:程式會先執行程式區塊 1,再接著執行程式區塊 2。

2. 不成立:程式會略過程式區塊 1,直接往下執行程式區塊 2。

• 應用介紹

根據「是否下雨」的回答,判斷要不要提醒「記得帶雨傘」,而不管是否會下雨,都會 說「準備出門囉」。

Scratch 積木 流程圖

成立

說「準備出門囉」

說「記得帶傘」

不成立 答案=會 問「會下雨嗎?」

選 擇 結 構 4 — 歡 樂 聖 誕

4-1

4-2

(11)

邏輯運算

• 功能說明

在使用「選擇結構」的時候,常要用到兩個以上的條件來進行 判斷,例如前頁範例以「是否下雨」這個條件來決定要不要帶傘,

若希望增加「出大太陽」也要帶傘,但積木上只有一個放置條件的 位置,無法放置兩個條件;此時,就要用到 運算類 的邏輯運算積

木 、 ,將多種條件組合在一起進

行條件判斷。

另外,我們還可以利用 將條件反轉,讓程式撰 寫更方便、更有彈性。

• 積木介紹

甲、乙兩個條件都要成立,結 果才成立。

情 況

條件 判斷

甲 乙 結果

1 ○ ○ ○

2 ○ × ×

3 × ○ ×

4 × × ×

( ○ 代表成立,× 代表不成立)

【情境】

遊樂園的雲霄飛車規定只有超過10 歲且未滿 60 歲的人 才能乘坐。(即介於11 ~ 59 歲的人才能乘坐)

【說明】

年齡須超過10 歲且未滿 60 歲,表示「超過 10 歲」、「未 滿60 歲」兩個條件都必須成立,才能乘坐雲霄飛車,

因此選用 。

(1) 50 歲同時滿足「超過 10 歲」、「未滿 60 歲」兩 個條件,所以可以乘坐雲霄飛車。

(2) 70 歲只滿足「超過 10 歲」,但不符合「未滿 60 歲」的條件,所以不能乘坐雲霄飛車。

【程式】

(12)

【情境】

當國文分數達60 分以上代表「及格」。

【說明】

60 分以上包含「大於 60 分」、「等於 60 分」兩種情形,

只 要 其 中 一 個 條 件 成 立, 就 表 示 及 格, 因 此 選 用

60 分只滿足「等於 60 分」的情形、不滿足「大於 60 分」的情形,但仍判斷為及格。

【程式】

甲、乙之中,只要有一個條件 成立,結果就成立。

情 況

條件 判斷

甲 乙 結果

1 ○ ○ ○

2 ○ × ○

3 × ○ ○

4 × × ×

( ○ 代表成立,× 代表不成立)

【情境】

同上題,當國文分數達60 分以上代表「及格」。

【說明】

有時當條件太複雜時,可以反向思考以簡化程式,這時候

就會選用 。

上題用

來代表「60 分以上」,而我們也可改用 來表示。

【程式】

條件甲不成立時,結果才成立;

條件甲成立時,結果不成立。

情 況

條件 甲

判斷 結果

1 × ○

2 ○ ×

( ○ 代表成立,× 代表不成立)

選 擇 結 構 4 — 歡 樂 聖 誕

4-1

4-2

(13)

1

判斷 平均 是否 達85 分以上

2

判斷 平均 是否 小於85 分

判斷標準 條件設定 執行結果

85 分以上 平均>85 或 平均= 85 說「恭喜獲得聖誕禮物!」

不到85 分 平均<85 說「下次加油!」

(1) 利用 控制類 的 如果…那麼… 來進行條件判斷。

(2) 判斷式為「平均>85 或 平均=85」。

(3) 如果「平均>85 或 平均=85」就說「恭喜獲得聖誕禮物!」

(1) 「平均<85」的條件式寫法,與

1

相似。

(2) 如果「平均<85」就說「下次加油!」

接續【逐步解析 2】,爸爸 說出 3 科的平均分數後,依照

「平均是否達到 85 分以上」,

來決定小潔是否能得到聖誕禮 物,執行結果如右表所示。請 利用 Scratch 來完成程式。

逐步解析 3

條件判斷

平均 85 分以上 平均小於 85 分

恭喜獲得

聖誕禮物! 下次加油

1

判斷 平均 是否達85 分以上

問題思考

解題分析

2

判斷 平均 是 否 小 於 85 分

(14)

【參考程式】(*代表本次新增的積木)

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

*17

*18

*19

*20

-- 當綠旗被點一下開始執行 -- 設定變數 國文 為 0 -- 設定變數 英語 為 0 -- 設定變數 數學 為 0 -- 設定變數 平均 為 0

-- 詢問國文分數並等待輸入

-- 將輸入的答案放入變數 國文 中

-- 說出「國文分數   」 -- 詢問英語分數並等待輸入

-- 將輸入的答案放入變數 英語 中

-- 說出「英語分數   」 -- 詢問數學分數並等待輸入

-- 將輸入的答案放入變數 數學 中

-- 說出「數學分數   」 -- 將平均分數運算式

放入變數 平均 中 -- 說出「平均分數   」

-- 條件判斷,如果成立 就執行第 18 行程式 -- 說出「恭喜獲得聖誕禮物!」

-- 條件判斷,如果成立就執行第 20 行程式 -- 說出「下次加油!」

1

2

選 擇 結 構 4 — 歡 樂 聖 誕

4-1

4-2

(15)

4-1 小試身手  週年慶大特價

   歲 末 年 終, 服 飾 店 週 年 慶 特 價, 如 果 衣 服 定 價 500 元 以 上 就 打 85 折( 定 價

× 0.85),如果低於 500 元就不打折。

  請幫老闆設計一個結帳程式,以檔案 4-1 小試身手. sb 3 來進行程式撰寫。

1. 電腦說「請輸入衣服的定價」並等待店員

(使用者)

輸入。

2. 店員

(使用者)

輸入定價後,電腦說「衣服的定價是   」。

3. 依照輸入的定價判斷:

(1) 定價 500 元以上,電腦說「打折後,應收的金額是   」。

店員輸入600 元。

請輸入衣服的 定價

衣服的定價是 600

打折後,應收 的金額是510

(2) 定價不到 500 元,電腦說「應收的金額是   」。

店員輸入490 元。

請輸入衣服的 定價

衣服的定價是 490

應收的金額是 490

檔案 4-1 小試身手 下載方式請見 P.3

(16)

4-2 條件判斷② —聖誕大餐

聖誕節時,小潔全家 4 人到餐廳用餐,聖誕套餐 每人特價 199 元,消費金額滿 500 元再享 9 折優惠。

若小潔全家都用餐,共要花費多少元呢?

請播放範例影片 聖誕大餐 .mp4,觀察程式的執行 情形,一起用 Scratch 來完成程式吧!

【程式摘要】

1. 服務生詢問「用餐人數幾位?」並等待輸入。

2. 使用者輸入用餐人數後,服務生說出「用餐人數   」。

3. 計算消費金額,並判斷是否打折:

(1) 滿 500 元:服務生說「打折後,您要付的金額是   」。

(2) 不到 500 元:服務生說「您要付的金額是   」。

搭配【逐步解析】說明

題目解析流程

任務說明

檔案

4-2

下載方式請見 P.3

開始

輸入 用餐人數

計算 消費金額

顯示用餐人數/

顯示消費金額

9 折 原價

1

計算金額

結束

成立 金額>500 不成立

金額=500

2

選 擇 結 構 4 — 歡 樂 聖 誕

4-1

4-2

(17)

前一節中,我們用兩個 如果…那麼… 來進行條件判 斷,在這節中,我們將改用一個 如果…那麼…否則… 來 進行條件判斷,並比較兩種積木的不同之處(表 1-4-2)。

學習目標 1. 設定詢問。

2. 條件判斷。

1-4-2 本程式所需積木

積木類型 外觀 功能

事件類 當綠旗被點擊後,開始執行下方的指令積木。

偵測類

以對話框顯示設定的問題,並等待使用者輸入答案。

存放使用者所輸入的答案。

運算類

將兩數相乘。

判斷左數是否小於右數。

判斷左數是否等於右數。

判斷左數是否大於右數。

判斷兩個條件中,是否至少有一個成立。

2 個字串(或變數)合併成為 1 個字串。

。結果:聖誕禮物。

控制類

*

條件

程式區塊1

程式區塊2

程式區塊3

依條件進行判斷:

(1) 成立:執行程式區塊 1,再執行程式區塊 3。

(2) 不成立:執行程式區塊 2,再執行程式區塊 3。

外觀類

以對話框顯示指定文字,並在指定的秒數後消失,接著 才執行下一個指令積木。

以對話框顯示指定文字,文字不會消失,並馬上接著執 行後方指令積木。

(* 代表首次使用的積木)

(18)

設定提問、計算金額 使 用 檔 案

4-2-1.sb3

逐步解析 1

聖誕套餐每人 199 元。請以服務生為角色撰寫程式:

1. 服務生詢問「用餐人數幾位?」讓使用者輸入用餐人數。

2. 使用者輸入人數後,服務生說「用餐人數   」。

3. 服務生說出「消費金額   」。

使用者輸入 4。

用餐人數幾位? 用餐人數4 消費金額796

1

詢問 用餐人數

2

說出 用餐人數

1

詢問 用餐人數

2

說出 用餐人數

3

計算 消費金額

4

說出 消費金額

(1) 詢問的方式與4-1 節【逐步解析 2】Q1 有相同的模式。

(2) 以 偵測類 的 詢問「用餐人數幾位?」並等待輸入人數。

(1) 說話內容:

合併文字「用餐人數」和 。

本題僅需輸入一個答案(用餐人數),因此可直接用 來運算,

不須使用變數。

問題思考

解題分析

選 擇 結 構 4 — 歡 樂 聖 誕

4-1

4-2

(19)

(2) 說出用餐人數:

以 外觀類 的 結合說話內容。

(1) 消費金額=價錢 × 人數

(2) 以 運算類 的 結合 進行運算。

(1) 與

2

說出用餐人數的方法相同。

(2) 說話內容:合併文字「消費金額」和運算式。

(3) 說出消費金額:

3

計算 消費金額

4

說出 消費金額

【參考程式】

01 02 03 04

-- 當綠旗被點一下開始執行

-- 詢問用餐人數並等待輸入

-- 說出「用餐人數  」 -- 說出「消費 金額   」

1

2

3

4

(20)

在 4-1 節中,我們利用 如果…那麼… 來進行條件判斷,但是當 需要判斷的條件變多時,就需要使用多次 如果…那麼… ,在解決問 題上會較為不便。

在 S cratch 中還有另一種選擇結構積木 如果…那麼…否則… ,

可協助我們在多個條件判斷時更簡單、更有效率。

如果…那麼…否則…

• 功能說明

針對 條件 進行判斷,並依判斷結果決定進行的程序。

Scratch 積木 流程圖

成立

條件

程式區塊1

程式區塊2

程式區塊3

不成立

成立 條件 不成立

程式區塊3

程式區塊1 程式區塊2

判斷結果分為「成立」、「不成立」兩種:

1. 成立:程式會先執行程式區塊 1,再接著執行程式區塊 3。

2. 不成立:程式會先執行程式區塊 2,再接著執行程式區塊 3。

•應用實例

以4-1 節的程式為例,判斷 平均 是「85 分以上」或「小於 85 分」:

用2 個 如果…那麼… 用1 個 如果…那麼…否則…

▲必須使用2 個 如果…那麼… 積木,

進行2 次條件判斷。

▲只要1 個 如果…那麼…否則… 積木,

進行1 次條件判斷。

選 擇 結 構 4 — 歡 樂 聖 誕

4-1

4-2

(21)

接續【逐步解析 1】,當服 務生說完「消費金額」後,要依 據「金額是否滿 500 元以上」來 決定是否打 9 折,執行結果如右 表。請利用 Scratch 來完成程式。

逐步解析 2

條件判斷

10 人、共 1990 元 2 人、共 398 元 打折後,您要付

的金額是1791 您要付的金額 398

進行條件判斷

(用右側積木)

(1) 成 立:將消費金額打 9 折,並說「打折後,您要付的金額是   」。

(2) 不成立:說出「您要付的金額是   」。

(1) 條件判斷: 控制類 的 如果…那麼…否則… 。 (2) 條件:「消費金額> 500 或 消費金額= 500」。

(3) 判斷結果:

成立

滿500 元 以上

①計算消費金額( 打 9 折 ):

②說出「打折後,您要付的金額是   」:

不成立

小於500 元

①消費金額不打折:

②說「您要付的金額是   」:

問題思考

解題分析

進行 條件判斷

(22)

【參考程式】(*代表本次新增的積木)

01 02 03 04

*05

*06

*07

-- 成立

-- 不成立 -- 當綠旗被點一下開始執行

-- 詢問用餐人數並等待輸入

-- 說出「用餐人數  」

-- 說出「消費金額  」 判斷條件 是否成立

以變數寫程式

 雖然本程式不一定要設 定變數,但若以變數來撰 寫程式,無論是可讀性或 未來的修改與管理,都會 更為方便。

如果餐廳的套餐要從 199 元 改 為 299 元,

原 程 式 要 逐 一 將199 改為299,共需修改 5 處,若以變數撰寫的 程 式, 只 需 修 改1 處 即可。

1

選 擇 結 構 4 — 歡 樂 聖 誕

4-1

4-2

(23)

在 本 節 中, 我 們 利 用 了1 個 如果…那麼…否則… 來 替 代 2 個 如果…那麼… ,讓程式看起來更為簡潔。想一想,這兩種積木在所 有的狀況下都能相互取代嗎?

延伸學習 選擇結構的使用

◎狀況一:

成績在60 分以上為及格,60 分以下為不及格。

使用2 個 如果…那麼… 使用1 個 如果…那麼…否則…

條件式1:成績≧ 60,及格。

條件式2:成績 <60,不及格。

60

0 100

不及格 及格

條件式2 成立

條件式1 成立

條件式:成績≧60。

→成立,及格。

→不成立,不及格。

不及格 及格

不成立 60 成立

0 100

◎狀況二:

搭乘公車時,12 歲以下為兒童票,65 歲以上為敬老票。

使用2 個 如果…那麼… 使用1 個 如果…那麼…否則…

條件式1:年齡≦ 12,兒童票。

條件式2:年齡≧ 65,敬老票。

兒童票 敬老票

12 65 條件式1

成立

條件式2 成立

條件式:年齡≦12。

→成立,兒童票。

→ 不成立,年齡 >12 皆 判定為敬老票。

兒童票 敬老票

成立 12 不成立65

敬老票不包含 13 ~ 64 歲。

(24)

在 本 節 中, 我 們 利 用 了1 個 如果…那麼…否則… 來 替 代 2 個 如果…那麼… ,讓程式看起來更為簡潔。想一想,這兩種積木在所 有的狀況下都能相互取代嗎?

選擇結構的使用

◎狀況三:

將成績依「等第制」劃分,90 分以上為優等,80 分以上但未滿 90 分為甲等。

使用2 個 如果…那麼… 使用1 個 如果…那麼…否則…

條件式1: 分數≧ 90 ,優等。

條件式2: 分數≧ 80 且分數 <90 , 甲等。

甲等 優等

條件式2 成立

條件式1 成立 80

70 90 100

條件式: 分數≧90 。

→成立,優等。

→ 不成立,分數 <90 皆 判定為甲等。

甲等 優等

不成立 成立

70 90 100

甲等不包含 80 分以下。

已知1 個 如果…那麼…否則… 只 能將結果分為2 類,如右圖所示。

請觀察上述三種狀況,為什麼狀 況二、三中,使用1 個 如果…那麼…

否則… 來替代時,會發生錯誤呢?

成立 不成立

條件

下列幾種情形,是否可以用 1 個 如果…那麼…否則… 來替代 2 個 如果…那麼… ? 可以的打 ,不行的打 ×。

( ) 1. 超市優惠: 如果今天最低氣溫低於 12 °C,冰淇淋買一送一。

如果今天最高氣溫高於35 °C,冰淇淋打 8 折。

( ) 2. 上課服裝: 如果今天有體育課,穿運動服。

如果今天沒有體育課,穿制服。

( ) 3. 餐廳優惠: 幼兒園(含)以下幼童免費。

國小學童半價。

手腦並用

選 擇 結 構 4 — 歡 樂 聖 誕

4-1

4-2

(25)

試試看,在 中分別輸入50、五十,程式執行結 果會有什麼差別呢?在Scratch 中,有些積木只能輸入特定的資料 型態才能正確運作,例如: 動作類 的 ,空格中只能 填入數字,若填入國字(文字),則程式無法正確執行。Scratch 的資料型態包含下列3 種:數字、字串、布林(邏輯)。

資料型態 說明 相關積木範例

數字 數字可以是整數或 小數。

字串

字 串 是 一 連 串 的

「字元」組合,字 元可以是英文、數 字、符號、中文。

布林

布林是在進行條件 判斷時,用來判斷 條件是否成立的判 斷結果,可分為成 立(True)、不成 立(False)兩種,

讓程式選擇不同的 路徑執行 。

在Scratch 中,可以用來判斷

「成立/不成立」的積木,其外 形均為六邊形。

延伸學習 資料型態

知識快遞

我們可以利用 ,來檢驗布林的值為何。

1 不大於 2,結果不成立,

執行時會輸出「false」。

(26)

暢銷書折扣 小試身手 

  書店迎接開學季,舉辦「閱讀越有趣」

圖書優惠活動,全館所有書籍均一特價 250 元, 6 本以上再打 75 折。

請以檔案 4-2 小試身手. sb 3 來進行程式 撰寫。

1. 店員詢問「您要購買幾本書?」並等待使用者輸入。

2. 使用者輸入後,店員說「您購買的數量是   」。

3. 依照輸入的數量來判斷是否打折,並計算消費金額:

(1) 6 本以上,總價再打 75 折,店員說「打折後,您要付的金額是   」。

(2) 不到 6 本,不打折,店員說「您要付的金額是   」。

使用者輸入8。(原價 250×8 = 2000)

您要購買幾本書? 您購買的數量是8 打折後,您要付 的金額是1500

使用者輸入4。(原價 250×4 = 1000)

您要購買幾本書? 您購買的數量是4 您要付的金額是 1000

檔案 4-2 小試身手 下載方式請見 P.3

選 擇 結 構 4 — 歡 樂 聖 誕

4-1

4-2

(27)

第 4章 學習重點

4-1 變數與條件判斷①—聖誕禮物

任務要求

1. 使用檔案 4-1-1.sb3 撰寫程式。

2. 爸爸依序詢問國文、英語、數學 3 科成績,並等待使用者輸入。

3. 每輸入完成績,爸爸就說出科目與分數,例如:國文分數 88。

4. 計算 3 科的平均分數,並判斷是否達 85 分以上:

(1) 如果達 85 分以上,就說「平均分數    ,恭喜獲得聖誕禮物!」

(2) 如果不到 85 分,就說「平均分數    ,下次加油!」

問題思考

Q 1. 如何設定詢問,讓使用者輸入國文、英語、數學

3 科的分數?

Q 2. 如何說出輸入的科目與分數?

Q 3.

要用多少個變數來儲存3 科輸入的分數以及平均分數?

Q 4. 如何以變數列出平均分數的運算式?

Q 5.

如何對平均分數進行條件判斷,判斷是「85 分以上」或「小於 85 分」?

解題分析

Q 1. (1) 設定提問: 偵測類 的

(2) 輸入國文、英語、數學各科分數的方法相同。

Q 2. (1) 說話的內容:以 運算類 的

合併文字和變數。

(2) 說出各科分數的方法相同。

Q 3. (1) 將答案放入變數中:(以國文為例)

(2) 設定變數 國文 、 英語 、 數學 、 平均 的方法相同。

Q 4. (1) 平均 =(國文+英語+數學)/ 3。

(2) 將運算結果放入變數 平均 中:

Q 5. 條件判斷: 控制類 的 如果…那麼… 。

(1) 平均 達 85 分以上 (2) 平均 小於 85 分

(28)

4-2 條件判斷②—聖誕大餐

任務要求

1. 使用檔案 4-2-1.sb3 撰寫程式。

2. 服務生詢問「用餐人數幾位?」並等待輸入。

3. 使用者輸入用餐人數後,服務生說出「用餐人數   」。

4. 計算消費金額、判斷是否打折,並說出最後要付的金額。

問題思考

Q 1. 如何設定詢問來輸入用餐人數,並說出「用餐人數   」?

Q 2. 如何由用餐人數列出消費金額的運算式,並說出消費金額?

Q 3. 金額滿 500 元以上可打 9 折,要如何判斷,並說出最後要付多少元呢?

解題分析

Q 1.

設定提問: 偵測類 的 。

Q 2. (1) 消費金額=價錢 × 人數。

(2) 計算費用: 運算類 的 。

(3) 說話: 外觀類 的 。

Q 3. (1) 條件判斷: 控制類 的

(2) 條件式為:「消費金額> 500 或 消費金額= 500」。

選 擇 結 構 4 — 歡 樂 聖 誕

4-1

4-2

(29)

科技廣角

第 1 位程式設計師 - 艾達

分析機的一部分。

查理‧巴貝。

你可知道歷史上第一位程式設計師,

出現在沒有電腦、甚至連電燈都還沒發明的時代,

而且是一位女性嗎?

  在沒有計算機和電腦的時代,

所有的數學計算都要靠人工來完 成, 不 但 費 時 費 力, 而 且 容 易 出 錯。為了解決這個問題,英國數學 家查理•巴貝( C harles B abbage 西元 1791 ∼ 1871 年)利用齒輪構 造,設計出可以計算複雜數學函式 的「分析機」,預計要由 8000 個 零件組成、重達 5 噸。可惜,由於 當時的製造技術不足,分析機最終 並未完成;但分析機的設計十分先 進,成為電子計算機的先驅。

電子計算機的先驅

(30)

  接著上場的是本文的主角,艾達•勒芙雷絲( A da L ovelace ,西元 1815 ∼ 1852 年),他自幼就展現數理 的天分, 17 歲時認識查理•巴貝,也對分析機頗有了解;

28 歲時,翻譯了一本關於分析機的著作,並加上許多自 己的筆記。

  在這本翻譯的著作中,艾達的筆記甚至比原文多了 三倍,包括一段專為分析機設計的演算法。雖然分析機 不是電腦,但這段演算法仍被公認為世界上第一個電腦 程式,而艾達也成為世界上第一位程式設計師。

世界上的第一個「電腦程式」

  富有想象力的艾達預言:「分 析機不僅能做數學運算,未來可以 用來排版、編曲或是各種更複雜的 用途。」他所預見的就是百年之後 我們所熟知的電腦。

  後來,艾達的筆記在西元 1953 年被重新出版,對現代電腦與軟體 工程有著重大影響;美國國防部在 西元 1980 年還將一種電腦程式語 言命名為「 A da 」作為紀念。

影響與紀念

艾達的父親是英國著名浪漫詩人、革命家—拜倫

(George Gordon Byron,西元1788~1824年),

拜倫雖出生於貴族世家,但胸懷人道主義,致力於 爭取社會公益、反抗強權,最後死於希臘獨立戰 爭,年僅36歲。

Ada Lo velac

e

Figure

Updating...

References

Related subjects :