اطلاعیه

Collapse
No announcement yet.

آرایه ها در زبان c

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    آرایه ها در زبان c

    سلام به همه دوستان برنامه نویس
    من میخوام یه سری اطلاعات رو در یه آرایه یه بعدی در چند مرحله قرار بدم
    مثلا اگه آرایه 120 عضو داشته باشه در طول 100 مرحله ودر هر مرحله 12 خونه از آرایه پر شه
    این کار رو با زبان c میشه انجام داد ؟؟؟ اگه میشه چطوری؟؟؟

    #2
    پاسخ : آرایه ها در زبان c




    من سوالت خوب متوجه نشدم و شاید جوابی که میدم چیزی نباشه که دنبالشی
    اول از همه یه حلقه میسازی که 100 بار تکرار بشه
    داخل اون یه حلقه دیگه میزاری که 12 بار تکرار بشه
    داخل حلقه دوم باید آرایه پر کنی برای این کار یه آدرس پایه نیاز داری که در ابتدا 0 هست
    آدرس پایه با مقدار شمارنده حلقه دوم جمع میکنی و به عنوان ایندکس آرایه استفاده میکنی
    وقتی حلقه دوم تموم میشه باید در هر دور از حلقه اول 12 تا به آدرس پایه اضافه کنی و چون این دستور بعد از حلقه دوم اومده پس جمعا 108 = 99 * 12 آدرس پایه در دور آخر حلقه اول میشه که با 12 دور حلقه دوم جمعا 120 خونه آرایه پر میشه





    unsigned short i,j,base;
    unsigned short array[100];




    base = 0;
    for(i=0; i<100; i++){
    for(j=0; j<12; j++){
    array[base+j] = 0x00;
    }
    base += 12;
    }
    [glow=red,2,300]تاپیک های ایجاد شده[/glow]

    دیدگاه


      #3
      پاسخ : آرایه ها در زبان c

      سوال رو درست متوجه شدید
      فقط میخوام بدون منظورتون از آدرس پایه ،آدرس اولین خونه آرایه در حافظه هست یا باید صفر باشه حتما؟؟
      مثلا [0]array &

      دیدگاه


        #4
        پاسخ : آرایه ها در زبان c

        نوشته اصلی توسط a.moghadam
        سوال رو درست متوجه شدید
        فقط میخوام بدون منظورتون از آدرس پایه ،آدرس اولین خونه آرایه در حافظه هست یا باید صفر باشه حتما؟؟
        مثلا
        • [li]array &[/li]
          [li][/l][/l]
          • [li]خونه اول آرایه یا همون [array[0
            به این روش میگن آدرس دهی با شاخص یا آدرس دهی با ایندکس یا آدرس دهی نسبی یا هر چیز دیگه
            آدرس پایه درواقع محدوده آدرس دهی برای ما فراهم میکنه
            تو این مثال ما میخوایم هر بار 12 خونه آرایه مقدار دهی کنیم بنابراین به یک ایندکس نیاز داریم که در هر مرحله بتونیم به بخش خاصی از آرایه دسترسی داشته باشیم
            چون میخوایم از خونه 0 حافظه شروع کنیم آدرس پایه 0 قرار میدیم
            وقتی آدرس پایه صفر هست تو حلقه دوم J از 0 تا 11 تغییر میکنه که جمعش با آدرس پایه باعث میشه خانه های 0 تا 11 در دسترس قرار بگیرن
            تو حلقه بعدی با اجرای دستور base += 12 عدد 12 با J جمع میشه که خانه های 12 تا 23 اینبار در دسترس قرار میگیره
            باز در دور سوم مقدار base 24 میشه و ایندفعه خانه های 24 تا 35
            این عمل 99 بار اتفاق میفته تا مقدار base برابر 108 بشه که بعد از جمع شدن با J خانه های 108 تا 119 آرایه انتخاب میکنه
            به این ترتیب تمام خانه های آرایه از 0 تا 119 انتخاب و مقدار دهی میشه
            در آخر هم مقدار base برابر 120 میشه که تاثیری در برنامه نداره و حلقه خاتمه یافته[/li]
        [glow=red,2,300]تاپیک های ایجاد شده[/glow]

        دیدگاه

        لطفا صبر کنید...
        X