آژانس هواپیماییexchanging

آموزش C++ سي پلاس پلاس از پايه

شروع موضوع توسط saalek ‏10 دسامبر 2005 در انجمن خانواده C++ , C

  1. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    مي خواهيم در اين آموزش از ابتدا ، با دستورات سي ++ كار كنيم. C++
    ولي مسلم است كه در بيشتر سينتكس ها ، سي، با سي++ ، مشابه است.
    .
    من تمامي برنامه هايي كه اينجا مي گذارم را با توربو سي چك مي كنم.

    توربو سي ورژن 3
    حجم : 4 مگا.
    http://rapidshare.de/files/15927944/TurboCv3.rar.html
    ======================================
    تاپيكهاي وابسته:

    كلاس در سي:
    http://forum.persiantools.com/showthread.php?t=35887
    طرق احضار توابع:
    http://forum.persiantools.com/showthread.php?t=45911
    ذخيره در فايل
    http://forum.persiantools.com/showthread.php?t=47476

    تابع راندوم و زمان در سي
    http://forum.persiantools.com/showthread.php?t=11367
    زمان
    http://forum.persiantools.com/showthread.php?t=46151

    اسمبلي براي سي:
    http://forum.persiantools.com/showthread.php?t=37385
    گرافيك در سي:
    http://forum.persiantools.com/showthread.php?t=35260

    كامپايلرهاي سي
    http://forum.persiantools.com/showthread.php?t=38228
    كتابهاي سي و ويژوال سي و كمي بحث
    http://forum.persiantools.com/showthread.php?t=41105
    کتاب های سی
    http://forum.persiantools.com/showthread.php?t=39500
    یک کتاب کامل در مورد ویژوال ُسی
    http://forum.persiantools.com/showthread.php?t=40777
    ======================================
     
  2. Mehdi

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    49
    محل سکونت:
    Anywhere
    كاش ويژوال سي پلاس پلاس ياد ميداديد [​IMG]
     
  3. mohandes_milad

    mohandes_milad Registered User

    تاریخ عضویت:
    ‏23 می 2005
    نوشته ها:
    930
    تشکر شده:
    25
    محل سکونت:
    طهرون قدیم
    سلام بچه ها یه سوال داشتم فقط لطفا نخندید من امروز رفتم یک کتاب برنامه نویسی ++C نوشته مهندس قمی گرفتم بعد یه 20-30 صفحه ای ازش خوندم سوالم اینه که این کدهارو باید کجا نوشت یعنی باید تو برنامه خاصی این کدهای c++ رو نوشت
     
  4. plusdeck

    plusdeck Registered User

    تاریخ عضویت:
    ‏19 فوریه 2005
    نوشته ها:
    548
    تشکر شده:
    10
    محل سکونت:
    In My Earphones
    براي شروع ميتوني از كامپايلر تحت داس c++ يعني توربو سي ورژن 3.0 استفاده كني.
     
  5. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    پاسخ به
    mehdvirus
    : انشا الله بعدا. البته شما شايد سي ++ را بلد باشيد ولي براي ويژوال سي ، دانستن سي ++ ضروري است و من اين تاپيك ، محيط تسلط يافتن خودمه براي سي++. بعدا انشا الله اقدام مي كنيم. قبلا من آموزش ويژوال سي داشتم ولي ناتمام ماند. و خودم هم خيلي علاقه مندم كه ياد بگيرم.
    ------------------------
    در پاسخ به دوست گرامي كه مي خواهد سي را شروع كند.
    ويژوال سي
    بورلند سي
    كوئيك سي
    بورلند سي
    و خيلي هاي ديگر.
    .
     
  6. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    يك توضيح مقدماتي بدهم ابتدا.
    شما كدها را مي توانيد در هر اديتوري بنويسيد. مثلا در ((نت پد)) بنويسيد و با پسوند مورد نظر save كنيد.
    ولي بهر حال بايستي يك كامپايلر داشته باشيد تا به فايل قابل اجرا يعني exe تبديل كنيد. من فعلا با توربو سي عمل تبديل را انجام مي دهم.
    به فايلي كه كدهاي شما در آن ذخيره شده ، سورس source مي گويند. پسوند در سي عبارت است از ((دات سي)) .c و در سي++ عبارت است از (( دات سي پي پي)) .cpp
    .
    من از codewhiz هم به عنوان اديتور استفاده مي كنم. كه فرقي با نت پد notepad ندارد. از اين اديتور مي توانيد براي ويرايش و ذخيره سورس در اسمبلي هم استفاده كنيد. و حتي زبانهاي ديگر.

    اگر از توربو سي و حتي كامپايلرهاي شبيه آن استفاده مي كنيد، براي اجرا و رفتن به محيط برنامه مي توانيد در پوشه bin فايل TC را اجرا كنيد. و بعد سورس خود را باهاش open كنيد و كار كنيد.
    اگه اولين باره كه با توربو سي و نرم افزارهاي مشابه اش داريد كار مي كنيد، نكته مهم اينه كه برويد به منوي option و بعد زير منوي Directories و آدرس پوشه include و lib (كه روي هارد كنار پوشه bin داريد) را در آنجا بدهيد. زيرا برنامه براي توانايي كامپايل كردن به اين دو پوشه نيازمند است.
    .
     
  7. appbannerkhuniresbanner
  8. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها

    [​IMG]

    در شكل بالا قالب ساده يك برنامه سي( ديگه ++ اش را نمي گم و فاكتور مي گيرم. هر چند با هم زياد فرقي هم ندارند.) را مي بينيد.
    قبل از باز شدن برنامه اصلي كه با كلمه main (يعني اصلي) شروع مي شود، بايستي بگوييم كه از چه فايلهاي header ئي استفاده خواهيم كرد.
    البته در اين برنامه ، هيچ دستوري داخل برنامه نيست و برنامه خالي است. و من فقط دو دستور احضار header را براي مشاهده بعنوان مثال باقي گذاشتم.
    كلا هر دستوري كه در سي استفاده ميشه ، يك تابع است. هر فايل header كه داخل پوشه include است، تعدادي از اين توابع را پشتيباني مي كند.
    از طرفي خود برنامه اصلي هم ، بعنوان يك تابع عمل مي كند.
    تابع به چيزي مي گوييم كه ورودي بگيرد و خروجي بدهد. در اينجا مي بينيد كه تابع main ورودي ندارد ، چون داخل پرانتز آن چيزي نوشته نشده. ولي مي شود نوشت. شايد بعدا طرز ورودي دادن به تابع main را هم گفتيم. ولي در سطح مبتدي زياد اين كار كاربرد نداره. و معمولا اين تابع ورودي نمي گيره.
    حالا مي رسيم به خروجي اش، كلمه return 0 مي گويد كه اين تابع صفر را برمي گرداند. يعني بعد پايان كار برنامه ما ، صفر به سيستم برگردانده مي شود و ما فعلا كاري نداريم كه سيستم با اين صفر چه كار مي كند.
    خلاصه اين كه برنامه اصلي هم مثل يك تابع عمل مي كند.
    شايد شما جور ديگر ديده باشيد قالب main را، مثلا return 0 را نداشته باشد، آنطور هم مي شود ولي بايستي main را از اول بگوييم كه خروجي ندارد. چون تابع هاي بدون خروجي هم مي دانيد كه داريم. ولي چون ما از كلمه int استفاده كرديم (كه به معني صحيح است ) ، پس خروجي هم بايد اعلام كنيم.

    يك نكته مهم هم اينه كه بعد هر دستور سي ، بايستي سمي كالن بگذاريد. و مي بينيد كه بعد return ، سمي كالن داريم. بعد main و include ها نمي خواهد. مواقعي هم هست كه نمي خواهد ولي خيلي كم است مواردش و هر جا پيش آمد مي گيم. فعلا شما هر دستوري در برنامه نوشتيد ، حواستان به سمي كالن انتهاي خط باشد. چون اگر نگذاريد خطا مي گيرد.
    تا اينجا من از آموزشهاي سايت استفاده نكردم. چون اون از كمي بعد تر شروع كرده بود و من مي خواستم از اول بگويم.ولي از پست بعد سعي مي كنم موبمو از روي آن جلو بروم.
    .
    مي بينيد كه من در codewhiz دارم كار مي كنم. بعد از نوشتن كدها ، با پسوند cpp ذخيره مي كنيم و با يك كامپايلر مثل توربو سي تبديل به فايل اجرايي مي كنم. البته خود توربو سي هم اديتور داره و نياز به اين كار نيست ولي ديگه سليقه اي است. ويژوال سي هم خوبه چون محيطش dos ئي نيست. ولي من به اين دليل با توربو سي كار مي كنم كه اگر مشكلي پيش قراره بياد ، براي من هم پيش بياد و توضيح بدهم.
    .
     
  9. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها

    [​IMG]

    [​IMG]

    اين اولين برنامه اي است كه كاري انجام مي دهد.
    و كارش اينه كه مي نويسد hello c .
    من از محيط توربو سي هم عكس گرفتم تا با شماي محيط آشنا بشويد. در برنامه توربو سي ، از منوي RUN ، گزينه اول RUN را بزنيد تا نتيجه اجرا را ببينيد.
    شرح برنامه: cout كارش چاپ متن و عدد است. در اينجا كلمه hello c را مي نويسد. به 2 علامت كوچكتر كه با shift+, ايجاد مي شود توجه كنيد ( << ) و به كوتيشنها دو طرف عبارتمان دقت كنيد. و به علامت سمي كالن در آخر جمله كه اجباري است حواستان باشه.

    دستور getch() كارش اين است كه زدن كليدي و دريافت آن كليد را طلب مي كند. علت استفاده از آن اينه كه اگر نباشه ، برنامه آنقدر سريع اجرا ميشه و بسته ميشه كه چيزي را ما نخواهيم ديد. پس با قرار دادن اين دستور تا ما كليدي را نزده ايم ، فرصت تماشاي نتيجه را داريم.

    كامنت گذاري: به نظر من اين اولين چيزيه كه در برنامه نويسي بايد ياد بگيريم. آنجا كه در شكل من نوشته ام yaddasht (يادداشت) دقت كنيد. قبلش دو تا مميز آمده. اين دو مميز باعث مي شود كه هر چه بعدش بياد ، موقع كامپايل ، خوانده نشه و ما آزاديم هر يادداشتي را بعد اين علامت بگذاريم.
    منظور من اين بود كه شما برويد يك امتحاني بكنيد، برويد هر بار قبل هر يك از include ها اين علامت(دو مميز) را بگذاريد. خواهيد ديد كه include اول اگر به شكل كامنت درآيد ( كه در حقيقت مثل پاك كردن اين خط برنامه است) دستور cout خطا خواهد داد. چون اين تابع در header ئي به نام iostream است و دومين include هم براي getch() لازمه. البته ممكنه چندين تابع با يك header پشتياني بشوند كه امر واضحي است.

    نكته: كامنت (يادداشت) هاي يك خطي را مي شود با // استفاده كرد ، ولي براي كامنتهاي چند خطي از شكل زير استفاده كنيد.

    [​IMG]

    يعني با /* شروع كنيد و با */ تمام كنيد.
    .
     
  10. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها

    [​IMG]

    حالا به برنامه بالا نگاه كنيد. Cin برعكس cout است. كارش گرفتن عددي از كاربر است. كاربر بايد عدد را تايپ كند و اينتر كند.

    چيز جديدي نداريم به جز long ، كه تعريف كردن متغير است. در خطي كه اين دستور آمده مي بينيد كه 4 متغير از اين نوع تعريف شده و دو تاي اول براي دريافت دو عددي است كه كاربر مي دهد و دو عدد بعدي براي قرار دادن حاصل تقسيم و باقيمانده درش است.

    توجه كنيد كه با cin علامت بزرگتر را داريم نه علامت كوچكتر. به دستور endl ((اند + حرف ال )) توجه كنيد. و همچنين توجه كنيد كه در پايان تمامي خط ها ، علامت سمي كالن موجود است. شايد بپرسيد كه endl كارش چيه. برويد برش داريد تا تفاوت را ببينيد. البته سمي كالن را اشتباهي برنداريد ، ولي علامت هاي كوچكتر را بايد برداريد. من رفتم الان امتحان كردم. عبارت ها به خط بعد نمي رود و در ادامه همان خط چاپ مي شود كه زيبا نيست.

    شايد بخواهيد بدانيد كه long چه نوع متغيري است ، كه بحث انواع متغيرها در سي ++ مطرح ميشه . شكل زير يك شمايي مفيد و مختصر به شما مي دهد.


    [​IMG]

    عدد صحيح integer و عدد اعشاري real .
    من رفتم يك امتحان كردم و در برنامه به آن عدد اعشاري دادم. برنامه از حالت اجرا خارج شد. چون ما گفتيم كه عددي كه كاربر مي دهد بايد عدديي صحيح باشد نه اعشاري.
    به حدود مجاز هر يك هم نگاه كنيد. اگر عدد شما بالاي 32 هزار است ، از short استفاده نكيند. زيرا تعداد بايتهايي كه در حافظه براي عدد شما در نظر گرفته ميشه محدوده و اگر عدد بزرگتر باشه ، حتي اگر برنامه دچار اختلال نشه ، معلوم نيست اضافه اش چه سرنوشتي پيدا مي كنه و مسلم است كه نتيجه محاسبات درست درنخواهد آمد.
    .
    #include <iostream.h>
    #include <conio.h>
    // yaddasht

    int main()
    {

    long aNum1, aNum2, aQuotient, aRemainder;

    cout << "Enter two numbers" << endl;
    cin >> aNum1 >> aNum2;
    aQuotient = aNum1 / aNum2;
    aRemainder = aNum1 % aNum2;
    cout << "The quotient of " << aNum1 << " and "
    << aNum2 << " is " << aQuotient << endl;
    cout << "and the remainder is " << aRemainder << end1;

    getch();


    return 0;
    }​
     
  11. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها

    [​IMG]

    كلا تا بحال برنامه هايي كه تابحال كرديم، شامل 3 قسمت بود.
    اول: گرفتن ورودي
    دوم: انجام محاسبات
    سوم: خروجي

    در شكل بالا اين 3 مرحله را نشان داده است.


    [​IMG]

    در شكل بالا ، ما قسمت ورودي را كار مي كنيم. هر داده اي كه مي خواهيم از كاربر بگيريم ، نياز به ظرفي دارد كه همان تعريف متغير برايش فراهم مي كند. در شكل بالا 3 نوع متغير تعريف كرده ايم و بعد از كاربر ، اطلاعات دريافت كرده ايم و در اين متغيرها ذخيره كرده ايم.


    [​IMG]

    در شكل بالا مي بينيد كه 3 متغير از يك نوع ( دابل) تعريف شده و براي راحتي با ويرگول و در يك خط نوشته ايم. براي ورودي گرفتن هم مي توانيم هم جدا و هم در يك خط ، عمل كنيم.

    [​IMG]

    در شكل بالا ، حالت غلط را مي بينيد. من رفتم نتيجه اين طور نوشتن را امتحان كردم. ولي شما امتحان نكنيد. فقط عدد اولي را درست مي گيره و دومي يك عدد عجيب و غريب خواهد شد.
     
  12. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها

    [​IMG]

    #include <iostream.h>
    #include <conio.h>
    // yaddasht

    int main()
    {

    double s, u, a, t;
    cout << "Enter initial velocity, acceleration, and time : ";
    cin >> u >> a >> t;
    s = u*t + 0.5*a*t*t;
    cout << "Distance travelled " << s << endl;

    getch();


    return 0;
    }
    به برنامه بالا نگاه كنيد. برنامه ساده اي است. 4 متغير تعريف شده. 3 متغير را كاربر مي دهد و متغير چهارم در قسمت محاسباتي ، نتيجه محاسبه را در خود خواهد داشت.
    در آخر هم متغير چهارم كه نتيجه محاسبه است ، چاپ خواهد شد. اگر فيزيك يادتان باشد ، همان فرمول v0*t+1/2at^2 است. فرمولش از ضرب و جمع تشكيل شده و ساده است. فقط يك نكته كوچك در اينجا هست كه همه هم بلديد. و آن اين كه ضرب ، نسبت به جمع ، تقدم دارد. يعني اول ضربها انجام مي شوند و بعد جمع انجام مي شود. و اينجا هم ، ما همين را مي خواستيم. ولي اگر مي خواهيد كه اول جمع انجام بشه ، بايد از پرانتز استفاده كنيد. نوع متغير هم كه مي بينيد اعشاري است .
    .

    [​IMG]

    [​IMG]

    در شكل بالا ، 3 متغير تعريف كرديم و هر سه را مساوي عدد يك قرار داديم و چاپ كرديم. منظور اين بود كه بگوييم ميشه در يك خط چند متغير را مقدار دهي كرد.
    .
     
    miladwwe از این نوشته تشکر کرده است.
  13. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها

    [​IMG]

    در شكل بالا ، 4 عمل اصلي را داريم و باقيمانده را.


    [​IMG]

    امر واضحي را در شكل بالا مي بيند. علامت * الزامي است. و نبايد همان طور كه در رياضي عادت داريم عمل كنيم.

    [​IMG]

    به برنامه بالا نگاه كنيد. چند نكته دارد. نكته اول اينكه return ندارد. زيرا تابع main قبلش كلمه void آمده. يعني خروجي ندارد. پس نيازي به معرفي خروجي با return ندارد.
    نكته دوم اينكه جواب برنامه 2 است. كه اشتباه است. نويسنده برنامه آمده دو عدد صحيح را بر هم تقسيم كرده و نتيجه را چون اعشاري فرض مي كرده در يك عدد real (اعشاري) از نوع double ريخته. ولي اعشاري در كار نيست. و جواب تقسيم 2 شده. من آمدم دو عدد اول را هم double گرفتم. به شكل زير:


    [​IMG]

    و جواب اينبار (( دو و نيم )) درآمد كه درست است.

    #include <iostream.h>
    #include <conio.h>

    void main()
    {

    double i, j,result;
    i = 10;
    j = 4;
    result = i / j;
    cout << "result = " << result << endl;

    getch();

    }
     
    miladwwe از این نوشته تشکر کرده است.
  14. avajang.com .leftavajang.com.right
  15. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها

    [​IMG]

    در شكل بالا ، در جايي كه فلش آبي نشان مي دهد ، خطا دريافت مي كنيم. باقيمانده براي اعداد اعشاري بي معني است.

    [​IMG]

    [​IMG]

    ولي وقتي از long كه اعداد صحيح را نگه مي دارد استفاده مي كنيم ، كار درست است.
    تابع clrscr(); براي پاك كردن صفحه است.
    در شكلي كه تنيجه اجرا را نشان مي دهد ، مي بينيد كه خارج قسمت 10 بر 4 مساوي 2 است و باقيمانده اين تقسيم هم عدد 2 است.
    .

    #include <iostream.h>
    #include <conio.h>

    void main()
    {
    clrscr();
    long i, j,result,reminder;
    i = 10;
    j = 4;
    result = i / j;
    reminder=i%j;
    cout << "result = " << result << endl;
    cout << "reminder = " << reminder << endl;

    getch();

    }
     
  16. saeedsmk

    saeedsmk مدیر بازنشسته

    تاریخ عضویت:
    ‏6 سپتامبر 2003
    نوشته ها:
    1,519
    تشکر شده:
    4
    خيلي خوب بود خسته نباشي اميدوارم ادمه بدي
     
  17. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها

    [​IMG]

    در شكل بالا 5 تابع رياضي را مي بيند. و همچنين مي بيند كه وروددي و خروجي ، هر دو ، double است.

    [​IMG]

    در شكل بالا ، ما از كاربر يك زاويه درخواست مي كنيم و بعد سينوس آن را به او برمي گردانيم.
    همان طور كه با فلش نشان داده شده ، header ئي به نام math براي استفاده از توابع رياضي لازم است.
    .

    #include <iostream.h>
    #include <conio.h>
    #include <math.h>

    void main()
    {
    clrscr();
    double angle;
    double sine;
    cout << "Enter angle : ";
    cin >> angle;
    sine = sin(angle*3.141592/180.0);
    cout << "Sine(" << angle << ") = " << sine << endl;

    getch();

    }
     
  18. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    ممنون saeedsmk جان. لطف داريد.
    قصد دارم خيلي بروم جلو. اميدوارم بتوانم.
    .
     
  19. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها

    #include <iostream.h>
    #include <conio.h>
    #include <math.h>

    void main()
    {
    clrscr();

    double pH;
    double HConc;
    cout << "Enter pH : ";
    cin >> pH;
    HConc = pow(10.0, -pH);
    cout << "If the pH is " << pH << " then the [H+] is " <<
    HConc << endl;

    getch();

    }
    اين برنامه هم از روي ph مي تواند غلظت H+ را به شما بدهد.
    .
     
  20. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    قوانين نام گذاري متغيرها :
    شما اسمي كه براي متغيرتان انتخاب مي كنيد بايد اين شرايط را داشته باشد،

    اول اينكه با يك حرف شروع بشود(حرف كوچك يا بزرگ) يا آندرلاين ( _ ) . من الان رفتم چك كردم . يك متغير به نام ((آندرلاين a )) _a ساختم و مشكلي نبود.

    قانون دوم:

    • The names contain only letters (abcdefghijklmnopqrstuvwxyzABC...YZ),
    digits (0123456789) and underscore characters _.
    نام متغير بايد از حروف و اعداد و آندرلاين تشكيل شده باشه.

    قانون سوم: از كلمات كليدي سي استفاده نكنيد. در عكس زير كلمات كليدي را نشان مي دهيم.


    [​IMG]
    .
     
  21. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها

    يك سئوال از اساتيد سي

    من مي بينم كه برنامه هاي اين سايت يك HEADER را به نام

    #include <stdlib.h>
    را داره استفاده مي كند. من تابحال استفاده نكردم و error و يا حتي warning دريافت نكرده ام. ولي فكر كنم اون پشت داره خرابكاري ميشه.

    دوستان بي زحمت توضيح بدهند كه اين header كارش چيه و اگر ننويسيم چي ميشه. حتما بگيد. من بلد نيستم و نمي خواهم بدآموزي اينجا بكنم.
    .
     
  22. saalek

    saalek مدیر بازنشسته

    تاریخ عضویت:
    ‏24 می 2005
    نوشته ها:
    654
    تشکر شده:
    53
    محل سکونت:
    در پاي كوهپايه ها
    Constant s

    ثابت ها :
    وقتي مي خواهيد يك متغير ، دائم عددي را در خودش نگه داره ، از constant استفاده مي كنيد.

    مثلا g كه مقدار ثابت گرانش زمين است
    يا عدد (( پي )) كه 3/14… است
    يا سرعت نور كه ..... است.


    const double g = 32.0; /* Gravitational constant in fpsps */

    در كد بالا مي بينيد كه اول كلمه const آمده ، بعد نوع متغير و بعد نام متغير و بعد مقدار دهي كرده ايم آن را و سمي كالن در آخر عبارت.


    [​IMG]

    يكي از انواع متغيرها را كه char است را من توضيح ندادم. در شكل بالا مي توانيد بفهميد كه چه نوع داده اي را در خودش ذخيره مي كند. من لزومي نبوده تابحال باهاش كار كنم ولي تا انجاكه اطلاعات دارم ، ((يك كاراكتر )) را در خودش نگه مي دارد.
    .
    در خط آخر شكل بالا مي بينيد كه از يك ثابت ديگر براي تعيين مقدار ثابت استفاده كرده.
    .