• 沒有找到結果。

104工科技藝競賽電腦軟體設計術科試題

N/A
N/A
Protected

Academic year: 2021

Share "104工科技藝競賽電腦軟體設計術科試題"

Copied!
10
0
0

加載中.... (立即查看全文)

全文

(1)

全國高級中等學校 104 學年度工業類科學生技藝競賽電腦軟體設計

壹、試卷說明: 1.請將寫好之程式原始檔依題號命名資料夾存檔,第一題取姓名_Q1,第二題取姓名_Q2,依序命名存檔, 並存於 C 碟之資料夾”姓名_Contest”中。 2.競賽時間 4 小時。 3 將程式及編譯成執行檔儲存在 C 碟之資料夾姓名_Contest。 貳、評分說明:本試卷共六題,每題配分不一。 1. 每題評分只有對與錯兩種,對則給滿分,錯則不給分(即以零分計算) 。 2. 每解答完一題上傳(程式及執行檔),評審人員將針對該題進行測試,若解題正確則回應正確,若 解題錯誤則扣該題一分至該題零分為止,答錯之題目可繼續作答。

試題一:數獨 4X4 遊戲程式設計(17 分)

說明:設計出能夠玩數獨 4X4 遊戲的程式。需能填滿 4x4 的方格,而每一直行、每一橫列、以及所 分出的 4 個主要 2x2 區塊,必須包含 1 到 4 ,且所有數字同一行不能有相同的數字,同一列不能 有相同的數字及同宮格內(2X2)不能有相同的數字,如圖 1 所示。題目一開始有些方格會先填有數字如2 所示,這些數字為解題的線索。 功能要求(下列四個功能皆完成才可上傳): 1. 表單初始載入 4x4 的方格(label)的初始值如圖 2 所示。 2. 用滑鼠按一下「產生提示」產生候選數數字,如圖 3 所示,例如,第二列已有一個「2」,第一行 已有一個「1」,所以在方格位置第二列第一行(2,1)的候選數字是「3」和「4」,第四列已包含一個「4」, 第一行已有一個「1」,所以在位置第四列第一行(4,1)的候選數字是「2」和「3」,其餘類推。 3. 對尚未決定的方格,先用滑鼠按一下方格,再到下方 command 1,2,3,4 按鈕中的任一個按一下, 如圖4 所示,先用滑鼠按一下方格位置(2,1),再到下方 command 3 按鈕任一個按一下,3 顯示在方格 位置(2,1)。 4. 當對所有方格皆填滿數字,可用滑鼠按一下「check」,方格內的數字皆合乎數獨要求,則顯示正 確,如圖5 所示。若不合乎數獨要求,則顯示錯誤,如圖 6 所示,驗證方式可對每一直行的 4 個方格、 每一橫列的4 個方格、以及每個 2x2 區塊的 4 個方格分別累加其值是否全部皆為 10,若是則正確; 若其中只須一個累加值不為10 則為錯誤。 圖2 2X2 區塊 4 圖 1 2X2 區塊 2 2X2 區塊 3 2X2 區塊 1

(2)

圖 3 圖4 圖5 圖6

試題 二:名字編碼

(16 分) Soundex 索引系統的開發是為了將發音或拼字相似的名字編碼以方便取用。它被美國戶口普查局所採 用,許多州也用它來為駕照編碼。你的任務是讀取左邊 Name 文字框內一連串的名字,一個名字一行, 然後輸出 Soundex 碼 (每個名字一行)。 說明: 1 每個名字的長度從 1 到 20 個大寫字母 (ASCII 碼 65 到 90),長度不到 20 個字元的名字後面 不會補空白。 2 名字只會有大寫字母。 3 Soundex 碼含有一個字母及其後的三位數字,共 4 個字元。其編碼規則如下: 1.1 名字的第一個字母成為編碼中第一且唯一的字母。 1.2 名字的第二個字母以後,如包含 A, E, I, O, U, Y, W 及 H 等字母,則不列入編碼。 1.3 名字的第二個字母以後,除了 A, E, I, O, U, Y, W 及 H 等字母不編碼,其餘的字母都必須編 碼,除非它緊跟在一個編碼相同的字母之後。例如:SC,因為 S 的編碼是 2,C 的編碼也是 2, 所以第 2 個 C 不編碼。 1.4 雖然 A, E, I, O, U, Y, W 及 H 等字母不列入編碼,但可以拆散兩個連續相同的編碼。例如 SAK, 其中 S 的編碼是 2,A 不編碼,K 的編碼也是 2,因為 A 拆散兩個 2,所以編碼輸出為 22。 1.5 所有名字的編碼都是一位字母加三位數字,不足的位數補 0。

