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

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




صفحه 157 از 326 اولاول ... 57107147153154155156157158159160161167207257 ... آخرآخر
نمايش نتايج 1,561 به 1,570 از 3257

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

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

    پيش فرض

    d عزیز و گل ! (اینجوری خوبه ؟ به کسی بر نخوره ها !) با احترام به فرمایشات شما مبنی بر تعدد ثلاثه خطاهای برنامه نویسی باید به استحضار برسانم که گونه های آخِری نیز موجود میباشد که بنده فقط از موارد ذیل آگاهی دارم :
    خطاهای زمان اجرا
    خطاهای مهلک
    خطاهای دیر هنگام
    خطاهای زمان کامپایل
    خطاهای لغوی
    خطاهای پیوند
    خطاهای نحوی
    خطاهای معنایی
    خطاهای منطقی
    مواردی که شما نام بردید همگی جزئی از دو گروه زمان کامپایل و زمان اجرا محسوب میشن. مورد اولو کامپایلر به اطلاعتون میرسونه ولی مورد دوم در حین اجرای برنامه میتونه به هر دلیلی (مثل نشت حافظه, سرریز بافر, استفاده نادرست از اشارگر و ...) اتفاق بیفته که باعث بسته شدن سریع برنامه بشه یا اینکه از قبل توسط برنامه نویس هندل شده باشه.
    در رابطه با
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    هم این دستورات جزء دستورات پیش پردازنده بحساب میان و ربطی به کار تیمی و یا لزوما جلوگیری از تعریف کلاس و جلوگیری از افزایش حجم برنامه نداره.
    این دستورات قبل از کامپایل عمل میکنند و انواع مختلفی دارن و برای موارد مختلفی هم استفاده میشن (مثل ماکرو ها, تعریف کد های debug و ...)
    و تنها یک مورد از آن میتونه جلوگیری از استفاده چند سرفایل در برنامه بشه.
    موفق باشید.

  2. #1562
    پروفشنال Aryana_b's Avatar
    تاريخ عضويت
    Jun 2010
    محل سكونت
    همین نزدیکیا...
    پست ها
    524

    پيش فرض

    سلام دوستان
    میخوام یه برنامه بنویسم به زبان c++ با تابع بازگشتی که یه عدد مثل n رو بخونه و بعد جایگشت های اونو چاپ کنه هم با تکرار هم بدون تکرار مثلا اگه 3 رو میگیره چاپ کنه :aaa,aab,aac,abc,abb,...
    و حالتی که تکرار نباشه: abc,acb,... به تعداد فاکتوریل n حالت داره

    یه االگوریتمی به ذهنم رسیده اینطوریه که اول حرف اول رو چاپ کنه بعد اگه 2>!(n-1) بود ادامه بده !(n-2) و ...
    و بعد توسط swap جای اولین حرف با حرف دوم عوض بشه
    ولی هرچی سعی میکنم نمیشه میشه کمک کنید حتی اگه الگوریتمشو بگید ممنون میشم

  3. #1563
    اگه نباشه جاش خالی می مونه p d's Avatar
    تاريخ عضويت
    Apr 2009
    محل سكونت
    قبرستون
    پست ها
    449

    پيش فرض

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

  4. این کاربر از p d بخاطر این مطلب مفید تشکر کرده است


  5. #1564
    داره خودمونی میشه
    تاريخ عضويت
    Aug 2008
    محل سكونت
    karaj vegas city
    پست ها
    49

    14

    مواردی که شما نام بردید همگی جزئی از دو گروه زمان کامپایل و زمان اجرا محسوب میشن. مورد اولو کامپایلر به اطلاعتون میرسونه ولی مورد دوم در حین اجرای برنامه میتونه به هر دلیلی (مثل نشت حافظه, سرریز بافر, استفاده نادرست از اشارگر و ...) اتفاق بیفته که باعث بسته شدن سریع برنامه بشه یا اینکه از قبل توسط برنامه نویس هندل شده باشه.
    در رابطه با
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    هم این دستورات جزء دستورات پیش پردازنده بحساب میان و ربطی به کار تیمی و یا لزوما جلوگیری از تعریف کلاس و جلوگیری از افزایش حجم برنامه نداره.
    این دستورات قبل از کامپایل عمل میکنند و انواع مختلفی دارن و برای موارد مختلفی هم استفاده میشن (مثل ماکرو ها, تعریف کد های debug و ...)
    و تنها یک مورد از آن میتونه جلوگیری از استفاده چند سرفایل در برنامه بشه.
    موفق باشید.
    سلام دوست عزیز ، ببخشید حالا که من درباره خطاها اشتباه فکر میکردم ، ممکنه بفرمائید چند نوع خطا داریم و دسته بندیشون کنید ! تا از جهل ارور خلاص بشم !
    در ضمن اگه پست منو به دقت بخونید کار تیمی یه مثال بود و به نظر من تمام کاربرد اون دستور پیش پردازنده برای کاهش حجم ناخواسته برنامه است اگه تایید نمیکنید کدی دیگه ای رو بزارید که کاربرد دیگه ای رو نشون بده و باعث کاهش حجم نشه (چه حجم سورس چه حجم اصلاعات روی رم هر دو فضا فرض میشن ) ! توجه کنید به نظر من این دوستورات در هر صورت باعث کاهش حجم میشه حالا یا حجم فایل سورس و در نهایت exe یا حجم اطلاعات توی روم . . .
    البته باید ازتون بابت توجه به پست های من تشکر کنم . . .
    راستی تبریک میگم کنار امضای شما نماد qt رو میبینم که نشون میده یه آدم حرفه ای بین ما هست . . .
    Last edited by dr.b4ne; 18-02-2012 at 20:41. دليل: تبریک برا qt

  6. این کاربر از dr.b4ne بخاطر این مطلب مفید تشکر کرده است


  7. #1565
    پروفشنال Aryana_b's Avatar
    تاريخ عضويت
    Jun 2010
    محل سكونت
    همین نزدیکیا...
    پست ها
    524

    پيش فرض

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    این میشه 3 تا حلقه تو در تو.
    n رو از کاربر میگیره یعنی اگه 4 وارد بشه میشه abcd,abbc,...
    و باید با تابع بازگشتی باشه

  8. #1566
    آخر فروم باز
    تاريخ عضويت
    Nov 2009
    پست ها
    1,257

    پيش فرض

    سلام iranch جان عزیز ، برای عذر خواهی مجدد از شما بابت اتفاقی که چند روز پیش افتاد سعی میکنم توضیح کامل و خوبی بدم (هر چند که کنار استادایی مثل شما دارم درس پس میدم)
    خب شما به خوبی میدونید که برای برنامه های درست و حسابی معمولا از تیم های برنامه نویسی استفاده میشه یا در موارد دیگه ممکنه برنامه ای رو که قبلا خودتون نوشتید الان نیاز به گسترش پیدا کرده باشه یا اصلا هر کاربرد دیگه ای که به خاطر اون نیازه سورس های مختلفی با هم لینک بشن تا برنامه تکمیل بشه حالا از اونجایی که ممکنه کلاس ها ی یکسان(یا انواع داده ای دیگه ای که برنامه نویس تعیین میکنه مثل یونیون ، بیتفیلد ، استراکت ، . . .)در هدر های جدا و با یک نام در برنامه قرار بگیرند(این یه قانون نا نوشته برنامه نویسی تیمیه) وحجم برنامه افزایش پیدا کنه از این دستور به شکل زیر استفاده میشه و در زیر در باره هر خط توضی میدم
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    دستور خط اول مخفف و سر واژه عبارت if not define NAME_H هست که حتما حالا دیگه معنی شو میدونید یعنی اگه تا حالا هدر NAME_H به برنامه اضافه نشده . . . حالا خط بعد شروع میشه که میگه define NAME_H پس این دو خط بررسی میکنه که اگر فلان هدر (در اینجا NAME_H) به برامه اضافه نشده بود اضافش کن در غیر اینصورت هدر تکراری رو اضافه نکن تا حجم برنامه زیاد نشه بعد هم که کلاس مرتبط تعریف شده و در آخر هم IF رو تموم کرده ..
    پس این دستورات از افزایش حجم بلااستفاده برنامه جلوگیری میکنن !

    راستی من یه عذر خواهی هم به szh_1367 بدهکارم که امیدوارم منو بخشیده باشه (بالاخره یه اشتباه کوچولو منو شرمنده کل فروم کرد)
    ببخشید یکی دو روز آینده کمتر سر میزنم جای منم خالی کنید . . .
    ممون از شما
    ميشه يك لينك مثالي چيزي بديد ؟ منظور رو فهميدم اما مثال دوست دارم ببينم .
    راستي در يك مثال كتاب ديتل توابع سودومند رو معرفي كرده كه اين تابع رو داخل private تعريف كرده.
    اگر اين تابع در پابليك هم بود فرقي نداشت ميشه تفواتش بگيد؟

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

    پيش فرض

    سلام دوست عزیز ، ببخشید حالا که من درباره خطاها اشتباه فکر میکردم ، ممکنه بفرمائید چند نوع خطا داریم و دسته بندیشون کنید ! تا از جهل ارور خلاص بشم !
    بیشترشونو خودتون نام بردید.خطاهای زمان کامپایل به تمام خطاهای ممکن که کامپایلر متوجه میشه و اطلاع میده گفته میشه از نظر نام گذاری شاید نامهای زیادی بشه روی این خطاها گذاشت مثلا خطای دستوری یا لغوی هر دو یک معنی میدهند و هدف از اون خطاهایی هست که در syntax کد صورت میگیره. یا خطاهای منطقی مثل استفاده از عملیات ریاضی روی اشاره گر ها بجر اشارگری که به یک آرایه از مقادیر اشاره میکند خطای منطقی هست که کامپایلر تشخیص میده.
    خطاهای زمان اجرا هم میتونه شامل موارد زیاد و مختلف بشه که امکان نام گذاری روی آنها نیست!مثلا آزاد نکردن حافظه گرفته شده به صورت پویا در یک حلقه میتونه در عرض چند دقیقه (با توجه به مقدار حافظه گرفته شده) کل حافظه سیستم رو مصرف کنه و خطاهای زیادی هم در نهایت به وجود بیاد.
    در کل بهتره زیاد دنبال نام خطا ها نباشیم و بیشتر به نحوه به وجود امدن خطاها توجه کنیم در یک نرم افزار یک خطا یک مشکل محسوب میشه و مهم نیست که از چه نوعی باشه یا اسم اون چی باشه.
    در رابطه با مثالی که گفتید:
    برای تشخیص اینکه کد شما در چه پلتفرمی قرار هست کامپایل شود:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    برای تعریف unicode در برنامه که حتی باعث افزایش حجم برنامه نیز میشود.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و ...
    Last edited by god of war 2; 18-02-2012 at 22:06.

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


  11. #1568
    آخر فروم باز Xilevens's Avatar
    تاريخ عضويت
    Nov 2009
    پست ها
    1,331

    پيش فرض

    خداییش خیلی باحالید ! عاشقتونم . . . حالا میفهمم چرا دکترم بهم گفت اگه افسردگی داری برو تو فروم پی سی ورلد اگه اشتباه نکنم شما (یا هر کس دیگه ای) یکی دو صفحه قبل مطرح کردید که array کلمه کلیدی سی پلاسه بعد هم دوستان پیگیرش شدن که به این دلیل و آن دلیل که چرا و فلان و بهمان که آره آقا جان array کلمه کلیدیه(جالبه ثاب هم شد) !!!!!!!!!
    تو هیچ مرجع و رفرنس رسمی ننوشته که این کلمه کلیدیه برا اثبات حرفمم میگم که اگه کلیدیه باید تو کامپایلر دیگه ای مثل بورلند (یا dev یا هر کامپایلر دیگه ای الا ن بورلندو مثال میزنم) وقتی مینویسیش باید بولد بشه که این اتفاق نمی افته اما در خصوص ابی شدنش تو ویژوال استودیو میگم که هر کامپایلر بنا به سلیقه طراحانش کلماتی رو به کلمات کلیدی c++ اضافه کرده (توجه کنید این کلمات هیچ وقت جز کلمات کلیدی زبان محسوب نمیشن) ویژوال استودیو هم به خاطر اینکه خیلی از برنامه نویسانی که از زبان های دیگه اومدن کلمهarray رو کلیدی میشناسن و برای تعریف آرایه ازش استفاده میکنن اینجا هم این کلمه رو اضافه کرده ، خیلیم نمیشه به آرایه های داینامیک نسبتش داد چون بجز آرایه های استاتیک و داینامیک کاربرد دیگه ای هم داره . . . فلن
    ما تا اونجا که میدونستیم مربوط بود به رزرو شده های cli microsoft
    انوقت میشه بفرمایید کارش چیه؟

  12. #1569
    داره خودمونی میشه
    تاريخ عضويت
    Aug 2008
    محل سكونت
    karaj vegas city
    پست ها
    49

    پيش فرض

    ممون از شما
    ميشه يك لينك مثالي چيزي بديد ؟ منظور رو فهميدم اما مثال دوست دارم ببينم .
    راستي در يك مثال كتاب ديتل توابع سودومند رو معرفي كرده كه اين تابع رو داخل private تعريف كرده.
    اگر اين تابع در پابليك هم بود فرقي نداشت ميشه تفواتش بگيد؟
    خب مثال ، . . .
    کد زیر رو ببین
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    خب اگه این کدو توی یه تکست ادیتور تایپ کنی (مثل تکست ادیتور کامپایلر های سی پلاس ) بعد اونو با پسوند .h ذخیره کنی (تا اینجا شما یه هدر جدید ساختی) حالا میتونی ایم هدر رو به هر برنامه ای با دستور #include اضافه کنی توجه کن که نام هر رو باید بین دو تا از اینا ( " ) بزاری به جای ( ><) البته میتونی مثل هدر های عادی نگارشش کنی اما باید بریزیش توی اون پوشه ای که کامپایلر هدر ها رو میریزه و این یه خورده غیر عادیه ! و اگر کلاس base1 به صورت تکراری وجود داشت فقط یک بار به برنامه لینک میشه ! کاملا هم منطقیه چون یکی از کاربرد های شی گرایی استفاده مجدد از کد هاییه که قبلا نوشته شده اما باید یه فیلتری بزارن که کد اضافه لینک نشه ، درباره توابع سودمند واقعا چیزی یادم نمونده من سی پلاسو دیگه کاملا فراموش کردم اگه دوستان جواب بدن منم خوشحال میشم یادآوری بشه ، حالا توابع سودمند درباره چی بود ، شاید به ذهنم رسید ؟

  13. #1570
    داره خودمونی میشه
    تاريخ عضويت
    Aug 2008
    محل سكونت
    karaj vegas city
    پست ها
    49

    11

    ما تا اونجا که میدونستیم مربوط بود به رزرو شده های cli microsoft
    انوقت میشه بفرمایید کارش چیه؟
    منم همینو عرض کردم ، گفتم کار مایکروسافته که به کامپایلر هاش اضافه کرده هرکامپایلر بنا به سلیقه طراحاش کلماتی رو اضافه میکنه بنظر میرسه کاربرد این کلمه array چیزی جز پیوند دادن دانسته های برنامه نویسان زبان های دیگه با سی پلاس نباشه می خوام اینو بگم این کلمه بعضا توی زبان های دیگه برا اعلان آرایه به کار برده میشد و مایکروسافت نمیخواسته با تغیر عادت برنامه نویسای قدیمی اونهارو از محصولات خودش دور کنه حالا که مبحث باز شد بد نیست بدونی :

    لیست کامل کلمات کلیدی استاندارد زبان C++ را در زیر آوردم[1]:

    asm

    auto

    bool

    break

    case

    catch

    char

    class

    const

    const_cast

    continue

    default

    delete

    do

    double

    dynamic_cast

    else

    enum

    explicit

    extern

    false

    float

    for

    friend

    goto

    if

    inline

    int

    long

    mutable

    namespace

    new

    operator

    private

    protected

    public

    register

    reinterpret_cast

    return

    short

    signed

    sizeof

    static

    static_cast

    struct

    switch

    template

    this

    throw

    true

    try

    typedef

    typeid

    typename

    union

    unsigned

    using

    virtual

    void

    volatile

    wchar_t

    while

    کلماتی که کامپایلر بورلند به لیست بالا(کلمات کلیدی استاندارد زبان C++) اضافه کرده اینا هستن[2]: (اینارو به خاطر استفاده بسیار زیاد کامپایلرهای بورلند در برنامه نویسی C++ در ایران، آوردم)

    _asm

    __cdecl

    _cdecl

    cdecl

    __cs

    _cs

    __declspec

    _ds

    __ds

    _es

    __es

    __except

    _export

    __export

    __far

    _far

    far

    __fastcall

    _fastcall

    __finally

    __huge

    _huge

    huge

    __import

    _import

    interrupt

    __int8

    __int16

    __int32

    __int64

    __interrupt

    _interrupt

    __loadds

    _loadds

    __near

    _near

    near

    __pascal

    _pascal

    pascal

    __rtti

    __saveregs

    _saveregs

    __seg

    _seg

    __ss

    _ss

    __stdcall

    _stdcall

    __thread

    __try




    ااگه با ویژوال استودیو کار میکنید. باید بدونید که به غیر از کلمات کلیدی استاندارد C++ کلمات کلیدی دیگه ای رو کامپایلر مایکرو سافت اضافه کرده[3] که لیست آنها را اینجا داریم:

    __abstract

    abstract

    __alignof Operator

    array

    __asm

    __assume

    __based

    __box

    __cdecl

    __declspec

    __delegate

    delegate

    deprecated

    dllexport

    dllimport

    event

    __event

    __except

    __fastcall

    __finally

    finally

    __forceinline

    friend_as

    __gc

    gcnew

    generic

    __hook

    __identifier

    __if_exists

    __if_not_exists

    initonly

    __inline

    __int8

    __int16

    __int32

    __int64

    __interface

    interface

    interior_ptr

    __leave

    literal

    __m64

    __m128

    __m128d

    __m128i

    __multiple_inheritance

    naked

    __nogc

    noinline

    __noop

    noreturn

    nothrow

    novtable

    nullptr

    __pin

    __property

    property

    __raise

    ref

    safecast

    __sealed

    sealed

    selectany

    __single_inheritance

    __stdcall

    __super

    thread

    __try

    __try_cast

    __unaligned

    __unhook

    uuid

    __uuidof

    value

    __value

    __virtual_inheritance

    __w64

    __wchar_t

    --------------------------------------------------------------------------------

    [1] - [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    [2] - Borland C++ User’s Guide

    [3] - [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    در ضمن باید بگم از اونجایی که n تا کامپایلرداریم (n-2) تای دیگه هم کلمات کلیدی خودشونو دارن و شاید براتون سوال پیش بیاد که چجوری میتونید ریشه کلمات کلیدی رو تشخیص بدیم که مال اصل سی پلاسه یا کامپایلر بهش اضافه کرده اینم که واضحه کلمات کلیدی تو ویژوال استودیو آبی میشن تو بورلند بولد (توپر) پس اگه یه کلمه تو ویژوال استودیو آبی شد تو بورلند بولد نشد یعنی مخصوص کامپایلر ویژوال استودیوه اگه توی هر دو کامپایلر هم تغییر شکل داد پر واضحه که کلمه اصلتا کلیدیه ! (اصلا فک کیکنم این قسمت آخر نیازی به گفتن نداشت)
    اگرم فک میکنی اشتباه گفتم میتونم تا سی ثایه دیگه همه چی رو ترک کنم خودمو فرومو برنامه نویسیرو لپتاپو دنیارو زندگیرو !!!!! اصلا من دارم میرم خود کشی بگید بچه های فروم گرافیک یه اعلامیه ترحیم خوشگل بزنن (اگه نفهمیدید چی گفتم خودتونو ناراحت نکنید چون خودمم نفهمیدم کافیه امضای کسی رو که ازش نقل قول کردم ببینید)
    Last edited by dr.b4ne; 19-02-2012 at 23:56. دليل: توضیح اضافی که خیلیم ارزش نداره و غلط تایپی که همیشه هست !

Thread Information

Users Browsing this Thread

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

User Tag List

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

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