آموزش ++C - بخش 1

 
reza1371
reza1371
کاربر برنزی
تاریخ عضویت : مهر 1388 
تعداد پست ها : 168
محل سکونت : لرستان

آموزش ++C - بخش 1

در اين قسمت به معرفي برنامه‌نويسي C++ مي‌پردازيم، كه طراحي برنامه‌ها را تسهيل خواهد بخشيد. اكثر برنامه‌هاي كه در اين سري آموزشي با آنها مواجه خواهيد شد، مبادرت به پردازش اطلاعات و نمايش نتايج مي‌كنند. در اين فصل، به معرفي يك مثال مي‌پردازيم كه نحوه نمايش پيغام و همچنين دريافت داده از كاربران را به شما نشان مي‌دهند.براي اينكه درك مناسب و آساني از برنامه‌نويسي C++ بدست آوريد، خط به خط هر برنامه را تحليل مي‌كنيم. براي اينكه مهارت‌هاي كسب كرده خود از اين فصل را بكار گيريد، چند مسئله برنامه‌نويسي در بخش تمرينات در نظر گرفته‌ايم.

2 -2   يك برنامه ساده: چاپ يك عبارت متني

 زبان C++ از نماد‌هاي استفاده مي‌كند كه ممكن است براي غير برنامه‌نويسان عجيب و غريب بنظر برسند. در اين بخش به بررسي برنامه‌اي مي‌پردازيم كه عبارتي را در يك خط چاپ مي‌كند. برنامه و خروجي آن در شكل1-2 آورده شده‌ است. اين برنامه حاوي چندين ويژگي مهم زبان C++ است. براي آشنايي بهتر شما، به توضيح خط به خط برنامه مي‌پردازيم.

در خطوط 1 و 2

// Fig. 2.1: fig02_01.cpp

// Text-printing program.

كه با //، آغاز شده‌اند، نشان‌دهنده اين مطلب هستند كه اين خطوط توضيح مي‌باشند. برنامه‌نويسان توضيحات را در برنامه يا ليست كد قرار مي‌دهند تا خوانايي كدهاي خود را افزايش دهند. توضيحات مي‌توانند در خط متعلق به خود جاي داده شوند كه آنها را توضيحات تمام خط مي‌ناميم يا در انتهاي يك خط از كد كه آنها را توضيحات انتهاي خط مي‌ناميم، قرار بگيرند. كامپايلر C++ توضيحات را ناديده مي‌گيرد، به اين معني كه توضيحات هيچ تأثيري در اجراي برنامه ندارند. توضيح بكار رفته در خط 1 فقط نشان‌دهنده شماره تصوير و نام فايل اين برنامه است.  البته برخي از برنامه‌نويسان عبارات توضيحي خود را مابين كاراكترهاي /*   و */ قرار مي‌دهند.

1    // Fig. 2.1: fig02_01.cpp

2    // Text-printing program.

3    #include <iostream> // allows program to output data to the screen

4     

5    // function main begins program execution

6    int main()

7    {

8       std::cout << "Welcome to C++!\n"; // display message

9     

10     return 0; // indicate that program ended successfully

11   

12  } // end function main

 

انجمن هاي راسخون - تالار برنامه نويسي | www.rasekhoon.net


شكل 1-2 | برنامه چاپ عبارت.

برنامه‌نويسي ايده‌ال

هر برنامه‌اي بايد با يك يا چندين توضيح در ارتباط با اهداف برنامه و همچنين نام برنامه‌نويس، تاريخ و زمان آغاز شود.

خط 3

#include <iostream> // allows program to output data to the screen

