版面設計-app inventor應用程式設計

Page 1

應用程式設計

APP Inventor



序言

MakeBlock 號稱「金屬版的樂高積木」,它除了提供多樣化的金屬零件 之外,更強調可以讓使用者動手創造各種不同的造型金屬結構,而它的組成 要素有以下四大部分: 1. 機械結構:鋁合金構件,兼具強度及美觀。 2. 電子電路:使用各種模組式的感測器、馬達及相關的電子零件。 3. 控制系統:利用開放式的 Arduino 硬體平台為基礎控制器,可以整合 電子電路。 4. 程式語言:使用「圖形化」的「拼圖積木」程式。可以降低學習曲線, 提高學習者的動機和興趣。 目前官方也先後推出了一系列的不同應用產品。其中,mBot 機器人是屬 於教學用的重要教具,但是,它目前官方標準版只提供一種組裝方式,使得 想要改造機構或創作的學習者,沒有完整的圖解說明書可以參考,導致學習 者無法利用基本款的 mBot 機器人來完成其他任務,例如:利用 mBot 機器手 臂夾保特瓶、踢足球、相撲、轉頭、打招呼、撿乒乓球,甚至改成兩足行走 機器人。 有鑑於此,i 創機器人實驗室的團隊規劃了半年的時間,從研究動力機械 理論、實作,到機器人的各種「組裝、寫程式到測試」,每一個階段都有新 的發現及驚奇,因此,在這過程中,陸續創作出六個作品及一個官方作品, 並且針對每一個作品撰寫手機 App 程式,來讓讀者除了利用各作品的「擴充 零件」來改造具有功能性的機器人之外,還可以透過手機 App 來操控。其主 要的目的就是為了「拋磚引玉」,希望能與,mBot 機器人領域的同好者分享 這些作品及經驗。 最後,在此特別感謝各位讀者對本著作的支持與愛護,筆者才疏學淺, 有疏漏之處,敬請各位資訊先進不吝指教。

李春雄 (Leech@csu.edu.tw)

2016.9.10

於 正修科技大學 資管系


CONTENTS

第一類

Chapter 1

App Inventor 使用者介面設計 1-1

使用者介面設計

1

1-3

輸入方塊元件 (TextBox)

3

1-2

標籤元件 (Label)

1-4

密碼文字方塊元件 (PasswordTextBox)

1-6

複選方塊元件 (CheckBox)

1-5

按鈕元件 (Button)

1-7

對話訊息方塊元件 (Notifier)

1-9

清單選取元件 (ListPicker)

1-8

下拉式元件 (Spinner)

2 4 5 6 7 8 9

1-10 滑桿元件 (Slider)

10

第 1 章術科題庫

12

1-11 顯示圖片元件 (Image) 第 1 章學科題庫

11 13

第二類

Chapter 2

App Inventor 資料運算 2-1

資料運算

1

2-3

算術運算

3

2-2 2-4

指定運算 關係運算

2 4


2-5

邏輯運算

5

2-7

變數運算

7

字串處理

2-6

第 2 章術科題庫

Chapter 3

第 2 章學科題庫

App Inventor 流程控制

6 8 9

3-1

App Inventor 流程控制

1

3-3

選擇結構 (Selection)

3

3-2 3-4

3-5

循序結構 (Sequential) 計數迴圈 (For/Next)

條件迴圈 (Do/Loop)

2 4

第 3 章術科題庫 第 3 章學科題庫

第三類

Chapter 4

App Inventor 清單陣列 4-1

App Inventor 清單陣列

1

4-3

新增一個清單 (make a list )

3

4-2 4-4

建立一個空清單 (create empty list ) 新增元素到清單 (add items to list )

4-5

搜尋指定元素在清單位置 (is in list? )

4-7

判斷清單是否為空 (is list empty?)

4-6

取得清單元素個數 (length of list )

2 4 5 6 7


CONTENTS

從清單中隨機取得任一項目 (pick random item )

4-8

取得清單的元素 (select list item)

4-9

4-10 新增元素到指定清單位置 (insert list item)

4-11 修改清單指定位置之元素 (replace list item )

4-12 刪除清單指定位置之元素 (remove list item ) 4-13 結合多個清單元素 (append to list ) 4-14 複製清單全部元素 (copy list )

4-15 判斷是否為清單格式 (is a list?)

4-16 清單轉換為 CSV 表格中的列 (list to csv row) 第 4 章術科題庫

Chapter 5

第 4 章學科題庫

App Inventor 程序的應用

1 2 3 4 5 6 7 8 9

10 11

5-1

程序(副程式)

