![]() |
|
|||||||
| 論壇說明 |
|
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
|
主題工具 | 顯示模式 |
|
|
#16 (permalink) |
|
長老會員
![]() |
第一題
A(0,0)位於 1204(8)= 644(10) A(2,2)位於 1244(8)= 676(10) 2者的位置相差了 32.... 而題目並沒有提到 每個元素佔用多少空間,因此一般來說, d=1 接著我們得先算出 陣列的大小 依照你的書本...第二張圖的公式 若陣列大小為:A(s1 : u1, s2 : u2) 則... 陣列的列數為:u1 - s1 + 1 陣列的行數為:u2 - s2 + 1 而計算位址A(i,j)的公式為 A0 + ((i - s1) * n * d) + (( j - s2 ) * d) 或是 A0 + ((i - s2) * m * d) + (( j - s1 ) * d) 用第一種來算的話... 因為A(0,0)一般來說是最小的位置,再加上課本沒有額外設定 負數的座標,所以可以確定 s1=0, s2=0 將A(2,2)帶進公式計算 676 = 644 + ((2 - s1) * n * 1) + (( 2 - s2 ) * 1) 32 = (2 - s1)n + 2 - s2 30 = (2 - s1)n - s2 0 = (2 - s1)n - s2 - 30 0 = 2n - 30 n = 15 (行數有15行) 最後可以知道陣列大小為 A(0:m, 0:14) 也因為題目只問到A(3,3),所以可以假設 m為4 ~ 無限大... 也就是說整個陣列是... A(0:3, 0:14) A(0:4, 0:14) A(0:5, 0:14) ... ... A(0:100, 0:14) ... A(0:無限大, 0:14) 故...一個一個列出來的話... A(0:0) = 644 A(0:1) = 645 ... A(0:10) = 654 ... A(0:14) = 658 A(1:0) = 659 A(1:1) = 660 ... A(1:14) = 673 A(2:0) = 674 A(2:1) = 675 A(2:2) = 676 ... A(2:14) = 688 A(3:0) = 689 A(3:1) = 690 A(3:2) = 691 A(3:3) = 692(10進位) = 1264(8進位) 如果要直接套公式... 計算位址A(3,3)的公式 A0 + ((i - s1) * n * d) + (( j - s2 ) * d) = 644 + ((3 - 0) * 15 * 1) + (( 3 - 0 ) * 1) = 644 + 45 + 3 = 692(10進位) = 1264(8進位) ================================ 我在算題目時,基本上是不用公式的, 但你現在學的還沒有到程式部份,還是理論,所以必須要去了解公式在寫些什麼... 不然後面什麼都不用玩了... 課本的題目都是依順序排列的, 第一題沒有算出來,第二題一定看不懂,第三題也不用看了... 後面就都完了... (公式看不懂要問老師, 不要什麼都不問, 再不然問妹妹也可以呀) |
|
|
送花文章: 4036,
|
|
|
相似的主題
|
||||
| 主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
| 心測 - 衣服顏色看你走什麼運 | crd1871 | 星座命理討論區 | 5 | 2007-08-20 02:03 AM |
| 最近想買notebook, 有經驗的人來幫忙討論一下唄... | vanderwall | 硬體疑難使用問題討論區 | 3 | 2004-10-07 10:33 PM |