Re: [wizs] 巫師升等測驗題目四

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間17年前 (2008/11/11 10:44), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《laechan (小太保)》之銘言: 這程式我剛寫好了。 程式位置: /u/l/laechan/test4.c 程式行數: 157 行(小程式) 宣告了 abc 跟 d 兩個全域變數. 大概花了半小時左右完成. : 底下是一個陣列資料... : mixed abc = ({ "a", "b", "b", "c", "c", "c" }); : 撰寫一個房間物件存放上面的陣列,然後 add_action 幾個指令.. : 1)當使用者輸入 test41 a 時,能秀出 "a" 這個字串在陣列中的 :  第幾個位置; 比方輸入 test41 b 時能秀出它在第 2 及第 3 個 :  位置(或陣列位置第 1 & 第 2 個)。而如果輸入的字串沒有在上 :  面的陣列中時(如輸入 test41 d), 就顯示相關訊息。 > test41 0 test41: 你輸入的[0]不在 abc 這個陣列中喔. > test41 b test41: [b]位於 abc 這個陣列中的第 2 3 個位置. > test41 c test41: [c]位於 abc 這個陣列中的第 4 5 6 個位置. : 2)當使用者輸入 test42 a 時,你所撰寫的程式可以把 abc 中的 : "a" 去掉, 剩下的 abc 會變成 ({"b","b","c","c","c"}), 請 :  以 identify 的方式把「剩下的 abc」秀出。其它以此類推。 : 而如果 test42 後面接的東西,例如 test42 d, d 不在 abc : 裡頭時就不改變 abc 這個陣列的資料並顯示相關訊息。 > test42 0 test42: 你輸入的[0]不在 abc 這個陣列中喔. > test42 a test42: 原先的 abc = ({ "a", "b", "b", "c", "c", "c" }) 你指定要刪去 abc 裡頭的 [a] 資料. 資料已刪除, 新的 abc = ({ "b", "b", "c", "c", "c" }) > test42 b test42: 原先的 abc = ({ "b", "b", "c", "c", "c" }) 你指定要刪去 abc 裡頭的 [b] 資料. 資料已刪除, 新的 abc = ({ "c", "c", "c" }) : 3)當使用者輸入 test43 d 時,你所撰寫的程式可以為 abc 這個 :  陣列補上 "d" 這個資料,此時的 abc 就會多出一個新的資料 : 即 abc = ({"a","b","b","c","c","c","d"}) : 以 identify 的方式把新的 abc 顯示出來。其它以此類推。 : (即不管 test43 後面接什麼,abc 都要能把它包含進去) > test43 0 test43: 原先的 abc = ({ "a", "b", "b", "c", "c", "c" }) 你指定要為 abc 這個陣列增加 [0] 資料. 資料已增加, 新的 abc = ({ "a", "b", "b", "c", "c", "c", "0" }) > test43 123 test43: 原先的 abc = ({ "a", "b", "b", "c", "c", "c", "0" }) 你指定要為 abc 這個陣列增加 [123] 資料. 資料已增加, 新的 abc = ({ "a", "b", "b", "c", "c", "c", "0", "123" }) : 4)當使用者輸入 test44 n 時,代表使用者打算刪掉 abc 這個陣 :  列中的第 n 個元素,例如 test44 1 代表要刪掉 abc[0], 請將 :  test44 的執行結果以 identify 的方式秀出. 而如果指定的 n : 不在 abc 的陣列大小內時, 就顯示無法執行的相關訊息. > test44 test44: 請隨便輸入一個數字. > test44 1 test44: 原先的 abc = ({ "a", "b", "b", "c", "c", "c" }) 你指定要刪除這個陣列中的第 1 筆資料. 這筆資料的內容是 [a]. 資料已刪除, 新的 abc = ({ "b", "b", "c", "c", "c" }) > test44 5 test44: 原先的 abc = ({ "b", "b", "c", "c", "c" }) 你指定要刪除這個陣列中的第 5 筆資料. 這筆資料的內容是 [c]. 資料已刪除, 新的 abc = ({ "b", "b", "c", "c" }) > test44 2 test44: 原先的 abc = ({ "b", "b", "c", "c" }) 你指定要刪除這個陣列中的第 2 筆資料. 這筆資料的內容是 [b]. 資料已刪除, 新的 abc = ({ "b", "c", "c" }) : 底下是 deep 升 adm 的加考項目.. : 5)當使用者輸入 test45 時, 請宣告一個 mapping 變數, 程式能 :  將 abc 對映到該 mapping 變數中存放, 如底下... : mapping d = ([ "a" : 1, : "b" : 2, : ... : ]); : 亦即 d 儲存的是 abc 陣列中的元素, 每一個的個數是多少. : 請以 identify 的方式秀出 d。 > test45 test45: 陣列 abc = ({ "a", "b", "b", "c", "c", "c" }) 原先的 mapping d = ([ ]) 將 abc 匯入 d 之後的 mapping = ([ "b" : 2, "c" : 3, "a" : 1 ]) : 6)現在你有 d 了,當使用者輸入 test46 時,程式可以 keys(d) : 將 d 的 key 讀出來,然後把這個陣列依 "a", "b", "c" ..的 : 字母順序重新排列,例如讀出來的陣列假設是 : ({"c", "b", "c", "a", "b"}) 請將它重新排列為 : ({"a", "b", "b", "c", "c"}) 這裡意思錯了,算了當做沒這題。 這題的原意是,把 keys 讀出來,因為以上例來說 "b" 的值是 2, 這時就依字母順序以及後面的數字, 來重新還原 abc : 額外項目 : 1)test41~test46 可交互測試。(不做可交互測試的也可) test41~test44 可交互測試, 而不論怎麼測, test45 都可以把 abc 匯進 d 中. : 2)允許使用者清空 abc 的資料後自建供測試的資料。 使用 test42 或 test44 1 就可以一直把 abc 清到資料完全消失. 然後就可以用 test43 來建新資料. : 3)陣列字串元素的排列順序部份,如果該字串並非單一字母時, :  以該字串的「第一個字母」做排序依據。 > test47 test47: 原先的陣列 abc = ({ "c", "b", "a", "b", "d", "c" }) 新的陣列 abc = ({ "a", "b", "b", "c", "c", "d" }) : 其它說明同 3556 篇。 : Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.170.230.246
文章代碼(AID): #196F6KrE (mud_sanc)
文章代碼(AID): #196F6KrE (mud_sanc)