Submit Search
Upload
Advance programming c++
•
1 like
•
42 views
A
AliNazarizadeh
Follow
Advance programming c++
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 95
Download now
Download to read offline
Recommended
Amjadi - Ebook 5 - Function - v1
Amjadi - Ebook 5 - Function - v1
Mohammad Amin Amjadi
Jozve c#3 mohamady
Jozve c#3 mohamady
danesh_fd
Quantom
Quantom
danesh_fd
Jozve c#2 mohamady_zahedy
Jozve c#2 mohamady_zahedy
danesh_fd
Popular Maple codes Book - Persian
Popular Maple codes Book - Persian
Amir Shokri
MIPS and QtSpim
MIPS and QtSpim
Mohammad Kadkhodaei
سی پلاس پلاس به عنوان زبان دومی برای یادگیری شی گرایی
سی پلاس پلاس به عنوان زبان دومی برای یادگیری شی گرایی
mrm_196
Mohamady zahedy c#
Mohamady zahedy c#
danesh_fd
Recommended
Amjadi - Ebook 5 - Function - v1
Amjadi - Ebook 5 - Function - v1
Mohammad Amin Amjadi
Jozve c#3 mohamady
Jozve c#3 mohamady
danesh_fd
Quantom
Quantom
danesh_fd
Jozve c#2 mohamady_zahedy
Jozve c#2 mohamady_zahedy
danesh_fd
Popular Maple codes Book - Persian
Popular Maple codes Book - Persian
Amir Shokri
MIPS and QtSpim
MIPS and QtSpim
Mohammad Kadkhodaei
سی پلاس پلاس به عنوان زبان دومی برای یادگیری شی گرایی
سی پلاس پلاس به عنوان زبان دومی برای یادگیری شی گرایی
mrm_196
Mohamady zahedy c#
Mohamady zahedy c#
danesh_fd
Amjadi - Ebook 6 - Ref,Out - v1
Amjadi - Ebook 6 - Ref,Out - v1
Mohammad Amin Amjadi
Flowchart
Flowchart
mpetroleum
C++
C++
guestdcb75
C++
C++
guestdcb75
برنامه سازی3
برنامه سازی3
mahdiehsalari
Radmanesh c#-1
Radmanesh c#-1
neginrmn
How to program with c in persian
How to program with c in persian
moein jazemi
آشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندروید
Sadegh Ghanbari Shohani
Learn orcad 9.2
Learn orcad 9.2
Micro Designer Electronic
بخش اول :كاربرد رايانه در برق (آموزش ساده سيمولينك )
بخش اول :كاربرد رايانه در برق (آموزش ساده سيمولينك )
tahereh sharafi
2 arrays in c++ programming aramse
2 arrays in c++ programming aramse
Aram SE
C-1.pptx
C-1.pptx
Mojtaba Aajami
الدالات الأساسية-في-برنامج-الإكسل
الدالات الأساسية-في-برنامج-الإكسل
Mahmoud Abd Elrahman
نرم افزار3 خرداد
نرم افزار3 خرداد
mahdiehsalari
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
Hamid Saberi
Amjadi - Ebook 7 - Class - v1
Amjadi - Ebook 7 - Class - v1
Mohammad Amin Amjadi
امتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتی
somayeh daneshparvar
Software Fault Avoidance in Implementation
Software Fault Avoidance in Implementation
Morteza Zakeri
Barnamesazi1c#
Barnamesazi1c#
somyashabani
آموزش نرم افزار MSP
آموزش نرم افزار MSP
Raman Rezaei, PMP
More Related Content
Similar to Advance programming c++
Amjadi - Ebook 6 - Ref,Out - v1
Amjadi - Ebook 6 - Ref,Out - v1
Mohammad Amin Amjadi
Flowchart
Flowchart
mpetroleum
C++
C++
guestdcb75
C++
C++
guestdcb75
برنامه سازی3
برنامه سازی3
mahdiehsalari
Radmanesh c#-1
Radmanesh c#-1
neginrmn
How to program with c in persian
How to program with c in persian
moein jazemi
آشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندروید
Sadegh Ghanbari Shohani
Learn orcad 9.2
Learn orcad 9.2
Micro Designer Electronic
بخش اول :كاربرد رايانه در برق (آموزش ساده سيمولينك )
بخش اول :كاربرد رايانه در برق (آموزش ساده سيمولينك )
tahereh sharafi
2 arrays in c++ programming aramse
2 arrays in c++ programming aramse
Aram SE
C-1.pptx
C-1.pptx
Mojtaba Aajami
الدالات الأساسية-في-برنامج-الإكسل
الدالات الأساسية-في-برنامج-الإكسل
Mahmoud Abd Elrahman
نرم افزار3 خرداد
نرم افزار3 خرداد
mahdiehsalari
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
Hamid Saberi
Amjadi - Ebook 7 - Class - v1
Amjadi - Ebook 7 - Class - v1
Mohammad Amin Amjadi
امتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتی
somayeh daneshparvar
Software Fault Avoidance in Implementation
Software Fault Avoidance in Implementation
Morteza Zakeri
Barnamesazi1c#
Barnamesazi1c#
somyashabani
آموزش نرم افزار MSP
آموزش نرم افزار MSP
Raman Rezaei, PMP
Similar to Advance programming c++
(20)
Amjadi - Ebook 6 - Ref,Out - v1
Amjadi - Ebook 6 - Ref,Out - v1
Flowchart
Flowchart
C++
C++
C++
C++
برنامه سازی3
برنامه سازی3
Radmanesh c#-1
Radmanesh c#-1
How to program with c in persian
How to program with c in persian
آشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندروید
Learn orcad 9.2
Learn orcad 9.2
بخش اول :كاربرد رايانه در برق (آموزش ساده سيمولينك )
بخش اول :كاربرد رايانه در برق (آموزش ساده سيمولينك )
2 arrays in c++ programming aramse
2 arrays in c++ programming aramse
C-1.pptx
C-1.pptx
الدالات الأساسية-في-برنامج-الإكسل
الدالات الأساسية-في-برنامج-الإكسل
نرم افزار3 خرداد
نرم افزار3 خرداد
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
Amjadi - Ebook 7 - Class - v1
Amjadi - Ebook 7 - Class - v1
امتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتی
Software Fault Avoidance in Implementation
Software Fault Avoidance in Implementation
Barnamesazi1c#
Barnamesazi1c#
آموزش نرم افزار MSP
آموزش نرم افزار MSP
Advance programming c++
1.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 1 میحالرمنحالرهللامسب :درس جزوه نویسی برنامهپیشرفته زاده نظری علی : نویسنده کرمانشاه واحد اسالمی آزاد دانشگاه سال ماه بهمن4913
2.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 2 نویسی برنامه بر ای مقدمه :اول فصل تمامی درکرد اعالن زیر های روش از یکی با را ها آن و کرد مشخص را متغییرها نوع باید نویسی برنامه های زبان 1-: intمانند صحیح اعداد از خود برنامه در بخواهیم اگر62یا652این به را خود متغییر باید ،کنیم استفاده ... یا صورت.کنیم اعالن:رو روبه مانندint a;ک این یعنیمتغییر هaاعداد تواند می فقط و باشد می صحیح عدد نوع از دهد اختصاص خود به را صحیحمقدار اگر مثال .aعدد با مساوی را5266و شویم می مواجه خطا با بدهیم قرار .شود نمی اجرا برنامه 6-floaمانند اعشاری اعداد از خود برنامه در بخواهیم اگر :6.62یا4569اس ... یارا خود متغییر باید ،کنیم تفاده :رو روبه مانند .کنیم اعالن صورت این بهfloat a;متغییر که این یعنیaنوع ازعدد.باشد می اعشاری .-doubleاندازه دقت که تفاوت این با گیرد می قرار استفاده مورد اعشاری اعداد برای نیز ای داده نوع این : بیش آن گیریو باشد می تردهد می نشان ممیز از بعد را تری بیش اعداد:رو روبه مانند .double a;. 9-bool:: (صحیح حالت دو شامل فقط ای داده نوع اینtrue: نادرست وfalseزمانی برای تر بیش و باشد می ) :رو روبه مانند .بسنجیم را مقدار یک نادرستی یا درستی که کنیم می استفاده آن ازbool a;. 5-charاین به را خود متغییر باید ،کنیم استفاده )عالمت یک یا حرف (یک کاراکتر از خود برنامه در بخواهیم اگر : :رو روبه مانند .کنیم بیان صورتchar k;متغییر که این یعنیkمانند حرف یک یا کاراکتر یک شامل: (a , #, Z, s.باشد می ... یا ) 2-stringدارد نام )(رشته که کاراکترها از ای مجموعه شامل ای داده نوع این :.باشد می ،برای تر بیش روش این ا مورد زمانینکته این به .کنیم دریافت ورودی از را ... یا خانوادگی نام یا نام مثال بخواهیم که گیرد می قرار ستفاده نا دریافت برای که کنید دقت خوبمخانوادگی نام یاکنیم می عمل صورت این به افراد: String str; ای رشته نوع از str متغییر اعالن cin>>str; cin دستور از استفاده با str ی رشته دریافت cout<< " Ali "; برنامه خروجی نام به متدی از ،هم با خانوادگی نام و نام دریافت برای اماgetline(cin, name).کنیم می استفادهزیر صورت به که :باشد می string str; ای رشته نوع از str متغییر اعالن getline(cin, str); getline(cin, str) دستور از استفاده با str ی رشته دریافت cout<< " Ali Nazarizadeh " برنامه خروجی :بینید می که طور همانcin،برسد کلمات بین خالی فضای به که هنگامی و دارد را کلمه یک دریافت توانایی فقط تابع از مشکل این حل این برای .ندارد را کلمات بقیه دریافت توانایی و کند می دریافت ورودی از را کلمه اولین فقط getline(cin, name)تابع این که کنیم می استفادهتابع این .دارد ورودی از را ها رشته گرفتن تواناییدو دارای پا که باشد می پارامترراشی اول مترcinوآن باشد میج همان را،دوم پارامتر در و نویسم می وریمورد رشته اسم ،رشته اسم جا این در که نویسیم می را نظرstr.باشد می نکته1-1دستور از :cinداده گرفتن برایدستور از و هاcoutنمای برایش.کنیم می استفاده ها داده
3.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 3 نکته1-6زبان به که ای برنامه هر ابتدای در :C++برنامه اول به را ای کتابخانه فایل دو این باید حتما نویسیم می :کنیم اضافه #include<iostream.h> cout و cin به مربوط ای کتابخانه فایل #include<conio.h> getch() تابع به به مربوط ای کتابخانه فایل زبان به برنامه یک ساختارC++:باشد می زیر صورت به #include<iostream.h> #include<conio.h> int main() { … ... ...; … ... ...; main() تابع داخل در برنامه نوشتن و دستورات سازی پیاده … ... ...; getch(); مش خروجی در را خود های داده کاربر تا دارد می نگه را نمایش صفحه ،تابع اینکند اهده return 0; ک درست برنامه که شود مطمعن تا دهد می بازگشت برنامه به را صفر مقدار تابع اینکند می ار } 1-1شرطی دستورات و تکرار های حلقه کن می استفاده ها برنامه نوشتن برای خاص ترفند چند از نویسی برنامه در،ها آن اساس و پایه که یمها حلقهو شرطی دستوراتزبان در .باشند میC++شرطی یا تکرار حلقه نوع چهاراز اند عبارت که دارد وجود: 1-دستورifی کلمه :ifمعنی به)ا دستوری های شرط برای تر بیش و باشد می )اگربنابراین .شود می استفاده آن ز داشت برنامه در شرط یک برقراری به نیاز ما که هرگاهد یا یمدستور این از ،آمد )(اگر ی کلمه سوال صورت ر گیرد می قرار استفاده مورد روش دو به دستور این .کنیم می استفاده:باشد می زیر صورت به اول .روش if ( برنامه شرط ) { بده انجام را قسمت این دستورات ،بود درست برنامه شرط اگر } صورت این غیر درelse { بده انجام را قسمت این به مربوط دستورات { else } ;... ...... {
4.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 4 :آید می زیر صورت به دوم روش if( شرطاولبرنامه ) { شرط اگراولبده انجام را قسمت این دستورات ،بود درست برنامه } else if ( برنامه دوم شرط ) { شرط گردومبود درست برنامهبده انجام را قسمت این دستورات ، { else if ( برنام سوم شرطه ) { شرط گرسومبود درست برنامهبده انجام را قسمت این دستورات ، { … … …; … … …; مثال1-1عدد خروجی در بود رقمی یک اگر و کند دریافت ورودی از را عددی که بنویسید ای برنامه :1چاپ را عدد بود رقمی دو اگر ،کند6عدد بود رقمی سه اگر ،کند چاپ را.را.آخر الی و کند چاپ #include<iostream.h> #include<conio.h> int main() { int a; cout << "enter a number: "; cin >> a; if (a <= 9) { cout << "1"; } else if (a <= 99) { cout << "2"; } else if (a <= 999) { cout << "3"; } else if (a <= 9999)
5.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 5 { cout << "4"; } getch(); return 0; } برنامه توضیحعدد مساوی تر کوچک رقمی یک اعداد :4دستور در بنابراین ،باشند میifقرار را شرط این اولی کو ورودی عدد اگر که ایم دادهعدد مساوی یا تر چک4را باشد می رقمی یک عدد که این بر مبتنی پیغامی ،بود کند چاپتر کوچک ورودی عدد اگر اگر ولییاعدد مساوی4دستور به برنامه نبودifدستور در و رود می بعدی کوچک ورودی عدد اگر که کند می چک بعدیعدد مساوی تر44می رقمی دو عدد که این بر مبتی پیغام یک ،بود م چک تک به تک را بعدی های شرط برنامه صورت همین به و کند چاپ را باشد.کند ی 6-ی حلقهforی کلمه :forکنیم می استفاده شمارشی عملیات انجام برای حلقه این از و باشد می )(برای معنی به. بین اعداد مثال خواستیم ای برنامه در هرگاه111تا611کنیم شمارش ... یایا دهیم نمایش خروجی در را ها آن و را بعد محل تا محل یک از خواستیم که اینکنی پیمایشکنیم می استفاده حلقه این از ،ممی نوشته زیر صورت به که :شود for ( مبدا ; مقصد ; حرکت گام ) مثال1-6بنویسی ای برنامه :داعداد کهبین16تا161.دهد نمایش خروجی در را #include<iostream.h> #include<conio.h> int main() { int i; صحیح عدد نوع از i متغییر اعالن for (i = 16; i <= 180; i++) for حلقهی { cout << i << " "; کند می چاپ خروجی در را i متغییر } getch(); return 0; } برنامه توضیحکه طور همان :قبل دری حلقه از اعداد شمارش برای ،گفتیمforاگفته مثال این در .کنیم می ستفاده شدهکه استبین اعداد12تا161ی حلقه یک بنابراین ،کند چاپ راforمانند متغییر یک مثال که نویسیم میiرا عدد همان که مبدا عدد با مساوی12و دهیم می قرار باشد میعدد با مساوی نیز را مقصد عدد161و دهیم می قرار مقدارiر اعداد ی همه تا کنیم می اضافه واحد یک واحد یک را،کند شمارش را عددی که هم بار هر و کند پیمایش ا خروجی دستور از استفاده با را آنcout.کند می چاپ خروجی در .-حلقهیwhileکلمه :یwhileزما (تا معنی بهباشد می )که نیدستور های قابلیت اغلب تقریبا وifی حلقه و forدارد را:شود می نوشته زیر صورت به که
6.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 6 while ( است برقرار شرط این که زمانی تا ) { بده انجام را قسمت این دستورات } مثال1-.بزرگ دریافتی عدد که زمانی تا و کند دریافت ورودی از را عدد تعدادی که بنویسید ای برنامه :از تر ،بود صفردهد نمایش خروجی در را خودش در عدد ضرب حاصلوخود کار به برنامه.دهد ادامهعدد اگر اما کوچک دریافتی.برسد پایان به برنامه ،بود صفر از تر #include<iostream.h> #include<conio.h> int main() { int i = 0; while (i >= 0) { cout << "enter a number: "; cin >> i; cout << i *i << endl; } getch(); return 0; } توضیح:برنامهمتغییر ابتدا درiداده نسبت آن به را صفر مقدار ابتدا در و ایم کرده معرفی صحیح عدد نوع از را متغییر که کنید دقت .ایمiی حلقه داخل در .کنیم دریافت ورودی از است قرار که باشد می عددی همانwhile عبارتi>=0زم تا که باشد می معنی بدین این ،است شده نوشتهبزرگ دریافتی عدد که انیباشد می صفر مساوی تر در ضرب کنیم می دریافت ورودی از که را عددی هر هم آخرسر در و کنیم دریافت ورودی از عدد توانیم میخودش .کنیم می 9-حلقهیswitch / caseکلمه :switchم بهی کلمه و )کردن کنترل یا (کلید عنیcaseم بهعنمی )(مورد ی حلقه این .باشددستور های قابلیت تر بیش انجام توانایی تقریباifاینجام برای توان می نیز حلقه این از .دارد را .کرد استفاده شرطی دستوراتصحیح عدد ای داده نوع از فقط حلقه این که کنید دقت نکته این به(int)کاراکتر و (char)دیگر پس کرد استفاده ها حلقه این از توان می داده نوع دو این با کار برای که این یعنی .کند می پشتیبانی م توان نمیثالها رشته(string)اعشاری اعداد یا(float).داد انجام حلقه این از استفاده با رازیر صورت به که :شود می نوشته switch ( اس قرار که متغییری نوشتنتبگیرد قرار بررسی مورد ) { case 1: cout << "one"; این دستورات ،بود درستبده انجام را خط case قسمت شرط اگر break; صورت این غیر در case 2: cout << "two"; د ،بود درستبده انجام را خط ایت ستورات case قسمت شرط اگر break; صورت این غیر در
7.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 7 case 3: cout << "there"; ... ... ... break; ... ... ... case 4: cout << "four"; ... ... ... break; ... ... ... default: cout << "Erorr"; case قسمت دستورات از کدام هیچ نبودن درست صورت در } بده انجام را default دستورقسمت به مربوط مثال1-9:که بنویسید ای برنامهورودی از را چهار تا یک از اعداددر را کدام هر انگلیسی معادل و کند دریافت .دهد نمایش خروجی #include<iostream.h> #include<conio.h> int main() { int n; cin >> n; switch (n) { case 1: cout << "one"; break; case 2: cout << "two"; break; case 3: cout << "there"; break; case 4: cout << "four"; break; default: cout << "Erorr"; } getch(); return 0; } برنامه توضیحدستور داخل در را دهیم قرار بررسی مورد برنامه در است قرار که را متغییری ابتدا :switchمی دستورات از استفاده با و نویسیمcaseاولین در مثال .دهیم می قرار بررسی مورد را قسمت هر ،caseعدد1می را این یعنی ،نویسیممورد اگر کهنظرعدد ما1عدد ایم کرده وارد که را عددی همان یا1خروجی در ،بودoneرا دستور از استفاده با سپس کن چاپbreakاولین اگر و کنیم می قطع را برنامهcaseسراغ به نبود صحیح ماcase دست و برود بعدیق در .دهد انجام را قسمت آن وراتسمتو عدد اگر که است شده نوشته نیز بعدیرودی6در ،بود خروجیtwoکن راچاپدام .ااز کدام هیچ اگرcaseدستور ،نبود درست ما هایبرنامه فرض پیش قسمت به مربوط همان یاdefault.بده انجام را
8.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 8 1-6آرها ایه ورودی از را عدد یک فقط ما قبل های مثال در .شود می فراوانی های استفاده ها آرایه از نویسی برنامه دردریافت کردیماتعداد نمرات مثال بخواهیم اگر ما111دانچکا کنیم دریافت را شجوباید راز ما مسلما داد؟ انجام111متغییر کنیم نمی استفاده باشد می عدد یک به مربوط کدام هر کهمی استفاده ها آرایه از که است صورت این در ،کنیم. نکته1-.ی حلقه یک حتما باید ،کنیم می استفاده ها آرایه از که وقتی همیشه :forیعنی .ببریم کار به برنامه در نیز ی حلقه از ها داده نمایش و دریافت برای همیشهforزیر مثال مانند .کنیم می استفاده: نکته1-9ها داده نمایش برای :آرایه یک قالب در،:کنیم می عمل زیر صورت به ];ها داده تعداد[بازگشتی نوع آرایه اسم شامل که ای رشته نوع از ای آرایه.رشتهباشد میstring name [3]; صحیح عدد نوع از ای آرایهکهشامل.خانه یا عددباشد میfloat score [3]; مثال1-5ی شماره و نام که بنویسید ای برنامه :.آموز دانشخروجی در را ها آن و کند دریافت ورودی از را .دهد نمایش #include<iostream.h> #include<conio.h> #include<string> int main() { string name[3]; float score[3]; int i; for (i = 0; i < 3; i++) { cout << "name " << i + 1 << ": "; cin >> name[i]; cout << "score " << i + 1 << ": "; cin >> score[i]; } for (i = 0; i < 3; i++) { cout << name[i] << " " << score[i] << endl; } getch(); return 0; } برنامه توضیح:آرایه یک برنامه ایننام بهnameو باشد می ای رشته نوع از که داردآن های خانه تعداد.می باشدنام به آرایه یک چنین هم وscoreاز را هرکدام نمره و نام ترتیب به که دارد دانشجویان های نمره ذخیره برای دریافت ورودیرا ها آن و کند می.دهد می نشان خروجی در
9.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 9 1-.تابع برنا در تکراری دستورات نوشتن از جلوگیری و کردن خالصه ،کردن تر ساده برای نویسی برنامه درکاهش و مه کنند می استفاده توابع از برنامه حجمابتدا یعنی .کنیم می استفاده متغییرها تعریف همانند نیز تابع یک تعریف برای . نویسیم می را تابع نام سپس و تابع بازگشتی نوعاین تابع تشخیص راه ،که گفت توان می تر ساده خیلی صورت به . همی تابع که استشعالمت دارای همی پارامتر فاقد که این یا دارد وجود پارامتر یا آن داخل در که باشد می پرانتر :کنیم می عمل زیر صورت به ،تابع یک اعالن برای کلی طور به .باشد ;(...,دوم پارامتر,اول پارامتربازگ نوع تابع نام )تابع شتی int insert (int a, int b); نکته1-5بر عالوه :2نام به بازگشتی جدید نوع یک ،داشتیم متغییرها برای که بازگشتی نوع(void)توابع برای نیز .دهد نمی بازگشت را مقداری هیچ ای داده نوع این .بریم می کار به نکته1-2صورت به تابعی بازگشتی نوع اگر :2از غیر که این یعنی ،باشد قبل حالتvoidباشدبا را آن باید ، خروجی دستور از استفادهcoutصورت به تابعی بازگشتی نوع اگر اما .بنویسیم خروجی درvoidرا آن نباید ،باشد .بنویسیم خروجی در نکته1-7همان جزء ها آن بازگشتی نوع که توابعی برای :2بود کردیم بیان متغییرها برای که نوعیداخل در باید ، بازگشتی دستور از متدreturnبا نوع اگر اما .کنیم استفادهما زگشتیvoidبازگشتی دستور از توانیم نمی دیگر ،بود returnباز را متغییری و کنیم استفاده.دهیم گشت :از اند عبارت که دارد بازگشتی نوع یک تابع هر .کرد مشخص را آن نوع باید ،متغییرها سایر مانند نیز توابع 1-صحیح مقدار یک(int)را صحیح اعداد تابع حالت این در :.دهد می بازگشت 6-اعشاری مقدار یک(float).دهد می بازگشت را اعشاری اعداد تابع حالت این در : .-اعشاری مقدار یک(double).دهد می بازگشت باالتری دقت با را اعشاری اعداد تابع حالت این در : 9-غلط یا صحیح مقدار یک(bool)صحیح مقدار یا تابع حالت این در :(true)غلط مقدار که این یا(false)را .دهد می بازگشت 5-کاراکتری مقدار یک(char).دهد می بازگشت را کاراکترها تابع حالت این در : 2-ای رشته مقدار یک(string).دهد می بازگشت را ای رشته تابع حالت این در : 7-بازگشتی نوع بدون(void)را مقداری هیچ تابع حالت این در :.دهد نمی بازگشت مثال1-2ورودی از را فردی امروز تارخ و تولد تاریخ که بنویسید ای برنامه :ت از استفاده با و کند دریافتابعی ر چند که کند مشخص.است گذشته شخص این عمر از وز #include<iostream.h> #include<conio.h> int calculate(int year1, int month1, int day1, int year2, int month2, int day2) { int y, m, d, result; y = year2 - year1; m = month2 - month1; if (m < 0) {
10.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 10 m *= -1; } d = day2 - day1; if (d < 0) { d *= -1; } result = (y * 365) + (m * .1) + (d); return result; } int main() { int year1, month1, day1, year2, month2, day2; cout << calculate(1374, 9, 15, 1394, 11, 21); getch() return 0; } برنامه توضیح:به ما2تای سه و روز و ماه و سال براساس فرد تولد تاریخ ی دهنده نشان ها آن تای سه که متغییر امروز تاریخ ی دهنده نشان بعدیا برروز و ماه و سال ساسباشد میداریم نیازکافی فقط ،روزها ی محاسبه برای . تول سال از را حال سال ترتیب به که استدکن کم تولد روز از را حال روز و تولد ماه از را حال ماه وتعدا سپس .یم د به که را هایی سالدر را آید می ست.25را آید می دست به که را هایی ماه تعداد ودر.1با نیز ها روز تعداد و دقت .آوریم بدست را فرد یک عمر روزهای تعداد تا کنیم می جمع هم با را متغییر سه این و نویسیم می صورت همان کنیدمتغییر برای کهmمتغییر و ها ماه تعداد ی دهنده نشان کهdیک از باشد می روزها تعداد ی دهنده نشان که دستورifکرده استفاده.ایمرا تولد ماه ما اگر مثال6را حال ماه و.نوشیتم که دستوری طبق ،کنیم وارد 3-8=-5آن ،باشد تر کم صفر از آمده دست به عدد اگر که کنیم می چک خطا این از جلوگیری برای بنابراین باشد می در را-1.کنیم تبدیل مثبت به منفی از را عدد تا کنیم ضرب 1-9گرها اشاره می حافظه از هایی آدرس واقع در گرها اشاره .باشد می گرها اشاره ،نویسی برنامه مطالب ترین پرکاربرد از یکی باشن،گره اشاره ی نشانه .کند می اشاره ها داده به که دصورت بدین را گر اشاره یک مثال .باشد می ) * ( کاراکتر :کنند می بیانint *a; استفاده گرها اشاره ازاشاره ی وسیله به پویا های آرایه از استفاده ،ها آن ترین مهم از یکی که شود می زیادی های .گفت خواهیم بعدی فصل در را آن از استفاده نحوه که باشد می گرها
11.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 11 دوم فصلاشیاء و ها کالس : هر و االن تا .شد خواهیم آشنا گرا شی نویسی وبرنامه گرایی شی اصول با فصل این درآنمبانی " درس در که چه ساخت نویسی برنامه " به مربوط ،ایم خوانده " سازی برنامه و کامپیوتربعد به لحظه این از اما .باشد می " یافته قرار بررسی مورد را بری ارث و گرایی شی به مربوط مباحث وکال نداریم سروکار نوشتن برنامه نوع این با دیگر ای به باید البته .داد خواهیممبانی " درس در را آن ای پایه مقدمات و نویسی برنامه اصول تمامی که کرد دقت نکته ن آشنا " کالس " نام به نویسی برنامه از جدیدی ساختار با قسمت این در و ایم گرفته فرا " نویسی برنامه و کامپیوتر س صورت به را ایم گرفته فرا االن تا که مطالبی تمامی تقریبا و شد خواهیمکالس " یک قالب در جدید فرمی و اختار .کرد خواهیم سازی پیاده "بعد به لحظه این از که کنید دقتهمان ،تابع دیگر نام که این یعنی .گوییم می متد ،تابع به ، .باشد می متد ی کلمه کالساز ای مجموعه به :متغییرهاتوابع وبا و گیرند می قرار هم کنار ساختار و فرم یک در کهیک دیگر هم کمک بزرگ برنامه.گویند می کالس کنند می طراحی را شیسپس و کنیم می سازی پیاده و طراحی را خود کالس ابتدا ما که این یعنی .باشد می کالس یک از هایی نمونه : کالس آن از،.آوریم می وجود به را اشیایی نوع دو دارای کالس هراز اند عبارت که باشد می ای داده: 1-عضوprivateکنیم اضافه برنامه به باشد قرار که را هرمتغییری و گیرند می قرار متغییرها فقط قسمت این در : قسمت در را آن بایدprivateبه اتوماتیک طور به گیرند می قرار قسمت این در که هایی متغییر تمامی .بنویسیم در فقط متغییرها این و آیند می در خصوصی عضو صورتاز خارج و باشند می دسترسی قابل کالس خود داخل خصوصی اعضای به دسترسی حق ،کالسprivateقسمت در ندارد.حتی وجودmain(). 6-عضوpublicبنابراین .بنویسیم قسمت این در را ها آن باید کنیم سازی پیاده برنامه در است قرار که توابعی تمام : متغییر و توابع تمامی بنابراین .شود می نوشته قسمت این در متغییری ندرت به و آیند می توابع اکثرا قسمت این در قسمت در که هاییpublicقس در را ها آن توان می ،آیند میمتmain().داد قرار استفاده مورد برنامه اصلی قسمت سه از کلی طور به کالس هراز اند عبارت که شود می تشگیل: 1-به مربوط قسمتprivateوpublic.گوییم می " اول قسمت " آن به بعد به این از که 6-در موجود توابع فقط مرحله این در که کالس سازی پیاده به مربوط قسمتقسمتpublicخواهیم سازی پیاده را .گوییم می " دوم قسمت " آن به بعد به این از که کرد .-به مربوط قسمتmain()دهیم می قرار استفاده مورد ایم کرده طراحی که را کالسی قسمت این در که ،برنامه، .نامیم می " سوم قسمت " را مرحله این بعد به این از بنابراین از کالس هرکند می پیروی کلی فرم و قالب یکباشد می زیر صورت به که: #include<iostream.h> باشد می coutو cin اول خطتابع به مربوط : #include<conio.h> باشد می getch() دوم خطتابع به مربوط : class name سوم خطکالس اسم : { چهارم خطشود می باز ) } ( آکوالد : private: )اول قسمت ( private پنجم خطکلیدی کلمه : اول ;متغییر ششم خطمتغییرها معرفی : دوم ;متغییر ... ... ...
12.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 12 public: )اول (قسمت public کلیدی کلمه :نهم خط اول ;متد هشتم خطتوایع معرفی : دوم ;متد ... ... ... }; ( }; ) :صورت بدین .شود می بسته کالن می سی یک همراه به آکوالد :نهم خط اول متد د (قسمتوم) public قسمت در موجود توابع دهم خطسازی پیاده : { … … …; } دوم متد { … … …; } int main() )سوم (قسمت main() تابع یازدهم خط: … … …; main() تایع به مربوط کدهای … … …; getch(); خروجی صفحه کردن متوقف برای getch() تابع از استفاده :دوازدهم خط return 0; صفر مقدار دادن بازگشت برای return 0 اس :سیزدهم خطتابع از تفاده } برنامه توضیح:و باشد می قبل کد صورت به کالس یک اصلی ساختار ،کلی حالت درقرار که هایی کالس تمامی .کنند می پیروی قاعده این از کال ،کنیم طراحی است اول خطتایع به مربوط ای کتابخانه فایل خط این در :cinوcout.نویسیم می را خدوم طخط این در :مربوط فایلتابع بهgetch().نویسیم رامی سوم خطبرنامه قسمت این در :،کالس اسم.کنیم می مشخص را" کلیدی ی کلمه ابتدا کار این برایclass"می را نویسیم،کالس اسم ،فاصله یک با سپسرو روبه مانند .نویسیم می را خود:class book : چهارم خطآکوالد که این از بعد و کنیم می باز ) } ( آکوالد یک ،کردیم مشخص را خود کالس اسم که این از بعد (.کنیم می ،کردیم انتخاب " اول قسمت " را آن اسم قبال که برنامه قسمت اولین نوشتن به شروع ،کردیم باز را ) } پنجم خطکلیدی ی کلمه :private.نویسیم می را ششم خط:.نویسیم می را دهیم قرار استفاده مورد برنامه در است قرار که متغییرهایی ،قسمت این در هفتم خطکلیدی ی کلمه :public.نویسیم می را هشتم خط:ت قسمت این دررا کنیم طراحی است قرا که را وابعی.نویسیم می :نهم خط.رسید پایان به " اول قسمت " که باشد می معنی بدین این ،بندیم می را ایم کرده باز قبال که آکوالدی ،قسمت این در دهم خطقسمت در موجود توابع :publicمی قسمت این در را آن به مربوط کدهای و کنیم می سازی پیاده را نویسیم. یازدهم خطتابع :main()یک و نویسیم می راآکوالد( { )سازی پیاده که را کالسی قسمت این در و کنیم می باز .دهیم می قرار استفاده مورد ایم کرده دوازدهم خطتابع قسمت این در :getch()ک نویسیم می راکه باشد می این تابع این وظیفه هاجرا را برنامه وقتی ما تا کند می متوقف را خروجی صفحه ،کردیمخود برنامه از.کنیم استفاده سیزدهم خطآ ی مرحله در و :تابع نیز خرreturn 0نوع تابعی اگر که گفتیم هم قبل مطالب در .نویسیم می را از غیر آن بازگشتیvoidبازگشتی دستور ز استفاده با باید ،باشدreturnنیز جا این در .دهد بازگشت را مقدار یک تابع چونmain()بازگشتی نوع دارایintتابع این در همیشه که .دهد بازگشت را مقدار یک باید بنابراین ،باشد می .شود داده بازگشت صفر مقدار باید
13.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 13 است شده تشکیل اصلی قسمت سه از کالس هر : گیری نتیجهقسمت و دوم قسمت و اول (قسمت های نام با را ها آن که کردیم گذاری نام )سومصو به و ثابت آن نوشتن مراحل وباشد می دادیم توضیح قیل مثال در که رتی. نکته6-1پایان در همیشه :privateوpublicیک " اول قسمت " همان یاآکوالکالن می سی یک همراه به بسته د ( ; )آید می صورت بدین( }; )بنابر ..است رسیده پایان به برنامه اول قسمت که فهمیم می شکل این دیدن با این نکته6-6پیاده به مربوط قسمت در :" دوم قسمت " همان یا کالس سازیتوابعی تمامیقسمت در که راpublic .نویسیم می تابع همان خود داخل در را ها آن از کدام هر دستورات و کدها و کنیم می سازی پیاده ایم نوشته نکته6-.دستور :int n;متغییر که باشد می معنی بدینnصح عدد نوع ازهمان یا یحintبرنامه در اما .باشد می داخل در گرا شی نویسیmain()" سوم قسمت " همان یابلکه نویسیم نمی کدی چنین امکان حد تااز حالت این در ایجاد شی یک خود کالسرا خو کالس اسم اگر .کنیم میnumberگذاشتهداشت خواهیم حالت این در ،باشیم: number ob1; اینکه باشد می معنی بدین دستورob1نوع ازnumberکالس : که کند می بیان را مفهومی چنین بنابراین باشد می numberنوع از شی یکob1.دارد نکته6-9در همیشه :main()همان یابه نویسی کد نحوه " سوم قسمت "صورتزیرباشد می: 1-تابع ابتدا درmain().نویسیم می را 6-آکوالد یک( { ).کنیم می باز .-.نوییسیم می را کالس اسم 9-.کنیم می ایجاد شی یک ،کالس اسم از بعد 5-قسمت متدهای تک تک به شده ایجاد شی از استفاده با باید سپسpublicکه صورت بدین .باشیم داشته دسترسی نویسیم می را شی ابتدا،نقظه کاراکتر سپس( . )آ در و دهیم می قرار آن جلوی راو .نویسیم می را متد اسم خربه برای را دسترسی ی نحوه ترتیب همینجداگ طور به متد هرخط یک در و انه.نویسیم می مجزا ه " سازی برنامه و کامپیوتر مبانی " درس در قبال .کنیم می شروع ساده مثال یک با ابتداداشتیم ای برنامه مچین: مثال6-1ک دریافت ورودی از را عددی که بنویسید ای برنامه :.دهد نمایش خروجی در را آن و رده اول روش)کالس سازی پیاده (بدون: #include<iostream.h> #include<conio.h> int main() { int n; صحیح عدد نوع از n متغییر اعالن cout << "enter n: "; کند می چاپ پیغام یک cin >> n; n متغییر دریافت cout << n; برد می خروجی به را n متغییر getch(); return 0; }
14.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 14 ساختار از استفاده با را کالس باید حالت این در .کنیم سازی پیاده ها کالس از استفاده با را قبل مثال خواهیم می حال ک نهایت ودر کنیم سازی پیاده کردیم مشخص آن برای قبال که قالبی و:شود می طراحی زیر صورت به ما الس #include<iostream.h> #include<conio.h> class number { private: int n; n نام به متغییر یک public: void insert(); ها داده دریافت برای تابع یک void print(); ها داده نمایش برای تابع یک }; void number::insert() insert() متد سازی پیاده { cout << "enter a number: "; cin >> n; } void number::print() print() متد سازی پیاده { cout << n; } int main() شود می نوشته main() تابع ابتدا { کنیم می باز ( { ) آکوالد یک number ob1; آوریم می وجود به ob1 نام به شی یک سپس و نویسیم می را کالس اسم ob1.insert(); استفاده بااز public قسمت متدهای ی همه به باید ob1 شی ob1.print(); باشد داشته دسترسی ( . ) نقظه کاراکتر getch(); return 0; } کالس توضیحباال ی برنامه در :خروجی در و کند می دریافت ورودی از را عددی که ایم ه کرد طراحی را کالسی .کردیم طراحی ساده صورت وبه ها کالس بدون را برنامه این قبل صفحه در .دهد می نشان را آن اگ که کند می پیروی خاص ی قاعده یک از قبل توضیحالت همانند کالس این ساختارکالس هر باشیم داشته یاد به ری است شده تشکیل قسمت سه از.کند می پیروی قاعده این از نیز باال کالس که تاب یک ابتدا ،برنامه در عملی هر دادن انجام برای همیشهدهد انجام را نظر مورد کار که عیو آوریم می وجود به .کنیم می سازی پیاده باشد می " دوم قسمت " همان که کالس سازی پیاده قسمت در را تابع هر به مربوط کدهای سپس قسمت در همیشه متغییرها چون و آوریم می وجود به را متغییر یک ابتدا برنامه این درprivateبنابراین ،باشند می متغییرnقسمت در نیز راprivate.نویسیم میدریاف ورودی از را عددی " که است شده گفته برنامه این درآ و تن بنابر " دهید نشان خروجی در راکند دریافت ورودی از را نظر مورد عدد که داریم تابع یک به نیاز اینت وابع .ببرد خروجی به را نظر مورد عدد که داریم نیاز نیز را دیگریتابع مثال این درinsert()تابع و عدد دریافت وظیفه
15.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 15 print().دارد عهده بر را عدد چاپ وظیفهمتد داخل درinsert()دستور از استفاده باcinمتغییرnورودی از را کند می دریافتمتد داخل در وprint()دستور از استفاده باcoutمتغییر ،n.برد می خروجی به را نکته6-5:دوم قسمت " در همیشهباشد می باال کد صورت به توابع سازی پیاده ،"ای کهپیروی قاعده این از خط ن کند می: 1-.نویسیم می را موجود تابع بازگشتی نوع ابتدا 6-.نویسیم رامی کالس اسم سپس .-دید حوضه عملگر( :: ).دهیم می قرار را 9-آ در وک سازی پیاده است قرار که را نظر مورد تابع خود خر.نویسیم می ،نیم تابع مثال طور به کهinsert()س پیاده قسمت درشود می نوشته صورت بدین کالس ازی:void number::insert() .است کرده رعایت ترتیب به را باال چهارگانه مراحل نیز تابع این که نکته6-2کالس ی همه در تقریبا که دارد وجود ثابت متد چندین ها کالس ی همه در :پیاده است قرار که هایی .باشند می ثابت توابع این ها کالس ی همه در که گفت توان می تقریبا و دارند وجود متدها این ،کنیم سازی این ،ها کالس اغلب سازی پیاده در و داریم سروکار ها آن با ها برنامه اکثر در رایج بطور که متدهایی از بعضی در نیز متدهادارند وجود ما کالساز اند عبارت: 1-ها داده دریافت متداین وظیفه :ها داده دریافت ،متد:قبیل از هایی نام با متدها این اغلب که باشد می input() , insert() , set().شوند می گذاری نام ... وبازگشتی نوع دارای همیشه متدها نوع اینvoidو باشند می .باشند می ) پارامتر بدون و دار پارامتر ( نوع دو دارای 6-باشد می ها داده روی بر محاسبات انجام ،متد این وظیفه : محاسبات انجام به مربوط متد.بطور هبرای مثال ی ریاضی فرمول یک ی محاسبه یا مساحت ی محاسبهبا متدها این اغلب که گیرد می قرار استفاده مورد ... اهایی نام قبیل از:calculate() , convert().شوند می گذاری نام ... وبازگشتی نوع دارای ها برنامه اکثر در متدها نوع این voidها آن بازگشتی نوع خاص مواقع بعضی در فقط و باشند میintیاfloatو باشد می ... یانوع دو دارای .باشند می ) پارامتر بدون و دار پارامتر ( .-دارد برعهده را نمایش صفحه در ها داده نمایش وظیفه متد این : ها داده چاپ متداغل کههایی نام با متدها این ب قبیل از:print() , show() , get().شوند می گذاری نام ... وبازگشتی نوع دارای اغلب متدها نوع اینvoid ها برنامه از بعضی در فقط و باشند می،ها آن بازگشتی نوعintیاfloatمتدها نوع این همیشه و باشد می ... یا .باشند می پارامتر فاقد نکته6-7آن بازگشتی نوع متدی هر اگر :intیاfloatجز به آن بازگشتی نوع ...یعنی یا(void)باشد،در باید داخلmain()با را متد آندستور از استفادهcout:زیر مانند .بنویسیم خروجی در int main() { number ob1; cout << ob1.show(); } نکته6-6آن بازگشتی نوع متدی هر اگر :intیاfloatجز به آن بازگشتی نوع ...یعنی یاvoidمتد داخل در ،باشد بازگشتی دستور از بایدreturnاز استفاده با و کنیم استفادهreturn.دهیم بازگشت را مقدار یک مثال6-6طراحی کالسی :کرده دریافت ورودی از را مستطیلی عرض و طول که کنیدرا آن مساحت و محیط و .دهد نمایش خروجی در و کند محاسبه
16.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 16 )کالس سازی پیاده (بدون اول روش: #include<iostream.h> #include<conio.h> int main() { float lenght, width, area, perime; cout << "enter lenght: "; cin >> lenght; cout << "enter width: "; cin >> width; area = lenght*width; perime = 2 * (lenght + width); cout << "area: " << area << endl; cout << "perime: " << perime; getch(); return 0; } ک سازی پیاده ها کالس از استفاده با را باال برنامه میخواهیم حال اما:شود می طراحی زیر صورت به که نیم #include<iostream.h> #include<conio.h> class rectangle { private: float lenght, width, area, perime; public: void insert(); دارد نام insert() که ها داده دریافت متد void calculate(); دارد نام calculate() که محاسباتی عملیات به مربوط متد void print(); دارد نام print() که ها داده چاپ به مربوط متد }; void rectangle::insert() insert() متد سازی پیاده { cout << "enter lenght: "; cin >> lenght; cout << "enter width: "; cin >> width; } void rectangle::calculate() calculate() سا پیادهمتد زی {
17.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 17 area = lenght*width; perime = 2 * (lenght + width); } void rectangle::print() print() متد سازی پیاده { cout << "area: " << area << endl; cout << "perime: " << perime; } int main() main() تابع { rectangle r1; r1.insert(); r1.calculate(); r1.print(); getch(); return 0; } برنامه این در : کالس توضیح= طول :length= عرض وwidth= محیط وarea= مساحت وperime وجود متدها این ها برنامه اکثر در و باشد می ثابت متد چند دارای کالس هر که کردیم اشاره هم قبل در .باشد می : مانند دارندinsert()یاcalculate()یاprint()باید ابتدا ،شد داده ما به که مثالی هر نویسی برنامه در ابتدا . ... یا متده و متغییرهاورودی از را مستطیل عرض و طول : که است شده گفته مثال این در چون .کرد مشخص را آن ای های نام به متغییر دو باید ابتدا بنابراین ،کند دریافتlengthوwidthمستطیل عرض و طول ی دهنده نشان که آوری وجود به هستندت : که گفتیم هم قبل مطالب در و مقسمت در متغییرها مامیprivateمی قرارباید بنابراین ،گیرند قسمت در را متغییر دو اینprivateعرض و طول : که است شده گفته سوال ادامه در ،این بر عالوه .داد قرار های نام به متغییر دو بنابراین ،کند محاسبه را مستطیلareaوperimeها آن و آوریم می وجود به نیزدر نیز را قسمتprivateمیبه را متغییر دو این نهایت در و ریزیم می ها آن در را مساحت و محیط حاصل و نویسیم قسمت در را ها آن و کردیم مشخص را برنامه در متغییرها تعداد که این از بعد .بریم می خروجیprivateقرار اشاره هم قبال و داریم نیاز متد چند به برنامه این در که بفهمیم باید حال ،دادیمقسمت در باید متدها تمامی که کردیم publicقسمت به را ها آن ،باشیم داشته الزم متد که اندازه هر به بنابراین ،شوند نوشتهpublicدر و کنیم می اضافه در و نویسیم می را هرکدام به مربوط کدهای و تعریف را متدها تک تک " دوم قسمت " همان یا سازی پیاده قسمت آخر ی مرحلهتابع کهmain()استفاده وبا دهیم می قرار مورداستفاده را خود کالس ،باشد می " سوم قسمت " همان یا قسمت متدهای تک تک ،کردیم درست که شی ازpublic.دهیم می قرار دسترسی مورد راشده گفته مثال این در کند دریافت ورودی از را مستطیلی عرض و طول که استها داده دریافت متد یک باید بنابراین ،نام بهinsert() ترتیب به که را مستطیل عرض و طول که کنیم طراحی آن برایlengthوwidthدریافت ورودی از را باشد می نام به محاسبه متد یک به نیاز ما بنابراین ،کند محاسبه را آن مساحت و محیط که است شده گفته ادامه در .کند calculate()متغییر در و محاسبه را محیط ابتدا که داریمareaدر و محاسبه نیز را آن مساحت سپس و ریخته متغییرperimeمتد یک بنابراین ،دهد نمایش خروجی در را مساحت و محیط که است شده گفته نیز پایان در .بریزد نام به ها داده نمایشprint()مساحت و محیط که کنیم می طراحیمتغییرهای داخل در ترتیب به که راareaو perime.داریم نیاز متد سه به ما برنامه این در بنابراین .دهد نمایش خروجی در را هستند
18.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 18 نکته6-4)ها داده چاپ متد و محاسبه متد و دریافت (متد اصلی متد سه بررسی :: 1-همان که )ها داده (دریافت متد اگرinput() , insert() , set()در شود تعریف پارامتر بدون صورت به ،... یا داخل در " دوم قسمت " همان یا سازی پیاده قسمت در صورت ایندستور از متد خودcinوcout.کنیم می استفاده دستور از استفاده با را متغییرها باید متدها نوع این در همیشه وcin.گرفت کلید صفحه ازمتد بازگشتی نوع همیشه صورت به ها داده دریافتvoid.باشد می 6-دستور از استفاده حق دیگر شد مشخص دار پارامتر صورت به متد این اگر اماcinوcoutنداریم متد این در را قسمت متغییرهای تک تک باید وprivateکاراکتر از استفاده با متد این پارامترهای تک تک با را( = )هم مساوی عنوان به .داد قرارقبل برنامه در اگر مثالمتدinsert()تغییر زیر صورت به برنامه ،بود دار پارامتر صورت به .کرد میصورت به ها داده دریافت متد بازگشتی نوع همیشهvoid.باشد می #include<iostream.h> #include<conio.h> class rectangle { private: float lenght, width, area, perime; public: void insert(float a, float b); }; void rectangle::insert(float a, float b) { length=a; پارامترهای با مساوی را private قسمت متغییرهای تک تک ترتیب به width=b; دهیم می قرار insert متد داخل } … … …; … … …; … … …; int main() { rectangle r1; r1.insert(2,3); دهیم می قرار آن داخل را عدد دو بنابراین باشد می پارامتر دو دارای insert متد چون r1.calculate(); r1.print(); getch(); return 0; } توضیها داده دریافت متد چون : کالس حباشد می دار پارامتربنابر ،متد خود داخل در دیگر اینinsert()توان نمی دستور ازcinوcoutدهی نسبت عملیات توان می فقظ کرد استفادهراقبل مثال صورت به که داد انجام ،یاشد داشته پارامتر ما متد که تعداد هر به .باشد میقسمت در نیز تعداد همان بهmain()متد داخل درinsertعدد تابع قبل مثال در مثال .دهیم می قرارinsertبود اعشاری عدد نوع از پارامتر دو دارای،داخل در بنابراینmain() یعنی ،پارامتر تعداد همان به نیز6تابع برای را عددinsert()ارسالباش می صورت بدین که کنیم می:د
19.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 19 r1.insert(2,3); متغییرهای نماینده ترتیب به پارامتر دو این واقع درlengthوwidthقبل روش با روش این فرق فقط و باشند می و طول جا این در که را ها داده ما سپس و شود چاپ نمایش صفحه در پیغام یک که این جای به ،که است این در خود داخل در پارامتر صورت به مقادیر آن دادن قرار با تنها ،کنیم وارد کلید صفحه از استفاده با باشند می عرض متغییرها ،تابع.کنیم می دهی مقدار را خود ی .-همان یا )(محسبه متدcalculate() , convert()شود تعریف پارامتر بدون اگر ... یامحاسبات فقط متد داخل در انجام دهی نسبت عملیات هیچ قسمت این در و دهیم می انجام را نظر موردقبل مثال مانند دهیم نمی.می هم متد این با نوع دارای تواندزگشتیvoidغیر هم وvoidاز غیر آن بازگشتی نوع که آید می پیش کم خیلی اما باشدvoid آن بازگشتی نوع اغلب بنابراین ،باشدvoid.باشد می 9-آخر در هم دهی نسبت عملیات ،محاسبات انجام بر عالوه ،کنیم تعریف دار پارامتر صورت به ،محاسبه متد اگر .دهیم می انجام سر 5-مت)ها داده (چاپ دهمان یاprint() , show() , get()بدون تنها و آید نمی دار پارامتر صورت به گاه هیچ ... یا متد این بازگشتی نوع اگر .باشد می ها داده نمایش جهت فقط و ندارد خاصی دستور و قانون متد این .باشد می پارامتر صورت بهintیاfloatجز به آن بازگشتی نوع یعنی ... یا(void)قسمت در باید ،باشدmain()از استفاده با را آن دستورcout.نوشت خروجی در نکته6-11صورت به آن بازگشتی نوع متدی اگر :intیاfloat...یاجز به آن بازگشتی نوع یعنی(void)در ،باشد د قسمت " همان که توابع سازی پیاده قسمتدستور از استفاده با همیشه باشد می " ومreturnبرگشت را مقدار یک بازگشتی نوع دارای ما متد اگر ولی دهد میvoid.دهد نمی برگشت را مقداری هیچ دیگر بود مثال6-.کالس :rectangleداده جای خود در را ایم گفته االن تا که مطالبی از ای خالصه است آمده زیر در که بن است.کنید دقت آن به ابراین #include<iostream.h> #include<conio.h> #include<stdlib.h> باشد می exit(1) کتابخاتابع به مربوط نه class rectangle باشد می rectangle کالس اسم { private: private قسمت متغییرهای float lenght, width, area, perime; public: public قسمت متدهای void insert(); void calculate(); void print(); void set_lenght(float a); void set_width(float b); float get_lenght(); float get_width(); }; void rectangle::insert() insert() متد سازی پیاده { cout << "enter lenght: ";
20.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 20 cin >> lenght; cout << "enter width: "; cin >> width; } void rectangle::calculate() calculate() متد سازی پیاده { area = lenght*width; perime = 2 * (lenght + width); } void rectangle::print() print() متد سازی پیاده { cout << "area: " << area << endl; cout << "perime: " << perime << endl; } void rectangle::set_lenght(float a) set_lenght(float a) متد سازی پیاده { if (a < 0) { cout << "Erorr!"; exit(1); } lenght = a; } void rectangle::set_width(float b) set_width(float b) متد سازی پیاده { if (b < 0) { cout << "Erorr!"; exit(1); } width = b; } float rectangle::get_lenght() get_lenght() متد سازی پیاده { return lenght; } float rectangle::get_width() get_width() متد سازی پیاده { return width; } int main() main() تابع سازی پیاده
21.
C++ پیشرفته نویسی
برنامه آ دانشگاهکرمانشاه واحد اسالمی زاد Page | 21 { rectangle r1; آوریم می وجود به را r1 شی r1.insert(); public قسمت های متد تک تک به باید r1 شی از استفاده با r1.calculate(); کنیم پیدا دسترسی ) . ( نقطه کاراکتر از استفاده با r1.print(); r1.set_lenght(6); r1.set_width(2); cout << r1.get_lenght() << endl; و get_lenght() توابع بازگشتی نوع چون cout << r1.get_width(); بنابراین ،باشد می float صورت به get_width() getch(); نویسیم می خروجی در cout دستور از استفاده با را ها آن return 0; } کالس توضیح:.کنیم سازی پیاده ایم خوانده االن تا که را مطالبی از ای خالصه که ایم کرده سعی برنامه این دراین کالس همان ،برنامهrectangleمثالقبلکرده تر پیشرفته کمی را آن مرحله این در فقط باشد میمت چند و ایمد دیگر اضا آن به نیز.ایم کرده فهازتابع مثال این در چونexit(1)که آن ای کتابخانه فایل باید بنابراین کنیم می استفاده #include<stdlib.h>.کنیم اضافه نیز برنامه به را باشد میهمان که قبلی متد سه بر عالوه مثال این درinsert() وcalculate()وprint()همان جز ،هم متد چهار این که اند شده اضافه برنامه به نیز دیگر متد چهار ،باشند می وظیف .کردیم سازی پیاده را ها آن در قبال که است متدهاییهمی زیر صورت به متدها این:باشد 1-متدset_lenght(float a)دریاف (متدهای انواع از یکی متد این ،باشید داشته خاطر به اگر :می )ها داده کننده ت متد همان کار که باشدinsert()ای در اما دهد می انجام رانکه گفتیم هم قبال و است آمده دار پارامتر صورت به جا دستور از دیگر صورت این در ،بیایند دار پارامتر صورت به )ها داده دریافت (متدهای اگرcinوcoutآن داخل در وفقط کنیم نمی استفاده هاقسمت متغییرهای تک تکprivateمساوی کاراکتر از استفاده با را( = )مساوی ، دهیم می قرار تابع خود پارامترهایصورت به متدها این بازگشتی نوع همیشه وvoidباشد میجلوی در معموال . متدsetم ،است قرا که قداریمتد جلوی در اینجا در که مینویسیم را شود فرستاده آن برایsetکلمه ،یlenght متد که باشد می معنی بدین این .است شده نوشتهsetمتغییر است قرارlengthرا باشد می مستطیل طول همان که .کند دریافتمی زیر صورت به که است شده اضافه برنامه به نیز دیگر خط چند ،دهی نسبت برعملیات عالوه اما :باشد if (a < 0) { cout << "Erorr"; exit(1); } " پیغام یک ابتدا ،بود صفر از تر کوچک دریافتی طول اگر که کند می چک فقط کد اینErorr!سپس و کند چاپ " تابع از استفاده باexit(1)و شود خارج برنامه ازهیچ ننویسیم را کد این هم اگر که باشد می خواهی به دل کار یک ب فقط و آید نمی پیش مشکلی،برنامه شدن بهتر رای.ایم کرده اضافه آن به نیز را کد این 6-متدset_width(float b)متد مانند دقیقا نیز متد این :set_lenght(float a)این که تفاوت این با فقط باشد می متغییر همان که مستطیل طول دریافت وظیفه متدwidth.دارد را باشد می .-متدget_lenght()این :ها داده چاپ (متدهای انواع از یکی هم متدمتد همان کار که باشد می )print()انجام را صورت به آن بازگشتی نوع جا این در اما دهد میfloatدار پارامتر صورت به متدها این هم گاه هیچ و باشد می
Download now