(3)

1.6 第三位數字之後的編碼捨去。 1.7 Soundex 編碼表如下: 字母 編碼值 B, P, F, V 1 C, S, K, G, J, Q, X, Z 2 D, T 3 L 4 M, N 5 R 6 1.8 範例如下: 範例上面僅是參考測資。

試題 三:單精確度浮點二進制值轉換為十進制實數值系統(17 分)

說明:一個二進制 32 位元單精確度浮點表示值,電子電機工程協會(IEEE)的標準定義如下: 0 10 22 23 30 31 Exponent (8 bits) Mantissa (23 bits) Sign (1 bit)

最左邊的 bit 31 為一個符號位元 S (Sign),S 為 0 表示正值,而 S 為 1 則為負值;中間 bits 30~23 為八 個位元之指數值 E (Exponent),採用超 127 (Excess-127)格式,即原有指數值再外加 127,可將 2 的指 數次方 -127 至+128 改以 2 的指數次方 0 至 255 來表示;最右邊 bits 22~0 為 23 個位元之定點數值 M (Mantissa),此正規化(Nomalization)將第 22 位元左邊隱藏了小數點及小數點左邊一個 1,例如 1.011101…,而 23 個位元只記錄 011101…。 例題:一個二進制 32 位元單精確度浮點表示值如下所示,將它轉換為十進制實數值 R。

1 10000110 01000011110000000000000

轉換方法分為四個步驟敘述如下: Step1:首先得知最左邊 bit 31 之符號位元為 S = 1,可判斷此十進制實數值為負值;

(4)

Step2:其次得知中間 bits 30~23 之八個位元超 127 指數值為 E = 100001102 = 13410,將此超 127 指 數值 E 還原回來的 E = 134 - 127 = 7,即 2 的指數次方 7,也就是 27 Step3:接著得知最右邊 bits 22~0 之 23 個位元定點數值為 M = 010000111100000000000002,將此正 規化 M 值做反正規化(還原隱藏的小數點及小數點左邊一個 1),則還原回來的 M = 1.01000011110000000000002; Step4:最後還原回來二進制浮點表示為 -1.01000011110000000000002×27 = -10100001.1110000000 000002,再將此值轉換為十進制實數值 R = -161.875。 請參考以上例題與轉換方法,設計如下圖所示之系統,當滑鼠點一下 Random 鍵,該系統在 IEEE Excess-127 右方格子內自動產生對應 bit31、bits 30~23 及 bits 22~0 等二進制 32 位元單精確度浮點表 示值,且自動清除 Real number 右方格子內容;另可任意輸入或更改二進制 32 位元單精確度浮點表 示值,但仍限制維持在 32 位元。當滑鼠點一下 Convert 鍵,則將 IEEE Excess-127 右方二進制 32 位 元單精確度浮點表示值轉換為等效的正或負十進制實數值,並顯示在 Real number 的右方格子,小數 點值最多取十位。上述可重複操作,直至以滑鼠點一下 Exit 鍵,則離開此系統。 Convert Real number: IEEE 超 127 單精確度浮點二進制值轉換為十進制實數值系統 Exit IEEE Excess-127: Random 範例

輸入格式:當滑鼠點一下 Random 鍵或人工輸入,則在 IEEE Excess-127 右方格子內自動或人工產 生對應正好 32 位元單精確度浮點二進值,且自動清除 Real number 右方格子內容。 輸出格式:當滑鼠點一下 Convert 鍵,則將 IEEE Excess-127 之 32 位元單精確度浮點二進值轉換

