آشنایی با زبان سی پلاس پلاس – C++ – بخش دوم

C++همان طور که در مطلب قبلی وعده داده شد،در این شماره قصد داریم به بررسی توابع و نقش آن ها در برنامه نویسی ++c بپردازیم. برای مشاهده متن کامل مقاله آشنایی با زبان سی پلاس پلاس – C++ – بخش دوم  به ادامه ی مطلب بروید.

 توابع

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

میخواهیم برنامه ای بنویسیم که تا آن جا که کاربر میخواهد،عددی را دریافت و تعیین کند که آیا عدد وارد شده اول است یا خیر.

#include<iostream.h>
#include<conio.h>
int indicate(int);
int main()
{
int num;
char ans;
clrscr();

while(1){
cout<<”\nplease enter a number to show weather is prime or not:”;
cin>>num;
if(indicate(num)==0)
cout<<”the number wich you enterned is prime”<<endl;
else
cout<<”\nthe number wich you entered is not prime”;
cout<<”\ndo you want to conyinue?press y to continue or any other key to quit”;
cin>>ans;
if(ans!=’y')
break;
}
return 0;
}
int indicate(int num)
{
int sig;
for(int i=2;i<num;i++){
if(num%i!=0)
sig=0;
else if(num%i==0){
sig=1;
break;
}
}
return sig;
}

همان طور که میدانید میتوان برای تشخیص دادن این که عددی اول است یا خیر،آن عدد را بر همه ی اعداد بزرگتر مساوی 2 تا عدد ما قبل آن عدد تقسیم کرد،چنان چه این عدد بر یکی از این اعداد بخش پذیر باشد،آن عدد اول است و در غیر این صورت آن عدد اول است.همان طور که ملاحظه میشود پس از تعیین اولیه ی تابع و متغیر های مورد نیاز،تابع indicate فراخوانی شده و مقدار عدد مورد نظر به عنوان آرگومان به تابع فرستاده میشود.حال کنترل برنامه در دست این تابع است.در این تابع پس از تعریف یک متغیر به نام <<sig>> با استفاده از یک حلقه ی تکرار for آن عدد را مرتب بر اعداد مذکور تقسیم میکند.حال اگر باقیمانده ی آن عدد در تقسیم بر هر یک از این عدد نا مساوی صفر شود، مقدار متغیر<<sig>> برابر صفر میشود و دستورات حلقه دوباره انجام شده و به اندیس i هم یک واحد اضافه میشود.حال چنان چه در یکی از این تقسیمات باقیمانده ی تقسیم مذکور برابر صفر شود،مقدار متغیر sig برابر یک شده و با استفاده از دستور “break” کنترل برنامه از حلقه ی for خارج میشود.

در خارج از این حلقه دستور  “return sig” وجود دارد که مقدار نهایی متغیر sig را به آن قسمت از برنامه که تابع <<indicate>> را فراخوانی کرده بود،برمیگرداند.حال اگر مقدار sig برابر صفر باشد،پیغام این که “عدد اول است” چاپ میشود و در غیر این صورت ( sig=1 ) پیغام این که “عدد وارد شده اول نیست” چاپ میشود.توجه شود که کل این فرآیند ها در یک حلقه ی while بی نهایت قرار گرفته اند،بدین صورت که پس از چاپ اولین پیغام از کاربر در خواست میشود که اگر میخواهد ادامه دهد،کارکتر ‘y’ را وارد کرده و در غیر این صورت هر کارکتر دیگری را وارد کند.حال با استفاده از ساختار تصمیم if بررسی میشود که اگر کارکتر ورودی هر چیزی غیر از ‘y’ باشد،با استفاده از دستور break کنترل برنامه از حلقه while خارج شده و برنامه خاتمه میابد در غیر این صورت(کارکتر ورودی=’y’ ) حلقه while  دوباره انجام شده و بررسی اول بودن یا نبودن یک عدد دیگر  در دستور کار قرار میگیرد.برای آشنایی بیشتر به چند تابعی که به صورت پیش فرض تعریف شده اند توجه نمایید.دقت شود که برای استفاده از این توابع ابتدا باید کتابخانه ی <<math.h>> را به برنامه اضافه نمایید.

تابع ( floor(a :

این تابع جزء صحیح یک عدد را محاسبه میکند.به عنوان مثال اگر( b=floor(5.63 مقدار b=5 خواهد شد.

تابع ( pow(a,b :

این تابع عدد a را به توان b میرساند.

تابع( sqrt(a :

این تابع جذر عدد صحیح a را محاسبه مینماید.

تابع( abs(x :

این تابع قدر مطلق عدد x را محاسبه مینماید.

برای کسب اطلاعات بیشتر میتوانید از tutorialspoint  و همچنین از cplusplus  بازدید نمایید

در مطلب بعد به سراغ بحث آرایه ها میرویم و در آن شماره،به بررسی مثال های بیشتری از مباحث ارائه شده میپردازیم،شما میتوانید مسائل گوناگونی را از این جا نیز دانلود کنید.