مقدمه
در این فصل به معرفی برنامهنویسی C++ میپردازیم، که طراحی برنامهها را تسهیل خواهد بخشید. اکثر برنامههای که در این کتاب با آنها مواجه خواهید شد، مبادرت به پردازش اطلاعات و نمایش نتایج میکنند. در این فصل، به معرفی پنج مثال میپردازیم که نحوه نمایش پیغام و همچنین دریافت داده از کاربران را به شما نشان میدهند. سه مثال اول، ساده بوده و تنها مبادرت به نمایش پیغام در صفحه نمایش میکنند. برنامه بعدی، دو عدد از کاربر دریافت کرده و مجموع آنها را محاسبه و نتیجه را بنمایش درمیآورد. در ضمیمه بحث، شما را با نحوه انجام انواع محاسبات و ذخیره نتایج برای استفادههای بعدی آشنا خواهیم کرد. مثال پنجم در ارتباط با تصمیمسازی است که مبادرت به مقایسه دو عدد کرده و سپس پیغامی براساس مقایسه بنمایش درمیآورد. برای اینکه درک مناسب و آسانی از برنامهنویسی C++ بدست آورید، خط به خط هر برنامه را تحلیل میکنیم. برای اینکه مهارتهای کسب کرده خود از این فصل را بکار گیرید، چند مسئله برنامهنویسی در بخش تمرینات در نظر گرفتهایم.
۲-۲ یک برنامه ساده: چاپ یک عبارت متنی
زبان C++ از نمادهای استفاده میکند که ممکن است برای غیر برنامهنویسان عجیب و غریب بنظر برسند. در این بخش به بررسی برنامهای میپردازیم که عبارتی را در یک خط چاپ میکند. برنامه و خروجی آن در شکل۱-۲ آورده شده است. این برنامه حاوی چندین ویژگی مهم زبان C++ است. برای آشنایی بهتر شما، به توضیح خط به خط برنامه میپردازیم.
در خطوط ۱ و ۲
// Fig. 2.1: fig02_01.cpp
// Text-printing program.
که با //، آغاز شدهاند، نشاندهنده این مطلب هستند که این خطوط توضیح میباشند. برنامهنویسان توضیحات را در برنامه یا لیست کد قرار میدهند تا خوانایی کدهای خود را افزایش دهند. توضیحات میتوانند در خط متعلق به خود جای داده شوند که آنها را توضیحات تمام خط مینامیم یا در انتهای یک خط از کد که آنها را توضیحات انتهای خط مینامیم، قرار بگیرند. کامپایلرC++ توضیحات را نادیده میگیرد، به این معنی که توضیحات هیچ تأثیری در اجرای برنامه ندارند. توضیح بکار رفته در خط ۱ فقط نشاندهنده شماره تصویر و نام فایل این برنامه است. البته برخی از برنامهنویسان عبارات توضیحی خود را مابین کاراکترهای /* و */ قرار میدهند.
شکل ۱-۲ | برنامه چاپ عبارت.
int main()
بخشی از هر برنامه C++ است. پرانتزهای واقع پس از main نشان میدهند که main یک بلوک برنامه بنام تابع است. برنامههای C++ میتوانند حاوی یک یا چندین تابع و کلاس باشند، اما بایستی یکی از آنها حتما main باشد، حتی اگر main اولین تابع در برنامه نباشد. کلمه کلیدی int که در سمت چپ main قرار گرفته، بر این نکته دلالت دارد که main یک مقدار صحیح “برمیگرداند” (عدد بدون اعشار). کلمهکلیدی، کلمهای در کد است که توسط C++ رزرو شده است. لیست کامل کلمات کلیدی C++ در جدول شکل ۳-۴ آورده شدهاند. به هنگام مطالعه فصل سوم و ششم به توضیح مفهوم دقیق “مقدار برگشتی” از سوی یک تابع خواهیم پرداخت. اما برای این لحظه، کافیست بدانید که کلمه کلیدی int در سمت چپ برنامههای شما قرار خواهد گرفت.
بایستی براکت چپ، }، (خط ۷) در ابتدای بدنه هر روالی قرار داده شود. براکت متناظر، براکت راست، {، (خط ۱۲ ) است،که باید آنرا در انتهای بدنه هر روالی قرار داد. خط ۸
std::cout << “Welcome to C++!\n”; // display message
به کامپیوتر فرمان میدهد تا رشتهای از کاراکترها را که مابین جفت گوتیشن قرار دارند بر روی صفحه نمایش چاپ کند. گاهی اوقات رشته بنام رشته کاراکتری، پیغام یا رشته لیترال هم خوانده میشود. کاراکترهای white space توسط کامپایلر نادیده گرفته میشوند.
کل خط ۸، شامل 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 در یک برنامه قرار دهید. در برنامه شکل ۱۳-۲ از این نمادها به همراه عبارت using استفاده شده است، که ما را قادر به حذف std:: قبل از هر استفاده از فضای نامی std میکند.
عملگر << نشاندهنده، عملگر درج جریان است. هنگامی که این برنامه اجرا میشود، مقدار موجود در سمت راست این عملگر، عملوند سمت راست، وارد جریان خروجی میگردد. دقت کنید که عملگر مستقیماٌ به مکانی اشاره میکند که داده باید به آنجا برود. معمولا کاراکترهای قرار گرفته در سمت راست عملگر به همان شکلی که مابین جفت گوتیشها آورده شدهاند، چاپ میشوند. با این وجود، توجه نمائید که کاراکتر \n بر روی صفحه نمایش چاپ نمیشود. کاراکتر\ کاراکتر escape نامیده میشود. این کاراکتر نشان میدهد که یک کاراکتر ویژه چاپ خواهد شد. زمانیکه در دنبالهای از رشتههای کاراکتری یک کاراکتر \ وارد شود، کاراکتر پس از آن بعنوان یک توالی escape در نظر گرفته خواهد شد. در این برنامه توالی escape کاراکتر \n است، که به مفهوم خط جدید یا newline میباشد. این کاراکتر سبب میشود تا کرسر به ابتدای خط بعدی در صفحه نمایش منتقل شود. در جدول شکل ۲-۲ تعدادی از توالیهای escape که از کاربرد بیشتری برخوردار هستند آورده شدهاند.
توالی escape | توضیحات |
\n | خط جدید. کرسر را در ابتدای خط بعدی قرار میدهد. |
\t | تب افقی. کرسر را به اندازه یک تب(tab) به جلو انتقال میدهد. |
\r | enter. کرسر را به ابتدای خط جاری باز میگرداند. آنرا با \n اشتباه نگیرید. |
\a | هشدار. زنگ یا صدای سیستم را فعال میکند. |
\\ | کاراکتر \. برای چاپ کاراکتر \ استفاده میشود. |
\’ | کاراکتر .’ برای چاپ کارکتر ‘ استفاده میشود. |
\” | جفت گوتیشن. از این توالی برای چاپ کاراکتر جفت گوتیشن استفاده میشود |
شکل ۲-۲ |توالی escape.
خط ۱۰
return 0; // indicate that program ended successfully
در پایان هر تابع main وجود خواهد داشت. کلمه کلیدی return یکی از چندین روش موجود برای خروج از یک تابع است. زمانیکه عبارت return در پایان تابع main بکار گرفته میشود، همانند این برنامه، مقدار ۰ نشاندهنده این مطلب است که برنامه با موفقیت به کار خود پایان داده است. در فصل ششم، با جزئیات عملکرد توابع و دلایل افزودن چنین عباراتی به آنها بیشتر آشنا خواهید شد. اما برای این لحظه، کافیست بدانید که این عبارت در انتهای هر برنامهای قرار داده میشود. براکت راست، {، (خط ۱۲ ) انتهای تابع main را نشان میدهد.
۳-۲ اصلاح برنامه
این بخش ادامهدهنده معرفی برنامهنویسی C++ با دو مثال است، که نحوه اصلاح برنامه مطرح شده در شکل ۱-۲ را نشان میدهند. در مثال اول، متن در یک خط با استفاده از چندین عبارت چاپ میشود. در مثال دوم همان متن توسط یک عبارت و در چندین خط چاپ میگردد.
چاپ متن در یک خط توسط چند عبارت
رشته Welcome to C++! میتواند به چندین روش چاپ شود. برای مثال، در برنامه شکل ۳-۲ از دو عبارت برای وارد کردن جریان (خطوط ۸-۹ )استفاده شده است، تا همان خروجی برنامه شکل ۱-۲ تولید شود. خروجی برنامه دوم دقیقاٌ همانند برنامه اول است، چرا که هر عبارت از مکانی که عبارت قبلی به عمل چاپ پایان داده، شروع به چاپ میکند. عبارت اول کلمه Welcome و بدنبال آن یک فاصله چاپ کرده و عبارت دوم هم کار چاپ را از همان خط و پس از فاصله چاپ شده دنبال میکند. بطور کلی، C++ به برنامهنویس امکان میدهد تا عبارات را به روشهای گوناگون بکار گیرد.
چاپ متن در چند خط توسط یک عبارت
همانند برنامه شکل ۴-۲ میتوان یک عبارت را در چندین خط به نمایش در آورد. هر بار که عبارت ارسالی به خروجی با کاراکتر توالی \n مواجه شود، کرسر به ابتدای خط بعدی منتقل خواهد شد. برای ایجاد یک خط خالی در خروجی، دو کاراکتر خط جدید را پشت سرهم، همانند خط ۸ قرار دهید.
شکل ۳-۲ | چاپ متن در یک خط با چند عبارت.
شکل ۴-۲ | چاپ متن در چند خط با یک عبارت.
دیدگاهها