صفحه 1:
قاسم محمدى
نام درس :
اعات
برنامه سازی پیشرفته ( رشته میندسی فناوری اطلاعات)
تعداد واحد درسی :
daly?
صفحه 2:
ad Cr+ @ اول : مقدمات زبان
2 فصل دوم : ساختار های تصمیم گیری و تکرار
9 فصل سوم : سایر ساختار های تکرا
8 فصل چهارم : اعداد تصادف
9 فصل پنجم : آرایه ها
lad « i. ذ ©
© فصل هفتم : ساختارها و اشاره كرها
فصل هشتم : برنامه نوبسی شی گرا
صفحه 3:
صفحه 4:
اعلان متغیر
تخصیص مقادیر به متفیر
داده های از نوع کرک
کرکتر های مخصوصر ols (Comments)
wat, '. توابع كتابخانه
نمایش مقادیر داده ها dali Cr+ در
درياقت مقادير
صفحه 5:
این زبان در اوائل دهه ۱۹۸۰ توسط صفصحه )در آزمایشگاه بل
طراحی شده. این زبان عملاً توسعه یافته زبان برنامه نویسی () می باشد که
امکان نوشتن برنامههای ساخت يافته شی گرا را میدهد.
صفحه 6:
قانون نامگذاری شناسهها
حروف کوچک و بزرگ در نامگذاری شناسهها متفاوت میباشند.
4
صفحه 7:
قانون نامگذاری شناسهها
۲ در نامگذاری شناسهها از حروف الفبا ارقام وزیر خط (1806۳560۲6)
استفاده میشود و حداکثر طول شناسه ۳۱ میباشد و شناسه بایستیبا
یک رقم شروع نگردد.
صفحه 8:
۳ برای نامگذاری شناسهها از کلمات کلیدی نبایستی استفاده نمود. در زیر بعضی از کلمات
0
کلیدی داده شده است.
صفحه 9:
در اسلاید بعد به انواع داده ها اشاره می شود.
صفحه 10:
انواع داده ها
tt ۱۳۲۷۶۸- تا ۷۷
Beare + د سس
۷ تا -۳۸۳۶۲۸ ۱۲۱۴۷ -
۹۷۵ تا sted brag
یک کارکتر
۷ تا -۱۲۸ مسب
GS 16r-00 50.4268
ال
9مو تا 6.6606
صفحه 11:
قبل از آنکه در برنامه به متغیرها مقداری تخصیص داده
شود و از آنها استفاده گردد بایستی آنها را در برنامه اعلان
نمود.
صفحه 12:
چند مثال از اعلان متغیر ها :
“” _برای اعلان متغیراز نوع tint
tt x;
رای اعلان متفیرهاي و9 راز نوع 103 که هر کدام چهاربایت از
Poa 7,
حافظه را اشغال oe
براى اعلان متغير 06 از نوع كركتر که میتوان یکی از ۲۵۶ کرکتر را
به آن تخصیص داد و یک بایت را اشغال میکند"
chor went;
صفحه 13:
با استفاده از عملگر < میتوان به متغیرها مقدار اولیه تخصیص ذ
در اسلاید بعد مثال هابی از let
صفحه 14:
” در دستورالعمل
نوع با مقدار اولیه ۲۶ اعلان نموده .
در دستورالعمل 0 , ۵000 مسا
متغيرهاى داو ف را از نوع« بط تعريف نموده با مقادير بترتيب
۰و دا
صفحه 15:
دادههای از نوع کرکتر
ای نمایش دادههای از ن ف اتر از
برای نمایش دادههای از نوع -عجاه در حافظه کامپیوتر از جدول
1 استفاده میشود. جدول اسکی به هر یک از ۲۵۶
کرکتر یک عدد منحصر بفرد بین ۰ تا ۲۵۵ تخصیص میدهد.
صفحه 16:
کامپیلر HO بعضی از کرکترهای مخصوص که در برنامه میتوان از
آنها برای فرمت بندی استفاده کرد را تشخیص میدهد. تعدادی از
این کرکترهای مخصوص به همراه کاربرد آنها در اسلاید بعد آورده
شده است .
صفحه 17:
کرکترهای مخصوص
بعنوان مثال از کرکتر [* میتوان برای ایجاد صدای سس
استفاده نمود.
joka x= Me
صفحه 18:
ها
رشته يا يمه عبارتست از دنبالهاى از كركترها كه بين قرار داده
مىشود. در حافظه كامبيوتر انتهاى رشتهها بوسيله ۰۱ ختم مى كردد.
در اسلا ید بعد به دو peared
صفحه 19:
صفحه 20:
صفحه 21:
برای نمایش دادهها بر روی صفحه مانتور از لح که یدنبال آن عملگر
درج یعنی < < قید شده باشد استفاده میگردد. بایستی توجه داشت که
دوکرکتر < پشت سر هم توسط ۰62+ بصورت یک کرکتر تلقی میگردد.
صفحه 22:
مثال
% بیای نمایشن پیفام سس تسب بر زوی صفحه نمایش: ۰
زاس اسب >> مه
پرای نمایش مقدار متفیر < بر روی صفحه نمایش :
صفحه 23:
دریافت مقادیر متغیر
به منظور دریافت مقادیر یرای متفیرها در ضمن اجرای برنامه از صفحه کلید: از اس كه
بدنبال آن عملگر استخراج يعنى > > قيد شده باشد میتوان استفاده نمود.
صفحه 24:
int x;
cout << "Enter a
number:" ;
cin >> x;
صفحه 25:
عملگر انتساب > میباشد که باعث میگردد
مقدار عبارت در طرف راست اين عملكر ارزيابى
شده و در متغیر طرف چپ آن قرار گیرد.
صفحه 26:
صفحه 27:
عملگرهای محاسباتی
در 0++ پنج عملگر محاسباتی وجود دارد که عبار تند از :
%
این عملگرها دو تائى مى باشند زیر روی دو عملوند عمل مى نما يند. از طرف
ديكر عملكرهاى + و - رامى توان بعنوان عملكرهاى يكتائى نيز در نظر كرفت.
صفحه 28:
در حالتی که هر دو عملوند عملگرهای ۰ ۰۶۰۱ +۰ - از نوع صحیح باشد نتیجه
عمل از نوع صحیح میباشد.
عبارت
صفحه 29:
در صورتیکه حداقل یکی از عملوندهای عملگرهای /۰ ۰-۰۶ + از نوع اعشاری باشد
نتیجه عمل از نوع اعشاری میباشد.
عبارت
Yeo
9*0
8.0/8
8.00
8.0/8.0
صفحه 30:
در (6++. افزایش یک واحد به مقدار یک
متغیر از نوع صحیح را افزایش و بطور
مشابه کاهش یک واحد از مقدار یک
متغیر از نوع صحیح را کاهش مینامند.
صفحه 31:
صفحه 32:
صفحه 33:
از عملگرهای ++ و -- میتوان بدو صورت پیشوندی و پسوندی استفاده نمود.
در دستورالعملهای پیچیده عملگر پیشوندی قبل از انتساب ارزیابی میشود و عملگر
پسوندی بعد از انتساب ارزیابی میشود.
صفحه 34:
پس از اجرای دستورالعملهای فوق :
پس از اجرای دستورالعملهای فوق :
صفحه 35:
عملگر داد
0 ازعملگرهایکتلئیمیب اشدو مشخصک ننده تسعداد بسلیت
هلئیلسنکه بکتوع دادم اشفا [م )ند
مثال :
مقدار ۲ نمایش داده مى شود
مقدار ۴ نمایش داده می شود.
صفحه 36:
های جا محاسبا
برای سادهتر نوشتن عبارتها در ۰+46 میتوان از
عملگرهای جایگزینی محاسباتی استفاده نمود.
صفحه 37:
اولویت عملگر
رزیابی مقدار یک عبارت ریاضی براساس جدول اولویت عملگرهاانجام میگردد. در ذیل جدول اولویت
عملگرها براساس بترتیب از بیشترین اولویت به کمترین اولویت داده شده است.
پرانتزها
عملگرهای یکتابی
عملگرهای ضرب و تقسیم و باقیمانده
عملگرهای جمع و تفریق
عملگرهای درج و استخراج
عملگرهای جایگزینی و انتساب
O
جد sizeof
صفحه 38:
(618) .هب ye
با توجه به جدول اولویت عملگرها داریم که
(ه*هبی* ج
(6+۵)*
06
06
66
صفحه 39:
06ح رمعم ,معط , حدم
بج راط * ججمدل
>> بعكم >> ل >> بجو
صفحه 40:
توضیحات در برنامه باعث خوانلئی بیشتر و درک بهتر برنامه میشود. بنابرلین
توصیه بر آن است که حتی الامکان در برنامهها از توضیحات استفاده نمائیم. در
0++. توضیحات بدو صورت انجام میگیرد که در اسلایدهای بعدبه آن اشاره
اشده |
صفحه 41:
ضیحات
الف: این نوع توضیح بوسیله // انجام میشود. که کامپیوتر هر چیزی را
كه بعد از // قرار داده شود تا انتهای آن خط اغماض مینماید.
متال
ood b وخ معد ط اعمج عد -الزطجمدم
ب:توضيح نوع دوم با /: شروع شده و به #/ ختم مى شود و هر جيزى
كه بين* / و / قرار كيرد اغماض مینماید
صفحه 42:
زبان 6++ مجهز به تعدادی توابع کتابخانه میباشد. بعنوان مثال
galas توابع کتابخانه برای عملیات ورودی و خروجی وجود دارند.
معمولا توابع کتابخانه مشابه . بصورت برنامههای هدف (برنامه
ترجمه شده بزبان ماشین) در قالب فایلهای کتابخانه دسته بندی و
مورد استفاده قرا رمیگيرند. این فایلها را فایلهای سطحح مینامند و
دارای پسوند .۰ میباشند.
صفحه 43:
نحوه استفاده از توابع کتابخانه اء
برای استفاده از توابع کتابخانه خاصی بایستی
نام فایل سطعح آنرا در ابتدای برنامه در دستور
#طعخم قرار دهیم.
صفحه 44:
عا ۱
تعداد کرکترهای رشته 5
تانژانت 0
یی ترا
تبدیل به حروف کوچک
تبدیل به حرف بزرگ
(e
tot
dovble
double
double
double
dpuble
dpuble
tot
double
لت
tou(d)
leaded)
vin Gd)
vari(d)
virlea(e)
tau(d)
لاطا
toupeerle )
صفحه 45:
برنامه در ۵)++
اکنون باتوجه به مطالب گفته شده قادر خواهیم بود كه تعدادی برنامه ساده و کوچک به زبان 0+
+ بنویسیم. رای نوشتن برنامهبایستی دستورالعمله را در تابع مهعی() قرار دهیم و براى اينكار
میتوان به یکی از دو طریقی که در اسلایدهای بعد آمده است . عمل نمود.
©
صفحه 46:
صفحه 47:
صفحه 48:
نکات-۲
دز بسه خطاهاوپر نلمه نویسی: میک ویند.
انواع خطاها در برنامه نویسی:
ذا خطاهاي زمان («سصمه صامودم)صا محمد
ite كامبايل صحيح برنامه مي شوند.
لا خطاهاي thd (ick errore) glo}
براي کامپایل مزاحمتي ایجاد نمي کنند ام مانع با برنامه مي شوند.
0 خطاهاي زمان اجرا: (سسسه سد 6۳):
کامپایل و جرا با موفقیت انجام مي شود ولي اجراي برنامه دچار اشکال مي
شود.
صفحه 49:
لا حسن سيب را خورد.
لا هسن سيب را خورد.
O متناظر با خطاي كامبايل
لا راحسن خورد سيب.
لا متناظر با خطاي Link
لا سیب حسن را خورد.
لا متناظر با خطاي زمان اجرا
صفحه 50:
برنامه ای که پیغام عچعجمم| لس بمواه دج ها ++) را روی صفحه مانیتور نمایش
ss
می دهد.
حلمم طعادة
stot)
1
: "ما عوسيهما احفصت امصزجات مو وا 0+4" >> اوم
: 0 مسج
1
صفحه 51:
صفحه 52:
.دو عدد از نوع اعشارى را گرفته مجموع و حاصلضیب آنها را محاسبه و نما بش میدهد
ss
pas
بر << بر << وم
لمحم
بكم
زج >> > و >> فص
© مجر
}
صفحه 53:
فصل دوم
ساختارهای تصمیم گیری و تکرار
صفحه 54:
صفحه 55:
های رابطه 1
از اين عملگرها برای تعیین اينكه آيا دو عدد با
هم معادلند يا يكى از ديكرى بزركتر يا كوجكتر
مىباشد استفاده مى كردد. عملكرهاى رابطهاى
عبارتند از
صفحه 56:
عملگر شرطی
شکل کلی عملگر شرطی بصورت زیر میباشد:
عملگر شرطی تنها عملگری در 60++ میباشد که دارای سه عملوند میباشد.
صفحه 57:
90ص ۱
زمر : ع7 (بجمحم
اين دو دستور العمل باعث میشوند که ماکزیمم مقادیر مرو « در ط قرار بگیرد.
3? =00 ? pou << "passed" | pout << "Puled” ;
اكر مقدار >< بزركتر يا مساوى ده باشد رشتة لحم در غير اينصورت
رشته لت" نمايش داده ميشود.
صفحه 58:
۳
دستورالعمل شرطی .۰ <BR
که
توسط این دستور شرطی را تست نموده و بسته
به آنكه شرط درست يا غلط باشد عكس العمل
خاصى را نشان دهيم.
(عبیت )1
م مستورا سل
مستورل نملقة 5
else
{
دستورا اعمل1
ار مستورا اهمل13
صفحه 59:
صفحه 60:
<poreaoh> از
جک اس
poet)
سا
:د << وم
> 0(
at <<" xe ceive” << pod |
be
{
| نو دم
صفحه 61:
عملگر کاما
تعدادی عبارت را میتوان با کاما بهم متصل نمود و
تشکیل یک عبارت پیچیدهتری را داد. اين عبارتها به
از چپ به راست ارزیابی شده و مقدار عبارت
ترت
معادل عبارتج میباشد. 4
عبارت ۳ , عبارت ۲ , عبارت ۱)
صفحه 62:
اگر داشته باشیم ۵عو, عط , ۰26: عبارت زیر را در نظر بگیرید:
مقدار عبارت برابر است با 0+6 که معادل ۱۰ میباشد.
صفحه 63:
عملگرهای منطقی
با استفاده از عملگرهای منطقی میتوان شرطهای ترکیبی در برنامه ایجاد نمود.
عملگرهای منطقی عبارتست از :
00
OR
00
که در 6۵++ به ترتیب بصورت زير نشان داده میشود.
&&
!
صفحه 64:
صفحه 65:
if (x= = 5) ily != 0))
cout << x << endl;
صفحه 66:
iostream.h > <_— علساعصق
int main()
{
float a, b, c;
cout << “Enter three real numbers" << endl ;
cin >>a>>b>>¢; //
if((a <b + c) &&(b < atc) &&(c < atb))
cout << “It is a triangle" ;
else
cout << “Not a triangle" ;
return 0;
صفحه 67:
دستورالعمل و
از دستور العمل ۲ برای تکرار دستورالعملها استفاده میشود. شکل کلی دستور
عو بصورت زیر میباشد:
(عبارت ۳ عبارت ژ ۲ عبارت ) 80۳
صفحه 68:
رامیت مس موم و DO << "Baler
زج << وم
Por( =; t<=a; ++)
tay
لدم >> بصو >> قحم
rena O 5
}
صفحه 69:
ابوتاعة در مرت
اد صحیح و متوالی بین ۱ تاه را محاسبه نموده و نمایش میدهد.
امه تا
wat( ) ام
{
nt, Fd;
boy =O;
حدم
يم يدم ريسم
4
زع >> نوم
(: 0 مصعم
صفحه 70:
)سدم
1
tt FO;
(: 9 ع>۱: )و
Dal << + >> cud,
rena ;
}
صفحه 71:
د میشوند را نمایش میدهد.
Hecke | <botreuw.h>
peas )
fet thy
Por(d; <=; +4)
Por(i=d; <=O; ++i)
Por(h=; k<=9; ++h)
{
+۳00 + ۳400و
>> و >> نوم
صفحه 72:
فصل سوم
ساير ساختارهای تکرار
صفحه 73:
فهرست مطالب فصل سوم
۵ دستورالعما
۶ 010 دستورالعه
6216© دستورالعمل
00۶ دستورالعما
Switch دستورالعما
aw cingeto
Silos Static_cast<>0
جدول اولویت عملگرها
صفحه 74:
از اين دستور العمل مانند دستورالعمل « برای تکرار یک دستورالعمل ساده یا ترکیبی
استفاده میگردد. شکل کلی این دستور العمل بصورت زیر میباشد.
صفحه 75:
دستورالعمل 101 زمانی استفاده
میشود كه تعداد دفعات تکرار از قبل
مشخص و معین باشد. در صورتیکه
تعداد دفعات تکرار مشخص نباشد
بایستی از دستورالعمل While
استفاده نمود.
صفحه 76:
tet x=O
while(x<S)
زج کج << Tal
با اجرای قطعه برنامه فوق مقادیر زیر نمایش داده
fe
:میشود
صفحه 77:
ma
it cout = O , g;
Poot x, pu =O, wy;
/*» تعناد مقامير ورومى */ زه << ويم
whde(ooved <0)
<< وم
wn tex}
++ vow | }
wy = suo! >:
vot << wy << ead;
return D ; }
صفحه 78:
دستورالعمل طانب طلء
اين دستور العمل نيز براى تکرار یک دستورالعمل ساده
پا ترکیبی استفاده میشود. شکل کلی این دستورالعمل
بصورت زیر میباشد.
do
1
دستورالعمل ١
دستورالعمل ۲
فرك
:(شرط )عانطه [
صفحه 79:
در دستورالعمل 19310 ابتدا مقدار
شرط ارزیابی شده اما در دستورالعمل
16 10 ابتدا دستورالعمل اجرا
شده سپس مقدار شرط ارزیابی میگردد.
بنابراین دستورالسمل 10116 do
حداقل يك بار انجام ميشود .
صفحه 80:
include <iostream.
int main()
int count = 0;
do
cout << count ++<<endl ;
while(count <= 9);
return 0 ; }
صفحه 81:
brody دستورالعمل
این دستورالعمل باعث توقف دستورالعملهای تکرار( لابب ط, Por, while شده و
کنترل به خارج از این دستورالعملها منتقل مینماید.
Break
صفحه 82:
Hoke امیس
peel
Pu x, 920.0 :
via >> x;
»)ساب > 1000.0( )
> 0.0()
Odke" | ت۵۷" >> کی
لس
صفحه 83:
حاسم ات
)سم
1
tet cont 2 0 :
٩( )انب
{
owt H+;
( 40 < سس
bredk ;
}
>> یی >> ۳ : یی >> لور
rena ;
صفحه 84:
حا مه طعادة
peel)
tot ood
Pout x, صمح = O;
<< ود
Por(vount = ; x < (DOO . O; ++ vow)
سید
> 0.0( )
mat << "@rrov — Orquive uch " <<eud;
beds;
1
paw t= x; }
Dnt << mao << ۳ :[
اف
E> ه
صفحه 85:
بوحدية
(0.0 > مج
1
:قحم >> "ص0 معيو 0 - س3" >> تجو
ا
}
wo t= x}
(OO.0); > )سلب (
:لد >> صمح >> قحو
rena Dj}
©
صفحه 86:
دستورالعمل عحفیرر
از دستورالعمل صحفسه میتوان در دستورالعملهای تکرار له
Por . طذرید. لب استفاده نمود. اين دستورالعمل باعث
میشود که کنترل بابتدای دستورالعملهای تکرار منتقل گردد.
Continue
صفحه 87:
pao +x;
مس( > 0000.0 (:
Po << mr; ۱
مم
صفحه 88:
صفحه 89:
دستور العمل >اطاسدد
همانطور كه مى دائيد از دستورالعمل شرطى (ححاء * مى توان بصورت تودرقو
استفاده نمود ولى از طرفى اكر عمق استفادة تو در تو از اين دستورالعمل زياد
گردد. درک آنها مشکل ميشود . براى حل اين مشكل 0++ . دستورالعمل
امد كه عملا يى دستور العمل جند انتخابى مى باشد را ارائه نموده است.
switch
6
صفحه 90:
صفحه 91:
ver 4:
val << "owe" << wud;
سا
pel << "bun" << od;
bred
:قمع
vou << "Pad" << ead;
| * ايد ناه لجس */
صفحه 92:
Dt << "Levy Thos Mowe” << red;
brook;
ver:
at << "qd Te Tose" << ed ;
bred
Pad:
Bent << "Brecter Noa Three” << rand;
}
صفحه 93:
RW cares ma ec gee rc
Pepe ester nnn
ابتداى برنامه بايستى داشته باشيم
ای لا
<iostream.h>
صفحه 94:
صفحه 95:
خاممیی.. وه
)سم
د
(ه6 0ه -! ( )سمه - hde((x
>> قحم
: 0 سم
1
صفحه 96:
:)اس
0
:©
۳ >> ۵00" >> فصو
:ی
ape
8:
pou << “BLOG” << end;
bred ;
oo
| ee;
صفحه 97:
برنامة ذیل یک سطر متن انگلیسی را گرفته کرکترها
chor wen;
he (cont = )سم ) ) BOP)
Pont I=" ")
oot <<cend}
سم 0 :
}
صفحه 98:
52171711007
استفاده مى شود. اين عملكر يك عملكر يكتائى مى باشد.
صفحه 99:
صفحه 100:
صفحه 101:
صفحه 102:
صفحه 103:
تولید اعداد تصادفر
( ]0606 ۲۷) تعریف نوع داده
داده های از نوع شمارشی
فرمت های مختلفه مقادیر خروج
صفحه 104:
اعداد تصادفی
مقادیر تصادفی با شانسی در اکثر برنامههای کاربردی در زمینه شبیه سازی و بازد
تری نقش مهمی را ایفا مینمایند. برای ایجاد یک عدد تصادفی صحیح ب
بایستی از تابع له( ) استفاده نمائیم.
rand| )
صفحه 105:
( )و بر
{
)4+ ;00=< :20 و۳
ما << ) vat << romd(
© بر
}
صفحه 106:
اگر برنامة فوق را چندبار اجرا نمائيم جواب يكسانى را از کامپیوتریمی گیریم.
برای تصادفی کردن اعداد میبایستی از تابع 6۲۵190( ) استفاده نمائیم.
این تابع به یک آرگومان صحیح از نوع 20510001 نیاز دارد.
به این آرگومان 5600 گفته میشود.
در اسلايد بعد برنامه قبلى رابا تابع 818194() نوشته ايم.
صفحه 107:
0ه >>( ]اج >> نج
rows |
}
صفحه 108:
صفحه 109:
السب
)++ ;00=< ;0 بو(
:لحم >> ©. ©6626 / ( الحم << vot
© مور
}
صفحه 110:
تعریف نوع داده (علسس)
از #طحبومیتوان برای تعریسف نوع دادههای جدیسد کسه معادل نوع
دادههای موجود باشد استفاده تمود. شکل کلی عبارتست از :
نشاندهنده نوع داده موجود
صفحه 111:
حال میتوان مرو درا بصورت زیر تعریف نمود :
صفحه 112:
دادههای از نوع شسمارشي
بمنظور معرفی دادههای از نوع شمارشی از کلمه صعجح استفاده میگردد.
02 ی کننوع دادم ش مشیم اشد
صفحه 113:
Bann sie {oarted, devorved, vbw, side};
oie Sj
]طح عو
wore, Ke, wed, ter, Pri}; يديج رادج ونوك وجو
ae
9 00
= <ه
صفحه 114:
بایستی در نظر داشت که دادههای از
توع شمارشی در عملیات ورودی و
خروجی شرکت نمینمایند. بعبارث
دیگر مقادیر دادههای از نوع شمارشی
aa
دستورالعلهای ورودی و خروجی مانند.
صل و 0010 در مورد دادههای
شمارشی نمیتوان استفاده نمود.
صفحه 115:
مقدار ۶ بطور غير علمی با نقطه اعشار ثابت نمایش
داده می شود.
include <iomanip.h>
x=10S0 ; طح
Dat << peter (or |: Pood | te! : showpont ) << wrte(SO) <<
veprevtsir(®) << x << rad ; مر
مقدار »با طول میدان ۲۳ نمايش داده می شود.
ار »با طول میدان ۲۳ نمایش داده می شود مقدار با دو رقم اعشار نمایش داده می شود.
بتابراین مقدار بصورت زیر نمایش داده می شود :
شانزده ستون خالی 1090.00
صفحه 116:
صفحه 117:
gow Sali 1
7 آرایه دو بعدی ( ماتریس ها)
صفحه 118:
آرایه یک بعدء
آرایه یک فضای پیوسته از حافظه اصلی کامپیوتر میباشد که میتواند
,چندین مقدا را در خود جای دهد
کلیه عناصر یک آرایه از یک نوع میباشند.
عناصر آرایه بوسیله اندیس آنها مشخص میشوند.
در ++ . انديس آراية از صفر شروع میشود.
صفحه 119:
صفحه 120:
آرایه یک بعدی از نوع 1711
صفحه 121:
تخصیص مقادیر اولیه به عناصر آرایه :
14 OKs (@, ©, 8, 07, 00);
صفحه 122:
دریافت مقادیر عناصر آرایه :
:[6] م
Parlier OD; =P; +H)
veo >> [1] 5
Por(t OD; <G; +H) cow << xf];
صفحه 123:
۳
tt x9] = (00, 9, 7};
صفحه 124:
صفحه 125:
عنصوی از نوع ۴ ایجا
,6.6 ,0.6 ,000 ,6.6 ,6.6 سا سرا
;}48.8
9
9
صفحه 126:
0
بت
: 00 = سوه 4 بسن
Pout xf arate], tt = 0.0 ;
(+۲ سیک :۳۵ ماو
van >> oft];
Por(FO; erretan; i++)
:یماج تایه >> فد :: showpont ) << setu{(18) << sebrever(®) << x{1] <<
نج
)++ رمع 0
حبص
rot << bot
صفحه 127:
ایک اس
tet ete )
Poa x20], =
م
)سام
Por{ FO; SOO 5 +41) ora >> af 1];
:201«
(++ تسس متا
Ped] <>) 2 =f];
eed >> ع >> فح
صفحه 128:
دا
() مس بر
زج , [00 سا
م
ز( )سام
(+ :۵0 :۳0
:1 << مم
Por; <O6; r+)
r++) ;515000
Porat
تخت
:۶ مس
۱121
aft] =ewy;
}
(جج روم Por(=O;
تج << vo << x{1]
© مور
صفحه 129:
آرایههای دوبعدی (مات ها
ماتریسها بوسیله آرایههای دوبعدی در کامپیوترنمایش داده ميشوند.
int a[3][4];
ستون ۲ ستون ۲ ستون ۱ ستون ٠
1 | [0[]0]ه [0[]1] SOLO}
ات ات AAO} lata
اتات ات ات ۰ الاب ۰ ACO]
صفحه 130:
تخصیص مقادیر اولیه به عناصر آرایه :
;})0,00,00,00( ,}0,7,0,©( وت تا
صفحه 131:
OIF] { {@, {0,9}, {F,9,9}}; م
صفحه 132:
AOIP]= )0, ©, ©, ©,.6 (: م
صفحه 133:
ps lp ts حبقت رای یک اندیسی ات در
مان las a ae dau سوه اس
rt of JIPRGC,9,6,9};
صفحه 134:
۱ eye tee Sed e per ere es
حاممصووم> ی رن ]
ایک ی
total)
f
Poa xfO][P], wrt= 0.0;
۳ «۹
> مشج صفحدج ||
For{=O; <9; +4)
Por (FO; ic; r++)
:۱ << وم
اه اه بمج صما صخلت ||
(++ ب©> بوعيجم
(خم ,6ك بوحيجم
od + =x [I
pnt << “pid = "<< thd << ead
مور © :
صفحه 135:
صفحه 136:
نوابع درون خط
انتقال بارامترها | ارجا
wis (Storage classes ) های حافظه
سرياركذلرى توابع
صفحه 137:
استفاده از توابع در برنامهها به برنامهنویس این امکان را میدهد که
بتواند برنامههای خود را به صورت قطعه قطعه برنامه بنویسد. تا کنون
کلیه برنامههائی که نوشتهایم فقط از تابع هسب( ) استفاده نمودهايم.
صفحه 138:
۲ 5 5 5 مقدار برگشتر
شکل کلی توابع بصورت زیر میباشند : Agee
لیست پارامتر ها جهت انتقال اطلاعات از تابع احضار کننده به تابع فراخوانده شده
return-value-type function-name (paérameter-
list)
1
declaration and statements
تعریف اعلانهای تابع و دستورالعملهای اجرائی
صفحه 139:
پارامتری از نوع 2ق
7
pte
phar bw_b_wy (oho ofl)
{
vker vO;
:لك :( م ۵۵( 0 و (APE = هم
rena (c®) :
}
صفحه 140:
© سما
HA” © )7( د" س> اطق “4 * دج )سوم
vets 0;
}
con
hor x
x= once)
pn <b s(n) ١
ممعم ©:
}
صفحه 141:
(۸ مس بر
{
2م
(0 >=)? V5
سم
}
صفحه 142:
x , ty) موی بر
ne
acer py)? xiv;
aes
}
)ميم
1
tab;
زا <ده << مم
:(طه) حصب >> نهر
سم
b ,3 آرگومانهایتلبع مس
صفحه 143:
صفحه 144:
صفحه 145:
تكد
وقتى در تا
در تاي تل رح
eee ae
es)
=
صفحه 146:
أكر بخواهيم در برنامدها ابندا main ub ظاهر
كردد بايستى te at prototype پیش
نعونة تلبع که شامل نام تلبع. نوع مقدار بركشتى
تلبع. تعداد بارامترهلثى راكه تلبع التظار درياقت
آئرا دارد و انواع بارامترها و ترتيب قراركرفتن لين
بارامترها را به اطلاع كامبيلر برسائد.
در اسلاید بعد مقالی در این زمینه آورده شده است.
صفحه 147:
ایک یا
0
0
) تفت
ito;
pal << "@uler u postive لت >> مس
به << وم
صفحه 148:
در صورتی که تابع مقداری بر نگرداند نوع
مقدار برگشتی تلبع را ۷۵34 اعلان میکنيم. و
در صورتیکه تلیع مقدارى را دريلفت نكند بجاى
Olovoid jparameter- list
استفاده میگردد.
در اسلاید بعد مقالی در این زمینه آورده شده است.
صفحه 149:
تابع مقداری بر نمی گرداند.
pot << "wax uch lu" << 2<< ead;
مور
صفحه 150:
صفحه 151:
در اين نوع احضار تابع حافظههای مورد
استفاده آرگومانها و پارامترها
از هم متمایزند و هرگونه تغییر در پارامترها
باعستث تفي
اك
در آرگومنهای متناظر نم ىكردد.
صفحه 152:
اهدر زمان ادنوع تداز بشني تاربع +304
صفحه 153:
توابع بازگشتی یا 1661115116 توابعی هستند که
وقتی احضار شوند باعث میشوند که خود را احضار نمایند.
صفحه 154:
نحوه محاسبه فاکتوریل از طریق تابع بازگشتم
۰ .۳6۳ عم
اه(
لگ 0 {
برخرلیصرت میم ۲۵۶
ج)* زهم"* ... *و*ق *0 دام
0
«* ا(مج)دام
در اسلايد بعد تابع بازكشتى مورد نظر پیاده سازى شده است.
5
جه ه
صفحه 155:
berg tot )ل حص
tnt cata )
{
عم
جم ” >> نوم >
وم <<
ant << ead <<” Pastore =" << (a) << pod;
retura O 5
}
pay tot Pastoritdi{int a)
P(e<=0)
rena);
: ( (0> سه" )مم
صفحه 156:
: منیب فسيبناكى ... ,900 , 60 ,09 ,© ,© ,© ,© ,4,0 , ۵
حم
fled -()طم-
6م
(ك )اه مهاه
در اسلايد بعد تابع بازكشتى مورد نظر پیاده سازى شده است.
صفحه 157:
bry tat Peery fe); // Porwrard dockets
oo
frag tat rj
زم
uch ” << ood; ما میج >> فجن
<د وم
كا
لحم >> >> يوم
: 0 عم
}
(۰ ۱۵ و۳۲ ها بسا
Moz =a] 0(
rete 7;
cbr
renre( Pr) + Pole) );
صفحه 158:
seo rove]! Porvoo
وعدم
)سدم
: 0 مس
}
vord reverse(vord)
MW red oboe oP charters ond reveror t
{
chore;
۵) سس (۱ V0)
reverse( );
صفحه 159:
استفاده از آرایهها بعنوان پارامتر تبع مجاز است.
در اسلايد بعد به يك مثال توجه نمایید.
صفحه 160:
1
2
3
4
5
تب هر تن © لق
ماو Porward |/ :( [ ] میلست فد
haa
rt ofS] :
Por(tat RD; <P; +4)
vou << of] << ead;
ممعم © :
1
لاس wood y(t of [( ۱ مسا ی(
{
۳) =O; <9; +4)
i<0; +4)
Por(FO;
vo << of j] << ed;
ممم
صفحه 161:
در صورتيكه آرايه بيش از يك بعد داشته باشد
بعدهای دومبه بعد بایستی در تعریف تلبع و بيش
نمونه تابع ذکر گردد.
در اسلايد بعد به يك مثال توجه نمایید.
صفحه 162:
۳
:([ ]1 ] ویس لبم
{
}
et 1©[(
H+) ;0< :0 نا
{
HD; 169; r++) مجم
poe << of TL] <<"
on << rod
ان
صفحه 163:
کلمه 1101186 بدین معنی است که به کامپیلر دستور میدهد که
يك کپی از دستورالعلمهای تابع در همان جا (در زمان مقتضی)
تولید نماید تا از احضار تابع ممانعت بعمل آورد.
صفحه 164:
بجای داشتن تنها یک کپی از تابع . چند کپی از دستورالعملهای تابع در
برنامه اضافه میشود که باعث بزرگ شدن اندازه با طول برنامه میشود.
بنابراین از 11011196 برای توابع کوچک استفاده میگردد.
صفحه 165:
مثالی از توابع درون خ
fickle <petreawh>
tober Poot abe(coust Mot») {rete o*s*s; }
)سدم
1
طحم سا
pia >> wider |
mint << ode << rabe(okle) << ead ;
retra O 5
}
©
صفحه 166:
تاکنون وقتی تیعی را احضار مى كرديم يك كبى از مقادير آركومانها دربارامترهاى متناظر
قرار میگرفت . این روش احضار بوسیله مقدار با ۷۵106 11 0811 نامیده شد.
در انتقال بارامترها از طریق ارجاع در حقیقت حافظه مربوط به آركومانها و يارامترهاى متناظر
بصورت اشتراکی مورد استفاده قرار میگیرد. این روش ۳۵2۵۶666 بوط هه
Spat
صفحه 167:
در ال روش پارامترهائی که از طریق ۲010169006 توظ 6۵11 عمل مینمایند در
نمونه تابع قبل از نام چنین پارامترهائی از 6 استفاده میشود.واضح است
که دار تعریف تابع نیز بهمین طریق عمل میشود.
صفحه 168:
اه طلسم
et VP rte); HI Bor
vod rPirees (tot 6( :
pos)
و
اج >> ب BM SS x SC werd <6 cf) Cel SS
صفحه 169:
وقتی پارامتری بصورت لاط call
0706 اعلان میگردد اين بدان معنى
است كميا تغيير مقدار لين يارامتر در تلبع احضار
شده مقدار آركومان متناظر نيز تغيير مى نمايد.
صفحه 170:
Det <<a << pad <b;
Powap( a,b);
زط >> اقحس >> ه >> فجن
: © مور
صفحه 171:
کلاسهای حافظه (عصصاه (Storage
متفیرها بدو طریق متمایز مشخص میشوند یکی بوسیله نوع (عجبه) نها و دیگری بوسیله
کلاس حافظه آنها. نوع متغیر قبلا اشاره شده بعنوان مثال عاطحط.. ۰۳۳۵ ۰.۰۰۱۷ ولی کلاس
خافظة يك متغير در مورد طول عمر و وسعت و دامن متغیر بحث مینماید.
در اسلاید بعد به انواع کلاس حاقظه می پردازیم.
صفحه 172:
automatic
static
external
register
صفحه 173:
automatic
متغیرهای تفه در درون یک تابع تعریف میشوند و در تابعی که اعلان
میشود بصورت متغیرهای محلی برای آن تابع میباشند. حافظه تخصیص داده
uy MM lb patie ay od از اتمام اجرای تابع از بين می رود بعبارت _
ديكر وسعت و دامنة متغيرهاى از نوع 7ه تابعى مى باشد که متغیر در آن
اعلان گردیده است.
صفحه 174:
static
متغیرهای عفد« نیز در درون توابع تعریف میشوند و از نظر وسعت و دامنه شبیه
متغیرهای ع#حفه هستند ولی در خاتمة اجرای تابع. حافظه وابسته به این نوع
متغیره از بین نمیرود بلکه برای فراخوانی بعدی تابع باقی میماند.
در اسلاید بعد به یک مثال از کاربرد این نوع کلاس حافظه می پردازیم.
صفحه 175:
و
امه اسلا مه تفلطلی با موی |[
foro tt Pitt) §
)سم
1
كم
اك
حدم
pou <<oud;
( + زک ز0 م۳
rod; << ۳ >> > >> >> قحم
:0 جر
+
comet) م۳۲ بسا
ma 2 4, 620: بسا عبر
عدا
© +20:0 (6©> سداد
صفحه 176:
external
متغیرهای از نوع جع متغیرهلئی هستند که در بیرون از تولبع اعلان میشوند
و وسعت و دامنه فعالیت آنها کلیه توابعی میباشد که در زیر دستور اعلان متفیر
قرار دارد.
در اسلاید بعد به یک مثال از كاربرد اين نوع كلاس حافظه می پردازیم.
صفحه 177:
یه طیاب#
۱
Pucntalfet 2, tot)
{
اس >> قحم
wexty;
Dent << wud << ws << echt;
بل مج
}
est)
Dat << pad <p << ead >> سس >> قحس >> ل
rewraO ;
}
صفحه 178:
register
وقتی متغیری از نوع ضيح اعلان میشود از کامپیوتر عملا درخواست
میشود که به جای حافظه از یکی از رجیسترهای موجود استفاده نماید.
صفحه 179:
صفحه 180:
سربار گذاری توابع (عفعطصه سح
در 6++ این امکان وجود دارد که دریک برنامه بتوانیم از چند توابع هم نام
استفاده نمائیم مشروط بر این که پارامترهای این توابع متفاوت باشند. (از
نظر تعداد پارامتر و یا نوع پارامترها و ترتیب آنها)
صفحه 181:
0
عه سام : i);
et iP (t,t);
اس
: لحم روح م
: م 6ل سم
pat << ukF(a, b) << ead;
pot << ak Pd, b) << rod;
rena ;
}
kt ok (ct, ty)
{
rota ty |
}
Pou uxkF (Pou x, mtv)
{
صفحه 182:
ساختار ها و اشاره گرها
صفحه 183:
ها Union
( 20166 ) اشاره كرها
تعريف آرايه
آرایه هاى دو بعدى و اشاره كرها
new ) حافظه بصورت يويا (
شته ها و توایع مربوطه
صفحه 184:
ساختارها
ساختارها شبیه آرایهها بوده بدین صورت که یک نوع داده گروهی است که فضای
پیوسته از حافظه اصلی را اشغال مینماید. اما عناصر ساختار الزاماً از یک نوع
نمیباشند بلکه اعضای بیک ساختار میتوانند از نوعهای مختلفه از قبیل ۰ phew
لط. ۳ . ... باشند.
صفحه 185:
نام ساختار
struct time
{
int hour ; // 0 - 23 0
int minute ; // 0 -
اعضا ساختار
59
int second; //
13
5
صفحه 186:
ساختار 30001001 دارای چهار عضو میباشد.
CoA شطيه حسابيز نوع 6ط
0 Toy
0000# name
ser yeep Meee Cnt
صفحه 187:
به دو صورت می توان اعلان یک متفیر از نوع ساختار را نمایش داد:
روش اول
:روش دوم
صفحه 188:
به ساختارها میتوان مقدار اولیه نیز تخصیص داد
wood mst = (PESO, ‘Duder Dudert” , PESC.S};
صفحه 189:
صفحه 190:
عج_س. بصه
vast woe = “Duder Daderi”
rast. base 2 0
صفحه 191:
: نکته
عضو یک ساختار خود میتواند یک ساختار دیگر باشد.
struct date {
int month;
int day;
int year;
1
struct account {
int acc_no ;
char acc_typer;
char name[80];
float balance ;
date lastpay ; };
اگرداشته باشیم
account x, y;
آنگاه عضو 1351۳۵57 بوسیله
x.lastpay.day
x.lastpay.month
x.lastpay.year
صفحه 192:
: نکته
میتوان آرایای تعریف نمود که هر عضو آن یک ساختار باشد و حتی بهآنها مقادیر اولیه تخصیص نمود.
مسحت اماع
char rae PO];
rt pad;
tp; } 5
ereloredl JF {"askr”, GOO , ۵000,
,"و" FOOO, OOO,
مهو" , 9۳00, 000,
“pares”, POOD , OOOO, };
صفحه 193:
Plot bi dos vy a
vowplex anobers” << wad; © جح" >> نو
j اههد << وت
vot << ead
pir >> pia >> yb;
+ ود
abe xbt pb;
ont << pad >> ورد >> ۲ “<<zb;
© مور
1
+16 12-7 بطوييكه
ماج دود
Hy (ate) 164d)
صفحه 194:
ee ee ol فلوتكه
عضوهللیکه ت-شکیل010 11193 میدهد همگواز حافظه مشترکیدر
rrr taco eee apr ane eee Ee
صرفهجینیدر حافظه مسر
صفحه 195:
هر کدام از متغیرهای »رو لا بیک رشته
۱۰ کرکتری با یک مقدار از نوع int
میباشدد وکامهیهترییک بلوک حاقنه که
بتواند رشته ۱۰ کرکتری رادر خود جای
دهد .برای00102 و 5326 در نظر
میگیرد.
صفحه 196:
صفحه 197:
اشارهگرها (عصده۳))
دادههانی خه در حامپیوتر در حافظنه اصلی ذغیره
بایتهای متوالی از حافظه بسته به نوع 0212 اشغال مى كثند.
عباوط -۳۳۷۶۸
۸ ۱۳۷۳۸۳۶۲۸
یک کارکتر
6.666 نا 06-66
©60ع0.6 تا 6.6606
صفحه 198:
اشارهگرها (عصده۳))
با داشتن آدرس داده در حافظة اصلی میتوان براحتی به آن داده
دسترسی پیدا نمود و از طرف دیگر آدرس هر داده در حافظه آدرس
بایت شروع آن داده میباشد.
int x = 61.
صفحه 199:
نکته
در کامپیوتر آدرسها معمولاً دو بایت اشغال مینمایند. اگر آدرس «را در «م قرار دهیم آنگاه میگوئيم که یه
ماشاره مینماید.
آدرس متفیر »درا پوسیله نگ« نشان میدهیم و عملگر 8 را عملگر آدرس مینامند.
صفحه 200:
26
حال اكر دستور العمل 10 -+ 6 زرا بدهیم:
36
حال اگر دستورالعمل 7 + 0* < 01 ز بدهیم.
43
صفحه 201:
آرایه یک بعدی و اشاره گرها
اولین عنصر آرایه بوسیله 201 مشخص میشود.
آدرس اولین عنصر آرايه بوسيله 010184 يا بوسيله > مشخص میشود.
آخرس 1امين عنصر آرايه بوسيله :613-136 يا بوسيلة 3401-1 مشخص میشود.
دو دستورالعمل زير با هم معادلند .
5 - [11]ء:
de + 6 1۸۲.۵۰
از طرف دیگر اگر داشته باشیم
1101 11021
jfloat *p
دو دستورالععل زیر معادلند.
21 دمر
2+ عوز
و ه ۵ ۵ 5 ۵ ۵ ۵0
صفحه 202:
ساختارها و اشاره گرها
میتوان اشاره گری را تعریف نمود که به اولین بایت یک ساختار (معمهعا اشاره نماید.
struct
strucl
صفحه 203:
loa! دوبعدی و اشارهگرها
يك آریه ویمدی بسورت تعماي آریه نک بعدی من تون عریق عومد
اگر « یک ماتریس ۵ سطری و ۴ ستونی از نوع اعشاری باشد قبلاً اين ماتریس را با
joa xf]
معرفى كرديم. حال با استفاده از اشارهگرها بصورت زیر معرفی نمائیم:
صفحه 204:
آرايه يك بمدى اول
آرايه يك بعدى دوم
آرایه يك يعدى سوم
آرايه يك بعدی چهادم
آرایه یک بعدی پنجم
صفحه 205:
و
حاص ١ طعادة
ae )
kt xf (00, 89, ©, 09, 400);
:)حسام
tet "pax;
انام آيليه بدو نديس لشايه به عنصر ایلآرلیه میسمابدا|
Porta HO; <=; r++)
Dent << *(ct) << eed;
Uke sevoed لاس
Por; <0; ++)
>>[ >> فص
ساب لد |
ree; +4) رسیم
>>[ ]مس >> فصو
اس ۳۷ ۱
)+ اس را
الم( >> فص
( :0 سم
G
=>
صفحه 206:
از عملكر ely ce تخیصیص حافظمبه صورت بويا
dynamic memory allocation
صفحه 207:
۳2 به اولین داده از نوع 3108 اشاره مینماید.
+تاو ب» 1 +ألمیرعنصراز فضای ی یوسته لشایه میماید.
صفحه 208:
ا
راعشخص و نمایش میدهد.
0
)سدم
1
م
;0.0 = ينوم" مح
قجس >> > و سین جح >> مج
<< مم
:[-] حاط سصمحوم
+ يدكر زوع مجم
إل + سوم" << وم 0
ما هيت
0)
Por (=O; زه بكم
wits "pr +);
pant << teh;
U sx order © Prov be ope we
cee] prs
renee O;
صفحه 209:
0
”م oot <<" how oxny records?
ma >> 0;
زاس سح > ۲
Port =O; <0; +4) {
> >> (إسا<- (جهم))>> دجم
: ام >> (6 .0ل كو بإزه عوم)")>> فود
bbe [re
[: 0 سیب
G
=>
صفحه 210:
جيه عه
حسة ليه
Poss *); ,* مهبم
wed)
Pht ob, "pb, "ph,
دی
اسر
سیر
wurp(papb); liiitouxeab);
toa cea ce vad ob xe ve
rare
صفحه 211:
char name[ ]= ”
sara’;
صفحه 212:
رشته و اشاره گر
هر رشته از طریق اشارهگری به اولین کرکتر آن در دسترس قرار میگیرد. آدرس یک رشته. آدرس کرکتر
اول آن میباشد. به رشتهها میتوان مقداراولیه تخصیص داد.
char *name =” sara’;
صفحه 213:
۱
حيصي نا
([ ]اه لس
)سيم
{
char Yow] = ("rare “rook”, bubck, “eons”, “oa”
اجه له لوف ا نو
مب رم رهم مسج
ced, >> [ ]سس >> بجر
:0 سم
حمم
ام
(0 <(: اس eons
the two srt مت ۲
اعسوم
]سس > [ ]عمد
:۶۱ [۱ ]سس
[ :میم
اف
>
صفحه 214:
صفحه 215:
رشتههای 51 و 52 رابا هم مقایسه نموده اگر 51 برابربا 52 باشد مقدار صفر و اگر
رشته 91 کوچکتر از رشته 52 باشد یک مقدار منفی در غیر اینصورت یک مقدار
مثبت برمیگرداند.
صفحه 216:
اکرکتر از رشتذ 81 رابا «كركتر از رشتة 82 مقايسه نموده در صورتيكه
1 کوچکتر از 52 باشد یک مقدار منفی, اگر 51 مساویبا 92 باشد مقدار صفر در
pad ایتصورت یک مقدار مثبت برمیگرداند.
صفحه 217:
دو رشتة 51و 52 را بعنوان آرگومان گرفته رشتة 52 رابه انتهای رشتذ 51 اضافه
مینماید. کرکتر اول رشتة 52 روی کرکتر پایلنی "۱0" رشتة 91 نوشته مى شود ونهايقاً
رشتة 51 را برمیگرداند.
صفحه 218:
دورشته 951 52 ومقدار صحيح و مثبت هرا بعنوان آركومان كرفته. حداكثر م
رشتة 91 کپی مینماید. اولین کرکتر رشته 52 روی
كركتر يايانى “70 رشتة 51 مىنويسد ونهايتاً مقدار رشتة 51 را برمیگرداند.
صفحه 219:
صفحه 220:
صفحه 221:
صفحه 222:
صفحه 223:
برای استفاده از توابع مربوط به
رشتهها بایستی حتماً در ابتدا برنامه
<include <string.h+ ,|
elle
صفحه 224:
:( )ساد
vat << siren oll, 9) << ved
Dat << sraxnp(oll, 29, P) << wad ;
rena O;
صفحه 225:
صفحه 226:
( 4اه , [اه میاه بت
{
زعم
( إناد-لاع) حص
(of+4]="0" ) ®
:0 مر
:(2]]0) مسج
}
صفحه 227:
5 1 هنت
برنامه نویس شی گرا
صفحه 228:
تعریف شی كران عضوهای هبو
jiu, uz (polymorphism) . کلاسهای تودرتو
خاضیت ارث ep . كلاس هاى محلى
ans, (stack) استفاده از باه ها بعنوان
ایجاد شی پارامترهای تابع
onl ۶ برگشت اشیاء
سازنده ها و نابود کننده ها ۷ انتساب اشیاء
توابع دوست ۸ آرایه اشیاء
كلاس هاى دوست ٩ اشاره گر به اشیاء
توابع سازنده پارامتر دار ۰ اشاره كر كا ۱
توابع سازنده یک پارامتری ۱ توابع مجازی و پلی مرفیسم
صفحه 229:
برنامه نویسی شی گرا یا 0010 یک روش جدید برنامه
نویسی میباشد که در آن از ویژگی
ساختیافته همراه با چند ویژگیهای قوی جدید استفاده
آن برنامه نویسی 67++ امکان استفاده از 00
را به راحتی فراهم مینماید.
صفحه 230:
در 00 , بطور کلی مساله به تعدادی زیرگروه قطعات
code «.
تبدیل به
136 ها با واحدهائی میشود که 09685 (با اشیام
ناهیده میشوند.
صفحه 231:
تمام زبائيهاى برنامه نويسى شىكرا داراى سه
خصوصيت مشترک زیر میباشند
(jl+)9.04) encapsulation sit
(42) polymorphism :—
(s»©;) imheritance:c
صفحه 232:
( Gacapsutetiog) محصورسازی
محصورسازی مکانیزمی است که aks 9 roe را بهم وصل نموده و هر دوی آنها را از استفادههای
غیرمجاز مصون نگه میدارد. شی یک مولفه منطفی است که 40 و طعمت را محصور تموده و طحم
باعث دستکاری و پردازش تفه میشود.
صفحه 233:
چند ریختی مشخصهای است که بیک وسیله امکان میدهد که باتعدادی
.از سیستمها یا عمیات یا دستگاههاء مورد استفاده قرار گیره
صفحه 234:
ارث بری فرآیندی است که بوسیله آن یک شی (]01[66) میتواند
خاصیتهای شی دیگری را دارا شود.
صفحه 235:
بوک ات میکود یک عصر از بشته اج کرد
صفحه 236:
بمنظور ایجاد یک شی بایستی از کلسة رزروشده
255 استفاده نمود. 01855 از نظر ظاهر شبیه
ساختار یا 503120 میباشد. پشته را بعنوان یک
object میتوان در تظر گرفت که ۸8 تن
شامل یک آرلیه ویک 805 و عملیاتی که روی
اين 01668 انجام مى شود عبارتست از .711519
os initialize .pop
در اسلاید بعد مثالی از نحوه ایجاد شی آورده شده است.
از نحوه ایجاد شی آور
صفحه 237:
بدین معنی است که »ماو 0 9110 ۷
5 يوسيله توابعى كه عضو |
060 نباشند غير قابل ۷
دسترسی هستند. وان یکی از سس
شترتی هستند وین یکی از Sr
ee 91ج
kf toy;
بدين معنى انست که بوسیله سایر vai),
قطعات برناصسه قابسل دسسترسی ز(۱ 0اه لس
پاش
:( )سم مر
صفحه 238:
فقط تولبع عضو میتوانند به متغیرهای عضو از نوع مه
دسترسی داشته باشند. بایستی توجه داشت که اگر نوع عضوی
مشخص نگردد آن عضو به صورت اتوماتیک مهم مى باشد.
Private
صفحه 239:
vord )اس : : اناد i)
1( ©6112 - د دوم
:”دخا د معا" >> مج
تم
}
stck|be]= 1;
tow ++;
عملگر:: مشخص مینملید که تبع متعلقبه کدام 010[66 میباشد. عملگر : : عملگر
SCOpe resolution نامیده میشود.
صفحه 240:
مج
اه ‘peck wf, 9; || rete te
wok سای
rare)
صفحه 241:
ارث بری فرآیندی است که بوسیله آن یک شی (]01[66) میتواند
خاصیتهای شی دیگری را دارا شود.
در اسلاید بعد مثالی از ارث بری آورده شده است.
صفحه 242:
:ال
در روبرو جنات اى بنام ساختمان يا دشح تعريف كرديدة اسث.
هر ساختمان دارای تعدادی اطاق. تعدادی طبقه و سطح زیر بنا نیز
ميباشد: از طرف دیگزتوایعی که بزاق شي تغزیف شده
حال ناه ديكرى بنام «صحط تعریف مینمائيم کهنه تنها دارای
تعام اعضای شی پ«فح میباشد بلکه دارای دو اقلام داده افلفی
و چهار تابع اضافی میباشد. دراینجا عملاً شى «صحط از شی
یط ارث میبرد :
صفحه 243:
در مثال قبل بجقفط را ععاه و ها را جعاه Atel ga dered . شی عصحا تمام
اعضای بجقفط را دارا است بعلاوه اينکه دارای متغیرهای عضوی اضافی عف ۰ سس و
همچنین توابع عضوی سب .)فا .داح _مانیز
میباشد. .
Inheritance.
صفحه 244:
سازندهها و نابودکنندهها (عصسط اجه عصسصسسس]
bab! til, — Initializatio صوردتماتیکاز طریوتلبعیلنجام
QU gol aij waits L constructor elit. oh.
مخصوصیسنکه عضوواز ک الب وده و همام ASL LS Li
صفحه 245:
سازندهها و نابودکنندهها (عصسط اجه عصسصسسس]
Joc Se. destructor bois opt alt تلبع سازنده را انجام
میدهد. وقتی که شیای از بين میرود بصورت اتوماتیک تلبع نابود کننده
آن فراخوانی میگردد.
صفحه 246:
با استفاده از کلمة 83101901 لین امکان وجود دارد کهبه تابعی که عضو کلاس
نمیباشد اجازه دسترسی به متغیرها: Wai Jy ssf) oe private
تابعی را دوست اعلان نمائیم از کلمه Ld friend از تعریف تلبع استفاده
مى نمائيم.
در اسلاید بعد مثالی آورده شده است.
صفحه 247:
0
0
) سارت سار
۳
rib:
:ل سات )سعد Petra it
:1ك ,1 هلوس word
3
| :: obra, ei)
صفحه 248:
۱-کلاسی که از کلاس دیگر ارت میبرد. توابع دوست آن کلاسس را
به ارث نمیبرند.بعبارت دیگر یک 61255 8023700 . توبع
0 3
۲-نوایع دوست دارای مشخصه نوع ذخیره نمیباشند یعنی AND
دوست را نمیتوان بصورت ]هنک با 036107021 تعریف
نمود.
صفحه 249:
باشد . در چنین وضعیتی تابع دوست به
اين امكان وجود دارد كه يك كلاس دوست كلاس ديكرى رچنین
sla تعريف شده در كلاس ديكر دسترسى دارد.
كليه اسامى وعدم تعريف شده در
Friend Class
در اسلاید بعد مثالی آورده شده است.
صفحه 250:
صفحه 251:
امکان انتقال آرگومانها به تولبع سازنده وجود دارد. معمولاً از اين
See براى تفه نمودن شسی در زمان ایجاد آسن اسستفاده
دد.
در اسلاید بعد مثالی آورده شده است.
صفحه 252:
امک یاب #
خاک عبات
) امه ام
و با
: ام
wovckwn (tet t, tot) fe = 5 v=)
ae ) foo << << ee <<; }
1
صفحه 253:
توا 5
حاممصوم> طعادةة
ی رن ]
سس پیب
م
ريح ( سس
a x} ( )سب بر
رابه ۱066 منتقلك ناا ده
(( )تاه << vow
© عبر
صفحه 254:
اگر عضو دادهای بصورت 582830 اعلان گردد این بدین معنی است کد
کامپیلر فقط یک کبی از متغیر مذکور را نگهداری نموده و تعام ۵6 [و
ها بایستی بصورت اشتراکی از آن كبى استفاده نمايند. براى ايتكار
میبایستی از کلمه 5286 قبل از اعلان عضو استفاده تمود.
در الايد يعد مثالی آورده شده است.
صفحه 255:
)دم
زو howd
0ص هد // :(0,0)سدم
rorkou{ i
vise PP); I oben *
)سداس ير (
ز( )سید
er",
p>
صفحه 256:
میتوان یک کلاس را در یک کلاس دیگر تعریف نمود.
آمابعلت اینکه در 6++ براي کلاسها خاصیت ارث
بری وجود دارد نیازی معمولاًبه تعریف نمودن یک
کلاس در کلاس دیگر نیست
Nested Classes
صفحه 257:
وقتی که کلاسی در درون یک تابع تعریف میشود این
کلاس فقط برای آن تابع شناخته شده است و برای
تولبع دیگر ناشناخته میباشد. چنین کلاسی را کلاس
محلی مینامند.
Local Classes
صفحه 258:
در مورد کلاسهای محلی رعایت نکات زیر ضروری است :
تمام توابع عضو بايستى در درون كلاس تعریف گردند.
از متغیرهای محلی. تابعی که کلاس در آن تعریف شده نمیتواند استفاده نماید.
از متغیرهای عضوی هه نمیتوان استفاده نمود.
صفحه 259:
استفاده از ها بعنوان پارامترها
از اه ها میتوان بعنوان پارامترهای توابع استفاده نمود و مکانیزمانتقال آرگومانها و پارامترها بصورت
by cher قد مى باشد.
صفحه 260:
در اسلاید بعد مثالی آورده شده است.
صفحه 261:
frevkee <pereuw.k>
اب سار )
:ال
ا( { ward set_ Act a)
(: سس ( )رصم
k
میا از[ سیخ ماوت os bet
ee)
امه
b= Pe)
vat << obaptt( ) << ead
ممصم ©
صفحه 262:
انتساب اشیاء (مسنسه سسوم
در اسلاید بعد مثالی آورده شده است.
صفحه 263:
] ی وس <petrrow.h>
# اه >
امن سا
tt
rable:
لح 4 3) (xi)
st ett) frenrart}
eee
wocken obfl, ob;
)128( باه
b= offi; If cas cess Prow ob ob
)ضام (:
اسم >>
rer ©:
}
صفحه 264:
در اسلاید بعد مثالی آورده شده است.
صفحه 265:
حامس طادة
حاصحه طبادة
ارت اد
0300
bbe:
vord eet it) (ii)
لصم ( ارس
at)
:)سا
worker bf];
a
۱ ob Art);
Por (=O; <2; H+)
قعص >> ( )راس .[؛ إنام >> جو
ممم 0:
1
صفحه 266:
در اسلاید بعد مثالی آورده شده است.
صفحه 267:
0
troche <oocte hk
ام سار
tt;
bbe:
)عم ( {=O;}
i) {i} )سام
te) {rena}
k
م --)
-[ق]ط وساسد )0, ©, ©(:
:م" سرت
العم >> ( )راس <-م >> فصو
اانا جد p++; Il pond
صفحه 268:
در اسلاید بعد مثالی آورده شده است.
صفحه 269:
للم معد () حرص لد
اووس سا اقا مود
bi > ud = hy > ud *he > by
}
( ای بر
)10.7.0 ,0 ,40.8 (9 ,© )سم
>>( )سروب > مج
pur ) << ]
:7ه >>( )سم ورد >> مج
( :0 مس
صفحه 270:
تابع مجازی, تابعي است که در base class تعریف شد و
بوسیله 01855 16115760 تغیر داده ميشود. برای اعلان یک
تابع مجازی بایستی از کلمه ۷1۲1281 استفاده نمائیم.
تغیر تابع در کلاس مشتق روی تابعی که در کلاس پایه (hase class)
تعریف شده انجام میشود.
در اسلاید یعد مثالی آورده شده است.
صفحه 271:
خلسسسه یسم
thew bor
rie
raed لع re Hert $6" rr Pe)”
2
sha etal bbs awe
عم
)<< *) سح ما ایس عام ” >> قحا ( سخا لمم
3
haw drt ]سس تالم
537
0
wend") ( اماب تسوت تسوت مسر
bows مسجت( مج
تست تمس از
اس
( اس حاسمت سست Pe >
تست تس
2,
osteo ker treet‘)
صفحه 272:
صفحه 273:
i
:
i
i
|