1

5-3

不會傳回值的程序(多個參數)

3

5-2 5-4

不傳回值的程序(無參數) 會傳回值的程序

第 5 章術科題庫

2 4

第 5 章學科題庫

第四類

Chapter 6

App Inventor 資料運算 6-1

App Inventor 多媒體元件

1

6-3

相簿功能(ImagePicker 元件)

3

6-2

照相功能(Camera 元件)

2


6-4

聲音功能 (Sound 元件)

1

6-6

錄音功能 (SoundRecorder 元件)

3

6-5 6-7 6-8 6-9

音樂功能 (Player 元件)

拍攝影片功能 (Camcorder 元件)

播放影片功能 (VideoPlayer 元件)

語音轉成文字功能 (SpeechRecognizer 元件)

6-10 文字轉成語音功能 (TextToSpeech 元件) 第 6 章術科題庫

2 4 5 6 7

第 6 章學科題庫

第五類

Chapter 7

App Inventor 動畫基本應用 7-1

動畫的基本概念

1

7-3

App Inventor 2 的 Canvas 畫布

3

7-2 7-4 7-5

App Inventor 2 動畫基本應用 ImageSprite 圖片精靈元件

2

Ball 球形動畫元件

第 7 章術科題庫

Chapter 8

第 7 章學科題庫

App Inventor 手機遊戲 8-1

遊戲設計

1

8-3

App Inventor 2 的亂數拼圖程式

3

8-2 8-4

何謂機率? 益智遊戲

第 8 章術科題庫 第 8 章學科題庫

2


CONTENTS

第六類

Chapter 9

App Inventor 資料庫的基本應用及 結合遊戲

9-1

App Inventor 資料庫

1

9-3

CSV 檔案格式的基本應用

3

9-2

何謂 TinyDB 元件 ?

第 9 章術科題庫 第 9 章學科題庫

2 4

65

第七類

Chapter 10

App Inventor 無線通訊傳輸 10-1 Android 手機控制 MBOT 機器人

1

10-3 撰寫第一支 App Inventor 程式控制 mBot

3

10-2 匯入 mBot 函式庫 機器人

10-4 手機與 MBOT 主機的溝通技術「藍牙通訊 (Bluetooth)」

10-5 藍牙控制 mBot 機器人的走動 第 10 章術科題庫 第 10 章學科題庫

2 4

65


能力指標: 讓學習者學會「數學運算」能力。

第二類

Chapter 2

App Inventor 資料運算 2-1

資料運算

2-3

算術運算

2-2 2-4 2-5 2-6 2-7

指定運算 關係運算 邏輯運算 字串處理 變數運算

本章術科題庫

1. 試題名稱:攝氏轉換成華氏 App

2. 試題名稱:計算一元二次方程式 App

Hi!


App Inventor 應用程式設計

2-1 資料運算 我們都知道電腦處理資料的過程為:輸入 --- 處理 --- 輸出,其中「處理」程 序通常是藉由運算式 (Expression) 來完成。

一 運算式的組成: 運算元 (Operand) 與運算子 (Operator) 。 二 資料運算的分類:

一般而言,「運算元」不是變數就是常數,而運算子則可分為四種: 1. 指定運算 ( 例如:= ) 2. 算術運算 ( 例如: +- ×÷…… ) 3. 關係運算 ( 又稱為比較運算子 ) ( 例如: >,< , = …… ) 4. 邏輯運算 ( 例如: AND ,OR , NOT …… ) 此外,在本章節中,還會介紹「字串處理」及「變數運算」。

2-2 指定運算

一 定義:指定「資料」或「運算結果」給某一變數。

二 方法: 從「 = 」指定運算子的右邊開始看,將「右邊」運算式的結果指定給 「左邊」的運算元 ( 亦即變數名稱 ) 。

範例 1 指定「資料」給變數 Sum=55 拼圖程式表示方法:

說明 1. 「設…為」就是「指定運算子」。

2. 將 右 邊 的 數 字 55 指 定 給 左 邊 的「 Sum 」 變 數。 換 言 之, 將

「 Sum 」變數設定為 55 。

2


Chapter 2 App Inventor 資料運算

範例 2 指定「運算結果」給變數 Sum=10+20+30

第一類

拼圖程式表示方法:

第二類

2-3 算術運算

第三類

一 引言:在數學上有四則運算,而在程式語言中也不例外。 三 App Inventor 2 的變數拼圖: 數學拼圖

說明

第五類

取得 0

第四類

二 目的:是指用來處理使用者輸入的「數值資料」。

關係運算 * 註 1