為等效的正或負十進制實數值,顯示在 Real number 的右方格子內,小數點值最多取十 位。 Convert Real number: IEEE 超 127 單精確度浮點二進制值轉換為十進制實數值系統 Exit IEEE Excess-127: 01000011110000000000000 -161.875 Random 1 10000110

(5)

試題 四:資料序列之相似度計算程式(17 分)

說明:一、對於處理數字資料串列,可用於時間序列的處理,例如:多日的交易結果的成交值,也可 用於聲頻的特徵值的處理,例如:聲頻的共振峰值。對已有的多筆數字的資料串列,我們 可將其視為樣本資料,透過某種方法,可將這些樣本資料建立出一個樣本模型。若有一時 間序列的資料,或聲頻的共振峰資料,我們即可將此資料與樣本模型進行比對,之後,可 得一值,稱之為相似度,代表此資料與樣本模型接近的程度,相似度的值越大,接近的程 度越高。 二、今有三個數值串列可用以表示樣本模型,詳見圖 7 下方 3 個數值串列,其中數值串列 2 的相似度 為 1 (100%相似),其曲線如圖 1 中間粗線所示;在圖 7 中,對於數值串列 2,以 x=7 為例,數值為 19 時,則其相似度為 1。為了簡化解法,採用線性遞減的方式,數值>=22 時,則其相似度才降為 0; 數值<=17 時,則其相似度也降為 0。其相似度三角圖形如圖 7 上方所示,隨著數值的大小,以直線方 程式表示相似度的增減,且三角形的兩邊不一定是對稱。同理,在數值串列 2 中,再以x=15 為例, 數值為 13 時,則其相似度為 1,數值>=16 或<=10 時,其相似度均降至 0。。 圖 7 樣本模型 三、由圖 7 所示,依三個數值串列,我們得到的相似度模型圖,如圖 7 中間灰階區域所示,中 間粗線代表相似度為 1 的連線,上下兩邊的細線代表相似度降為 0 的連線。一旦獲得此相 似度模型,我們即可用來計算一個未知的資料串列,以求得其相似度。 四、對於未知的資料串列(見圖 8 下方之未知串列),在圖 8 中間以粗虛線段表示。其每一個資 料都與樣本模型對應的資料比對,如同圖 7 之x=7 或 x=15 的資料般,求其個別的相似度, 最後,再求此 21 個相似度的平均相似度,即代表此未知的資料串列與樣本模型相近的程 度。 圖 8 未知的資料串列與相似度模型之比對 五、設計步驟:

(6)

1. 依據 3 個資料串列建立相似度模型(如圖 7 中間灰階區域)。 2. 輸入未知的資料串列(如圖 8 之粗虛線段者),進行未知的資料串列與相似度模型之比對。 3. 輸出計算的結果。 輸入及輸出格式: 輸入格式(模型): 輸 入 格 式 ( 資 料 串 列 1): 輸出格式: 0.226984 或 輸 入 格 式 ( 資 料 串 列 2): 輸出格式: 0.794445 操作畫面: a. 主選單 b. 選項操作:輸入模型資料 c. 選項操作:計算平均相似度

(7)

試題 五:

2 維卷積(2D Convolution) (17 分)

說明:在求線性和時間不變系統的輸出O[m, n]時,常將輸入的 2 維信號 I[m, n] and 核 K[m, n] 做 2

維卷積,這可以表示如下式子:

∑ ∑

∞ −∞ = ∞ −∞ =

×

=

Θ

=

j i

j

n

i

m

K

j

i

I

n

m

K

n

m

I

n

m

O

[

,

]

[

,

]

[

,

]

[

,

]

[

,

]

(1) K[m, n]的中心是 K[0, 0],假如,核的大小是 3,此核的索引是-1, 0, 1,所以,K[0, 0]是在核的 中間。假設有一核如圖9 所示,此核大小是 3x3,即 m=3, n=3,核中之 9 個值為 a, b, c, …, i,核的原 點是(0, 0),是落在核的中央。假設要計算輸出 m=1, n=1 時,帶入公式(1),可以用圖 10 來表示,注意, 在做2 維卷積時,核(kernel)需要翻動(flipped),再跟輸入(input)重疊部分相乘。例如,如圖 10 所示, 輸入I[0, 0]是和核中的 i 相乘,輸入 I[2, 2]是和核中的 a 相乘。 圖 9 圖 10 另外,為了判斷輸入和輸出的相似度,常用的方法有以下三種方法:

