1. این پایگاه به ثبت ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ایران رسیده است.

    مهمان عزیز سپاس بابت بازدید شما از تالار گفتگوی دهه هفتادی ها.

    عضویت در انجمن رایگان بوده و برای عموم باز میباشد . با صرف 30 ثانیه یکی از اعضای دهه هفتادی ها شوید .

آرایه پویای دو بعدی در ++c

شروع موضوع توسط saeid-ha ‏Nov 10, 2013 در انجمن برنامه نویسی و طراحی سایت

  1. saeid-ha

    saeid-ha belong to autumn !...

    3,098
    11,982
    1,894
    Thoughtfulآرایههای دو بعدی کاربردهای بسیاری از جمله جداول و ماتریسها دارند. اهمیت تعریف آرایه های پویای دو بعدی کمتر از آرایههای یک بعدی نیست. آرایه های پویای دو بعدی یک ویژگی جالب در مقایسه با آرایه ایستا دارند: شما با تعریف پویای آرایه های دو بعدی میتوانید جداول غیرمستطیلی تشکیل بدهید. در واقع وقتی شما آرایه های دو بعدی را به صورت پویا ایجاد میکنید، این اختیار را دارید که تعداد ستونهای هر ردیف را متفاوت انتخاب کنید.

    به قطعه کد زیر توجه کنید:
    کد:

    int **table;
    cin >> n;
    table = new int*[ n ];
    register int i, j;
    for ( i = 1 ; i <= n ; i++ )
    {
    table[ i - 1 ] = new int[ i ];
    for ( j = 1 ; j <= i ; j++ )
    {
    table[ i - 1 ][ j - 1 ] = i * j;
    }
    }
    .
    .
    .
    for ( i = 0 ; i < n ; i ++ )
    {
    delete[] table[ i ];
    }
    delete[] table; این کد عدد n را از کاربر گرفته و نیمه پایینی جدول ضرب n در n را در یک آرایه پویا ذخیره میکند. جدول ضرب اعداد متقارن است و نیازی به ذحیره کردن اعداد همه خانههای جدول نیست. در نتیجه با آرایه پویای دو بعدی حافظه مصرفی تقریبا نصف میشود.
    متغیر table که به صورت table** تعریف شده است، یک اشارهگر به اشارهگر است. کامپایلر وقتی با دستور

    table = new int*[ n ];مواجه میشود، یک آرایه پویای یک بعدی به طول n از اشارهگرهای صحیح ایجاد میکند. پس عناصر

    table[ 0 ], table[ 1 ], ..., table[ n - 1 ]
    هر کدام یک اشارهگر از نوع صحیح هستند. حال با دستور

    table[ i - 1 ] = new int[ i ]
    برای هر اشارهگر یک آرایه پویای یک بعدی منسوب میکنیم.
    مثلا به ازای n = 3 عناصر table به صورت زیر هستند:

    کد:
    table[ 0 ][ 0 ]

    table[ 1 ][ 0 ], table[ 1 ][ 1 ]
    table[ 2 ][ 0 ], table[ 2 ][ 1 ], table[ 2 ][ 2 ] با استفاده از چنین ساختاری به سادگی میتوانید ماتریسها و سایر دادهها با فرم چدول دو بعدی را پیادهسازی کنید. بزرگترین مزیت این حالت به حالت آرایه استاتیک استفاده صحیح از حافظه در دسترس است.
     
    sepideh.S از این پست تشکر کرده است.
  2. sepideh.S

    sepideh.S Ceramist

    970
    3,329
    436
    دمتون گرم
    برا تدریسم نیاز داشتم ب ی نمونه آرایه ی 2 بعدی
     
    saeid-ha از این پست تشکر کرده است.
  3. saeid-ha

    saeid-ha belong to autumn !...

    3,098
    11,982
    1,894
    حالا که فهمیدی یه نمونه کلی و یه توضیح مختصر بده ببینم چه برداشتی داشتی؟
     
  4. sepideh.S

    sepideh.S Ceramist

    970
    3,329
    436
    Thoughtfulآرایههای دو بعدی کاربردهای بسیاری از جمله جداول و ماتریسها دارند. اهمیت تعریف آرایه های پویای دو بعدی کمتر از آرایههای یک بعدی نیست. آرایه های پویای دو بعدی یک ویژگی جالب در مقایسه با آرایه ایستا دارند: شما با تعریف پویای آرایه های دو بعدی میتوانید جداول غیرمستطیلی تشکیل بدهید. در واقع وقتی شما آرایه های دو بعدی را به صورت پویا ایجاد میکنید، این اختیار را دارید که تعداد ستونهای هر ردیف را متفاوت انتخاب کنید.
    :35: :35:
     
  5. saeid-ha

    saeid-ha belong to autumn !...

    3,098
    11,982
    1,894
    پس الکی قومپوز در نکن!
     
  6. sepideh.S

    sepideh.S Ceramist

    970
    3,329
    436
    قوپی نی
    کلن با آرایه مشکل داشتم و دارم ه
    میشه قبلش ی دور میرم دوره میکنم بعد
    بله جناب استاد :(
     
  7. سلام عزیزان
    میتونید از کتاب زیر استفاده کنید فکنم به دردتون بخوره

    ++c به زبان فارسی

    زبان برنامه‌نویسی ++C (سی پلاس پلاس) یک زبان برنامه‌نویسی رایانه‌ای همه‌منظوره، شیءگرا، سطح بالا و چندرگه (که از برنامه‌نویسی رویه‌ای، تجرید داده‌ها و برنامه‌نویسی شیءگرا پشتیبانی می‌کند)، عمومی و با قابلیت‌های سطح بالا و سطح پایین می‌باشد.
    این زبان دارای قابلیت‌های انواع داده ایستا، نوشتار آزاد، چندمدلی، معمولاً زبان ترجمه شده با پشتیبانی از برنامه‌نویسی ساخت‌یافته، برنامه‌نویسی شیءگرا، برنامه‌نویسی جنریک است. ++C به همراه جد خود C از پرطرفدارترین زبان‌های برنامه‌نویسی تجاری هستند.
    زبان ++c یک زبان سطح میانی در نظر گرفته می‌شود. این زبان دارای قابلیت زبان‌های سطح بالا و پایین به‌صورت هم‌زمان است. زبان ++C توسط بی‌یارنه استراس‌تروپ دانمارکی در سال ۱۹۷۹ درآزمایشگاه‌های بل (Bell Labs)، برای بهبود زبان سی و بر مبنای آن ساخته شد و آن را “C با کلاس” (C With Classes) نام‌گذاری نمودند. در سال ۱۹۸۳ به ++c تغییر نام داد. توسعه با اضافه نمودن کلاس‌ها و ویژگی‌های دیگری مانند توابع مجازی، سربارگزاری عملگرها، وراثت چندگانه، قالب توابع، و پردازش استثنا انجام شد. این زبان برنامه‌نویسی در سال ۱۹۹۸ تحت نام ISO/IEC ۱۴۸۸۲:۱۹۹۸ استاندارد شد. نسخه فعلی استاندارد این زبان ISO/IEC ۱۴۸۸۲:۲۰۰۳ است. نسخه جدیدی از استاندارد (که به صورت غیررسمی C++۰x نامیده می‌شود) در دست تهیه است.


    برای مشاهده لینک ها لطفا ثبت نام کنید و یا اگر حساب کاربری دارید وارد شوید



    220.