آموزش ++C - بخش 2
اين بخش ادامهدهنده معرفي برنامهنويسي C++ با دو مثال است، كه نحوه اصلاح برنامه مطرح شده در شكل 1-2 را نشان ميدهند. در مثال اول، متن در يك خط با استفاده از چندين عبارت چاپ ميشود. در مثال دوم همان متن توسط يك عبارت و در چندين خط چاپ ميگردد.
رشته Welcome to C++! ميتواند به چندين روش چاپ شود. براي مثال، در برنامه شكل 3-2 از دو عبارت براي وارد كردن جريان (خطوط 8-9 )استفاده شده است، تا همان خروجي برنامه شكل 1-2 توليد شود. خروجي برنامه دوم دقيقاٌ همانند برنامه اول است، چرا كه هر عبارت از مكاني كه عبارت قبلي به عمل چاپ پايان داده، شروع به چاپ ميكند. عبارت اول كلمه Welcome و بدنبال آن يك فاصله چاپ كرده و عبارت دوم هم كار چاپ را از همان خط و پس از فاصله چاپ شده دنبال ميكند. بطور كلي، C++ به برنامهنويس امكان ميدهد تا عبارات را به روشهاي گوناگون بكار گيرد.
همانند برنامه شكل 4-2 ميتوان يك عبارت را در چندين خط به نمايش در آورد. هر بار كه عبارت ارسالي به خروجي با كاراكتر توالي مواجه شود، كرسر به ابتداي خط بعدي منتقل خواهد شد. براي ايجاد يك خط خالي در خروجي، دو كاراكتر خط جديد را پشت سرهم، همانند خط 8 قرار دهيد.
در برنامه بعدي از شي جريان ورودي و عملگر استخراج ، براي بدست آوردن دو عدد صحيح تايپ شده از سوي كاربر از طريق صفحهكليد، جمع آنها و نمايش نتيجه بدست آمده با استفاده از ميپردازيم. برنامه شكل 5-2 عمل جمع و خروجي حاصل از اين برنامه را نشان ميدهد.
توضيحات موجود در خطوط 1 و 2
// Fig. 2.5: fig02_05.cpp
// Addition program that displays the sum of two numbers.
همانطوري كه قبلاٌ هم گفته شد، هر برنامهاي با اجراي تابع آغاز ميشود(خط 6 ). براكت سمت چپ (خط 7 ) ابتدا و آغاز بدنه و براكت متناظر سمت راست (خط 25 )، انتها و پايان بدنه را نشان ميدهد.
خطوط 9-11
بخش اعلان ميباشند. كلمات ، و اسامي متغيرها هستند. متغيرها مكانهاي در حافظه كامپيوتر هستند كه ميتوان مقاديري را براي استفاده برنامه در آنها ذخيره كرد. اين اعلانها مشخص ميكنند كه متغيرهاي ، و از نوع داده هستند، به اين معني كه اين متغيرها قادر به نگهداري مقادير صحيح همانند اعداد 7, -11, 0, 31914 و غيره ميباشند. تمامي متغيرها بايستي داراي نام و يك نوع داده باشند تا بتوان از آنها در برنامه استفاده كرد. چندين متغير از يك نوع را ميتوان در خط يا چند خط مجزا از هم اعلان كرد. ميتوانيم هر سه متغير فوق را در يك خط و بصورت زير اعلان كنيم: با اين همه، در اين حالت خوانائي برنامه كاهش يافته و مانع ميشود تا توضيحات مناسب براي هر متغير و هدف از آن متغير در برنامه را وارد سازيم. اگر بخواهيم بيش از يك متغير در يك خط اعلان كنيم (همانند مورد بالا) بايد اسامي را با يك ويرگول () از يكديگر جدا كنيم. كه به اين حالت ليست جدا شده با ويرگول گفته ميشود.
پس از هر ويرگول( , ) يك فاصله قرار دهيد تا خوانائي برنامه افزايش يابد.
برخي از برنامهنويسان ترجيح ميدهند تا هر متغير را در يك خط جداگانه اعلان كنند. در اين حالت قراردادن يك توضيح در كنار هر اعلان به آساني صورت ميگيرد.
بزودي در مورد نوع داده (خاص اعداد حقيقي، اعداد با نقطه اعشار همانند 3.4 و -11.19 ) و نوع داده (خاص داده كاراكتري، يك متغير از نوع فقط ميتواند يك حرف كوچك، يك حرف بزرگ، يك رقم يا يك كاراكتر خاص همانند يا را در خود ذخيره سازد) صحبت خواهيم كرد.
غالباً به نوعهاي همانند ، و نوعهاي بنيادين، نوعهاي اصلي يا نوعهاي توكار (built-in) ميگويند. انواع نوعهاي بنيادين از جمله كلمات كليدي هستند و از اينرو بايد تماماً با حروف كوچك به نمايش درآيند.
نام يك متغير (همانند ) ميتوانند هر شناسه معتبري كه يك كلمه كليدي نيست، باشد. يك شناسه متشكل از دنبالهاي از كاراكترها شامل حروف، ارقام و خط زيرين ( ) است. يك شناسه نميتواند با يك رقم آغاز شود. زبان C++ از جمله زبانهاي حساس به موضوع است، به اين معني كه مابين حروف كوچك و بزرگ تفاوت قائل ميشود. از اينرو شناسههاي a1 و A1 با هم برابر نيستند.
زبان C++ به شناسهها امكان مي دهد تا هر طولي داشته باشند، اما امكان دارد سيستم شما يا ساختار C++ بكار رفته محدوديتهائي بر روي طول شناسهها اعمال كند. از اينرو براي حفظ سازگاري و قابليت حمل، از شناسههائي با طول 31 كاراكتر يا كمتر استفاده كنيد.
انتخاب اسامي با معني به برنامه كمك ميكند كه خود به عنوان توضيحي بر برنامه باشد (self- documenting) . در چنين حالتي اگر متن برنامه در اختيار ديگران قرار داده شود، بدون اينكه نيازي به راهنما و توضيحات اضافي باشد، عملكرد برنامه مشخص خواهد بود.
از اختصار يا كوتهسازي شناسهها اجتناب كنيد، تا خوانايي برنامه افزايش يابد.
از ايجاد شناسههاي كه با يك خط زيرين يا دو خط زيرين آغاز ميشوند اجتناب كنيد، چراكه امكان دارد كامپايلر C++ از اسامي مشابهاي براي انجام مقاصد داخلي خود استفاده كرده باشد. در اينصورت از ايجاد تداخل مابين خود و كامپايلر جلوگيري خواهيد كرد.
زبانهاي همانند C++ هميشه در حال بسط و گسترش هستند. امكان در زمان تكامل، كلمات كليدي جديدي به آنها افزوده شود. از كلمات مسئوليت آوري همانند object بعنوان شناسه اجتناب كنيد. حتي اگر امروز كلمه object جزء كلمات كليدي در C++ نباشد، اما ميتواند روزي تبديل به كلمه كليدي گردد و در آينده برنامه شما در زمان كامپايل با خطاي جديدي مواجه شود كه قبلا چنين چيزي وجود نداشت.
تقريباٌ ميتوان اعلان متغيرها را در هر كجاي برنامه قرار داد، اما بايد قبل از اينكه توسط برنامه بكار گرفته شوند، اعلان گردند. براي مثال، در برنامه شكل 5-2، اعلان در خط 9
ميتوانست بلافاصله قبل از خط قرار داده شود. اعلان موجود در خط 10 ميتوانست بلافاصله قبل از خط 17
بهتر است در ميان خطوط توضيحات از يك خط خالي استفاده شود. در اينصورت توضيحات از كد برنامه جدا شدة و خوانائي برنامه افزايش مييابد .
اگر ترجيح ميدهيد كه اعلانها را در ابتداي يك تابع قرار دهيد، آنها را از بخش عبارات اجرائي موجود در داخل بدنه تابع و با استفاده از يك خط خالي جدا كنيد تا اين دو بخش از هم متمايز شوند.
خط 13
هنگامي كه برنامه اجرا شده و به عبارت فوق ميرسد، منتظر ميماند تا كاربر مقداري براي متغير وارد سازد. كاربر با تايپ يك مقدار صحيح و سپس فشردن كليد Enter (گاهاٌ به اين كليد، كليد Return هم ميگويند) به برنامه پاسخ ميدهد. با اين عمل مقدار تايپ شده به كامپيوتر ارسال ميشود. سپس كامپيوتر كاراكترهاي دريافت شده را به يك عدد صحيح تبديل و اين عدد (يا مقدار) را به متغير نسبت ميدهد. از اين نقطه به بعد هر مراجعهاي به در اين برنامه مترادف با استفاده از اين مقدار خواهد بود.
شيهاي و تعامل مابين كاربر و كامپيوتر را تسهيل ميبخشند. بدليل اينكه اين تعامل بفرم يك گفتگو است، غالباٌ به اينحالت محاسبه تعاملي يا محاورهاي گفته ميشود.
خط 16
عبارت تخصيص دهنده در خط 19
در هر دو طرف يك عملگر باينري چند فاصله قرار دهيد. فاصلهها باعث متمايز شدن نقش عملگر شده و خوانائي عبارتا افزايش مييابد.
خط 21
دقت كند كه عبارت قبلي دو مقدار از انواع مختلف را خارج ميسازد. عملگر از نحوه ارسال هر نوع داده به خروجي مطلع است. به روش استفاده از چندين عملگر در يك عبارت، عمليات زنجير كردن، متصل كردن يا فرآيند آبشاري گفته ميشود. از اينرو، داشتن چندين عبارت خروجي براي خارج كردن چند داده متمايز ضروري نيست.
البته ميتوان محاسبات را در بين عبارات خروجي هم انجام داد. ميتوانيم عبارات موجود در خطوط 19 و 21 را در يك عبارت، بفرم زير داشته باشيم
بنابر اين ديگر نيازي به متغير نخواهد بود. براكت راست، ، به كامپيوتر اطلاع ميدهد كه به انتهاي تابع رسيده است.
از جمله توانمنديهاي C++ اين است كه به كاربران اجازه ميدهد تا نوع دادههاي مورد نياز و متعلق به خود را ايجاد كنند (در فصل سوم در اين مورد و در فصلهاي نهم و دهم نگاهي دقيق به اين موضوع خواهيم داشت). سپس با نحوه رسيدگي C++ به هنگام كار با نوع دادههاي جديد با استفاده از عملگرهاي و بيشتر آشنا خواهيد شد .