تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 7 از 7

نام تاپيک: کمک در آرایه ها در C++

  1. #1
    داره خودمونی میشه Vb1471's Avatar
    تاريخ عضويت
    Apr 2010
    محل سكونت
    تهران
    پست ها
    184

    10 کمک در آرایه ها در C++

    سلام دوستان من یک برنامه نوشتم که میخوام یک آرایه 100 عنصری رو تعریف کنه و مقادیر رو داخلش قرار بده بعدش میخوام مثلا یک خانه به آخرین خانه آرایه اضافه کنم و مقدار

    بهش بدم و در آخر هم میخوام این امکان رو داشته باشه که وسط آرایه یک خانه اضافه و بقیه خانه ها رو شیفت بدم به سمت راست .


    ممنون میشم اگر کمکم کنید . فقط قسمت شیفت دادن و اضافه کردن رو مشکل دارم .


  2. #2
    کـاربـر بـاسـابـقـه god of war 2's Avatar
    تاريخ عضويت
    Jun 2007
    پست ها
    585

    پيش فرض

    سلام.
    کارتون به عنوان یک نمونه تمرینی خوبه ولی در واقعیت کاملا اشتباه هست. هرنوع تغییر در سایز و اندازه آرایه های خام مقدار زیادی (با توجه به اندازه آرایه) سربار کپی رو شامل میشه. یعنی زمانی که شما یک خانه به آرایه اضافه کنید در اصل در نقطه دیگری از حافظه آرایه ای با طول جدید ایجاد میشه سپس کل آرایه قبلی در اون کپی میشه و در نهایت آرایه اولیه آزاد میشه.
    پیشنهاد میکنم از vector استفاده کنید که این عملیات رو بصورت بهینه شده و با الگوریتم های بهتر برای شما انجام میده. در اصل vector همان آرایه داینامیک هست.
    vector:
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

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

  3. این کاربر از god of war 2 بخاطر این مطلب مفید تشکر کرده است


  4. #3
    داره خودمونی میشه Vb1471's Avatar
    تاريخ عضويت
    Apr 2010
    محل سكونت
    تهران
    پست ها
    184

    پيش فرض

    ممنون دوست عزیز بابت راهنمایی خوبتون . من دقیقا همچین چیزی میخوام :


    اول یک آرایه تعریف کنم :


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




    دوم : یک خانه به آرایه اضافه کنم :
    که متاسفانه کدش رو نمیدونم ؟ ولی میدونم که باید آخرین خانه آرایه را پیدا کنی و بعد بهش یکی اضافه بشه .



    سوم اینکه : وسط آرایه هر جایی خواستم یک خانه اضافه کنم و بقیه باید شیف برن به راست ولی کدش رو نمیدونم باز :




    ممنون میشم با توجه به توضیحات این کد رو در اختیار بنده قرار بدید
    Last edited by Vb1471; 19-10-2012 at 15:56.

  5. #4
    کـاربـر بـاسـابـقـه god of war 2's Avatar
    تاريخ عضويت
    Jun 2007
    پست ها
    585

    پيش فرض

    که متاسفانه کدش رو نمیدونم ؟ ولی میدونم که باید آخرین خانه آرایه را پیدا کنی و بعد بهش یکی اضافه بشه .
    کد و الگوریتم این قسمت داخل پست قبلی بود. در ++C امکان از پیش تعریف شده ای برای اینکه شما یک خانه به انتهای یک آرایه خام اضافه کنید وجود ندارد و خود شما باید این کارو انجام بدید مثل همون نمونه ایی که مثال زدم.

    سوم اینکه : وسط آرایه هر جایی خواستم یک خانه اضافه کنم و بقیه باید شیف برن به راست ولی کدش رو نمیدونم باز :
    این کار هم دقیقا مثل نمونه قبلی هیچ تابع یا متود از پیش تعریف شده ایی ندارد و باز هم خود شما باید این کارو انجام بدید.
    ساده ترین الگوریتمی که الان به ذهنم میرسه اینه که آرایه ایی با طول جدید ایجاد کنید و توسط دستور for تمام آرایه قبلی رو تا به خانه اظافه شده پرکنید و وقتی که به خانه اضافه شده رسیدید مقدار جدید را پرکنید و از ادامه دوباره خانه هارا از آرایه قبلی به آرایه جدید منتقل کنید و در آخر هم آرایه قبلی رو آزاد کنید. البته راه هار دیگری هم هست ولی ساده ترین راه فکر میکنم همین باشه.
    و در آخر هم دوباره بگم که استفاده از چنین چیزی در یک نرمافزار کاملا غلط هست و فقط جنبه تمرینی دارد که باز هم به نظرم نیاز به تمرین هم ندارد چون عملا استفاده زیادی ندارد بجز موارد خاص.

  6. این کاربر از god of war 2 بخاطر این مطلب مفید تشکر کرده است


  7. #5
    داره خودمونی میشه Vb1471's Avatar
    تاريخ عضويت
    Apr 2010
    محل سكونت
    تهران
    پست ها
    184

    پيش فرض

    بیایم یک کاری بکنیم اصلا یک ارایه 100 تایی تعریف کنیم بعد 10تا خانه را پر کنیم بعد در آخر بیایم بگیم در خانه 11 بیا این عدد رو از ورودی بگیر و قرار بده و اما برای شیفت دادن در وسط آرایه این کد رو اگر میشه با ذکر

    مثال قرار بدید ممنون میشم . اگر میشه این کار رو با وکتور انجام بدید .
    Last edited by Vb1471; 19-10-2012 at 21:41.

  8. #6
    داره خودمونی میشه BehiJJ's Avatar
    تاريخ عضويت
    Sep 2011
    محل سكونت
    تهران
    پست ها
    57

    پيش فرض

    سلام دوستان
    من تو تاپیک آموزش مبتدی مطلب گذاشتم ولی جواب درست و حسابی نگرفتم.
    من می خام برنامه ای (همراه با الگوریتم) بنویسم که دو آرایه از نوع عدد صحیح که هر کدام 10 عنصر داشته باشه و عناصر متناظر رو با هم جمع و در آرایه سوم قرار بده.
    اگه براتون امکان داره به زبون C بهم بگین، خیلی فلفوره.

  9. #7
    کـاربـر بـاسـابـقـه god of war 2's Avatar
    تاريخ عضويت
    Jun 2007
    پست ها
    585

    پيش فرض

    بیایم یک کاری بکنیم اصلا یک ارایه 100 تایی تعریف کنیم بعد 10تا خانه را پر کنیم بعد در آخر بیایم بگیم در خانه 11 بیا این عدد رو از ورودی بگیر و قرار بده و اما برای شیفت دادن در وسط آرایه این کد رو اگر میشه با ذکر

    مثال قرار بدید ممنون میشم . اگر میشه این کار رو با وکتور انجام بدید .
    توسط وکتور این کار بسیار ساده انجام میشود. مثال:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    من می خام برنامه ای (همراه با الگوریتم) بنویسم که دو آرایه از نوع عدد صحیح که هر کدام 10 عنصر داشته باشه و عناصر متناظر رو با هم جمع و در آرایه سوم قرار بده.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by god of war 2; 22-10-2012 at 12:59.

  10. 2 کاربر از god of war 2 بخاطر این مطلب مفید تشکر کرده اند


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •