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

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




صفحه 245 از 326 اولاول ... 145195235241242243244245246247248249255295 ... آخرآخر
نمايش نتايج 2,441 به 2,450 از 3257

نام تاپيک: سوالات مبتدی و عمومی (++C, C) خود را اینجا بپرسید

  1. #2441
    داره خودمونی میشه Mohammad_Virus's Avatar
    تاريخ عضويت
    Apr 2009
    محل سكونت
    کاشان
    پست ها
    73

    پيش فرض

    عزيز شما با كد بالا يه رشته تعريف كرديد به اسم s. ولي!!!!در 'حقيقت' يك اشاره گر تعريف كرديد كه به خانه اي از حافظه از اشاره كرده و آن و خانه هاي متوالي بعد از آن (كه به صورت يك بايتي در نظر گرفته ميشوند،چون از نوع كاراكتر تعريف شدن) را مقدار دهي ميكند.
    الان در اولين خانه مقدار f و در ٤ خانه ي بعدي نيز مقدار f مقداردهي شده.
    شما با دستور s[0] ميتونيد به اولين خانه ي حافظه اي كه s اشاره ميكنه دسترسي پيدا كنيد كه f هست.يعني دقيقا ميتونيد به صورت يك آرايه ،ولي نامحدود و ناثبات رفتار كنيد.
    براي اينكه اجازه ي overwrite شدن رو به اون فضايي از حافظه كه ميخوايم در اختيار نداشته باشم رو نديم،بايد از كامپيلر درخواست كنيم كه او حافظه رو برامون رزرو كنه و در اختيار زيربرنامه اي ديگر نزاره.
    در سي با تابع malloc كه قبلا توضيح دادم و در سي ++ با تابع new قابل دسترسي است.

    Mytype *fb=new Mytype [n];
    كه mytype نوع داده مون هست،در اصل نوع ترتيب ذخيره سازي بلوك هاي حافظه است و ميتونه ثابت يا اعشاري و.. باشه.n هم تعداد خانه هاي حافظه اي است از نوع داده ي مورد نظر هست.fb هم اسم اشاره گر مورد نظره.
    يادت باشه كه mytype ها بايد يكسان باشند و در آخر براي داشتن برنامه اي بهينه،بعد از اتمام استفاده ،آن مقدار حافظه ي ذخيره شده رو آزاد كني از طريق تابع delete.
    مثال:

    int *mohammad=new int [100];

    delete [100] mohammad;

    اين دقيقا كاري هست كه كامپايلر،وقتي كاربر يك آرايه تعريف ميكنه انجام ميده.
    ولي،مهمترين تفاوتش اين هست كه مقدار تعداد خانه هاي حافظه در آرايه "بايد" قبل از زمان كامپايل مشخص باشه ،اون هم به مقدار ثابت(عدد) ولي در ساختار بالا،اينطور نيست.به همين دليل به اين ميگيم آرايه ي پويا.
    مثلا در مرتب سازي mergesort مرتب آرايه به دو زير آرايه تبديل ميشن و اندازه ي زير آرايه ها بستگي به اندازه ي آرايه و اينكه كدامين بازگشت هست ربط داره و نميشه مقدار دهيه اوليه كرد و اينجا به اين ساختار نياز پيدا ميكني.
    در نهايت هم اين هم بگم كه ،با تابع free() در ساختار malloc ميتونيد حافظه ي درخواست شده را آزاد كنيد.

    موفق باشي محمد.

    Mehrdad Sh.
    باز هم دمت گرم

    جالبه

    استادمون هم ازینا استفاده می کرد و آرایه های پویا رو با new تعریف می کرد ولی توضیحات شما کاملش کرد

    فقط چن تا سوال دیگه
    خب اینطور که شما گفتید این نوع تعریف آرایه کاراکتری در واقع رشته هستش و استادمون هم رشته ها رو اینطوری بهمون معرفی کرده و حرفی از متغیر های string نزده. اما ایشون برای خواندن و چاپ این نوع رشته ها در c++ به روش c عمل می کردن و از scanf و printf استفاده می کردن. من تونستم با scanf رشته رو بخونم ولی با printf موفق به چاپش نشدم. شما ایده ای برای چاپش ندارید؟ فقط میشه از حلقه استفاده کرد؟
    ممنون

    راستی اگه کسی جواب [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] رو میدونه ممنون میشم راهنمایی کنه

  2. #2442
    داره خودمونی میشه antengogoli's Avatar
    تاريخ عضويت
    Nov 2012
    محل سكونت
    تهران
    پست ها
    37

    پيش فرض

    دوستان کسی نمی تونه جواب سوال منو بده !!!؟
    من اگر بخوام یک کاراکتر رو به نوع یک کلاس تبدیل کنم باید چیکار کنم یا از چه تابعی استفاده کنم!!!؟
    خواهشا کمکم کنید

  3. #2443
    اگه نباشه جاش خالی می مونه mehrdad_joon's Avatar
    تاريخ عضويت
    Jun 2009
    محل سكونت
    Hotel EJB
    پست ها
    450

    پيش فرض

    باز هم دمت گرم

    جالبه

    استادمون هم ازینا استفاده می کرد و آرایه های پویا رو با new تعریف می کرد ولی توضیحات شما کاملش کرد

    فقط چن تا سوال دیگه
    خب اینطور که شما گفتید این نوع تعریف آرایه کاراکتری در واقع رشته هستش و استادمون هم رشته ها رو اینطوری بهمون معرفی کرده و حرفی از متغیر های string نزده. اما ایشون برای خواندن و چاپ این نوع رشته ها در c++ به روش c عمل می کردن و از scanf و printf استفاده می کردن. من تونستم با scanf رشته رو بخونم ولی با printf موفق به چاپش نشدم. شما ایده ای برای چاپش ندارید؟ فقط میشه از حلقه استفاده کرد؟
    ممنون

    راستی اگه کسی جواب [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] رو میدونه ممنون میشم راهنمایی کنه
    عزيز string ها در اصل همون كاراكترهاي متواليه.
    متاسفانه براي چاپ رشته تنها راهي كه وجود داره چاپ تك تك بلوك هاي رشته(يا همون آرايه) است كه با يك حلقه به انجام ميرسه.
    توي اين كه مشكلي نداريد؟

    Mehrdad Sh.

  4. 2 کاربر از mehrdad_joon بخاطر این مطلب مفید تشکر کرده اند


  5. #2444
    کـاربـر بـاسـابـقـه szh_1367's Avatar
    تاريخ عضويت
    Apr 2007
    پست ها
    1,007

    پيش فرض

    دوستان کسی نمی تونه جواب سوال منو بده !!!؟
    من اگر بخوام یک کاراکتر رو به نوع یک کلاس تبدیل کنم باید چیکار کنم یا از چه تابعی استفاده کنم!!!؟
    خواهشا کمکم کنید
    سوال شما رو درست متوجه نشدم اگر بیشتر توضیح داده بودید یا حداقل کدی قرار داده بودید بهتر متوانستم راهنمائی کنم

    اما در حالت کلی [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] رو ببین در مورد casting توضیحاتی داده

  6. #2445
    داره خودمونی میشه antengogoli's Avatar
    تاريخ عضويت
    Nov 2012
    محل سكونت
    تهران
    پست ها
    37

    پيش فرض

    سوال شما رو درست متوجه نشدم اگر بیشتر توضیح داده بودید یا حداقل کدی قرار داده بودید بهتر متوانستم راهنمائی کنم

    اما در حالت کلی [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] رو ببین در مورد casting توضیحاتی داده
    من یک متغیر دارم از نوع charمی خوام اینو بریزم توی یک متغیری (یک شی)که از کلاس operatorsکه توی برنامم تعریف کردم و کلاسمم چیز خاضی نداردفقط یه تابع!!!
    این یه قسمت از کدمه
    class operators
    {
    public:
    virtual float calculate(float ,float=0){return 0;};


    };
    class Breanch:public Expression
    {
    operators node;
    Expression right,left;
    public:
    Breanch(char ,Expression &l,Expression &r);
    // Breanch(char *,Expression &l);
    virtual float value(){
    return node.calculate(right.value(),left.value());}
    };
    Breanch::Breanch(char a,Expression &l,Expression &r)
    {
    node=؟؟؟؟؟؟؟؟
    right=r;
    left=l;
    }
    Last edited by antengogoli; 25-05-2013 at 12:13.

  7. #2446
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Mar 2013
    محل سكونت
    پشت بوم خونه کــــاغذی
    پست ها
    295

    پيش فرض

    با سلام

    چند ماه و اندی هست داریم C++ یاد می گیریم....

    با نسخه C++ Turbo 3.0.0 یا همچین چیزی رو لینوکس خودم....

    اما حالا رو se7en (دو تا سیستم عامل دارم) Microsoft Visual C++ 2005 Express Edition اینو با هزار بدبختی دانلود کردم


    اما نمی دونم قسمت Run کجاست؟ که برنامه اجرا بشه ...

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


    و همچین مبتدی نیستم ولی با این برنامه اصلا کار نکردم و سوالم خیلــــــــــــــــــــــ ــــــــــــــی مبتدیانست

    ولی همچین بی دستو پانیستیما !!!! HTML رو مسلطه مسلطم(خخخ )

    کــــــــــــــــــــــــ ـمـــــــــــــــــــــــ ــــــــــــــــ!!!!ـــــــ ــ ــــــــــــــــک

  8. #2447
    کـاربـر بـاسـابـقـه saeed_136915's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    The Land of Skyrim
    پست ها
    2,715

    پيش فرض

    با سلام

    چند ماه و اندی هست داریم C++ یاد می گیریم....

    با نسخه C++ Turbo 3.0.0 یا همچین چیزی رو لینوکس خودم....

    اما حالا رو se7en (دو تا سیستم عامل دارم) Microsoft Visual C++ 2005 Express Edition اینو با هزار بدبختی دانلود کردم


    اما نمی دونم قسمت Run کجاست؟ که برنامه اجرا بشه ...

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


    و همچین مبتدی نیستم ولی با این برنامه اصلا کار نکردم و سوالم خیلــــــــــــــــــــــ ــــــــــــــی مبتدیانست

    ولی همچین بی دستو پانیستیما !!!! HTML رو مسلطه مسلطم(خخخ &nbsp

    کــــــــــــــــــــــــ ـمـــــــــــــــــــــــ ــــــــــــــــ!!!!ـــــــ ــ ــــــــــــــــک
    سلام
    Debug نداره؟؟

  9. این کاربر از saeed_136915 بخاطر این مطلب مفید تشکر کرده است


  10. #2448
    داره خودمونی میشه Mohammad_Virus's Avatar
    تاريخ عضويت
    Apr 2009
    محل سكونت
    کاشان
    پست ها
    73

    پيش فرض

    عزيز string ها در اصل همون كاراكترهاي متواليه.
    متاسفانه براي چاپ رشته تنها راهي كه وجود داره چاپ تك تك بلوك هاي رشته(يا همون آرايه) است كه با يك حلقه به انجام ميرسه.
    توي اين كه مشكلي نداريد؟

    Mehrdad Sh.
    خب من برای چاپ string ها راحت میتونم از cout استفاده کنم ولی برای رشته هایی که از نوع اشاره گری تعریف میشن نتونستم راهی برای چاپ یکجای رشته پیدا کنم. گفتم شاید دستوری، تابعی چیزی وجود داشته باشه. البته راحت میشه یه تابع برای این کار تعریف کرد که رشته رو ورودی بگیره و خودش دونه دونه بچاپه

  11. #2449
    داره خودمونی میشه Mohammad_Virus's Avatar
    تاريخ عضويت
    Apr 2009
    محل سكونت
    کاشان
    پست ها
    73

    پيش فرض

    یه سوال دیگه دوستان

    من یه تابع نوشتم که یه عدد float دریافت می کنه و اونو به صورت رشته خروجی میده. ولی یه مشکلی وجود داره. برای بعضی اعداد درست عمل نمی کنه مثلا وقتی 0.32 بهش داده میشه خروجی اش 0.31999998 هستش. بعد از چند بار بررسی متوجه شدم اشکال از این قسمت هست که اونو به صورت یه برنامه کوچیک نوشتم:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در این برنامه عدد اعشاری n از ورودی دریافت میشه و تعداد رقم بعد از اعشار در متغیر i دخیره میشه و در نهایت چاپ میشه. ولی وقتی عدد 0.32 بهش داده میشه تعداد رقم بعد از اعشار رو 8 میدونه. اما وقتی عددی مثل 0.598 بهش داده میشه نتیجه درسته. اگه داخل حلقه while یکی از این دستور رو اضافه کنیم می بینیم که عدد n چه تغییراتی میکنه:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    من که سر در نمیارم
    Last edited by Mohammad_Virus; 26-05-2013 at 08:54.

  12. #2450
    داره خودمونی میشه elena1993's Avatar
    تاريخ عضويت
    Dec 2012
    پست ها
    92

    پيش فرض

    دوستان سلام کی ماشین حساب مهندسی میتونه کمکم کنه؟

    Sent from my GT-P1000 using Tapatalk 2

Thread Information

Users Browsing this Thread

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

User Tag List

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

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