第六類 第七類

算術運算 * 註 2

亂數函數 * 註 3

* 註 1:關係運算子的拼圖,在下一個單元介紹。 * 註 2:算術運算子的拼圖。

3


App Inventor 應用程式設計

拼圖

功能

例子

結果

1

指數

16

2

乘法

40

3

除法

3.333…

4

相除後 取商數

3

5

相除後 取餘數

1

6

加法

42

7

減法

14

說明 在上表中,「加法」與「乘法」都具有「擴充項目圖示」的功能。因此, 它可以依照使用者的需求再進行多個數字的「連加」及「連乘」。

2-4 關係運算

一 功能:用來比較兩個數值的大小。它又可稱為「比較運算式」。

二 運用時機:判斷式中的「條件式」進行比較運算。如下圖所示: 等於 不等於 小於 小於等於 大於 大於等於 4


Chapter 2 App Inventor 資料運算

三 數值比較運算子的拼圖之種類:設 A=10,B=20 。 拼圖

等於

A=B

False

2

不等於

A≠B

True

3

小於

A<B

True

4

小於等於

A<=B

True

5

大於

A>B

False

6

大於等於

A>=B

False

「數值」比較運算子

「字串」比較運算子

第五類

四 分類:「數值比較」運算子與「字串比較」運算子。

第四類

1

第三類

執行結果

第二類

條件式

第一類

功能

第六類 第七類 5


App Inventor 應用程式設計

2-5 邏輯運算 邏輯運算子是由數學家布林 (Boolean) 所發展出來的。

一 功能:運用在「比較複雜」的運算式,它又稱為「布林運算」。

二 適用時機:在「選擇結構」中,「條件式」有兩個 ( 含 ) 以上的條件時。 三 拼圖程式:

第 1 個條件式

邏輯運算

第 2 個條件式

說明 利用「邏輯運算」來結合多個「條件式」,以加強程式的功能 。

四 邏輯運算子的拼圖種類:

邏輯字元

6

邏輯運算子

比較運算子


Chapter 2 App Inventor 資料運算

說明 在「 Logic( 邏輯 ) 」拼塊中的「比較運算子」只有兩種情況:

「Logic」拼塊中的「比較運算子」 「Math」拼塊中的「比較運算子」

第一類 第二類

運算式

1

Not A

2

A And B

3

A Or B

運算結果為 True 的條件

A 必為假 A、B 必須皆真 A、B 中至少一個為真

第五類

意義

第四類

拼圖

第三類

說明 邏輯運算子的拼圖之優先順序權:設 A=5,B=15

第六類 第七類

* 註:以 And 及 Or 最為常用。 7


App Inventor 應用程式設計

2-6 字串處理 在學會「資料運算」之指定運算、算術運算、關係運算及邏輯運算之後,還 有一個非常重要的字串處理指令。其目的用來處理使用者輸入的字串或從輸出結 果來進行字串的處理等功能。 拼圖程式

功能簡易說明 空字串 連接字串 * 註 1 計算字串長度(字數)* 註 2 判斷是否為空字串 * 註 3 字串比較運算 * 註 4 刪除字串中的空白字元 * 註 5 字母轉成大寫或小寫 * 註 6 尋找資料的位置 * 註 7 包括指定字串 * 註 8 分割字串 * 註 9 依照空格來分割字串 * 註 10 取代子字串 * 註 11 取代某一字串 * 註 12

* 註 1:字串連結運算子。 8


Chapter 2 App Inventor 資料運算

2-7 變數運算

一 定義:是指程式在執行的過程中,其「內容」會隨著程式的執行而改變。 三 App Inventor 2 的變數拼圖:

說明

取得變數值 設定變數值

區域性變數

第五類

宣告具有回傳值的

第四類

宣告區域性變數

第三類

宣告全域性變數

第二類

變數拼圖

第一類

二 概念:將「變數」想像成一個「容器」,它是專門用來「儲放資料」的地方。

第六類 第七類 9


術科題庫

Chapter 2

Try it

!

試題編號:APP201

一 試題名稱:攝氏轉換成華氏 App 二 認證時間:20 分鐘 三 試題說明:

1. 請開 APP201. aia 專案,設計「攝氏轉換成華氏 App 」程式。 2. 分析: 輸 入:攝氏 C 處 理: F = (9 / 5) * C + 32 輸 出:華氏 F 3. 請依照「分析」過程完成作答,再封裝成檔 APP201.apk 後,請將 aia 專案檔及 apk 封裝檔皆下載並儲存於 C:\APP 資料夾內。