يك رهنمود پيش‌پردازنده است، كه پيغامي براي پيش‌پردازنده C++ مي‌باشد. خطوطي كه با نماد # آغاز مي‌شوند، قبل از اينكه برنامه كامپايل شود توسط پيش‌پردازنده پردازش مي‌شوند. اين خط به پيش‌پردازنده اعلان مي‌كند تا محتويات سرآيند جريان ورودي/خروجي فايل <iostream> را در برنامه وارد سازد. بايستي اين فايل در هر برنامه‌اي كه مي‌خواهد داده‌اي به صفحه نمايش انتقال دهد، يا اينكه از صفحه‌كليد و با استفاده از جريان ورودي/خروجي C++ داده‌اي دريافت نمايد، وارد شود. در شكل1-2 خروجي برنامه آورده شده است. در فصل ششم با فايل‌‌هاي سرآيند در فصل پانزدهم با محتويات iostream آشنا خواهيد شد.

خطاي برنامه‌نويسي

در صورتيكه افزودن فايل سرآيند <iostream> به برنامه‌اي كه مبادرت به دريافت داده از صفحه كليد يا ارسال داده به صفحه ‌نمايش مي‌كند، فراموش شود، كامپايلر يك پيغام خطا ارسال خواهد كرد.

خط 4 فقط يك خط خالي است. برنامه‌نويسان براي اينكه قرائت‌هاي خود را آسانتر كنند از خطوط خالي، كاراكترهاي فاصله (space) و تب (tab) استفاده مي‌كنند. به مجموعه اين كاراكترها، white space مي‌گويند. معمولاً اين كاركترها توسط كامپايلر ناديده گرفته مي‌شوند. در اين فصل و چند فصل بعدي، در ارتباط با قواعد رايج در استفاده از كاراكترهاي white-space صحبت خواهيم كرد تا خوانايي برنامه‌ها افزايش يابد.

برنامه‌نويسي ايده‌ال

با استفاده از خطوط خالي و كاراكترهاي فاصله، خوانايي برنامه‌ها را افزايش دهيد.

خط 5

// function main begins program execution

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

خط 6

int main()

بخشي از هر برنامه C++ است. پرانتزهاي واقع پس از main نشان مي‌دهند كه main يك بلوك برنامه بنام تابع است. برنامه‌هاي C++ مي‌توانند حاوي يك يا چندين تابع و كلاس باشند، اما بايستي يكي از آنها حتما main باشد، حتي اگر main اولين تابع در برنامه نباشد. كلمه كليدي int كه در سمت چپ main قرار گرفته، بر اين نكته دلالت دارد كه main يك مقدار صحيح "برمي‌گرداند" (عدد بدون اعشار). كلمه‌كليدي، كلمه‌اي در كد است كه توسط C++ رزرو شده است. ليست كامل كلمات كليدي C++ در جدول شكل 3-4 آورده شده‌اند. به هنگام مطالعه فصل سوم و ششم به توضيح مفهوم دقيق "مقدار برگشتي" از سوي يك تابع خواهيم پرداخت. اما براي اين لحظه، كافيست بدانيد كه كلمه كليدي int در سمت چپ برنامه‌هاي شما قرار خواهد گرفت.

