راسخون

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

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

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

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

در خطوط 1 و 2

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

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

خط 3

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

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

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

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

خط 5

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

خط 6

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

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

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

 كل خط 8 ، شامل ،  عملگر ، رشته “” و يك سيميكولن () است، كه به كل اين خط يك عبارت گفته مي‌شود. هر عبارتي در C++ بايد با يك سيميكولن خاتمه پذيرد (كه به آن خاتمه‌دهنده عبارت هم گفته مي‌شود). رهنمود‌هاي پيش‌پردازنده (همانند ) با سيمكولن خاتمه نمي‌يابند. خروجي و ورودي در C++ با جرياني (stream) از كاراكترها پياده‌سازي مي‌شود. بنابر اين، زمانيكه عبارت قبلي اجرا مي‌شود، مبادرت به ارسال جرياني از كاراكترهاي به شي جريان خروجي استاندارد ( ) كه معمولا با صفحه نمايش مرتبط است مي‌كند. در فصل پانزدهم به بررسي بيشتر خواهيم پرداخت.

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

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

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

خط 10

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

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

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

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

 

jazereyearam کاربر نقره ای
|
تعداد پست ها : 1313
|
تاریخ عضویت : آذر 1387 
سلام من واقعا از شما بابت همه پستهاي كه اموزش داديد تشكر ميكنم چون خيلي از انها استفاده ميكنم ممنونم و موفق باشيد
mohammadmbn2004 کاربر برنزی
|
تعداد پست ها : 97
|
تاریخ عضویت : آبان 1388 

merci mohandesss

r4soull کاربر برنزی
|
تعداد پست ها : 261
|
تاریخ عضویت : تیر 1389 

دمت گرم...

j133719 کاربر طلایی1
|
تعداد پست ها : 1228
|
تاریخ عضویت : فروردین 1389 

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

gazalsabz کاربر نقره ای
|
تعداد پست ها : 1125
|
تاریخ عضویت : آبان 1389 

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

gharibeh کاربر طلایی2
|
تعداد پست ها : 758
|
تاریخ عضویت : مهر 1391 

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

 

gharibeh کاربر طلایی2
|
تعداد پست ها : 758
|
تاریخ عضویت : مهر 1391 

کسی پاسخگو نبود؟؟؟؟؟؟؟؟؟؟؟