[考題] 102年高點程式函授講解
[考題] 國考歷屆考題與考題觀念討論(書裡看到的選這個)請附上想法、出處
最近在看102年高點的程式設計函授
發現老師在教的快速算出陣列位址的方式好像怪怪的?
以101鐵路題目如下:
訊一整數陣列的每個元素是4個Bytes,而陣列A在記憶體的起始位址A[0,0,0]是500,
陣列維度大小為A[6,4,5],請分別以Row-Major及Column-Major回答A[4,3,2]所在位址。
以老師的算法是
4 3 2
行優先==>(((4*4*5)+(3*5)+2)*4)+500 = 888
6 4 5
-----------
4 3 2
列優先==>(((2*4*6)+(3*6)+4)*4)+500 = 780
6 4 5
-----------
可以我按照老師教的算法再算上面的範例就不對了~囧
100關務4題目是如下:
設A是一個M*N的二維整數陣列
Var A:array[l..m,l..n] of integer;
另設每個整數需要k個bytes,陣列A的開始位址為a。
以m=2, n=3, k=4, a=2000時,可以算出A[2,2]的位址以列為主時,值為2016
以行為主時,值為2012
但是以老師教的算法會是
2 2
行優先:(((2*3)+2)*4)+2000=2032
2 3
------
2 2
列優先:(((2*2)+2)*4)+2000=2024
2 3
------
有人知道這是怎麼一回事嗎囧?
因為我怎麼算都不對Q_Q
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.224.208.246
推
07/01 21:46, , 1F
07/01 21:46, 1F
→
07/01 21:47, , 2F
07/01 21:47, 2F
推
07/01 22:07, , 3F
07/01 22:07, 3F
→
07/01 22:08, , 4F
07/01 22:08, 4F
謝謝ASDD大,我終於知道了,在2維陣列的那題,目標要先各減一對吧?
至於row_major和col_major我真的寫相反了orz
推
07/01 22:09, , 5F
07/01 22:09, 5F
※ 編輯: ishtarmms 來自: 61.224.208.246 (07/01 22:37)