بايستي براكت چپ، }، (خط 7 ) در ابتداي بدنه هر روالي قرار داده شود. براكت متناظر، براكت راست، {، (خط 12 ) است،كه بايد آنرا در انتهاي بدنه هر روالي قرار داد. خط 8

std::cout << "Welcome to C++!\n"; // display message

به كامپيوتر فرمان مي‌دهد تا رشته‌اي از كاراكترها را كه مابين جفت گوتيشن قرار دارند بر روي صفحه نمايش چاپ كند. گاهي اوقات رشته بنام رشته كاراكتري، پيغام يا رشته ليترال هم خوانده مي‌شود. كاراكترهاي white space توسط كامپايلر ناديده گرفته مي‌شوند.

 كل خط 8 ، شامل std::cout ،  عملگر << ، رشته Welcome to C++ ! \n و يك سيميكولن (;) است، كه به كل اين خط يك عبارت گفته مي‌شود. هر عبارتي در C++ بايد با يك سيميكولن خاتمه پذيرد (كه به آن خاتمه‌دهنده عبارت هم گفته مي‌شود). رهنمود‌هاي پيش‌پردازنده (همانند #include ) با سيمكولن خاتمه نمي‌يابند. خروجي و ورودي در C++ با جرياني (stream) از كاراكترها پياده‌سازي مي‌شود. بنابر اين، زمانيكه عبارت قبلي اجرا مي‌شود، مبادرت به ارسال جرياني از كاراكترهاي Welcome to C++ ! به شي جريان خروجي استاندارد ( std::cout ) كه معمولا با صفحه نمايش مرتبط است مي‌كند. در فصل پانزدهم به بررسي بيشتر std::cout خواهيم پرداخت.

دقت كنيد كه std:: قبل از cout قرار گرفته است. انجام اين عمل به هنگام استفاده از رهنمود پيش‌پردازنده #include <iostream>   الزامي است. نماد  std::cout نشان مي‌دهد كه در حال استفاده از يك نام هستيم، كه اين نام در اين مورد cout مي‌باشد، كه متعلق به "فضاي‌نامي"  std است. فضاهاي‌نامي از ويژگيهاي پيشرفته C++ هستند. در فصل بيست‌وچهارم بطور كامل با فضاهاي‌نامي آشنا خواهيد شد.  اما براي اين لحظه، بايد بخاطر داشته باشيد كه كلمه std:: را قبل از هر كداميك از نمادهاي cout ، cin و cerr در يك برنامه قرار دهيد. در برنامه شكل 13-2 از اين نمادها به همراه عبارت using استفاده شده است، كه ما را قادر به حذف std:: قبل از هر استفاده از فضاي نامي std مي‌كند.

عملگر << نشاندهنده، عملگر درج جريان است. هنگامي كه اين برنامه اجرا مي‌شود، مقدار موجود در سمت راست اين عملگر، عملوند سمت راست، وارد جريان خروجي مي‌گردد. دقت كنيد كه عملگر مستقيماٌ به مكاني اشاره مي‌كند كه داده بايد به آنجا برود. معمولا كاراكترهاي قرار گرفته در سمت راست عملگر به همان شكلي كه مابين جفت گوتيش‌ها آورده شده‌اند، چاپ مي‌شوند. با اين وجود، توجه نمائيد كه كاراكتر \n بر روي صفحه  نمايش چاپ نمي‌شود. كاراكتر \  كاراكتر escape ناميده مي‌شود. اين كاراكتر نشان مي‌دهد كه يك كاراكتر ويژه چاپ خواهد شد. زمانيكه در دنباله‌اي از رشته‌هاي كاراكتري يك كاراكتر \ وارد شود، كاراكتر پس از آن بعنوان يك توالي escape در نظر گرفته خواهد شد. در اين برنامه توالي escape كاراكتر \n است، كه به مفهوم خط جديد يا newline مي‌باشد. اين كاراكتر سبب مي‌شود تا كرسر به ابتداي خط بعدي در صفحه نمايش منتقل شود. در جدول شكل 2-2 تعدادي از توالي‌هاي escape كه از كاربرد بيشتري برخوردار هستند آورده شده‌اند.



انجمن هاي راسخون - تالار برنامه نويسي | www.rasekhoon.net

شكل 2-2 |توالي
escape .

خطاي برنامه‌نويسي

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

خط 10

return 0; // indicate that program ended successfully

در پايان هر تابع main وجود خواهد داشت. كلمه كليدي return يكي از چندين روش موجود براي خروجاز يك تابع است. زمانيكه عبارت return در پايان تابع main بكار گرفته مي‌شود، همانند اين برنامه، مقدار 0 نشاندهنده اين مطلب است كه برنامه با موفقيت به كار خود پايان داده است. در فصل ششم، با جزئيات عملكرد توابع و دلايل افزودن چنين عباراتي به آنها بيشتر آشنا خواهيد شد. اما براي اين لحظه، كافيست بدانيد كه اين عبارت در انتهاي هر برنامه‌اي قرار داده مي‌شود. براكت راست، { ، (خط 12 ) انتهاي تابع main را نشان مي‌دهد.

برنامه‌نويسي ايده‌ال

بسياري از برنامه‌نويسان در انتهاي آخرين كاراكتر چاپ شده توسط يك تابع، كاراكتر \n را قرار مي‌دهند. با اين عمل مطمئن مي‌شوند كه تابع در پايان كار خود، كرسر را در ابتداي خط بعدي قرار خواهد داد. اين عمل مي‌تواند در راستاي ايجاد برنامه‌هايي با قابليت استفاده مجدد موثر باشد.

برنامه‌نويسي ايده‌ال

به دندانه‌دار بودن خطوط كد دقت كنيد. اين عمل يكي از قواعد بكارگيري فاصله‌ها در برنامه است. دندانه‌دار كردن كد برنامه‌ها، باعث افزايش خواناي و گرامر آن مي‌شود .

برنامه‌نويسي ايده‌ال

براي حفظ ظاهر آراسته و مرتب در ميان كد‌هاي نوشته شده، بهتر است ميزان دندانه‌گذاري مورد نظر خود را از همان ابتدا مشخص سازيد. پيشنهاد مي‌كنيم تا از كليد tab با فاصله گذاري ¼ اينچ يا سه فاصله (space) از سطح دندانه‌گذاري شده فوقاني استفاده كنيد.

 

 

سه شنبه 24 فروردین 1389  7:33 PM
تشکرات از این پست
iflashlord mohammadmbn2004 owraii
jazereyearam
jazereyearam
کاربر نقره ای
تاریخ عضویت : آذر 1387 
تعداد پست ها : 1313
محل سکونت : زنجان

پاسخ به:آموزش ++C - بخش 1

سلام من واقعا از شما بابت همه پستهاي كه اموزش داديد تشكر ميكنم چون خيلي از انها استفاده ميكنم ممنونم و موفق باشيد
 
سه شنبه 5 مرداد 1389  1:17 PM
تشکرات از این پست
mohammadmbn2004
mohammadmbn2004
کاربر برنزی
تاریخ عضویت : آبان 1388 
تعداد پست ها : 97
محل سکونت : اصفهان
شنبه 6 شهریور 1389  7:51 PM
تشکرات از این پست
r4soull
r4soull
کاربر برنزی
تاریخ عضویت : تیر 1389 
تعداد پست ها : 261
محل سکونت : خراسان رضوی

پاسخ به:آموزش ++C - بخش 1

دمت گرم...

زندگی زیباست اگر زیبا بنگری

www.FIXEL.info

یک شنبه 7 شهریور 1389  3:21 AM
تشکرات از این پست
j133719
j133719
کاربر طلایی1
تاریخ عضویت : فروردین 1389 
تعداد پست ها : 1228
محل سکونت : لرستان

پاسخ به:آموزش ++C - بخش 1

جالب بود ممنونم

چهارشنبه 10 شهریور 1389  8:58 PM
تشکرات از این پست
gazalsabz
gazalsabz
کاربر نقره ای
تاریخ عضویت : آبان 1389 
تعداد پست ها : 1125
محل سکونت : آذربایجان شرقی

پاسخ به:آموزش ++C - بخش 1

نمیشه از خیلی ابتدایی تر شروع کنیم من خیلی دلم میخواد یاد بگیرم

سه شنبه 25 آبان 1389  10:05 AM
تشکرات از این پست
gharibeh
gharibeh
کاربر طلایی2
تاریخ عضویت : مهر 1391 
تعداد پست ها : 756
محل سکونت : اصفهان
جمعه 12 اردیبهشت 1393  8:42 AM
تشکرات از این پست
gharibeh
gharibeh
کاربر طلایی2
تاریخ عضویت : مهر 1391 
تعداد پست ها : 756
محل سکونت : اصفهان
چهارشنبه 17 اردیبهشت 1393  8:42 AM
تشکرات از این پست
ehsan007060
دسترسی سریع به انجمن ها