12 آبان 1390, 12:01 ب.ظ
12 آبان 1390, 01:58 ب.ظ
طبق فرمولی که توی کتاب مقسمی هست جواب گزینهی ۴ هست!فرمول روش سطری اینه:
12 آبان 1390, 02:59 ب.ظ
تعریف زیر رو در نظر بگیرید:
[tex]A:array[1..m,1..n]\ of \ dataType[/tex]
اگر قرار باشه به عنصر سطر iام و ستون jام رسید باید اول i-1 سطر رو به طور کامل رد کرد.با توجه به اینکه هر سطر هم n ستون داره پس باید [tex](i-1)*n[/tex] عنصر رو رد کرد.حالا در ابتدای سطر iام هستیم.باید j عنصر بریم جلو تا برسیم به خونه jام از سطر i ام.یعنی فرمول زیر:[tex]((i-1)*n j)[/tex]
چون هر خونه از آرایه به اندازه [tex]sizeof(dataType)[/tex] حافظه مصرف میکنه پس کل فرمول بالا ضرب میشه در فرمول اولی.یعنی میشه: [tex]((i-1)*n j)*sizeof(dataType)[/tex]
و در نهایت به فرمول بالا باید آدرس شروع قرارگیری آرایه در حافظه اضافه بشه.یعنی: [tex]((i-1)*n j)*sizeof(dataType) \alpha[/tex]
12 آبان 1390, 04:05 ب.ظ
به نظرم واسه تعداد ابعاد بیشتر هم همین طوره یعنی اگر فرض کنید n بعد داشته باشید و هر بعد Xiتا عنصر داشته باشه برای این که عنصر (E1,E2,E3,..,Em) رو پیدا کنید باید عنصر اول یعنی E1 رو در تعداد عناصر در تمامی بعدها به غیر از بعد اول صرب می کنیم و دومین عنصر یعنی E2 رو در تعداد عناصر موجود در تمامی ابعاد به جز دو بعد اول ضرب می کنیم (از X3 تا اخر) و در نهایت با Em جمع کرده و حاصل کل رو در سایز اون نوع ضرب کرده و با ادرس شروع جمع می کنیم.