1. 平均平方誤差(Mean Square Error,MSE):

[

]

∑∑

= =

=

H y W x

y

x

O

y

x

I

WH

MSE

1 1 2

]

,

[

]

,

[

1

(2)

2. 平均絕對誤差(Mean Absolute Error,MAE):

∑∑

= =

=

H y W x

y

x

O

y

x

I

WH

MAE

1 1

]

,

[

]

,

[

1

(3)

3. 峰值訊號雜訊比(Peak Signal to Noise Ratio):

MSE

PSNR

=

10

log

10

255

*

255

(4)

上述W 和 H 分別表示為寬度和高度,|.|表示絕對值。

(8)

請利用上述說明,寫一個程式,能完成以下功能要求: (1) 能讓使用者輸入 7x7 資料,這些資料要大於等於 0,小於等於 255。 (2) 能讓使用者輸入 3x3 核。 (3) 能讓使用者按<運算>執行,得到輸出 O。 (4) 將輸出 O 顯示出來。 (5) 計算輸出 O 和輸入 I 之相似度(MSE, MAE, PSNR),並顯示出來。 程式執行範例: 上圖從左邊開始,第 1 讓使用者輸入 7x7 輸入I 資料,第 2 讓使用者設定 3x3 核 K。

上圖是,第 3 讓使用者按<運算>執行,得到輸出 O。第 4 將輸出 O 顯示出來。同時,顯示MSE, MAE, PSNR

出來。

(9)

試題六:

搜尋字串並標示黃色背景顏色(16 分) 說明:可開啟檔案選擇介面,能顯示所在資料夾內附檔名為 txt 的檔案。 也可瀏覽資料夾或選擇欲開啟的文字檔,將選定的文字檔讀入並顯示在文字方塊中,如下圖所示。 進而輸入欲搜尋的字串,再按 “搜尋” 按鈕後,所有與輸入字串相同的文字皆會被標示黃色背景顏 色,並顯示找到的個數,如右上圖面。 若未輸入欲搜尋的字串,就按 “搜尋” 按鈕後,會顯示 "未輸入欲搜尋的字串" 。

(10)

數據

圖 3  圖 4  圖 5  圖 6  試題 二:名字編碼 (16 分) Soundex 索引系統的開發是為了將發音或拼字相似的名字編碼以方便取用。它被美國戶口普查局所採 用,許多州也用它來為駕照編碼。你的任務是讀取左邊 Name 文字框內一連串的名字,一個名字一行, 然後輸出 Soundex 碼  (每個名字一行)。  說明:  1  每個名字的長度從  1  到  20  個大寫字母  (ASCII  碼  65  到  90),長度不到  20  個字元的名字後面 不會補空白。  2  名字只會有大寫

參考文獻

相關文件

1.本次分區競賽試題為公開試題。(試題內容將不做任何百分之三十的調整) 2.參加競賽選手應於競賽開始前 30

請開啟 CSD03.csproj 專案的 Program.cs

能熟悉電腦概念,包括作業 系統、應用軟體和檔案輸出 入硬體設備的安裝、操作和 維護。2.

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系 統環境下,將給與的紙本或電子檔(如 excel

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系統環境 下,將給與的紙本或電子檔(如 excel

選取本地根資料夾Æ右 1Æ開新檔案Æ輸入檔案名稱( index.html),Enter 鍵Æ右 1Æ設成 首頁 Æ重複〝右 1〝 本地根資料夾〞 Æ開新檔案Æ輸入檔案名稱,Enter

(一)初試:採筆試方式,題目類型為選擇題,每科目題數各 50 題(每題 2 分,各題未作 答不予計分,答錯倒扣 0.6 分) 。初試成績達參加複試標準(初試科目其中

參、技術士技能檢定建築物室內設計乙級術 科試題.