四 介面設計參考圖: 請依照下列的「手機頁面」來加入「專案所需元件」。 手機頁面設計

10

專案所需元件


e!

on well d

Chapter 2

術科題庫

1. 請在 Screen1 頁面中,將 Title 名稱改為「攝氏轉換成華氏 App 」。 2. 請 依 序 加 入 三 個 HorizontalArrangement , 分 別 為 HorizontalArrangement1~3 , 並 且 分 別 設 定 Width 屬 性 為「 Fill parent 」。 3. 在 HorizontalArrangement1 中,加入一個 Label 元件及一個 TextBox 元 件, 先 設 定 Label 元 件 的 Text 屬 性 值 為「 請 輸 入 攝 氏 C :」, 再 改 變 TextBox 元件的名稱為「 TextBox_C 」,並設定它只能輸入數字 ( 在

NumbersOnly 打勾 ) 。 4. 在 HorizontalArrangement2 中,加入兩個 Label 元件,先設定第一個 Label 元件的 Text 屬性值為「華氏溫度 F :」,再改變第二個 Label 元 件的名稱為「 Label_F 」,並刪除 Text 屬性的內容。

5. 在 HorizontalArrangement3 中, 加 入 一 個 Button 元 件, 並 設 定 Text 屬性值為「計算」,再將此元件「置中」及改變名稱為「 Button_ Run 」。 提醒

為了讓頁面字體清楚,請考生將本題頁面中的字體大小 (FontSize) 皆設定為 20,並且再

設定為粗(FontBold)。如上圖所示。

六 執行結果參考畫面:

82.4= (9 / 5) * 28 + 32

104 = (9 / 5) * 40 + 32

11


Chapter 2

術科題庫

七 評分項目:

項目

1 頁面上的元件必須要與介面設計參考圖相同

Try it

配分

3

2 輸入攝氏 C 時,只能輸入數字

5

3 按「計算」鈕,可以正確將攝氏轉換成華氏

22

!

實際得分

30

參考程式 1. 宣告變數 拼圖 程式

檔案名稱:APP201.aia

01 02

說明 行號 01:宣告 C 為全域性變數,初值設定為 0,其目的用來記錄使用者輸入 的「攝氏 C」。 行號 02: 宣告 F 為全域性變數,初值設定為 0,其目的用來記錄攝氏 C 轉換 後的「華氏 F」。

12


e!

on well d

Chapter 2

術科題庫

2. 撰寫「攝氏 C 轉換華氏 F 」之程式 拼圖 程式

檔案名稱:APP201.aia

01 02 03 04

說明 行號 01:當「計算」鈕被「按下」時,就會觸發 Click 事件。 行號 02:將使用者輸入的「攝氏 C」指定給變數 C。 行號 03:轉換公式 F = (9 / 5) * C + 32 行號 04:將轉換後的華氏 F 顯示到螢幕上。

13


Chapter 2

學科題庫

Try it

!

1. 請問下列 App Inventor 程式的執行結果為何 ?

(A)ABC

(B)I Love App Inventor

(C)ILoveApp Inventor

(D)I Love App Inventor

2. 請問下列 App Inventor 程式的執行結果為何 ?

(A)ABC

(B)I Love App Inventor

(C)ILoveApp Inventor

14

(D)I Love App Inventor


e!

on well d

Chapter 2

學科題庫

3. 請問下列 App Inventor 程式的執行結果為何 ?

(A)9 (B)10 (C)11 (D)12 4. 請問下列 App Inventor 程式的執行結果為何 ?

(A)17 (B)18 (C)19 (D)20 5. 請問下列 App Inventor 程式的執行結果為何

(A)尚未完整輸入 (B)皆有輸入 (C)true (D)false

15


Chapter 2

學科題庫

Try it

!

6. 請問下列 App Inventor 程式的執行結果為何 ?

(A)true (B)false (C)兩個字串相同 (D)0 7. 程式語言在資料處理時,通常把資料分成那兩類? (A)小數與整數 (B)區域與全域變數 (C)字元與字串 (D)變數和常數 8. 下列何者會隨著程式的執行而改變其值? (A)常數 (B)變數 (C)實數 (D)虛數 9. 關於「變數」的敘述,下列何者正確? (A)想像成一個容器 (B)內容會隨著程式的執行而改變 (C)專門用來儲放資料的地方 (D)以上皆是 10. 有 關「 下列何者有誤? (A)變數 A 的值會隨 B 改變而改變 (B)「Set…to」是指定運算子 (C)A 與 B 都是變數 (D)A 常數與 B 是變數

16

」 的 敘 述,


MEMO



Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.