صفحه 1 از 2 12 آخرآخر
نمایش نتایج 1 تا 40 از 52

نام تاپیک: معرفی و آموزش C++‎‎‎‎‎ به صورت گام به گام

  1. #1

    Post معرفی و آموزش C++‎‎‎‎‎ به صورت گام به گام


    از امروز طبق تعاریف و لیست بندی ذکر شده در ادامه توضیحات آموزش هایی رو برای برنامه نویسی با زبان C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎ و بخصوص ویرایش 11 این زبان قدرتمند به صورت استاندارد و جامع بپردازم.

    البته اشاره کنم هدف نوشتن یک کتاب هست که در انجمن ها فقط یک خلاصه ای از نوشته های اصلی در کتاب خودم ارائه خواهم داد تا حدی که مفید باشه و انشاالله بعد از اتمام کتاب اقدام به انتشار آن خواهم نمود از اساتید و کاربران هم خواهشمندم در رابطه با بهتر شدن سطح آموزشی نظرات و پیشنهادات خود را پیام خصوصی نمایند تا در کتاب اصلی به بهترین صورت ممکن آموزش های لازم رو ارائه کنم.

    اگر شما به دنبال محتوای به روز و مدرنی از این آموزش‌ها هستید این بخش را دنبال کنید.


    در این آموزش من قصد دارم علاوه بر توضیحات در رابطه با C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎‎‎‎ استاندارد به معرفی ویژگی ها و بررسی C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎‎‎‎11 هم بپردازیم که خود جناب Bjarne Stroustrup خودش گفته که ویژگی های خاصی در این نسخه از C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ اضافه شده که بسیار کار آمد هستند و همچنین بهتره در نظر داشته باشید در حال حاضر به فکر توسعه C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ به نسخه C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎ 17 در سال 2017 هستش که همینک نتیجه خوبی از نسخه C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎ 14 گرفته شده است.

    یه اسانسی هم از معرفی C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎ 11 ببینید که خود سازنده محترم توضیحات مختصری رو در معرفی داده که در دانشگاه A&M واقع در تگزاس برگزار شده : https://www.youtube.com/watch?v=86xWVb4XIyE

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

    که در رابطه با برخی از ویژگی های جدید در نسخه C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎ 11 و 14 به صورت زیر هستش که بهشون می پردازیم.

    • auto
    • nullptr
    • Range-based for loops
    • Override and final
    • Strongly-typed enums
    • Smart pointers
    • Lambdas
    • non-member begin() and end()
    • static_assert and type traits
    • Move semantics


    اهداف C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎ 11 چیست ؟ هدف از ارتقاء C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎ استاندارد به نسخه 11 چه بوده ؟

    • مهمترین هدف بهتر شدن زبان پایه یعنی C
    • پشتیبانی از تجرید داده ها و توسعه آن
    • پشتیبانی از برنامه نویسی شی گرا و توسعه آن
    • برنامه نویسی عمومی و توسعه آن


    انواع کامپایلرهایی که به صورت استاندارد برای نسخه 11 مشخص شده اند و تایید شده اند کدامند؟

    انواع کامپایلر ها که از طرف شرکت های سازنده و توسعه دهنده ارائه شده به صورت زیر اومده و نسخه C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎ فقط روی کامپایلر های زیر قابل اجرا است.

    MSVC-2012,2013
    Gcc 4.8
    Clang 3.3
    Intel 13.0

    کتابخانه های استاندارد C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎ 11 چگونه در دسترس خواهند بود ؟

    روش جدیدی جناب بی‌یارن در نظر گرفته که کتابخانه های استاندارد C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎ علاوه بر اینکه توسط خود کامپایلر ها در دسترس و قابل استفاده هستش بلکه توسط کتابخانه Boost نیز میتوان دسترسی به مجموع عظیمی از کتابخانه ها دسترسی داشته باشیم.

    هدف از این آموزش ها تعریف و آشنایی با زبان C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎ هستش هرچند در رابطه با این زبان آموزش های مختلفی وجود دارد ولی من شخصا آموزش های پیچیده و سطح بالا یا بررسی موارد ریزو درشت رو نیافتم برای همینم مایل شدم این آموزش رو شروع کنم که از مرحله مقدماتی , تعریف , آموزش ها بر اساس فصل بندی و ... توضیح خواهم داد.

    درضمن در نظر دارم به ساده ترین حالت آموزش ها رو ارائه بدم و در هر فصل نسخه PDF این آموزش رو در اختیار شما قرار بدم و در نهایت یه کتاب درست حسابی و ترو تمیز آماده خواهم کرد و در اختیار همه دوستان خواهم گذاشت.


    در ابتدا لیست بندی و سرفصل هارو مشخص میکنم تا عناوین کلی مشخص بشه به صورت زیر :

    فصل اول

    1. مقدمه برنامه نویسی C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎
    2. ساده ترین برنامه توسط این زبان
    3. معرفی عملگر خروجی
    4. معرفی کاراکترها و الفاظ رشته ای
    5. معرفی طول رشته
    6. معرفی نحوه توضیحات نویسی در کد ها
    7. معرفی انواع متغیر ها و اشیاء
    8. معرفی انواع واژه های کلیدی و شناسه های C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎
    9. معرفی نسبت دادن مقادیر و ارزش در زمان اعلان
    10. معرفی انتساب های زنجیره ای / درونی
    11. معرفی کاراکتر خاتمه دهنده (نقطه , ویرگول و سیمیکالون)
    12. معرفی سبک و روش برنامه نویسی در C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎
    13. معرفی انواع اعداد صحیح (Integer)
    14. معرفی عملگر ها (عملگرهای حسابی اولیه و ساده)
    15. معرفی حق تقدم در عملگرها
    16. معرفی عملگرهای افزایش دهنده و کاهش دهنده
    17. معرفی عبارات انتساب مرکب
    18. معرفی انواع حالت های سرریز و پاریز شدن در اعداد صحیح
    19. معرفی نوع کاراکتر (char)


    فصل دوم

    1. معرفی دستورات شرطی و انواع اعداد صحیح در C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎
    2. معرفی دستور شرطی if
    3. معرفی دستور شرطی if else
    4. معرفی عملگرهای رابطه ای
    5. معرفی رشته ای از دستورات مرکب
    6. معرفی واژگان خاص در C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎
    7. معرفی شرایط خاص
    8. معرفی عبارت های بولی
    9. معرفی دستورات شرطی تو در تو
    10. معرفی دستور switch
    11. معرفی عملگر عبارات شرطی
    12. معرفی دامنه یا همان حوزه عملیاتی
    13. معرفی تبدیل های نوع صحیح integer


    فصل سوم

    1. معرفی تکرار و انواع ممیز های شناور
    2. معرفی دستور while
    3. معرفی دستور do...while
    4. معرفی دستور for
    5. معرفی دستور break
    6. معرفی دستور continue
    7. معرفی دستور goto
    8. معرفی انواع اعداد حقیقی
    9. معرفی تبدیل نوع
    10. معرفی دقت در خطای گرد کردن برشی
    11. معرفی قالب E برای مقادیر ممیز شناور
    12. معرفی ثوابت , متغیر ها و اشیاء
    13. معرفی تولید اعداد شبه تصادفی


    فصل چهارم

    1. معرفی توابع در C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎
    2. معرفی توابع کتابخانه های استاندارد C
    3. معرفی توابع تعریف شده توسط برنامه نویس (کاربر)
    4. معرفی راه انداز های آزمایشی
    5. معرفی اعلان و تعریف توابع
    6. معرفی کامپایل کردن جداگانه
    7. معرفی متغیر های محلی و توابع
    8. معرفی توابع خالی (void)
    9. معرفی توابع بولی
    10. معرفی توابع ورودی و خروجی
    11. معرفی ارسال به وسیله مرجع (آدرس)
    12. معرفی ارسال به وسیله مرجع ثابت
    13. معرفی توابع درونی
    14. معرفی دامنه توابع
    15. معرفی بارگزاری اضافی
    16. معرفی توابع معروف main و exit
    17. معرفی آرگومان های پیشفرض
    18. معرفی توابع درونی



    فصل پنجم

    1. معرفی آرایه ها در C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎
    2. معرفی پردازش آرایه ها
    3. معرفی مقدار دهی اولیه به یک آرایه
    4. معرفی و بررسی بازه ایندکس در آرایه توسط C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎
    5. معرفی الگوریتم جستجوی خطی
    6. معرفی الگوریتم مرتب سازی حبابی
    7. معرفی الگوریتم جستجوی دودویی
    8. معرفی و بکار گیری آرایه ها با انواع شمارشی
    9. معرفی تعاریف نوع
    10. معرفی آرایه های چند بعدی


    فصل ششم

    1. معرفی اشاره گر ها و مراجع در C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎
    2. معرفی مراجع
    3. معرفی اشاره گر ها
    4. معرفی انواع مشتق شده
    5. معرفی اشیاء و مقادیر چپ
    6. معرفی بازگشت یک مرجع
    7. معرفی آرایه و اشاره گر ها
    8. معرفی عملگر new
    9. معرفی عملگر delete
    10. معرفی آرایه های پویا (داینامیکی)
    11. معرفی و استفاده از const با استفاده از اشاره گر ها
    12. معرفی آرایه هایی از اشاره گر و بر عکس
    13. معرفی اشاره گرهایی به توابع
    14. معرفی NULL , NUL و void



    فصل هفتم

    1. معرفی رشته ها در C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎
    2. معرفی مروری بر اشاره گر ها
    3. معرفی رشته ها
    4. معرفی ورودی و خروجی ها در رشته
    5. معرفی برخی از توابع عضو cin
    6. معرفی توابع و کاراکتری معرفی شده در <ctype.h>
    7. معرفی آرایه های از رشته ها
    8. معرفی کتابخانه های رشته در C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎


    فصل هشتم

    1. معرفی کلاس ها در C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎
    2. معرفی اعلان در کلاس ها
    3. معرفی سازنده ها
    4. معرفی سیستم های مقدار دهی اولیه در سازنده ها
    5. معرفی توابع دستیابی
    6. معرفی توابع عضو اختصاصی
    7. معرفی سازنده کپی
    8. معرفی ویرانگر کلاس ها
    9. معرفی اشیاء ثابت
    10. معرفی ساختمان ها
    11. معرفی اشاره گرهایی به اشیاء
    12. معرفی اعضاء داده ای ایستا
    13. معرفی اعضای تابعی static


    فصل نهم

    1. معرفی بارگزاری اضافی عملگر ها
    2. معرفی اشاره گر this
    3. معرفی بارگزاری اضافی عملگر های حسابی
    4. معرفی بارگزاری اضافی عملگر های انتساب حسابی
    5. معرفی بارگزاری اضافی عملگر های رابطه ای
    6. معرفی بارگزاری اضافی عملگر های ورودی و خروجی
    7. معرفی عملگر های تبدیل
    8. معرفی بارگزاری اضافی عملگر های افزایش و کاهش یک واحد
    9. معرفی بارگزاری اضافی عملگر زیر نویس


    فصل دهم

    1. معرفی کلاس رشته / String
    2. معرفی رابط کلاس رشته String
    3. معرفی سازنده کپی
    4. معرفی عملگر انتساب
    5. معرفی عملگر جمع
    6. معرفی عملگر الحاق / افزایشی
    7. معرفی توابع دستیابی
    8. معرفی عملگر مقایسه ای
    9. معرفی عملگرهای مجرا



    فصل یازدهم

    1. معرفی ترکیب ها و وراثت ها
    2. معرفی ترکیب
    3. معرفی وراثت
    4. معرفی اعضای protected در کلاس
    5. معرفی لغو کردن و تسلط داشتن براعضای موروثی
    6. معرفی دستیابی private در برابر دستیابی protected
    7. معرفی توابع مجازی / virtual و چند شکلی
    8. معرفی ویرانگر های مجازی
    9. معرفی برنامه نویسی شیئ گرا / موضوعی


    فصل دوازدهم

    1. معرفی مجاری های ورودی و خروجی در C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎
    2. معرفی کلاس ios
    3. معرفی پرچم های قالب بندی در ios
    4. معرفی متغیر های حالت در ios
    5. معرفی کلاس های iostream و ostream
    6. معرفی توابع ورودی قالب بندی نشده (بدون قالب)
    7. معرفی توابع خروجی قالب بندی نشده / بی قالب
    8. معرفی دستکاری کننده های مجرا


    فصل سیزدهم

    1. معرفی الگوها و تکرار کننده ها در C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎
    2. معرفی الگوهای توابع
    3. معرفی الگوهای کلاس ها
    4. معرفی کلاس های ظرف
    5. معرفی الگوهای زیر کلاس
    6. معرفی ارسال کلاس های الگو به پارامتر های الگو
    7. معرفی الگوی کلاس برای لیست های پیوندی
    8. معرفی کلاس های تکرار کننده


    فصل چهاردهم

    1. معرفی کتابخانه ها در C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎
    2. معرفی واژه های کلیدی
    3. معرفی عملگر های C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎
    4. معرفی انواع موجود در C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎
    5. معرفی توابع از پیش تعریف شده در C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎
    6. معرفی اعداد بر مبنای 16


    فصل پانزدهم

    1. معرفی آخرین تغییرات در C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎‎‎‎
    2. معرفی انواع کامپایلرهای استاندارد بر روی C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎‎‎‎
    3. معرفی بهترین و جدیدترین کتابخانه های C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ ‎‎‎‎‎‎‎


    و به زودی اطلاعات بیشتری در رابطه با اهدافمون در این تاپیک ارائه خواهم داد تا انشالله مفید باشند.

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

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

    یه نکته دیگه که بعضی از دوستان پیام خصوصی دادن و گفتن که این کتاب رو از کجا گیر آوردی بده ماهم استفاده کنیم ! باید بگم که خوشبختانه این کتاب نویسندش خودم هستم و این مطالبی هم که پست میکنم بعد از نوشتن خود کتاب چکیده ای از صفحات رو اینجا با کمی تغییرات ارسال میکنم یعنی هر بار هر صفحه از کتاب رو که تموم میکنم یه پستی اینجا ارسال مینم که امیدوارم مفید باشه . و در ضمن در نظر دارم در رابطه C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ و در فروم های Qt در رابطه با نحوه استفاده از کتابخانه های Qt توضیحاتی بدم و در نهایت همین مطالب یه کتاب و مرجع درست حسابی بشه برای افرادی که نیاز دارن به یک منبع فارسی و جامع.
    آخرین ویرایش به وسیله کامبیز اسدزاده : شنبه 16 فروردین 1399 در 23:58 عصر دلیل: بروز رسانی 22-02-1393

  2. #2

    نقل قول: معرفی و آموزش C++‎‎‎‎‎ به صورت گام به گام

    فصل اول : مقدمه برنامه نویسی C++‎‎‎‎‎‎‎‎

    برنامه چیست و وظیفه زبان برنامه نویسی در این میان چیست؟

    به طور کلی برنامه به چه چیزی گفته می شود و زبان های برنامه نویسی چه وظیفه ای در تولید یک برنامه دارند برای این سوال باید اینگونه توضیح دهیم که به مجموعه دستوراتی که برای اجرا در اختیار کامپیوتر گذاشته می شود یک برنامه می گویند حال خود برنامه با زبان برنامه نویسی نوشته می شود که در این میان ما به تعریف و توضیح در رابطه با قدرتمند ترین زبان برنامه نویسی یعنی C++‎‎ می پردازیم.

    • عنوان و آوای این زبان : زبان برنامه نویسی C++‎‎ با آوای (سی پلاس پلاس) یکی از جدیدترین و قدرتمند ترین زبان های برنامه نویسی ساخت بشر تا به امروز می باشد که هدف نوشتن برنامه کارا و ساخت یافته و همچنین موضوعی یا (شیء گرا) را برای برنامه نویسان فراهم می کند.
    • برخی از قابلیت ها : این زبان دارای قابلیت‌های انواع داده ایستا، نوشتار آزاد، چندمدلی، معمولاً زبان ترجمه شده با پشتیبانی از برنامه‌نویسی ساخت‌یافته، برنامه‌نویسی شیءگرا، برنامه‌نویسی جنریک است. ++C به همراه جد خود C از پرطرفدارترین زبان‌های برنامه‌نویسی تجاری هستند.
    • سطح این زبان : زبان ++C یک زبان سطح میانی در نظر گرفته می‌شود. این زبان دارای قابلیت زبان‌های سطح بالا و پایین به‌صورت هم‌زمان است. زبان ++C توسط بی‌یارنه استراس‌تروپ دانمارکی در سال ۱۹۷۹ درآزمایشگاه‌های بل (Bell Labs)، برای بهبود زبان سی و بر مبنای آن ساخته شد و آن را “C با کلاس” (C With Classes) نام‌گذاری نمودند. در سال ۱۹۸۳ به ++c تغییر نام داد. توسعه با اضافه نمودن کلاس‌ها و ویژگی‌های دیگری مانند توابع مجازی، سربارگزاری عملگرها، وراثت چندگانه، قالب توابع، و پردازش استثنا انجام شد. این زبان برنامه‌نویسی در سال ۱۹۹۸ تحت نام ISO/IEC ۱۴۸۸۲:۱۹۹۸ استاندارد شد.
    • ساختار برنامه در این زبان چگونه است ؟ هر برنامه معمولاً از تعداد زیادی فایل تشکیل می‌شود که به هم الحاق می‌گردند (با دستور include) و به این فایل‌های الحاقی سرآیند (Header) می‌گوییم. فایل‌های الحاقی حاوی کدها یا نسخه‌های اجرایی کلاس‌ها (مجموعه متغیرها و توابع) می‌باشند که در بدنه اصلی برنامه از آنها استفاده می‌شود.معمولاً هر کلاس (که تعریف یک نوع داده‌ای با متدهای مربوط به آن است) را در یک سرآیند می‌نویسند. هر سرآیند که معمولاً تنها تعاریف (معرفی) کلاس را در خود دارد به همراه فایل‌های پیاده سازی به زبان ++C یا پیاده سازی‌های کامپایل شده (به صورت فایل اشیا مانند dll یا so یا … ) می‌تواند به کار برده شود. به مجموعه‌های یکپارچه‌ای از کلاس‌های پیاده سازی شده (به صورت فایل‌های سرآیند با پیاده سازی‌های کد یا اشیای زبان ماشین) که برای برنامه نویسی به کار می‌روند، یک کتابخانه ++C گفته می‌شود و قدرت اصلی این زبان در امکان به کارگیری کتابخانه‌های آماده می‌باشد.
    • کتابخانه ها در این زبان چگونه است ؟ کتابخانه‌های بزرگ ++C مانند STL ، MFC ، Qt ، wxWidgets ، Boost و … مجموعه قدرتمندی برای تولید برنامه در این زبان ایجاد کرده‌اند.
    • فرق بين سي C با ++C چيست؟ زبان C زبان برنامه نویسی Structured (ساخت یافته) است اما ++‍C زبان برنامه نویسی Object Oriented ( شی ء گرا ) می باشد و از لحاظ دستوری فرق زیادی با هم ندارند، اماتفاوت عمده این است که ++C از شی گرایی پشتیبانی می کند که سی C این قابلیت رو ندارد…
      امروزه دیگر بدون شی گرایی اصلا نمي توان نرم افزار های بزرگ نوشت.
    آخرین ویرایش به وسیله کامبیز اسدزاده : یک شنبه 21 تیر 1394 در 09:06 صبح

  3. #3

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    ادامه فصل اول : مقدمه برنامه نویسی C++‎‎‎‎‎‎‎‎‎‎‎‎‎ / تعریف ساختار برنامه های نوشته شده توسط C++‎‎‎‎‎‎

    در رابطه با ساختار برنامه های نوشته شده توسط C++‎‎‎‎‎‎ باید یه توضیحاتی بدم منظور از ساختار در اینجا انواع فایل های موجود در زبان C++‎‎‎‎‎‎ است.
    در این رابطه باید اینگونه اشاره کنیم که در این زبان ما می توانیم از فایل های زیر برای برنامه نویسی استفاده کنیم.

    فایل با پسوند (c.) در این زبان : این فایل منبعی برای کد هایی از نوع زبان C هستند.
    فایل با پسوند (cpp.) در این زبان : این فایل منبعی برای کد هایی از نوع زبان C و C++‎‎‎‎‎‎ هستند یعنی در هر دو نیز قابل استفاده می باشند.
    فایل با پسوند (cxx.) در این زبان : این فایل منبعی برای کد هایی از نوع زبان C و C++‎‎‎‎‎‎ هستند یعنی در هر دو نیز قابل استفاده می باشند.

    فایل با پسوند (hpp.) در این زبان : این نوع فایل ها معمولا فایل با عنوان (هدر / سر صفحه) یاد می شوند و و معمولا فقط حاوی اعلان ها می باشند.
    فایل با پسوند (h.) در این زبان : این نوع فایل ها معمولا فایل با عنوان (هدر / سر صفحه) یاد می شوند و و معمولا فقط حاوی اعلان ها می باشند.
    فایل با پسوند (hxx.) در این زبان : این نوع فایل ها معمولا فایل با عنوان (هدر / سر صفحه) یاد می شوند و و معمولا فقط حاوی اعلان ها می باشند.
    فایل با پسوند (hh.) در این زبان : این نوع فایل ها معمولا فایل با عنوان (هدر / سر صفحه) یاد می شوند و و معمولا فقط حاوی اعلان ها می باشند.
    فایل با پسوند (++h.) در این زبان : این نوع فایل ها معمولا فایل با عنوان (هدر / سر صفحه) یاد می شوند و و معمولا فقط حاوی اعلان ها می باشند.

    انواع فایل هایی که به آنها اشاره شد بسیار است ولی متناسب با محبویت و پشتیبانی کامپایلر ها از این فایل ها در این زبان برای انتخاب آنها مهم است بنا بر این در طی آموزش و تمامی مراحل ما فقط از فایل های h. برای هدر و فایل های cpp. برای منابع استفاده خواهیم کرد.

    چرا و چه زمانی باید از فایل های h. و چه زمانی از فایل های cpp. استفاده کنیم ؟ برای پاسخ اینگونه توضیح می دهیم در زبان C++‎‎‎‎‎‎ برای راحتی کار به خاطر پیچیده بودن کد نویسی امکان این وجود دارد که ما توابع ، کلاس ها و تعاریف رو در فایل جدا گانه ای مثل هدر فایل یا همان .h بنویسیم و برای اجرا عملیات و صدا زدن از فایل های cpp.استفاده کنیم البته این اجبار نیست ! شما می توانید در فایل h. و یا فایل cpp.به تنهایی برنامه رو اجرا کنید که معمولا در مثال های کوچک و کوتاه از یک نوع فایل استفاده می شود ولی بسته به نیاز و پیچیدپی در پروژه بهتر است استفاده از امکاناتی که این زبان در اختیار ما می گذارد به حد اکثر برسانیم.
    آخرین ویرایش به وسیله کامبیز اسدزاده : دوشنبه 07 بهمن 1392 در 09:54 صبح

  4. #4

    نقل قول: معرفی و آموزش C++‎‎ به صورت گام به گام

    ادامه فصل اول : ساده ترین برنامه توسط این زبان

    همانطور که می دانید در هر زبان برنامه نویسی می توان ساده ترین برنامه را در چند خط کوتاه ایجاد و نتیجه رو نمایش داد برای اینکه بهتر و از مراحل ابتدائی ساختار تولید برنامه در C++‎‎‎‎‎‎‎ رو مشاهده کنیم به صورت زیر ساده ترین کد نویسی به زبان C++‎‎‎‎‎‎‎ و البته در نسخه 11 رو توضیح می دهم.

    به صورت زیر :


    و کد زیر :


    //Author : Kambiz Asadzadeh


    #include <iostream>

    // This program prints Welcome to C++‎‎‎‎ 11 Programming language!

    using namespace std;

    int main()
    {

    std::cout << "Welcome to C++‎‎‎‎ 11 Programming language!\n";

    return 0;
    }


    این یک برنامه ساده که فقط عمل نمایش یک متن را در خروجی نمایش داده است که به صورت زیر به تجزیه و تحلیل خط به خط آن می پردازیم.

    در ابتدای کد اصولا توضیحاتی در رابطه با فایل ، پروژه ، کد و یا قوانین کپی رایت و ... رو توسط کاراکتر های // می دهند.

    دستور include در سطر اول برای برنامه هایی که دارای خروجی هستند ضروری است که در این کد این دستور یک فایل خارجی به نام iostream را که خودش یک هدر به صورت iostream.h می باشد وارد کرده که حاوی اطلاعاتی در مورد شیء cout می باشد.

    شکل کلی include به صورت زیر است البته دقت کنید در C++‎‎‎‎‎‎‎ 11 نیازی به نوشتن پسوند فایل برای کتابخانه و فایل های اصلی نیست و پارانتز ای زاویه ای <> بخشی از نام فایل نمی باشند و تنها وظیفه آنها این است که مشخص میکند این فایل کتابخانه استاندارد C++‎‎‎‎‎‎‎ است.


    #include <نام فایل>


    در سطر دوم توضیحی در رابطه با خروجی دادیم که توسط کاراکتر های // مشخص شده و معمولا برای آگاهی بیشتر برنامه نویس و یا توسعه دهندگان در دفعات بعدی برای درک و یاد آوری دوباره می توان استفاده کرد.


    // This program prints Welcome to C++‎‎‎‎‎‎‎ 11 Programming language!


    در این مکان استفاده از namespace یعنی فضای نام برای برخی از کلاس ها و توابع از پیش تعریف شده مهم است برای مثال در نسخه های جدید C++‎‎‎‎‎‎ این مهم است که برای هرچه بهتر عمل کردن انواع کتابخانه ها مانند Boost و std که در بعضی از کامپایلر ها بدون تعریف فضای نام امکان دسترسی به جزئیات و اشاء موجود در کلاس ها موجود نیست بنابر این با تعریف به صورت زیر ما میتوانیم از شیئ cout بدون فراخوانی std استفاده کنیم.


    cout << "Welcome to C++‎‎‎‎‎‎ 11 Programming language!\n";


    در صورتی که اگر از فضای نام استفاده نکرده اید باید در کد خود به صورت زیر شیئ cout رو صدا بزنید مانند نمونه مثال زیر :


    std::cout << "Welcome to C++‎‎‎‎‎‎ 11 Programming language!\n";


    در سطر سوم سر آمد تابع اصلی یعنی main قرار گرفته و تنها تابعی در C++‎‎‎‎‎‎‎ است که مکان شروع برنامه را به کامپایلر اطلاع می دهد. و همچنین حضور () پرانتز ها در مقابل تابع ضروری می باشد.


    int main()


    حال در سطر بعدی نماد های { و } وجود دارد که این نماد ها بدنه تابع main را دربر میگیرند و در تمامی برنامه های C++‎‎‎‎‎‎‎ بکار گرفته می شود.

    در رابطه با داخل بدنه تابع دستور زیر قرار دارد :


    cout << "Welcome to C++‎‎‎‎‎‎‎ 11 Programming language!\n";


    این دستور به سیستم اطلاع می دهد که پیام Welcome to C++‎‎‎‎‎‎‎ 11 Programming language! را به شیء cout به آوای (سی - اُوت) ارسال نماید.

    نام cout برگرفته شده از Console output می باشد.

    و همچنین عملگر >> عملگر درج نام دارد و وظیفه آن درج پیام در مجرای خروجی می باشد و در نهایت آن نماد های نقطه ویرگول ; به آن دستور خاتمه میدهد و همچنین باید در نظر داشته باشید در C++‎‎‎‎‎‎‎ تمام دستورات توسط این نماد خاتمه میابند.

    مجرای خروجی cout دقیقا مثل یک گذرگاه عمل میکند که خروجی را به صورت بایت به بایت از برنامه به صفحه نمایش یا سایر وسایل خروجی انتقال می دهد.

    نماد n\ معرف کاراکتر newline همان سطر جدید می باشد که متشکل از کاراکتر n و \ است در صورتی که شما در آخر رشته این نماد را وارد نمایید به سیستم اعلام میکند که بعد از رسیدن به این خط یک سطر جدیدی را آغاز کند و این به معنی این است که این سطر به پایان رسیده است ! در غیر این صورت اگر شما موارد دیگری را چاپ کنید پشت سر هم چاپ خواهند شد به صورت زیر ...


    Welcome to C++‎‎‎‎‎‎‎ 11 Programming language!Welcome to C++‎‎‎‎‎‎‎ 11 Programming language!


    ولی در صورت استفاده از نماد n\ این مشکل رفع می شود.

    که در نهایت خروجی برنامه به صورت زیر خواهد بود :


    Welcome to C++‎‎‎‎‎‎‎ 11 Programming language!


    و در نهایت دستور return 0 برنامه را خاتمه داده و کنترل را به سیستم عاملی که روی سیستم کامپیوتری موجود است انتقال میدهد که در اینجا عدد 0 به منظور پایان موفقیت آمیز برنامه مشخص شده است.

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

    در کل کوتاه ترین برنامه در C++‎‎‎‎‎‎‎ به صورت زیر است :


    int main(){}


    که شامل نام تابع و نوع تابع و در نهایت بدنه تابع می باشد که هیچ عملیاتی را انجام نمیدهد ولی به سادگی خود پیکر اصلی برنامه های C++‎‎‎‎‎‎‎ را تشکیل می دهد.
    آخرین ویرایش به وسیله کامبیز اسدزاده : یک شنبه 06 بهمن 1392 در 19:57 عصر

  5. #5

    نقل قول: معرفی و آموزش C++‎‎ به صورت گام به گام

    ادامه فصل اول : معرفی عملگر خروجی

    در C++‎‎‎‎‎‎‎‎‎‎‎‎ برای چاب لازم است توسط عملگر >> که عملگر درج یا خروجی نام دارد اشاء را به مجرای خروجی درج کنیم که به عنوان مثال شیئ cout یک مجرای خروجی است و برای هدایت موارد لازم برای این مجرا باید از علامت >> را استفاده کنیم تا اشیاء را یه سمت چپ خود ارسال کند به عنوان مثال در سمت راست این علامت اشاء مورد نظر برای چاپ قرار میگیرند که آن ها را دریافت از سمت چپ خود به شیء مجرا یعنی cout وارد میکند تا شیء cout خروجی را به صفحه نمایش هدایت کنند.

    در ضمن مجرای cout که وظیفه انتقال اشیاء برای نمایش دادن در صفحه خروجی را دارد قابلیت دریافت چندگانه اشایء رو نیز دارد مثلا در صورتی که چندین بار از علامت خروجی یا درج استفاده کنید آنگاه به ترتیب تمام اشیاء به cout وارد شده و در نهایت چاپ می شوند.

    برای درک بیشتر این موضوع به مثال های زیر توجه کنید :


    بنابراین اگر ما عدد 100 رو به این مجرا ارسال کنیم در نمایشگر یا سیستم خروجی عدد 100 نمایش داده خواهد شد.


    //Author : Kambiz Asadzadeh


    #include <iostream>

    using namespace std;

    int main()
    {

    cout << "Hello ," << " world." << "\n";

    return 0;
    }


    به این کد توجه کنید یکجا من متن رو نوشتم و در نهایت چاپ می شود به صورت زیر :


    cout << "Hello , world.\n";


    حالا به این کد توجه کنید در این قسمت من برای هر بخش یک بار از جدا کننده استفاده کردم و ترتیب وارد کردن شی ء که در اینجا رشته هست به ترتیب وارد cout شده و در نهایت همانند کد بالا نتیجه رو نمایش خواهد داد.


    cout << "Hello ," << " world." << "\n";


    در اینجا من چون نخواستم به صورت یکجا توسط یک درج کننده رشته Hello , world. رو به cout وارد کنم از نماد مجدد برای درج استفاده کردم ولی باید دقت کنید که قوانین جدا کننده رو نیز رعایت کنید.

    و همچنین باید دقت کنید اولویت بندی در این حالت به سه قسمت تقسیم شده که شامل Hello و world و n\ هستش و به ترتیب به اولویت چپ به راست یعنی اول Hello بعد world. و در نهایت سطر جدید توسط n\ مشخص و به خروجی ارسال می شود که نتیجه در خروجی به صورت زیر خواهد بود :


    .Hello , world


    شکل کلی مجرای خروجی cout به صورت زیر خواهد بود و منظور از expression همان عبارت و یا بیانیه می باشد.


    cout << expression << expression << expression << ...... << expression;
    آخرین ویرایش به وسیله کامبیز اسدزاده : یک شنبه 06 بهمن 1392 در 21:12 عصر

  6. #6

    نقل قول: معرفی و آموزش C++‎‎‎‎‎ به صورت گام به گام

    ادامه فصل اول : معرفی کاراکتر ها و الفاظ رشته ای

    در رابطه با literal یا همان الفاظ رشته ای توضیح به صورت زیر است :

    برای مثل همان کلمه Hello که در اینجا توسط علامت های نقل قول از هر دو طرف محدود شده است به صورت زیر :

    "Hello"

    در رابطه با کاراکتر باید بگوییم یک کاراکتر عضوی است از مجموعه ای از کاراکتر ها یا یکی از حروف الفبا که کامپیوتر کاراکتر ها را به صورت کاراکتر های اسکی ASCII استفاده می کند.
    حال برای مثال کاراکتر 'n/' یک کاراکتر غیر قابل چاپ است که متشکل از حرف n و \ بک اسلش می باشد کاراکتر های زیادی در C++‎‎‎‎‎ وجود دارند که به این شیوه ساخته شده اند مانند 't/' که وظیفه ستون بندی را دارد.

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

    یعنی بهترین روش برای استفاده از کاراکتر های غیر قابل چاپ که وظیفه آنها انجام عملی است بهتر است از کوتیشن '....' استفاده کنیم مانند 'n/' که وظیفه آن خاتمه دادن به سطر جاری و ارسال به سطر جدید است.

    به عنوان مثال به کد زیر توجه کنید :


    cout << "Hello, " << 'w' << 'o' << 'r' << "l" << 'd' << '.' << "\n";


    این دستور مشخص است که هفت شیء را به مجرای cout ارسال می کند که دو تای آن ها از نوع لفظ رشته ای یعنی Hello و l هستند و 5 تای دیگر از نوع کاراکتر های ثابت یعنی 'w' , 'o' , 'r' , '.' و 'n/' هستند.

    و یا میتوان دستور بالا را با دستور زیر جایگزین کرد :


    cout << "Hello, " << "w" << "o" << "r" << "l" << "d" << "." << "\n";


    در این دستور 7 رشته لفظی به cout ارسال می شود.
    آخرین ویرایش به وسیله کامبیز اسدزاده : یک شنبه 06 بهمن 1392 در 20:49 عصر

  7. #7

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    ادامه فصل اول : طول رشته

    همانطور که می دانید طول یک رشته را بر اساس تعداد کاراکتر های موجود در آن مشخص می کنند برای مثال طول حرف (لفظ) رشته "HELLO" دقیقا 5 می باشد.
    حالا برای مشخص کردن طول رشته در C++‎‎ تابعی از پیش تعریف شده داریم به نام strlen() که میتوان از آن برای تعیین طول رشته استفاده کرد به صورت زیر :


    //Author : Kambiz Asadzadeh


    #include <iostream>

    using namespace std;

    int main()
    {
    cout << strlen("Hello, world.") << "\n";

    return 0;
    }


    اینجا یک مورد جالبی هستش که باید ریز بین باشید تا اینجور موارد رو تشخیص بدهید.
    در این خط :


    cout << strlen("Hello, world.") << "\n";

    من چرا از n\ در ادامه همان world. استفاده نکردم و ترجیح دادم خارج از بدنه strlen توسط یک عملگر درج جداگانه آن را ارسال کنم ؟! دلیلش این هستش که در داخل strlen خود n/ شامل کاراکتر ها می باشد و به جای طول رشته 13 طول رشته 14 را نمایش می داد.

    حالا کد زیر را مشاهده نمایید آیا خالی بودن هم به عنوان داشتن مقدار و طول رشته محسوب می شود ؟


    cout << strlen("") << "\n";


    در جواب باید بگیم خیر ! خروجی 0 را نمایش خواهد داد زیرا رشته تهی (خالی) همیشه صفر (0) است.

    لازم بذکر است تابع از پیش تعریف شده strlen در فایل جدا گانه ای به نام string.h تعریف شده است که در ویرایش های قبلی C++‎‎ باید این هدر رو فراخوانی نمایید ولی در نسخه 11 چنین نیازی نیست که برای فراخوانی توابع از پیش تعریف شده C++‎‎ مجددا اقدام به وارد کردن ان نمایید.

  8. #8

    نقل قول: معرفی و آموزش C++‎‎ به صورت گام به گام

    ادامه فصل اول : معرفی نحوه توضیحات نویسی در کد ها

    در برنامه نویسی C دو نوع توضیح وجود داره که یک روش توضیح استاندارد هستش و با (اسلش / ستاره) */ آغاز میشه و با نماد (ستاره / اسلش) /* خاتمه میابه و هر چیزی که در بین این تو نماد نوشته می شود توسط کامپایلر نادیده گرفته می شود مانند مثال زیر :


    1. /*This is C standard comment*/


    و همچنین در روش دوم استاندارد C++‎‎‎‎ هستش که با دوبار اسلش // آغاز شده و تا پایان سطر ادامه داره همانند توضیح زیر :


    2. //This is C++‎‎‎‎ standard comment line 2
    3. //This is C++‎‎‎‎ standard comment line 3


    در رابطه با استفاده از دو روش توضیح نویسی در برنامه نویسی اجباری در انتخاب و یا استفاده از آنها نیست ولی در رابطه با چگونه و چه زمانی استفاده کردن از این دو روش به صورت زیر براتون مثال میزنم :



    /************************************************\
    * This is a free program *
    * Write by : Kambiz Asadzadeh *
    * Create date : 2014 – 01 - 27 *
    * Version : 1.0 *
    \************************************************/

    #include <iostream> // We need this library to use cout

    // This print message: “Hello, world.”



    و یا به صورت زیر :


    1. //------------------------------------------------------------------------------------------------------------------------------
    2. // This is a free program
    3. // Write by : Kambiz Asadzadeh
    4. // Create date : 2014 – 01 - 27
    5. // Version : 1.0
    6. //------------------------------------------------------------------------------------------------------------------------------
    7. #include <iostream> // We need this library to use cout
    8. // This print message: “Hello, world.”



    استفاده از هر دو حالت امکان هستش حالا این وسط برنامه نویس انتخاب میکنه که از چه روشی برای توضیح نوشتن استفاده کنه.
    آخرین ویرایش به وسیله کامبیز اسدزاده : سه شنبه 08 بهمن 1392 در 16:15 عصر

  9. #9

    نقل قول: معرفی و آموزش C++‎‎ به صورت گام به گام

    ادامه فصل اول : متغیر ها و اشیاء و معرفی آن ها

    برای شروع برنامه نویسی مهمترین و ابتدائی ترین قسمتی که یک برنامه نویس باید با اون آشنایی کامل داشته باشه متغیر ها و اشیاء و همچنین نحوه تعریف اینهاست ؛ همانطور که مشخص است در برنامه نویسی برای استفاده از حافظه کامپیوتر و ذخیره اطلاعات و مقادیر لازم در آن باید قبل از هرچیزی نوع و نام آن را مشخص نماییم تا بر اساس آن مکانی برای متغیر ما در نظر گرفته شود و در کل مکانی را که برای اطلاعات در آن ذخیره میشود متغیر میگوییم.

    در برنامه نویسی قوانین و اصول خاصی وجود دارد که باید بر اساس آن متغیر را تعریف کرد که متداول ترین نوع تعریف متغیر شیوه انتساب می باشد به صورت زیر :
    یعنی در اینجا type یکی از انواع داده ها در C++‎ است و variable عبارتی است که ما به عنوان نوع تعریف شده در نظر خواهیم گرفت.

    type variable;

    variable = value;



    این شکل در ابتدا بخش expression را ارزیابی نموده و سپس مقدار آن را به variable نسبت می دهد به این معنی که مقدار expression هر چیزی باشد از نوع variable تعیین شده خواهد بود.

  10. #10

    نقل قول: معرفی و آموزش C++‎‎ به صورت گام به گام

    ادامه فصل اول : متغیر ها و اشیاء و معرفی آن ها

    در اینجا بر اساس type برای کامپایلر مشخص می کنیم که نوع آن از چه نوعی خواهد بود و عنوان متغیر چه چیزی خواهد بود ؛ برای مثال در سطر اول متغیر زیر با نام X از نوع int تعریف شده است و در سطر دوم مقدار 65 برای متغیر از نوع صحیح داده شده است که بازه آن بین 32,768- تا 32,767 است.


    int X;
    X = 65;

  11. #11

    نقل قول: معرفی و آموزش C++‎‎ به صورت گام به گام

    ادامه فصل اول : متغیر ها و اشیاء و معرفی آن ها


    زبان برنامه نویسی C++‎‎‎‎‎‎‎ یک زبان قدرتمند از نوع موضوعی یا شیئ گرا است به این صورت که می توان توسط این زبان هر گونه سیستمی را شبیه سازی کرد زیرا شما می توانید با در نظر گرفتن هر قسمت از محصول را در آن تعریف و به صورت انتساب مقادیر و انواع را مشخص کنید.
    حال بررسی خواهیم کرد که چگونه میتوان متغیر را در C++‎‎‎‎‎‎‎ تعریف کنیم.
    در این مثال خواهیم دید که میتوان متغیر را در یک خط از دستور در چندین حالت و عناوین مختلف تعریف کرد ما متغیر های x و y را از نوع int عدد صحیح در نظر میگیریم به صورت زیر :

    int x , y;

    این یعنی بدون دوباره نویسی دستور type (نوع متغیر) می توانیم تعداد دلخواه متغیر را از نوع مورد نظر در نظر بگیریم به طور کلی شکل آن به صورت زیر است :


    type var1, var2, var3, …, varN;
    آخرین ویرایش به وسیله کامبیز اسدزاده : سه شنبه 23 اردیبهشت 1393 در 10:06 صبح

  12. #12

    نقل قول: معرفی و آموزش C++‎‎ به صورت گام به گام

    ادامه فصل اول : متغیر ها و اشیاء و معرفی آن ها

    به طور کلی متغیر ها بعد از نوع خود یعنی (type) قرار میگیرند و با استفاده از جدا کننده کاما (,) از هم جدا می شوند در مثال زیر چندین متغیر در حالت ها مختلف تعریف شده است.


    //Author: Kambiz Asadzadeh

    #include <iostream>

    using namespace std;

    int main()

    {

    int x, y;
    int total;
    x = 128; y = 128;

    total = x + y;

    cout << "Total is:" << total << "\n";

    return 0;

    }




    خروجی برنامه زیر در نهایت به صورت زیر نمایش داده خواهد شد :
    Total is: 256

    همانطور که مشاهده می کنید در سطر 11 و 12 متغیر ها را از نوع صحیح تعریف کردیم و در خط 13 مقداری را برای هر کدام به صورت جدا گانه مشخص نمودیم حال در سطر 15 در متغیر از قبل تعریف شده مجموع مقادیر موجود در x و y را وارد میکنیم و در نهایت با ارسال مقدار به مجرای خروجی آن را نمایش می دهیم.

  13. #13

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    ادامه فصل اول : معرفی انواع واژه های کلیدی و شناسه های C++‎‎‎‎

    در برنامه نویسی شکل آن را میتوان گفت از مجموعه ای نشانه ها ساخته شده است برای مثال اسامی متغیر ها , ثوابت , واژه های کلیدی , عملگر ها و علائم نقطه گذاری و ... همگی نشانه هستند.

    برای مثال :


    //Author: Kambiz Asadzadeh
    #include <iostream>

    using namespace std;

    int main()
    {

    int x = 65;

    cout << x << endl;

    return 0;
    }




    در کد نمونه ما 15 نشانه داریم ابتدا سطر اول و دوم که شامل توضیح و پیش پردازنده می باشند و جزئی از کد به حساب نمی آیند ولی main , ) , ( , { , } , int , x , = , 65 , ; , cout , << , endl , return , 0 و { می باشند ؛ که در اینجا نشانه x یک متغیر است نشانه های 65 , 0 و endl ثابت هستند نشانه های int , return عضوی از مجموعه واژه های کلیدی می باشند ؛ نشانه های = و << عملگر هستند و نشانه های ) و ( و {} و ; از علائم نقطه گذاری می باشند.

  14. #14

    نقل قول: معرفی و آموزش C++‎‎ به صورت گام به گام

    ادامه فصل اول : معرفی انواع واژه های کلیدی و شناسه های C++‎‎‎‎‎‎‎

    واژه های کلیدی چیست ؟ واژه کلیدی واژه حفاضت شده نیز نامیده می شود ؛ این واژه ها قبلا توسط زبان برنامه نویسی برای اهداف ویژه و خاصی حفاظت شده اند و برنامه نویس هرگز نمی تواند آنها را به عنوان متغیر یا اهداف دیگری استفاده نمایند.

    همچنین به طور کلی می توان گفت : شناسه رشته ای از کاراکتر های الفبایی , عددی است که با کاراکتر های الفبایی آغاز می شود که تعداد آن ها 53 تا می باشد که یکی از آنها کاراکتر زیر خطی ( _ ) و بقیه آنها حروف الفبا می باشند و کاراکتر های الفبایی عددی افزون بر 53 کاراکتر الفبایی , 10 کاراکتر رقمی (0 , 1 , 2 , … , 9) را نیز دربر دارند. بنابراین main() , int , x , cout و endl و حتی واژه هایی چون Stack , x1,y1 , FirstName و یا the_lord_of_programmers شناسه می باشند همچنین باید توجه کنید در C++‎‎‎ نسبت به حروف کوچک و بزرگ کاملا حساس است و آنها را از هم به صورت جدا تشخیص می دهد بنابر این شناسه memory با شناسه Memory شناسه های متفاوتی هستند.
    همچنین باید توجه داشته باشید شناسه ها برای نام گذاری متغیر ها , توابع , کلاس ها و نام گذاری ساختار بکار می رود و باید توجه داشته باشید شناسه های مانند endl نوعی شناسه ثابت هستند و شناس های int یک نوع واژگان کلیدی در C++‎‎‎ می باشد و درواقع بخشی از خود زبان برنامه نویسی هستند.
    آخرین ویرایش به وسیله کامبیز اسدزاده : یک شنبه 04 خرداد 1393 در 10:25 صبح

  15. #15

    نقل قول: معرفی و آموزش C++‎‎ به صورت گام به گام

    ادامه فصل اول : معرفی انواع واژه های کلیدی و شناسه های C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎

    در C++‎‎‎‎‎‎‎‎‎‎ واژه های کلیدی از پیش تعریف شده وجود دارد که قبلا در زبان C وجود داشت به صورت زیر :



    auto const double float int short struct unsigned
    break continue else for long signed switch void
    case default enum goto register sizeof typedef volatile
    char do extern if return static union while




  16. #16

    نقل قول: معرفی و آموزش C++‎‎ به صورت گام به گام

    ادامه فصل اول : معرفی انواع واژه های کلیدی و شناسه های C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎

    و همچنین واژه هایی که فقط در زبان C++‎‎‎‎ وجود دارد به صورت زیر آمده است :


    asm dynamic_cast namespace reinterpret_cast try
    bool explicit new static_cast typeid
    catch false operator template typename
    class friend private this using
    const_cast inline public throw virtual
    delete mutable protected true wchar_t

  17. #17

    نقل قول: معرفی و آموزش C++‎‎ به صورت گام به گام

    ادامه فصل اول : معرفی انواع واژه های کلیدی و شناسه های C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎

    و در نهایت جدیدترین واژه های کلیدی که در ویرایش 11 آمده است به صورت زیر می باشد :


    alignas constexpr static_assert
    alignof decltype thread_local
    char16_t noexcept override
    char32_t nullptr final


    در رابطه هرکدام از این ها توضیحات کامل ارائه خواهد شد.

  18. #18

    نقل قول: معرفی و آموزش C++‎‎ به صورت گام به گام

    ادامه فصل اول : معرفی نسبت دادن مقادیر و ارزش در زمان اعلان

    مقدار دهی اولیه به یک متغیر انتساب یک مقدار (ارزش) به متغیر در زمان اعلان ان می باشد و مشابه عمل انتساب از نماب تساوی استفاده می شود بدین معنی که عبارت ابتدا ارزیابی می شود و سپس مقدار آن شیء سمت چپ عملگر انتساب منسوب می شود.

    توجه : بهترین زمان برای مقدار دهی به متغیر هنگام اعلان متغیر می باشد.

    در مثال زیر به مقدار دهی متغیر ها توجه کنید :



    //Author: Kambiz Asadzadeh

    #include <iostream>

    using namespace std;

    int main()

    {
    int x = 65;
    int y;
    y = 255;
    int max;

    max = x + y;

    cout << max << "\n" << endl;

    return 0;

    }




    در این کد مقدار x, y و max بر اساس نوع آن یعنی عدد صحیح داده شده است و در زمان اعلان مقدار دهی شده اند و در نهایت مقدار دو متغیر x و y جمع و به متغیر max نسبت داده شده است.

    به این نوع تعریف متغیر دقت کنید :


    int x1, x2, x3 = 65, x4, x5, x6 = 255;



    در این روش متغیر های x1 تا x6 از نوع int تعریف شده اند ولی در زمان اعلان فقط دو متغیر x3 و x6 مقدار دهی می شوند !این یعنی علاوه بر اینکه متغیر ها تعریف می شوند بلکه در موقع تعریف آن ها می توان مقدار دهی را نیز انجام داد با این تفاوت که مقدار داده شده فقط به متغیر سمت چپ آن مقدار نسبت داده می شود.

  19. #19

    نقل قول: معرفی و آموزش C++‎‎‎ به صورت گام به گام

    با سلام ؛ همونطور که میدونید بنده هم این تاپیک رو قصد دارم ببرم جولو و همچنین تاپیک C++‎ همراه با Qt ...
    خیلی دوست داشتم ادامه مطالب رو دقیقا مثل کتابم ادامه بدم ولی اینطور ادامه بدم 100 سال دیگه هم تموم نمیشه به خاطر کمبود وقت و همچنین مشغول بودن روی چندین پروژه از این پست به بعد همه مطالب رو تا حدی که لازم هست توضیح و خواهم نوشت همراه با مثال ها...

    امروز نوبته معرفی انتساب های زنجیره ای / درونی هستش به صورت زیر میریم سر اصل مطلب...

    ادامه فصل اول : معرفی انتساب های زنجیره ای و درونی

    انتساب به چه چیزی گفته می شود و چگونه میتوان از آن استفاده کرد : در کل انتساب به عبارتی گفته می شود که در هر صورتی شامل یک عبارت باشد.
    به عنوان مثال من متغیری در نظر میگیرم با نام x و مقدارش برابر 64 حالا یک متغیری ایجادد میکنم با نام y و مایلم بدون تعریف مستقیم مقدار به y مقدارش رو از x بگیریم به صورت زیر :


    int x, y;
    x = 128;
    y = (x = 128);


    اینجا من چکار کردم ابتدا متغیر ها تعریف شده و سپس مقدار دهی به x و در خط بعدی مقدار y رو برابر کردم یا مقدار موجود در x...
    این بدین معنی است که مقدار y دقیقا برابر مقداری است که به x داده شده است ؛ این نوع روش مقدار دهی را انتساب زنجیره ای می گویند این بدین معنی است که مقدار y دقیقا برابر مقداری است که به xاین نوع روش مقدار دهی را انتساب زنجیره ای می گویند.

  20. #20

    نقل قول: معرفی و آموزش C++‎‎‎‎ به صورت گام به گام

    ادامه فصل اول : معرفی انتساب های درونی

    این نوع انتساب هارو معمولا بدون پرانتز () و یا به صورت مرکب می نویسند.

    برای مثال به صورت زیر :


    y = x = 128;


    در این مثال من سعی کردم یک مقدار رو به دو متغیر x و y به صورت همزمان تخصیص بدم که به این روش میگیم انتساب مرکب یا درونی.

    و یک مثال جامعتر از این بخش :



    //Author: Kambiz Asadzadeh


    #include <iostream>


    using namespace std;


    int main()


    {
    int x1, x2, x3 = 65, x4, x5, x6 = 255;




    int x, y;
    y = (x = 128) + 64;


    cout << " Y = (" << y << ") X = (" << x << ")\n" << endl;
    return 0;


    }





    میبینید من در یک خط مقادیر x1 تا x6 رو یکجا 255 قرار دادم و در خط بعدش...
    در این به روش انتساب مرکب ابتدا مقدار 128 به x دادم و سپس مقدار x یعنی 128 در خارج از پرانتز به علاوه مقدار 64 میکنم و مقدار 192 رو نهایت به y نسبت میدم.

    خروجی میشه به صورت زیر :


    Y = (192) X = (128)




    حالا به جای این روش ها روش زیر هم هستش :


    int x = 128;
    int y = x + 65;




    ابتدا x رو برابر 128 کردم و بعد y رو برابر مقدار x به علاوه 65 قرار دادم.

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


    int x1, x2, x3 = 65, x4, x5, x6;
    x1 = x2 = x3 = x4 = x5 = x6 = 1024;



    چکار کردم ابتدا x1 تا x6 رو از نوع int در نظر گرفتم و سپس هر یک رو به روش تو درتو یا همون درونی برابر 1024 قرار دادم.


    به همین راحتی...

  21. #21

    نقل قول: معرفی و آموزش C++‎‎‎‎ به صورت گام به گام

    ادامه فصل اول : معرفی انتساب های درونی

    بزارید یک مثال به صورت خطا بزنم ...

    در مثال قبلی به مقدار زیر توجه کنید :


    int x1, x2, x3 = 65, x4, x5, x6;
    x1 = x2 = x3 = x4 = x5 = x6 = 1024;

    حالا به صورت زیر...

    int x1 = x2 = x3 = x4 = x5 = x6 = 1024; // Error


    در کد دوم ما به صورت صحیح مقادیر رو تعریف و برای هر کدام مقدار دهی نکرده ایم پس مسلما خطا خواهد بود !
    حالا علت خطا برای این روش این است که مقدار دهی اولیه همان انتساب نیست و این دو عمل مشابه هم هستند بنابر این کامپایلر به شیوه های متفاوتی با آنها رفتار میکنه که شکل صحیح این عبارت به صورت زیر هستش...


    int x1 = 1024, int x2 = 1024, int x3 = 1024, int x4 = 1024, int x5 = 1024, int x6 = 1024; // OK



    البته این روش های درونی رو خیلی ها به خاطر خوانا نبودنش استفاده نمیکنن ولی خب این ها روش هایی هستند که در C++‎ استفاده میشه.

  22. #22

    نقل قول: معرفی و آموزش C++‎‎‎‎ به صورت گام به گام

    ادامه فصل اول : معرفی کاراکتر خاتمه دهنده (نقطه , ویرگول و سیمیکالون)

    در برنامه نویسی C++‎‎‎‎ نقطه ویرگول (;) نقش پایان دهنده دستور را بر عهده دارد یعنی در این زبان تمام دستورات باید با نقطه ویرگول خاتمه یابند ولی این قانون شامل همه قسمت ها نخواهد شد برای مثال مواردی مانند کد زیر که با علامت شارپ(#) آغاز شده اند شامل نمیشوند.

    مثلا کد زیر :


    #include <ios>


    در این قسمت ما از علامت های خاتمه دهنده استفاده نمیکنیم که به طور کلی انواع حالت های کد نویسی در C++‎‎‎‎ همشون شامل خاتمه دهنده نمیشوند مثلا #define ها و یا #include ها این ها نیستند پیش پردازنده هستند و فقط وظیفه این ها راهنما برای پیش پردازنده / Preprocessor را دارد.

    به مثال زیر توجه کنید :


    //Author: Kambiz Asadzadeh


    #include <iostream>


    using namespace std;


    int main()


    {
    int x;


    cout << x << "\n" << endl;


    return 0;


    }




    کاملا مشخصه که در هر قسمتی از کد ها و دستورات که از نقطه ویرگول استفاده شده دستور خاتمه پیدا کرده و موارد دیگر مانند توضیحات و راهنماهای پیش پردازنده شامل دستورات برنامه نویسی نیستند و نیازی به نقطه ویرگول ندارند.

  23. #23

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    ادامه فصل اول : معرفی سبک و روش برنامه نویسی در C++‎

    خب یکی از مهمترین موارد که خیلی مشتاقم توضیح درست حسابی در رابطه باهاش بدم همین قسمته که خیلی ها با این قسمت روشن خواهند شد...

    در برنامه نویسی با زبان C++‎ برنامه نویس کاملا آزاد هستش بدین صورت که هیچ ضرورتی در مورد مکان جایگذاری عناصر در یک خط یا صفحه وجود ندارد و برنامه نویس در رابطه با این مورد کاملا آزاد است ولی با این وجود برنامه نویسان خبره میدانند که اعمالی چون نوشتن, اشکال زدایی و پشتیبانی موفق برنامه با بکار گیری پیوسته یک شیوه برنامه نویسی خوانا, بسیار آسانتر می شود.افزون بر اینکه چنانچه برنامه نوشته شده شما با قوانین و شیوه استاندارد برنامه نویسی مطابقت داشته باشد خواندن آن برای دیگر برنامه نویسان و توسعه دهندگان آسانتر خواهد بود زیرا در بعضی از موارد نیاز به توسعه همه جانبه برنامه توسط برنامه نویس اصلی و دیگر توسعه دهندگان وجود دارد که در این حالت منابع را به صورت سورس باز (Open source) به اشتراک می گذارند که در این حالت داشتن یک شیوه هماهنگ بسیار مناسب برای درک کد های نوشته شده می باشد و در سرعت توسعه برنامه تاثیر مفیدی خواهد داشت.


    برخی از قوانینی که اکثر برنامه نویس های C++‎ آنها را رعایت می کنند به صورت زیر است :


    • در ابتدای فایل های خود توضیحاتی را در رابطه با وظیفه فایل در نظر می گیرند.
    • تمام دستورات پیش پردازنده مانند #include را در ابتدای برنامه خود قرار می دهند.
    • هر دستور را در یک خط جدید می نویسند.
    • برای تمامی دستورات یک بلوک تو رفتگی ایجاد می کنند.
    • در دو سوی هر عملگر یک فاصله قرار می دهند مانند : x = 128.
    • توضیحات مربوط به هر تابع یا کلاس را در رابطه با نوع کار آن می نویسند.


    تمامی این قوانین در برنامه های اکثر برنامه نویسان خبره قابل مشاهده است و همچنین این قوانین در همین کتاب رعایت شده است.
    البته شاید این موارد رو در بیشتر زبان های مشابه مثلا PHP که شباهت زیادی به C++‎ داره ببینید ولی توجه کنید که برای هر زبانی مثلا استفاده از علامت های خاتمه دهنده ضرورتی نداره.

    پس به غیر از این قوانین در برنامه نویسی بهتر است قوانین نام گذاری و شیوه نوشتاری را رعایت کنیم به عنوان مثال بهتر است عنوان و نام های متغیر ها را به صورت درست انتخاب کنیم و همچنین آن ها را با اسامی کوتاه در نظر بگیریم تا امکان بروز خطا در هنگام تایپ آن ها به حد اقل برسد.اما در عین حال از اسامی استفاده کنید که بیانگر عملکرد متغیر باشد همچنین این قوانین را نه تنها در متغیر بلکه در نام گذاری توابع, ساختار ها و کلاس های خود رعایت کنید به این سبک نام گذاری و کد نویسی "خود استنادی" / Self-citation می گویند.

  24. #24

    نقل قول: معرفی و آموزش C++‎‎‎‎ به صورت گام به گام

    ادامه فصل اول : معرفی سبک و روش برنامه نویسی در C++‎‎

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


    int initial;
    int maxSum;
    int maxUploadSize;


    خواندن اسامی بالا از maxsum و maxuploadsize آسانتر است و همچنین برای خواناتر کردن اسامی طولانی میتوانیم با استفاده از زیر خطی(Underscore) استفاده نماییم به صورت زیر :


    int initial;
    int max_Sum;
    int max_Upload_Size;




    در این روش ما توسط علامت های زیر خطی Underscore نام متغیر رو خواناتر کردیم.

    همانطور که میدونید زبان C++‎ کاملا به کاراکتر های کوچک و بزرگ نیز حساس هستش پس بنابراین int x با in X کاملا متفاوت است البته از نظر نوع هر دو یکی هستند ولی از لحاظ نام خیر !!!

  25. #25

    نقل قول: معرفی و آموزش C++‎‎‎‎ به صورت گام به گام

    ادامه فصل اول : معرفی انواع اعداد صحیح (Integer)

    در رابطه با integer باید گفت که یک عدد صحیح و کامل بین عدد - 0, 1, -1, 2, -2, 3, -3, … می باشد یک عدد صحیح بدون علامت, یک عدد صحیح نام منفی – از بین اعداد - 0, 1, 2, 3, 4, … است که در زبان C++‎‎‎‎‎‎‎‎‎‎ تعداد اعداد صحیح 9 تا می باشد به صورت زیر :


    char short int unsigned short int
    signed char int unsigned int
    unsigned char long int unsigned long int




    همچنین می توانید با فرا خوانیcstdint به انواع صحیح در نسخه 11 که توسعه یافته اند دسترسی داشته باشید.

    به صورت زیر :


    #include <cstdint>





    int8_t int_fast8_t int_least8_t intmax_t
    int16_t int_fast16_t int_least16_t intptr_t
    int32_t int_fast32_t int_least32_t
    int64_t int_fast64_t int_least64_t
    uint8_t uint_fast8_t uint_least8_t unitmax_t
    uint16_t uint_fast16_t uint_least16_t uintptr_t
    uint32_t uint_fast32_t uint_least32_t
    uint64_t uint_fast64_t uint_least64_t



    معمولا تفاوت این انواع در بازه مقادیر هستش این بازه ها معمولا به نوع سیستم مورد استفاده قرار میگیرند برای مثال در سیستم های Dos PC ها بازه int بین 32, 768 - تا 32, 768 است ولی در ایستگاه های کاری Unix به مقادیر 2, 147, 483, 648 - تا 2, 147, 483, 648 محدود می شوند؛ پس وقتی ما در ویندوز مینویسیم int x بازه در نظر گرفته شده این در لینوکس که بر پایه یونیکس هستش کاملا متفاوت هست.

  26. #26

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    ادامه فصل اول : معرفی انواع اعداد صحیح (Integer)

    خب من در نظر دارم در یک مثال بازه انواع داده هارو چاپ کنم به صورت زیر...
    از دستور پیش پردازنده زیر کمک میگیرم..


    #include <limits>



    //Author: Kambiz Asadzadeh


    #include <iostream>
    #include <cstdint>
    #include <limits>


    using namespace std;


    int main()


    {


    cout << "Minimum char = " << CHAR_MIN << endl;
    cout << "Maximum char = " << CHAR_MAX << endl;
    cout << "Minimum short = " << SHRT_MIN << endl;
    cout << "Maximum short = " << SHRT_MAX << endl;
    cout << "Minimum int = " << INT_MIN << endl;
    cout << "Maximum int = " << INT_MAX << endl;
    cout << "Minimum long = " << LONG_MIN << endl;
    cout << "Maximum long = " << LONG_MAX << endl;
    cout << "Minimum signed char = " << SCHAR_MIN << endl;
    cout << "Maximum signed char = " << SCHAR_MAX << endl;
    cout << "Minimum unsigned char = " << UCHAR_MAX << endl;
    cout << "Maximum unsigned short = " << USHRT_MAX << endl;
    cout << "Minimum unsigned = " << UINT_MAX << endl;
    cout << "Maximum unsigned long = " << ULONG_MAX << endl;


    return 0;


    }




    نتیجه در خروجی به صورت زیر خواهد بود :
    البته چون من از سیستم ویندوز استفاده کردم خروجی فرق میکنه.



    Minimum char = -128
    Maximum char = 127
    Minimum short = -32768
    Maximum short = 32767
    Minimum int = -214748364
    Maximum int = 2147483647
    Minimum long = -214748364
    Maximum long = 2147483647
    Minimum signed char = -128
    Maximum signed char = 127
    Minimum unsigned char = 255
    Maximum unsigned short = 65535
    Minimum unsigned = 4294967295
    Maximum unsigned long = 4294967295


    خب اینم ویرایشش که روی سیستم لینوکس خروجیشو گرفتم :


    Minimum char = -128
    Maximum char = 127
    Minimum short = -32768
    Maximum short = 32767
    Minimum int = -2147483648
    Maximum int = 2147483647
    Minimum long = -9223372036854775808
    Maximum long = 9223372036854775807
    Minimum signed char = -128
    Maximum signed char = 127
    Minimum unsigned char = 255
    Maximum unsigned short = 65535
    Minimum unsigned = 4294967295
    Maximum unsigned long = 18446744073709551615



    اگه دقت کنید متفاوت هست بازه ای که روی سیستم های لینوکس و ویندوز در نظر گرفته میشه.
    آخرین ویرایش به وسیله کامبیز اسدزاده : شنبه 03 خرداد 1393 در 22:16 عصر

  27. #27

    نقل قول: معرفی و آموزش C++‎‎‎‎ به صورت گام به گام

    ادامه فصل اول : معرفی انواع اعداد صحیح (Integer)

    همچنین انواع توسعه یافته که در زبان های C++‎‎‎‎‎‎‎ 11 / 14 فراهم شده اند به صورت زیر می باشد که البته گفتم برای استفاده از انواع توسعه یافته در C++‎‎‎‎‎‎‎ 11 به بعد باید از پیش پردازنده زیر استفاده کنید :


    #include <cstdint>





    //Author: Kambiz Asadzadeh
    #include <iostream>
    #include <cstdint>
    #include <limits>
    using namespace std;


    int main()


    {
    cout << "Minimum INT8 = " << INT8_MIN << endl;
    cout << "Maximum INT8 = " << INT8_MAX << endl;
    cout << "Minimum INT16 = " << INT16_MIN << endl;
    cout << "Maximum INT16 = " << INT16_MAX << endl;
    cout << "Minimum INT32 = " << INT32_MIN << endl;
    cout << "Maximum INT32 = " << INT32_MAX << endl;
    cout << "Minimum INT64 = " << INT64_MIN << endl;
    cout << "Maximum INT64 = " << INT64_MAX << endl;


    cout << "Minimum INT_FAST8 = " << INT_FAST8_MIN << endl;
    cout << "Maximum INT_FAST8 = " << INT_FAST8_MAX << endl;
    cout << "Minimum INT_FAST16 = " << INT_FAST16_MIN << endl;
    cout << "Maximum INT_FAST16 = " << INT_FAST16_MAX << endl;
    cout << "Minimum INT_FAST32 = " << INT_FAST32_MIN << endl;
    cout << "Maximum INT_FAST32 = " << INT_FAST32_MAX << endl;
    cout << "Minimum INT_FAST64 = " << INT_FAST64_MIN << endl;
    cout << "Maximum INT_FAST64 = " << INT_FAST64_MAX << endl;
    cout << "Minimum INT_LEAST8 = " << INT_LEAST8_MIN << endl;
    cout << "Maximum INT_LEAST8 = " << INT_LEAST8_MAX << endl;
    cout << "Minimum INT_LEAST16 = " << INT_LEAST16_MIN << endl;
    cout << "Maximum INT_LEAST16 = " << INT_LEAST16_MAX << endl;
    cout << "Minimum INT_LEAST32 = " << INT_LEAST32_MIN << endl;
    cout << "Maximum INT_LEAST32 = " << INT_LEAST32_MAX << endl;
    cout << "Minimum INT_LEAST64 = " << INT_LEAST64_MIN << endl;
    cout << "Maximum INT_LEAST64 = " << INT_LEAST64_MAX << endl;
    cout << "Minimum INTPTR = " << INTPTR_MIN << endl;
    cout << "Maximum INTPTR = " << INTPTR_MAX << endl;


    cout << "Maximum UINT8 = " << UINT8_MAX << endl;
    cout << "Maximum UINT16 = " << UINT16_MAX << endl;
    cout << "Maximum UINT32 = " << UINT32_MAX << endl;
    cout << "Maximum UINT64 = " << UINT64_MAX << endl;
    cout << "Maximum UINT_FAST8 = " << UINT_FAST8_MAX << endl;
    cout << "Maximum UINT_FAST16 = " << UINT_FAST16_MAX << endl;
    cout << "Maximum UINT_FAST32 = " << UINT_FAST32_MAX << endl;
    cout << "Maximum UINT_FAST64 = " << UINT_FAST64_MAX << endl;
    cout << "Maximum UINT_LEAST8 = " << UINT_LEAST8_MAX << endl;
    cout << "Maximum UINT_LEAST16 = " << UINT_LEAST16_MAX << endl;
    cout << "Maximum UINT_LEAST32 = " << UINT_LEAST32_MAX << endl;
    cout << "Maximum UINT_LEAST64 = " << UINT_LEAST64_MAX << endl;
    cout << "Minimum UINTPTR = " << UINTPTR_MAX << endl;
    cout << "Maximum UINT = " << UINT_MAX << endl;


    return 0;
    }




    خروجی به صورت زیر خواهد بود :


    Minimum INT8 = -128
    Maximum INT8 = ⌂
    Minimum INT16 = -32768
    Maximum INT16 = 32767
    Minimum INT32 = -2147483648
    Maximum INT32 = 2147483647
    Minimum INT64 = -9223372036854775808
    Maximum INT64 = 9223372036854775807
    Minimum INT_FAST8 = -128
    Maximum INT_FAST8 = ⌂
    Minimum INT_FAST16 = -2147483648
    Maximum INT_FAST16 = 2147483647
    Minimum INT_FAST32 = -2147483648
    Maximum INT_FAST32 = 2147483647
    Minimum INT_FAST64 = -9223372036854775808
    Maximum INT_FAST64 = 9223372036854775807
    Minimum INT_LEAST8 = -128
    Maximum INT_LEAST8 = ⌂
    Minimum INT_LEAST16 = -32768
    Maximum INT_LEAST16 = 32767
    Minimum INT_LEAST32 = -2147483648
    Maximum INT_LEAST32 = 2147483647
    Minimum INT_LEAST64 = -9223372036854775808
    Maximum INT_LEAST64 = 9223372036854775807
    Minimum INTPTR = -2147483648
    Maximum INTPTR = 2147483647
    Maximum UINT8 =
    Maximum UINT16 = 65535
    Maximum UINT32 = 4294967295
    Maximum UINT64 = 18446744073709551615
    Maximum UINT_FAST8 =
    Maximum UINT_FAST16 = 4294967295
    Maximum UINT_FAST32 = 4294967295
    Maximum UINT_FAST64 = 18446744073709551615
    Maximum UINT_LEAST8 =
    Maximum UINT_LEAST16 = 65535
    Maximum UINT_LEAST32 = 4294967295
    Maximum UINT_LEAST64 = 18446744073709551615
    Minimum UINTPTR = 4294967295
    Maximum UINT = 4294967295




    اینم از انواع با نتیجه بازه های آن ها...

    و اینم ویرایش این پست برای نتیجه خروجی این مثال در سیستم لینوس...


    Minimum INT8 = -128
    Maximum INT8 = 127
    Minimum INT16 = -32768
    Maximum INT16 = 32767
    Minimum INT32 = -2147483648
    Maximum INT32 = 2147483647
    Minimum INT64 = -9223372036854775808
    Maximum INT64 = 9223372036854775807
    Minimum INT_FAST8 = -128
    Maximum INT_FAST8 = 127
    Minimum INT_FAST16 = -9223372036854775808
    Maximum INT_FAST16 = 9223372036854775807
    Minimum INT_FAST32 = -9223372036854775808
    Maximum INT_FAST32 = 9223372036854775807
    Minimum INT_FAST64 = -9223372036854775808
    Maximum INT_FAST64 = 9223372036854775807
    Minimum INT_LEAST8 = -128
    Maximum INT_LEAST8 = 127
    Minimum INT_LEAST16 = -32768
    Maximum INT_LEAST16 = 32767
    Minimum INT_LEAST32 = -2147483648
    Maximum INT_LEAST32 = 2147483647
    Minimum INT_LEAST64 = -9223372036854775808
    Maximum INT_LEAST64 = 9223372036854775807
    Minimum INTPTR = -9223372036854775808
    Maximum INTPTR = 9223372036854775807
    Maximum UINT8 = 255
    Maximum UINT16 = 65535
    Maximum UINT32 = 4294967295
    Maximum UINT64 = 18446744073709551615
    Maximum UINT_FAST8 = 255
    Maximum UINT_FAST16 = 18446744073709551615
    Maximum UINT_FAST32 = 18446744073709551615
    Maximum UINT_FAST64 = 18446744073709551615
    Maximum UINT_LEAST8 = 255
    Maximum UINT_LEAST16 = 65535
    Maximum UINT_LEAST32 = 4294967295
    Maximum UINT_LEAST64 = 18446744073709551615
    Minimum UINTPTR = 18446744073709551615
    Maximum UINT = 4294967295



    خروجی های گرفته شده با Qt گرفته شده که روی سیستم Ubuntu ازش تست گرفتم نتیجه روی هر IDE و با هر سیستم عامل بر پایه یونیکس مثل Mac , Linux , Android و حتی iOS به همین صورت خواهد بود امیدوارم مفید باشه...
    آخرین ویرایش به وسیله کامبیز اسدزاده : شنبه 03 خرداد 1393 در 20:46 عصر

  28. #28

    نقل قول: معرفی و آموزش C++‎‎ به صورت گام به گام

    ادامه فصل اول : معرفی عملگر ها

    عملگر ها نماد هایی هستند که بر روی یک یا چند عبارت عمل می کنند و مقدار حاصل آن را می توان به یک متغیر نسبت داد. که تاحالا با عملگر های خروجی << و عملگر های انتساب آشنا شدیم.
    برخی از ساده ترین عملگر ها مانند + , - , * , / و % عملگر هایی هستند که عملیات حسابی را انجام می دهند.
    این عملگر های بر روی انواع integer ها عمل کرده و یک نوع integer دیگر را بوجود می آورد مانند : x + y مجموع x و y همچنین x – y تفاضل x و y , x * y حاصلضرب x در y , x/y خارج قسمت تقسیم صحیح x بر y و x%y باقیمانده تقسیم صحیح x بر y را تولید میکنند ؛ در جدول زیر فهرست تمامی عملگر ها در C++‎‎‎‎‎‎‎‎‎‎‎‎ را که بر اساس تقدم گروه بندی شده اند مشاهده می کنیم.


    و ادامه لیست...


    و یک نکته مهم که عملگر های دارای حق تقدم بالاتر پیش از عملگر های دارای تقدم پایینتر ارزیابی می شوند.



    • نکته : لیست همه عملگر ها بر اساس حق تقدم گروه بندی شده است. مثال : (x - y*z) در اینجا عملگر * ضرب در ابتدا و عملگر - منها بعد از آن ارزیابی خواهد گردید که طبق این جدول حق تقدم * برابر است با 13 و حق تقدم - برابر است با 12
    • ستون شرکت پذیری مشخصه این هستش که هر عملگر دارای شرکت پذیری چپ یا شرکت پذیری راست است. مثال : عبارت (x-y-z) به صورت (x-y)-z)) ارزیابی خواهد شد به دلیلی اینکه عملگر - شرکت پذیری چپ میباشد.
    • ستون عملوند : مشخص میکند که عملگر بر روی یک یا دو یا سه عملوند عمل میکند یعنی همان حالت یکتایی , تو تایی , سه تاییی.
    • ستون اضافه بار : نشان دهنده این است که عملگر قابلیت بارگذاری اضافی را دارد یا خیر.
    آخرین ویرایش به وسیله کامبیز اسدزاده : دوشنبه 05 خرداد 1393 در 19:45 عصر دلیل: به روز رسانی : توضیحات در رابطه با ستون ها

  29. #29

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    ادامه فصل اول : معرفی عملگر های افزایشی و کاهشی

    یکی از مفیدترین عملگر ها در C++‎‎‎‎ عملگر های افزایشی و کاهشی هستش که این عملگر ها یک عملگر را به عبارت دستوری تبدیل می کند عبارتی که اختصار شکل خاصی از عمل انتساب هستش.

    به مثال زیر توجه کنید :


    //Author: Kambiz Asadzadeh


    #include <iostream>


    using namespace std;


    int main()


    {


    int x = 128, y = 64;


    cout << "X = " << x << endl;
    cout << "Y = " << y << endl;


    ++x;
    --y;


    cout << "X = " << x << endl;
    cout << "Y = " << y << endl;


    x++;
    y--;


    cout << "X = " << x << endl;
    cout << "Y = " << y << endl;


    return 0;


    }





    در اینجا هر دو عملگر پیش افزایشی ++x و پس افزایشی x++ نتیجه یکسانی دارن آن ها عدد 1 را به مقدار x افزوده و به همین ترتیب دو عملگر پیش کاهش --y و پس کاهش y-- نیز در اینجا به یک روش عمل می کنند آنها عدد 1 را از y می کاهند.
    حال هنگامی که ++x و x++ به عنوان دستورهای عبارتی مستقل به کار برده می شود هر دو هم ارز هستند یعنی مقدار x را یک واحد افزایش می دهند همچنین به طور مشابه دستور های عبارتی --yو y--نیز هم ارز هستند یعنی مقدار y را یک واحد کاهش می دهند.

    فرق بین عملگر پیش افزایش ++x و پس افزایش x++ در داخل عبارت متفاوت است به صورت زیر :

    پیش افزایش در ابتدا مقدار متغیر را افزایش می دهد پیش از آنکه متغیر در عبارت بزرگتر بکار رود در حالی که پس افزایش مقدار متغیر را تنها پس از بکار گیری مقدار پیشین متغیر در عبارت بزرگتر افزایش می دهد.

  30. #30

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    ادامه فصل اول : معرفی عملگر های افزایشی و کاهشی

    عملگر های افزایشی و کاهشی انواع معینی از انتساب ها را کوتاه میکند و در C++‎ امکان ترکیب انتساب و سایر عملگر ها وجود دارد که دستور کلی این نوع انتساب ها به صورت زیر میباشد :

    variable op = expression

    در عبارت فوق op یک عملگر دوتایی می باشدکه نتیجه انتساب مرکب و انتساب زیر یکی می باشد.

    variable = variable op expression

    برای مثال انتساب مرکب به صورت زیر است :


    x += 16;


    و اینهم مثال ساده از انتساب :


    x = x + 16;


    که در هر دو روش انتساب مقدار 16 به متغیر اضافه می شود.

    یک مثال جامع به صورت زیر میزنم :


    //Author: Kambiz Asadzadeh


    #include <iostream>


    using namespace std;


    int main()


    {


    int x = 128;


    x += 16;


    cout << "X = " << x << endl;


    x -= 5;


    cout << "X = " << x << endl;


    x *= 2;


    cout << "X = " << x << endl;




    return 0;


    }





    در این مثال دستور العمل x+=16 مقدار 16 را به x می افزاید , دستور x -=5 مقدار 5 واحد را از x می کاهد و دستور x *=2 مقدار x را به 2 ضرب می کند. نتیجه در خروجی به صورت زیر خواهد بود :

    X = 144
    X = 139
    X = 278

  31. #31

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    ادامه فصل اول : معرفی انواع حالت های سرریز و پا ریز شدن در اعداد صحیح


    این بحث یکی از بحث هایی هستش که من دوست دارم یکمی مفصل در رابطه با این توضیحات رو بدم چون در بسیاری از مواقع این اتفاق خواهد افتاد که به صورت کلی باید بگم که برخلاف اعداد صحیح (integer) در ریاضیات محض , اشیاء integer موجود در کامپیوتر , محدود هستند زیرا هر نوع integer یک مقدار پیشینه (Maximum) و یک مقدار کمینه (Minimum) دارد. اگر مقدار یک متغیر از محدوده ی مجاز آن فراتر رود حالت سر ریز بوجود می آید.

    یه مثالی به صورت زیر در نظر میگیرم...


    //Author: Kambiz Asadzadeh


    #include <iostream>


    using namespace std;


    int main()


    {


    short x = SHRT_MAX - 1;


    cout << "X ++ = " << x++ << endl;
    cout << "X ++ = " << x++ << endl;
    cout << "X ++ = " << x++ << endl;


    return 0;


    }




    در این مثال شیء (x) ما از نوع short در نظر گرفته شده که با افزودن عدد 1 به 32766 مقدار آن به 32766- تغییر می کند که این یک اشتباه است ! این یک نوع شیوه رفتار کامپیوتر در مقابله با این نوع سر ریز یا همان Overflow می باشد مقدار به صورت چرخه در نظر گرفته می شود و در نتیجه پس از بیشترین مقداری که می اید کمترین مقدار است. این نوع خطا در کامپیوتر در نوع خود یکی از بدترین خطاها محسوب می شود زیرا هنگام وقوع آن هیچ نشانه ظاهری وجود ندارد پس در نتیجه خروجی به صورت زیر می باشد :

    X ++ = 32766
    X ++ = 32767
    X ++ = -32768

    به طور کلی سرریز (Overflow) شدن یکی از انواع خطاهای زمان اجرا می باشد همچنین نمونه دیگر این خطاها تقسیم بر صفر است که مشکل آنچنان بزرگی محسوب نمی شود زیرا هنگام وقوع برنامه از کار می افتد و به این ترتیب برنامه نویسان از وجود آن آگاه می شوند ولی در رابطه با سرریز عددی چنین نیست سرریز عددی در نوع خود یکی از خطرناک ترین خطاهاست که همانند خونریزی داخلی بشمار می اید و نشانه ظاهری ندارد پس برای جلوگیری از این موارد C++‎ می تواند با این مسائل برخورد کند که مثال زده خواهد شد.

  32. #32

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    ادامه فصل اول : معرفی نوع char یا همان کاراکتر

    نوع کاراکتری char در C++‎ یکی از انواع integer است بدین معناست که در کلیه عبارات integer میتوان از نوع char همانند سایر انواع صحیح استفاده کرد مانند مثال زیر :


    char x = 64;
    char y = 4 * x - 5;
    x += y % 3;


    واژه char کوتاه شده واژه کاراکتر (character) است. از آنجایی که متغیر های این نوع در ورودی و خروجی به عنوان کاراکتر شناخته می شوند از این واژه استفاده می شود لذا اگر کاراکتری ورودی باشد سیستم خود به خود کد اَسکی آن را به عنوان مقدار نوع صحیح char ذخیره می کند و چنانچه متغیری از نوع char یک خروجی باشد سیستم کاراکتر را خود به خود به مجرای خروجی می فرستد.


    به طور کلی در C++‎ سه نوع integer هشت بیتی تعریف شده است char,signed char , unsigned char اما در واقع این سه نوع دو نوع مجزا هستند که نوع char بسته به کامپیوتر signed char , unsigned char است که در کل برای کاراکتر های معمولی از نوع char استفاده می کنند و نوع unsigned char برای رشته های بیتی بسیار کوتاه می باشد. و نوع signed char استفاده چندانی ندارد تنها زمانی میتوان مناسب برای استفاده باید که نیاز به ذخیره کمیت بزرگی از اعداد صحیح بسیار کوتاه به وسیله عملگر خروجی استاندادر << داشته باشیم در این صورت این نوع یعنی (signed char) انتخاب مناسبی خواهد بود.

  33. #33

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    ادامه فصل اول : معرفی نوع char یا همان کاراکتر

    خب در رابطه با نوع کاراکتر به مثال زیر توجه کنید : خروجی به صورت (@ , A , B , ` , a , b) خواهد بود.


    //Author: Kambiz Asadzadeh


    #include <iostream>


    using namespace std;


    int main()


    {
    char c = 64;


    cout << "C++‎ = " << C++‎ << endl;
    cout << "C++‎ = " << C++‎ << endl;
    cout << "C++‎ = " << C++‎ << endl;


    c = 96;


    cout << "C++‎ = " << C++‎ << endl;
    cout << "C++‎ = " << C++‎ << endl;
    cout << "C++‎ = " << C++‎ << endl;


    return 0;
    }




    در این کد ابتدا دستور خروجی متغیر کاراکتری c را در رشته خروجی درج می کند. از آنجایی که این متغیر مقدار صحیح 64 را داراست بنابراین به صورت "@" خارج خواهد شد یعنی کد اسکی نماد "@" 64 است سپس مقدار c یک واحد افزایش پیدا میکند و خروجی A می شود و این ترتیب تا آخر افزایش و کاراکتر های مربوط به کد اسکی چاپ می شوند.

    خروجی گرفته شده به صورت زیر خواهد بود :



    C++‎ = @
    C++‎ = A
    C++‎ = B
    C++‎ = `
    C++‎ = a
    C++‎ = b

  34. #34

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    ادامه فصل اول : معرفی نوع char یا همان کاراکتر

    مثالی از کد اسکی بزنم که قصدم نمایش کد هر یک از حروف اسکی هستش به صورت زیر کد رو مینویسم...


    //Author: Kambiz Asadzadeh


    #include <iostream>


    using namespace std;


    int main()


    {


    char A = 'A'; char B = 'B'; char C = 'C'; char D = 'D'; char E = 'E';
    char F = 'F'; char G = 'G'; char H = 'H'; char I = 'I'; char J = 'J';
    char K = 'K'; char L = 'L'; char M = 'M'; char N = 'N'; char O = 'O';
    char P = 'P'; char Q = 'Q'; char R = 'R'; char S = 'S'; char T = 'T';
    char U = 'U'; char V = 'V'; char W = 'W'; char X = 'X'; char Y = 'Y';
    char Z = 'Z';


    cout << "ASCII Code A = " << int(A) << endl;
    cout << "ASCII Code B = " << int(B) << endl;
    cout << "ASCII Code C = " << int(C) << endl;
    cout << "ASCII Code D = " << int(D) << endl;
    cout << "ASCII Code E = " << int(E) << endl;
    cout << "ASCII Code F = " << int(F) << endl;
    cout << "ASCII Code G = " << int(G) << endl;
    cout << "ASCII Code H = " << int(H) << endl;
    cout << "ASCII Code I = " << int(I) << endl;
    cout << "ASCII Code J = " << int(J) << endl;
    cout << "ASCII Code K = " << int(K) << endl;
    cout << "ASCII Code L = " << int(L) << endl;
    cout << "ASCII Code M = " << int(M) << endl;
    cout << "ASCII Code N = " << int(N) << endl;
    cout << "ASCII Code O = " << int(O) << endl;
    cout << "ASCII Code U = " << int(U) << endl;
    cout << "ASCII Code V = " << int(V) << endl;
    cout << "ASCII Code W = " << int(W) << endl;
    cout << "ASCII Code X = " << int(X) << endl;
    cout << "ASCII Code Y = " << int(Y) << endl;
    cout << "ASCII Code Z = " << int(Z) << endl;


    return 0;


    }




    در اینجا بر اساس انواع متغیر ها که برای هر یک از کاراکتر های A تا Z تعریف شده برنامه مقادیر هر یک از آن ها را به دست می آورد اما از آنجایی که متغیر های کاراکتری چاپ می شوند نخستین موردی که در هر سطر چاپ می شود کاراکتریست که کد اَسکی آن ها را در متغیر ها ذخیره شده است. حال برای چاپ کردن عدد یا همان کد اسکی با استفاده از int(…) این کار صورت میگیرد.

    و خروجی به صورت زیر خواهد بود :


    ASCII Code A = 65
    ASCII Code B = 66
    ASCII Code C = 67
    ASCII Code D = 68
    ASCII Code E = 69
    ASCII Code F = 70
    ASCII Code G = 71
    ASCII Code H = 72
    ASCII Code I = 73
    ASCII Code J = 74
    ASCII Code K = 75
    ASCII Code L = 76
    ASCII Code M = 77
    ASCII Code N = 78
    ASCII Code O = 79
    ASCII Code U = 85
    ASCII Code V = 86
    ASCII Code W = 87
    ASCII Code X = 88
    ASCII Code Y = 89
    ASCII Code Z = 90



    و اما پایان فصل دوم... امیدوارم مفید واقع شده باشه.
    آخرین ویرایش به وسیله کامبیز اسدزاده : سه شنبه 06 خرداد 1393 در 19:13 عصر

  35. #35

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    فصل دوم (دستورات شرطی و انواع اعداد صحیح)


    خب بریم سراغ بخش دوم... تمامی مباحث و کد هار نوشته شده در فصل (1) به صورت ترتیبی اجرا می شوند به طوری که هر دستورالعمل یک بار و آن هم به ترتیب نوشته شده اجرا می شود؛ حال برای انعطاف پذیری بیشتر در برنامه ما نیاز به دستورات شرطی داریم به گونه ای که برنامه برای انعطاف پذیر شدن نیاز به چندین دستور پیچیده بر اساس شرایط مورد نیاز در طول برنامه تغییر نماید داریم لذا در این فصل شیوه استفاده از دستورات شرطی if , if…else , switch را خواهیم آموخت.

    ورودی در زبان C++‎ و قابلیت مقایسه آن با خروجی : در رابطه با ورودی همانند خروجی و مجرای خروجی در C++‎ که توسط شیء cout توضیح داده شد در این بخش در رابطه با مجرای ورودی با شیء cin توضیح خواهیم داد که این شیء به عنوان مجرای ورودی برای دریافت اطلاعات در رابط کنسول در نظر گرفته می شود که مخفف console output است.

    برای استفاده و انتقال اطلاعات به ورودی و ارسال توسط شیء cin تقریبا شبیه به عملیات با cout عمل خواهیم کرد که در این میان نماد >> عملگر استخراج است که عملگر ورودی نامیده می شود با استفاده از این عملگر اطلاعات وارد شده توسط صفحه کلید از طرف کاربر را می توان برای مجرای cin دریافت کرد بنابراین با اجرای دستوری مانند دستور زیر سیستم توقف کرده و در انتظار ورودی باقی می ماند به محض آنکه عدد صحیحیوارد شود به متغیر x منسوب داده می شود و سپس برنامه ادامه می یابد.


    cin >> x;





    در رابطه با شیء ورودی می توان همانند شیء خروجی cout از نوع کاراکتر و صحیح استفاده کرد به صورت زیر :


    //Author: Kambiz Asadzadeh


    #include <iostream>


    using namespace std;


    int main()


    {
    char name[10], family[10];


    cout << "Please enter your name:";


    cin >> name;


    cout << "Please enter your family:";


    cin >> family;


    cout << "Your name is: " << name << ", " << family << ".\n";


    return 0;


    }




    در دستور بالا دو نوع کاراکتری برای نام و نام خانوادگی با طول کاراکتر حداکثر 10 تعریف شده است که در ابتدای هر کدام توسط شیء cout متن مورد نظر یا همان پیغام های مربوطه برای کاربر چاپ می شود و سپس توسط شیء cin با عملگر ورودی >> مقدار متغیر های مربوط به هر کدام به مجرای ورودی ارسال می شود و در نهایت با دستور cout چاپ مقادیر موجود در هر کدام میسر خواهد شد که نتیجه با ورود اطلاعات کاربر به صورت زیر خواهد آمد :



    Please enter your name: Kambiz
    Please enter your family: Asadzadeh
    Your name is: Kambiz, Asadzadeh


  36. #36

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    ادامه فصل دوم : انواع صحیح

    در مواقعی لازم است از انواع صحیح استفاده شود همانند انواع کاراکتری به صورت زیر :


    //Author: Kambiz Asadzadeh


    #include <iostream>


    using namespace std;


    int main()


    {
    int x, y;


    cout << "Please enter your integers:\n";


    cin >> x;
    cin >> y;


    cout << "Your integers: " << x << ", " << y << ".\n";


    return 0;


    }




    خروجی به صورت زیر خواهد بود...


    Please enter your integer’s پیغام برای ورودی / :
    ورودی مقدار اول / 256
    ورودی مقدار دوم / 128
    Your integers : 256, 128 خروجی / .



  37. #37

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    ادامه فصل دوم : دستورات شرطی و انواع اعداد صحیح

    ساختار دستورات شرطی چگونه است؟ در C++‎ برای بررسی انواع شرط ها و مقایس های محاسباتی بر اساس احتمالات و شرایط دیگر توسط دستورات شرطی صورت میگیرد به طوری که در این زبان برنامه نویس قادر است در ابتدا یا در داخل بدنه و یا در خروجی برنامه شرایط لازم برای مقایسه را طبق خواسته خودبکار بگیرد برای این منظور هرچقدر برنامه از پیچیدگی بیشتری برخوردار باشد در آن برنامه دستورات شرطی بسیار است که احتمالا در توابع و کلاس های برنامه دستورات متفاوتی را برای مقایس و بررسی شرایط استفاده کرده اند.

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

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

  38. #38

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    ادامه فصل دوم : دستور شرطی if

    دستور شرطی (اگر/ if) چیست و چگونه عمل می کند؟ دستور if , امکان اجرای شرط را فراهم می سازد که ترکیب نحوی آن به شکل زیر است :



    اگر (عبارت مقایسه ای) عبارت اجرایی

    if(condition)statement



    در شکل بالا condition به عنوان یک عبارتیست که برای مقایسه و بررسی در نظر گرفته می شود و در بین دو پرانتز قرار می گیرد و statement یک عبارتی است که برای اجرا در نظر گرفته شده است , تنها در صورتی statement اجرا خواهد شد که ارزش condition غیر صفر باشد زیرا در این نوع ساختار هرگاه مقدار غیرصفر باشد به معنی (درست) و صفر به معنی (نادرست) می باشد.

    خب به مثال شرطی زیر توجه کنید :


    //Author: Kambiz Asadzadeh


    #include <iostream>


    using namespace std;


    int main()


    {
    int x, y;
    x = 64;
    y = 128;


    if (x < y)
    cout << "X is smaller than y. \n" << endl;


    return 0;
    }





    در این دستور مقدار (ارزش) موجود در دو متغیر x و y توسط دستور if بررسی شده است که با عملگر < کوچکتر از مقایسه بین دو متغیر را انجام داده ایم حال با اجرای دستور بالا مقدار 64 موجود در متغیر x با مقدار 128 موجود در متغیر y بررسی و در صورت کوچکتر بودن مقدار x از y پیغام "X is smaller than y." نمایش داده می شود.

    در این شکل از دستور یک یک مشکلی وجود دارد , مشکل این است که اگر مقدار x کوچکتر از y نباشد هیچ عملی را انجام نخواهد داد در واقع برای رفع این مشکل ما نیاز به دستور دیگری برای استفاده در هنگام صفر بودن شرط داریم که آن else است.

  39. #39

    نقل قول: معرفی و آموزش C++‎ به صورت گام به گام

    ادامه فصل دوم : دستور شرطی if ...else

    این دستور یکی از دو دستورالعمل موجود را اجرا می کند و این بستگی به مقدار ارزش شرط معین شده دارد که به صورت زیر آمده است:

    اگر (عبارت مقایسه ای) عبارت اجرایی1
    عبارت اجرایی 2
    و اگرنا


    if (condition) statement1
    else statement2

    در شکل بالا condition به عنوان یک عبارتیست که برای مقایسه و بررسی در نظر گرفته می شود و در بین دو پرانتز قرار می گیرد و statement1 و statement2 عبارت هایی هستند که در صورت صفر بودن عبارت statement2 و در صورت غیر صفر بودن عبارت statement1 که برای اجرا در نظر گرفته شده است.

    به مثال زیر توجه کنید :


    if (x < y)
    cout << "X is smaller than y. \n" << endl;
    else
    cout << "Y is smaller than x. \n" << endl;






    در این مثال در صورتی که مقدار x کوچکتر از مقدار y باشد پیغام اول و در صورت کوچکتر نبودن آن پیغام دوم نمایش داده می شود.

  40. #40

    نقل قول: معرفی و آموزش C++‎‎ به صورت گام به گام

    ادامه فصل دوم : معرفی عملگر های رابطه ای

    خب در رابطه با عملگر های رابطه ای باید گفت که به طور کلی عملگر های رابطه ای عملگر هایی هستند که وضعیت عبارت دو طرف یک رابطه را ارزیابی می کنند برای مثال رابطه 65 < 128 نادرست است که در اینجا عملگر کوچکتر است از ( < ) یک عملگر رابطه ای می باشد زیرا پس از ترکیب با عبارت مقداری را تولید می کند. برای مثال , وقتی علامت < با 128 و 64 ترکیب می شود به صورت 64 < 128 مقدار صحیح صفر (0) را بوجود می آورد که به معنای "نادرست" است.

    همانطور که قبلا در فصل (1) اشاره شد شش عملگر رابطه ای به صورت زیر وجود دارد :


    در برنامه نویسی زبان C++‎ برای ارزیابی تساوی عبارات باید از نماد تساوی مضاعف ( == ) استفاده شود یعنی از نوع عملوند های دوتایی که در جدول هم اشاره شده است چرا که معمولا برنامه نویسان مبتدی مرتکب آن می شوند در دستورات شرطی برای مقایسه دو عبارات از تساوی تک ( = ) استفاده می کنند. به مثال زیر توجه نمایید :



    //Author: Kambiz Asadzadeh


    #include <iostream>


    using namespace std;


    int main()


    {


    int x, y;
    x = 128;
    y = 128;


    if (x == y)
    cout << "True" << endl;
    else
    cout << "False" << endl;


    return 0;


    }






    در این مثال دو متغیر x و y با ارزش یکسان یعنی مقدار 128 با عملگر تساوی مضاعف در دستور شرطی ارزیابی می شوند و به دلیل برابر بودن ارزش هر دو متغیر نتیجه در خروجی چاپ پیغام True خواهد بود.

صفحه 1 از 2 12 آخرآخر

تاپیک های مشابه

  1. آموزش: معرفی و آموزش C++‎‎‎/Qt به صورت گام به گام
    نوشته شده توسط کامبیز اسدزاده در بخش برنامه نویسی در محیط QT و هم خانواده هایش
    پاسخ: 53
    آخرین پست: سه شنبه 04 شهریور 1393, 21:36 عصر
  2. آموزش: آموزش برنامه نویسی به زبان اسمبلی به صورت گام به گام
    نوشته شده توسط JaVa در بخش برنامه نویسی اسمبلی خانواده x86
    پاسخ: 8
    آخرین پست: سه شنبه 08 بهمن 1392, 08:19 صبح
  3. آموزش Intraweb به صورت گام به گام
    نوشته شده توسط حمیدرضاصادقیان در بخش توسعه نرم افزار تحت وب
    پاسخ: 3
    آخرین پست: دوشنبه 03 تیر 1387, 20:07 عصر
  4. آموزش PHP به صورت قدم به قدم !!!
    نوشته شده توسط alireza_66 در بخش PHP
    پاسخ: 3
    آخرین پست: سه شنبه 01 آذر 1384, 20:52 عصر
  5. آموزش گام به گام کار با پلت کامپوننتهای دلفی
    نوشته شده توسط nasr در بخش برنامه نویسی در Delphi
    پاسخ: 15
    آخرین پست: شنبه 30 خرداد 1383, 17:36 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •