[考題] 102年高點程式函授講解

看板Examination作者 (點點)時間12年前 (2013/07/01 21:28), 編輯推噓3(302)
留言5則, 2人參與, 最新討論串1/1
[考題] 國考歷屆考題與考題觀念討論(書裡看到的選這個)請附上想法、出處 最近在看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
就起始駐標1跟0的差別阿@@
07/01 21:46, 1F

07/01 21:47, , 2F
起始駐標0=>要算的位置不扣;起始駐標1=>要算的位置-1
07/01 21:47, 2F

07/01 22:07, , 3F
你剛好寫相反吧 row_major 跟 col_major算法剛好相反
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
asdd大 不說我還真的沒發現XD"
07/01 22:09, 5F
※ 編輯: ishtarmms 來自: 61.224.208.246 (07/01 22:37)
文章代碼(AID): #1HqOFjVT (Examination)