Re: [wizs] 巫師升等測驗題目四
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間17年前 (2008/11/11 10:44)推噓0(0推 0噓 0→)留言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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
35
58
120
255