SlideShare a Scribd company logo
1 of 95
Download to read offline
C++ ‫پیشرفته‬ ‫نویسی‬ ‫برنامه‬
‫آ‬ ‫دانشگاه‬‫کرمانشاه‬ ‫واحد‬ ‫اسالمی‬ ‫زاد‬
Page | 1
‫م‬‫ی‬‫ح‬‫الر‬‫من‬‫ح‬‫الر‬‫هللا‬‫م‬‫س‬‫ب‬
:‫درس‬ ‫جزوه‬
‫نویسی‬ ‫برنامه‬‫پیشرفته‬
‫زاده‬ ‫نظری‬ ‫علی‬ : ‫نویسنده‬
‫کرمانشاه‬ ‫واحد‬ ‫اسالمی‬ ‫آزاد‬ ‫دانشگاه‬
‫سال‬ ‫ماه‬ ‫بهمن‬4913
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‫نمای‬ ‫برای‬‫ش‬.‫کنیم‬ ‫می‬ ‫استفاده‬ ‫ها‬ ‫داده‬
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
}
;... ......
{
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)
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‫دارد‬ ‫را‬:‫شود‬ ‫می‬ ‫نوشته‬ ‫زیر‬ ‫صورت‬ ‫به‬ ‫که‬
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; ‫صورت‬ ‫این‬ ‫غیر‬ ‫در‬
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.‫بده‬ ‫انجام‬ ‫را‬
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‫از‬ ‫را‬ ‫هرکدام‬ ‫نمره‬ ‫و‬ ‫نام‬ ‫ترتیب‬ ‫به‬ ‫که‬ ‫دارد‬ ‫دانشجویان‬ ‫های‬ ‫نمره‬ ‫ذخیره‬ ‫برای‬
‫دریافت‬ ‫ورودی‬‫را‬ ‫ها‬ ‫آن‬ ‫و‬ ‫کند‬ ‫می‬.‫دهد‬ ‫می‬ ‫نشان‬ ‫خروجی‬ ‫در‬
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)
{
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;
‫استفاده‬ ‫گرها‬ ‫اشاره‬ ‫از‬‫اشاره‬ ‫ی‬ ‫وسیله‬ ‫به‬ ‫پویا‬ ‫های‬ ‫آرایه‬ ‫از‬ ‫استفاده‬ ،‫ها‬ ‫آن‬ ‫ترین‬ ‫مهم‬ ‫از‬ ‫یکی‬ ‫که‬ ‫شود‬ ‫می‬ ‫زیادی‬ ‫های‬
.‫گفت‬ ‫خواهیم‬ ‫بعدی‬ ‫فصل‬ ‫در‬ ‫را‬ ‫آن‬ ‫از‬ ‫استفاده‬ ‫نحوه‬ ‫که‬ ‫باشد‬ ‫می‬ ‫گرها‬
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 ‫پنجم‬ ‫خط‬‫کلیدی‬ ‫کلمه‬ :
‫اول‬ ‫;متغییر‬ ‫ششم‬ ‫خط‬‫متغییرها‬ ‫معرفی‬ :
‫دوم‬ ‫;متغییر‬ ... ... ...
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‫تابع‬ ‫این‬ ‫در‬ ‫همیشه‬ ‫که‬ .‫دهد‬ ‫بازگشت‬ ‫را‬ ‫مقدار‬ ‫یک‬ ‫باید‬ ‫بنابراین‬ ،‫باشد‬ ‫می‬
.‫شود‬ ‫داده‬ ‫بازگشت‬ ‫صفر‬ ‫مقدار‬ ‫باید‬
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;
}
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()‫تابع‬ ‫و‬ ‫عدد‬ ‫دریافت‬ ‫وظیفه‬
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‫طراحی‬ ‫کالسی‬ :‫کرده‬ ‫دریافت‬ ‫ورودی‬ ‫از‬ ‫را‬ ‫مستطیلی‬ ‫عرض‬ ‫و‬ ‫طول‬ ‫که‬ ‫کنید‬‫را‬ ‫آن‬ ‫مساحت‬ ‫و‬ ‫محیط‬ ‫و‬
.‫دهد‬ ‫نمایش‬ ‫خروجی‬ ‫در‬ ‫و‬ ‫کند‬ ‫محاسبه‬
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() ‫سا‬ ‫پیاده‬‫متد‬ ‫زی‬
{
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.‫داریم‬ ‫نیاز‬ ‫متد‬ ‫سه‬ ‫به‬ ‫ما‬ ‫برنامه‬ ‫این‬ ‫در‬ ‫بنابراین‬ .‫دهد‬ ‫نمایش‬ ‫خروجی‬ ‫در‬ ‫را‬ ‫هستند‬
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()‫ارسال‬‫باش‬ ‫می‬ ‫صورت‬ ‫بدین‬ ‫که‬ ‫کنیم‬ ‫می‬:‫د‬
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: ";
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() ‫تابع‬ ‫سازی‬ ‫پیاده‬
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‫دار‬ ‫پارامتر‬ ‫صورت‬ ‫به‬ ‫متدها‬ ‫این‬ ‫هم‬ ‫گاه‬ ‫هیچ‬ ‫و‬ ‫باشد‬ ‫می‬
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++
Advance programming c++

More Related Content

Similar to Advance programming c++

برنامه سازی3
برنامه سازی3برنامه سازی3
برنامه سازی3mahdiehsalari
 
Radmanesh c#-1
Radmanesh c#-1Radmanesh c#-1
Radmanesh c#-1neginrmn
 
How to program with c in persian
How to program with c in persianHow to program with c in persian
How to program with c in persianmoein jazemi
 
آشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندرویدآشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندرویدSadegh Ghanbari Shohani
 
بخش اول :كاربرد رايانه در برق (آموزش ساده سيمولينك )
بخش اول :كاربرد رايانه در برق (آموزش ساده سيمولينك )بخش اول :كاربرد رايانه در برق (آموزش ساده سيمولينك )
بخش اول :كاربرد رايانه در برق (آموزش ساده سيمولينك )tahereh sharafi
 
2 arrays in c++ programming aramse
2  arrays in c++ programming  aramse2  arrays in c++ programming  aramse
2 arrays in c++ programming aramseAram SE
 
الدالات الأساسية-في-برنامج-الإكسل
الدالات الأساسية-في-برنامج-الإكسلالدالات الأساسية-في-برنامج-الإكسل
الدالات الأساسية-في-برنامج-الإكسلMahmoud Abd Elrahman
 
نرم افزار3 خرداد
نرم افزار3 خردادنرم افزار3 خرداد
نرم افزار3 خردادmahdiehsalari
 
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از Hamid Saberi
 
امتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتیامتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتیsomayeh daneshparvar
 
Software Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationSoftware Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationMorteza Zakeri
 
آموزش نرم افزار MSP
آموزش نرم افزار MSPآموزش نرم افزار MSP
آموزش نرم افزار MSPRaman Rezaei, PMP
 

Similar to Advance programming c++ (20)

Amjadi - Ebook 6 - Ref,Out - v1
Amjadi - Ebook 6 - Ref,Out - v1Amjadi - Ebook 6 - Ref,Out - v1
Amjadi - Ebook 6 - Ref,Out - v1
 
Flowchart
FlowchartFlowchart
Flowchart
 
C++
C++C++
C++
 
C++
C++C++
C++
 
برنامه سازی3
برنامه سازی3برنامه سازی3
برنامه سازی3
 
Radmanesh c#-1
Radmanesh c#-1Radmanesh c#-1
Radmanesh c#-1
 
How to program with c in persian
How to program with c in persianHow to program with c in persian
How to program with c in persian
 
آشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندرویدآشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندروید
 
Learn orcad 9.2
Learn orcad 9.2Learn orcad 9.2
Learn orcad 9.2
 
بخش اول :كاربرد رايانه در برق (آموزش ساده سيمولينك )
بخش اول :كاربرد رايانه در برق (آموزش ساده سيمولينك )بخش اول :كاربرد رايانه در برق (آموزش ساده سيمولينك )
بخش اول :كاربرد رايانه در برق (آموزش ساده سيمولينك )
 
2 arrays in c++ programming aramse
2  arrays in c++ programming  aramse2  arrays in c++ programming  aramse
2 arrays in c++ programming aramse
 
C-1.pptx
C-1.pptxC-1.pptx
C-1.pptx
 
الدالات الأساسية-في-برنامج-الإكسل
الدالات الأساسية-في-برنامج-الإكسلالدالات الأساسية-في-برنامج-الإكسل
الدالات الأساسية-في-برنامج-الإكسل
 
نرم افزار3 خرداد
نرم افزار3 خردادنرم افزار3 خرداد
نرم افزار3 خرداد
 
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
 
Amjadi - Ebook 7 - Class - v1
Amjadi - Ebook 7 - Class - v1Amjadi - Ebook 7 - Class - v1
Amjadi - Ebook 7 - Class - v1
 
امتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتیامتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتی
 
Software Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationSoftware Fault Avoidance in Implementation
Software Fault Avoidance in Implementation
 
Barnamesazi1c#
Barnamesazi1c#Barnamesazi1c#
Barnamesazi1c#
 
آموزش نرم افزار MSP
آموزش نرم افزار MSPآموزش نرم افزار 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‫دار‬ ‫پارامتر‬ ‫صورت‬ ‫به‬ ‫متدها‬ ‫این‬ ‫هم‬ ‫گاه‬ ‫هیچ‬ ‫و‬ ‫باشد‬ ‫می‬