صفحه 1:
۳ ۰ فصل دوم - آشنایی با زبان .0 عحل 70
۷
if
در ین فصل بمعرفی زبان 0.000 اسحدد) می ep jlo ابتدا
انواع داده استاندارد این زبان و کاربرد آنها شرح داده می شود.
سپسبه دستورات لین زبان می پردازيم و در قللب مثالهلیی آنها را
بررسی خواهیم نمود.
فصل دوم - آشنایی با زبان 6431171
صفحه 2:
& انواع داده ها
0 هتگامیکه می خواهید یک متغیر را تعریف کنید باید /0#.009 از اينکه چه مقادیری می خواهید در
]9 آن کخیره کنید مطلع باشد. اينكار با مشخص كردن نوع داده اين متغير انجام مى شود
ألا داده هاى عددى:
نوع داده شرح
9ط ,4 ,كات ,روات | اعداد صحيح بترتيب با طول .١ ۰۲ ۴ و ۸ بایت
یر | اعدلد صحیح بدون علامت (بزرگتر از ۰) ترتیب با طول 01 ۲.
a , ۴ و ۸ بایت
طح ,طم | اعداد اعشارى مميز شناور بترتيب با طول ۴و ۸ بایت
امس | عدد اعشاری با ممیز ثابت با ۱۶ بایت
فصل دوم - آشنایی با زبان ۸6
صفحه 3:
داده های عددی
: دقت کنید که زبان #60 نسبت به کوچکی و بزرگی حروف حساس می باشد برای نمونه 18 و
| 108 با هم متفاوتند.
1 ی |
تعریف متغیر صحیح و مقدار دهی به آن: fot
الو ,جاسم وکا
دم ب عدر
برخى از عملكرهاى رياضى:
عملگر شرح
1 عملگر ضرب. تقسیم لعشاری و تقسیم صحیح. باقیمانده تقسیم
unary) -.+) مثبت و منفی کننده
binary) -+) عملگر جمع و. عملگر تفريق
فصل دوم - آشنایی با زبان ۸6
صفحه 4:
داده های عددی
+ رد رده
1 عملكرهاى رياضى بهمراه نسبت دهى:
i=i+8 = 1 +< 8
برای بررسی بیشتر به برنامه 106061772110 مراجعه کنید
dnb di اعداد اعشاری:
.6 دل
بررسی بیشتر به برنامه ۳1010۳۲۳۷۲1 مراجعه
فصل دوم - آشنایی با زبان 6
صفحه 5:
۹ رشته ها (ججب)
| - رشته ها نوع داده پر کاربرد دیگر هستند. ییک رشته دنبلله ای از کاراکترهاست که برای ذخیره
سازی اطلاعلتی مانند نام. آدرس و ... استفاده می شود. کاربرد دیگر رشته ها دریافت اطلاعات
ورودی از کاربر و نمایش خروجی به او می باشد.
- کاراکترهای تشکیل دهنده یک رشته پونیکد(1210006[]) است و اندازه هر کدام دو بلیت مى
باشد. بنابرلین آنها علاوه بر حروف انگلیسی و سایر کاراکترهای اسکی برای نملیش حروف سایر
زبانهای طبیعی مانند عربی و فارسی و تعداد زیادی علایم دیگر استفاده می شوند.
چیه
- تعریف رشته و مقدار دهی آن ۱ ۱
موی
بت ما بو"
علب
or = “Lebo,
world!"
فصل دوم - آشنایی با زبان 6
صفحه 6:
1 محدودده رشته ها با استفاده از کاراکترهای " و " مشخص می شود. برای مثال در دستور
Ovsone rx. Show ("Dudipkoatrs txt..." +d, "Pky Ports")
(Pricts™ 5 بت(" رشته هستند.
قبل از لين كاراكتر از كاراكتر لم
دو عبارت "لصا ومتمصاصل 00
اكر بخواهيم خود كاراكتر " را در يك رشته بياوريم
استفاده كنيم. براى مثال
requis Bk 0د خا سل || Bhi“; ۲ 2 0ك يموع
"اه" حاسجج 6و #۲ سل || "اله" د عع مد
فصل دوم - آشنایی با زبان 6
صفحه 7:
عملیات برروی رشته ها
ایک نوع داده يا کلاس در زبان شی گرای :۸6 علاوه بر داده دارای متدها یا توابعی است که بر روی
این داده ها عمل می کنند. این متدها امکان پردازش داده ها را فراهم می کنند. برای نمونه یک
رشته حاوی دنباله ای از کاراکترهاست و علاوه بر آن دارای توابعی مانند تعیین زیررشته.
جستجوی یک عبارت در رشته و ... است. برای دستیابی به ویژگیها و متدها یک یک نوع داده از
عملگر نقطه استفاده می شود.
El عملگر :[]برای دستیابی به کاراکترهای تشکیل دهنده یک رشته استفاده می شود. این عملگر
تنها خواندنی است. دقت کنید که اولین اندیس, با شماره صفر مشخص می شود
pire = "et";
char oh = of] Much oF ob ecco!
فصل دوم - آشنایی با زبان 6
صفحه 8:
& عملیات برروی رشته ها
۱ الأعمل ادغام: ادغام دو رشته با استفاده از عملكى + انجام مى شود. براى مثال به قطحه کد زیر توجه کنید
UGSet the string values
rend = si + :عم /Ivoke of remt eqs “Hello, world!"
نکته: یک مقدار عددى را نيز مى توان با یک رشته ادغام کرد دراینحالت ابتدا مقدار عددی تبدیل به
رشته می شود و سپس با رشته ی مورد نظر ادغام می گردد. برای نمونه به قطعه کد زیر توجه
Set the value)’
inti = 26
"Dhe voke oP ie: "+i; //> "The value of i is:26"
فصل دوم - آشنایی با زبان 6
صفحه 9:
عملیات برروی رشته ها
wa) ye : منظور از طول رشته تعداد کاراکترهای تشکیل دهنده آن است. هر رشته دارای
ویژگی به نام 0720110.] است که طول آن رشته را بر می گرداند.
لس مه با حطا|
sirtary sie = "ello";
fol < راو //
#ازیر رشته: یکی دیگر از عملیات پرکاربرد برروی رشته هاست که برای تعیین بخشی از آن رشته
که از مکان مشخصی شروع می شود. استفاده می شود. لین عملبا استفاده از متد 50517170
انجام می شود. این متد دو پارامتر دارد. اولین پارامتر نشاندهنده مکان شروع زیر رشته است و
پارامتر دوم طول زیر رشته را مشخص می کند.
فصل دوم - آشنایی با زبان 6
صفحه 10:
عملیات شته ها
8 ترروی 2 WQDevkwe vortabhe
2۳ 5;
Bet the text Proc ع ۳
زرط < و
وه و باعلا رولبی)/|
Desene Box. Skau(s.Grbsiic(D, 9), "Girkns");
WQieplay the cide موه وا
زج( ,)دیسا متسه
۱
:( مسق" ,(9 - رجا )سیسات ویو
خروجى برنامه 61 )425 Cranberry:
Cra nbe ny
فصل دوم - آشنایی با زبان 6
صفحه 11:
ورودی را در رشته جستجو کرده و اولین موقعیت شروع کلمه را در رشته برمی گردان. در صورتیکه کلمه مورد
نظر در رشته پیدا نشود مقدار خروجن این مند برايريا "Phe Pow el ==
)ها ادا مه
زر(«
نکته: عملیات متنوع دیگری نیز بر روی رشته ها انجام می شود. برای آگاهی از آنها می توانید از راهنمای
سیستم کمک بگیرید.
فصل دوم - آشنایی با زبان 6
صفحه 12:
نوع داده منطقی bool
داده های منطقی تنها می تولنند یکی از دو مقدار ۳186 (صحیح) یا ۳0156 (نادرست) را داشته باشند و
بمنظور تصمیم گیری استفاده می شوند. برای نمونه نتیجه مقایسه برابری مقدار دو متفیر صحیح و ظ
يك داده منطقى است که یا درست (1۳006) alse) Le | ou!
تبدیل داده ها
Ml برای تبدیل انواع داده به یکدیگر می توانید از كلاس CONVELE استفاده کنید. فرض كنيد 5 يك رشته و 2
يك متغير ott decimal
Ovwert. THABO(s) F Integer || ree jlalio ww oad
Cowen. PoDruble(s) > — Double! / 5 Linc! jlade ae bos
تبدیل عدد و به مقدار رشته ای 8۲ < Cowert. PoGriag(a)
فصل دوم - آشنایی با زبان :#6
صفحه 13:
دستورات شرطی
عبارات شرطی ماندد "اگر هوا خوب باشد بعدازظهر به پارک می رویم " در مکالمات ما بدفعات استفاده می
شوند. در برنامه نویسی نیز می توان با دستورات شرطی روند اجرای برنامه را با توجه به شرایط کنترل کرد. برای
این منظور دستور 3 به شکل زیر بکار می رود 2
) (شرط) ۸
دستورات۱
الامعناى دستور اين است كه اكر شرط برقرار بود دستورات! را اجرا کن در غیراینصورت دستورات۲
اجرا شوند. براى بيان شرط مورد نظر اغلب از عملكر هاى مقايسه اى (>»2 >: >!) استفاده
می شود. حاصل شرط یک true jade | 0156 است. عبارلت شرطی را می توان توسط عملگرهای
منطقی (6»6. ||) باهم ترکیب عطفی یا فصلی کرد.
فصل دوم - آشنایی با زبان 6
۳
صفحه 14:
& دستورات شرطی
Fine $00 2
a> 6 > Pdbe 418i ssha= 4) eae i
(0 <Q) && (> (9) > Pabe
(0<@0) || (@> 06) > re
در صورتیکه بخواهیم بیش از یک شرط را چک کنیم می توانیم از eo) else Tf
استفاده کنیم > bab +d;
(00 <م) ۶ ساء
ب *9<ط
:0 -ط د ط وطع
4 )
فصل دوم - آشنایی با زبان 6431171
صفحه 15:
& دستورات شرطى
رات گرا بصورت تودرتو نیز
الي توان نوشت برای نمونه
Ml برای مقایسه رشته ها می توانید از متد ۳۳۳۳۳() مربوط به نوع داده virion استفاده کنید. نتیجه مقایسه
دو رشته و ط با استفاده از این متد در زیر آمده است:
=O
iris Opepare(b) لماه فاد
> Pa<b
نکته: اگر بخواهیم دو رشته ۵و " را بدون توجه به کوچکی و بزرگی حروف با هم مقایسه کنیم کافیست مقدار
string.Compare(a,b, true ) p> | 5 true & yly!, Compare acs pye all €
فصل دوم - آشنایی با زبان 6
صفحه 16:
4 دستور اند
هه که بخواهید به ازای مقادیر مختلف یک متغیر کارهای متفاوتی را انجام دهید معمولا دستور
اس جايكزين مناسبترى براى دستور 115 است. براى مثال دستور زير را در نظر بكيريد
AP (astowerDuawe == "Bryan')
(do sexier)
che P (amtrwerDexve == "Gtepheric")
(de sxc)
ماد ٠١ ) ووو( حرصم ==" Oxtky")
(de sxc)
che P (newwerDawe == "Betty")
(do sorter)
ebse (do soxvetin)
فصل دوم - آشنایی با زبان 6431171
صفحه 17:
4
دستور كأطاده
Jol 0 این دستور را بصورت خواناتر با استفاده از 5101010 می توان بصورت زیر پیاده سازی کرد.
عسو مارد
و سس
(do svwethien); broek;
vuse “Otephodie”:
(do sverethicn) breus;
واه pose
سس
(do somethin); break;
تست
(do suwethioy); broek;
براى آشنايى بيشتر با اين دستور برنامه 1261100 ۳۹6166" را بررسی کنید.
فصل دوم - آشنایی با زبان 6431171
صفحه 18:
خلقههای تکرار
i 1 "ail
#هنگامی استفاده می شوند که بخواهید کارمعینی را بدفعات تکرار کنید. برای نمونه فرض کنید بخواهی
معدل هر دانشجو را در ترم جاری بدست آورید. برلی اینکار باید عملیات مربوط به محاسبه ی معدل را برای هر
دانشجو تکرار کنید. انواع حلقه های تکرار در زبان #62 عبارتند از:
#لاحلقه ۳: معمولا هنگامی که بخواهید کاری را بدفعات مشخصی (مثلا 10 بار ) تکرار کنید از
این حلقه استفاده می شود.
لاحلقه طامید هنگامی که بخواهید عملی را تا زمان برقراری شرط معین انجام دهید. برای نمونه
خواندن داده های یک فایل تا زمانیکه به انتهای فایل برسید.
فصل دوم - آشنایی با زبان 6
18
صفحه 19:
Por ail
نز
4 4
# برای آشنایی با نحوه ی کار حلقه ی 30۳ فرض کنید تعداد معینی ایتم (مثلا ۵ تا) را می خواهید در
J us 115170 نشان دهید. برای این منظور ابتدا پروژه جدیدی را ایجاد کرده و ۳0۳1001 را مشابه زیر
طراحی کنید:
Fot Newt Loop تن
فصل دوم - آشنایی با زبان 6م
1
صفحه 20:
بل به رویداد کلیک دکمه 1,000 66[ 30۲ قطعه کد زیر را بنویسید:
تالمج ما۱
۳1
هط
t+) :0 ع> 06۱ Por (t=
3
1
}
Fern
wien مما اه بط
0 خروجی برنامه
مسا
Solita
Doli
owed oss
Gut Fen
Duta aDa Lace
فصل دوم - آشنایی با زبان ©
صفحه 21:
لو رکه گنته شد هنگامیکه تعداد دفعات تکرار حلقه معين نیست از حلقه 1۷10116 استفاده می کنیم.
نموه فرض کنید می خواهیم در یک حلقه تکرار یک عدد تصادفی,لیهولم وتا زمازیاکیلهی//عدد مخللف با
۰ است آن را در 1151183017 نمايش دهيم: سص = Qocdow r
:الم
tia =O;
| Chea the tet
:)ساسا
Process the loop ام +
< 0
white (a = dD)
a= r.Oern(O8);
:)ساسا
فصل دوم - آشنايى با زيان © 7
۱
صفحه 22:
a دستورات ۲ و هت
3
ا براى خروج ناكهانى از حلقه قبل از اينكه شرط حلقه يايان يابد از دستور 1016016 استفاده می شود.
اين دستور باعث مى شود كنترل اجراى برنامه بقية دستورهاى درون بلوك حلقه را ناديده
كرفته و به اولين دستور بيرون حلقه يرش مىكند.
لا دستور ۳8 نیز شبیه دستور #۲ است اما به جای این که حلقه را خاتمه دهد. اجرا رابه
تکرار بعدی حلقه منتقل میکند. بعبارت دیگر این دستور ادامة چرخه فعلی را لفو کرده و اجرای دور
بعدی حلقه را آغاز میکند.
Ml برای کار بیشتر با انواع حلقه ها در #67به پرنامه "1.00105" مراجعه کنید
دوم - آشنایی با زبان :#6
فصل دوم ایی با زبان 7
صفحه 23:
a متدها
دی در ۸60 علاوه بر داده دارای متدها یا توابعی است که بر روی
این داده ها عمل می کنند. این متدها امکان پردازش داده ها را فراهم می کنند.
لا دلیل استفاده از متدها اینست که امکان استفاده مجدد از کد را فراهم می آورند. برای نمونه فرض کنید متدی
را نوشته ايد که معدل یک دانشجو را از روی نمرات آن محاسبه می کند. پس از آن هر وقت نیاز به معدل دانشجو
دارید مى توانید آن را با فراخوانی اين متد محاسبه کنید و نیازی به نوشتن دوباره کد ندارید.
Ml علاوه بر اين استفاده از متد ها اشکال زدایی برنامه ها را آسانتر می کند.
مثال) متد مربوط به محاسبه مساحت دایره:
ورودی: شعاع دایره از نوع 001016
خروجی: مساحت دایره را از نوع 001016
cdicteBrea (double rach) لد
آرگومان ورودی نام متد مقدار خروجی
فصل دوم - آشنایی با زبان :46
فصل دوم ایی با زبان 7
صفحه 24:
4 متدها
2 له دو د سنا تقسیم می شوند:
۱- متدهایی که مقدار خروجی دارند. در مثال قبلی. خروجی متد از نوع 0011016 است.
۲- متدهایی که هیچ مقدار خروجی را بر نمی گردانند. لین متدها که به آنها روال می گویند. در روالها
بجای تعیین نوع خروجی از کلمه کلیدی ۷۵361 (پوچ) استفاده می شود.
|
debe يمد
تنل rem
صطم عا و۱6
sxpre = rochus * rods;
۱) t by pi
result = oqrare * Dak. 1;
MRetara te remit
retura result
—
كد متد مربوط به محاسبه
مساحت دایره
بازگرداندن مقدار خروجی
۱ 2 دستور انتهایی متد
فصل دوم - آشنایی با زبان 6
۳۴
صفحه 25:
& متدها
۶ فراخونى متد
(ه Private void bute Olck(obiert seader, BuruPres
{
ال r = (OO; فراخونی متدٍ
dbuble area = coke @rea(r); کت تسس
بو oy = "Oren oP oid ts" + aed,
Ovsrae vx. Skaw(wsy);
فصل دوم - آشنايى با زبان #C
۲۵
صفحه 26:
& ارسال به طریق ارجاع (آدرس)
1 تا اين لحظه تمام پارامترهایی که در توابع دیدیم به طريق مقدار ارسال شدهاند. یعنی ابتدا یک کپی از مقدار
متفیری که در فراخوانی تابع ذکر شده تهیه میشود و تابع بر روی این کپی عملیات را انجام می دهد.
برای مثال اگر در برنامه اصلی تابع (صطلج عاطحل)مس()صهانهاه را با مقدار ۲ فراخولنی کنیم ابتدا یک
کپی از مقدار ۲ در حافظه تهیه شده و لین مکان حافظه ۲ نامگذاری می شود. rebuke red ab
بر روی اه« عمل می کند نه ۳
ro ۰
فصل دوم - آشنایی با زبان :6«
فصل دوم ایی با زبان 7
صفحه 27:
& ارسال به طریق ارجاع (آدرس)
زب طریق مقدار باعث میشود که متغیرهای برنامة اصلی از تغیبرات ناخواسته در تولبع مصون بمانند. اما
1 گاهی اوقات عمدا میخواهیم لین اتفاق رخ دهد. یعنی میخواهیم که تلبع بتولند محتویات متغیر فرستاده شده
به آن را دس تكارى كند. در اين حالت از ارسال به طریق ارجاع استفاده میکنیم.
برلى اين كه مشخص كنيم يك بارامتر به طريق ارجاع ارسال مىشود. از كلمه كليدى #8« در كنار نوع
بارامتر استفاده مى شود. إين باعث مىشود كه تلبع به جاى اين كه يك كبى محلى از لن أركومان ايجاد
کند. خود أركومان محلى را به كار بكيرد. به ين ترتيب تابع هم مىتواند مقدار أركومان فرستاده شده يل
بخواند و هم مىتواند مقدار لن را تغيير دهد. در اين حالت أن يارامتر يك يارامتر «خواندنى-نوشتنى»
خواهد بود.
فصل دوم - آشنایی با زبان :6«
فصل دوم ایی با زبان ۷۷
صفحه 28:
& ارسال به طریق ارجاع (آدرس)
peta = OO vord swop(reP fat a, re ist b) مثال) 1
iat b = COO; {
suxp(ref a, ref b);
کلمه کلیدی ۲۳ تنها برای ارسال انواع داده ای پایه. مانند اعداد صحیح. اعشاری و رشته ها استفاده می
شود. این انواع عددی اصطلاحا انواع مقداری (عجه صاهم6 _نامیده می شوند. انواع oslo ای که توسط
کاربر یا سیستم با استفاده از کلمه کلیدی لح تعریف شده اند. بصورت پیش فرض از نوع ارجاع
wth oo (refereuer type)
فصل دوم - آشنايى با زبان 6م
فصل دوم ایی با زبان 7
صفحه 29:
4 ثابتها (صهه) داده های شمارشی (م؟)
oat است شماً در یک برنامه مقادیری معینی را به دفعات استفاده کنیدبا لستفاده از ثابتها شما می توائید
نام های مناسبی ay این مقادیر بدهید و با لستفاده از اين نام به آنها مراجعه کنید:
poset cerubk Pi = OP ISOCOS;
r){ )سس double
سس * زف retura
}
#6 بسیاری از اوقات ما به متغیرهایی نیاز داریم که مقدار آنها تنها می تولند از یک مجموعه مقادیر محدود
انتخاب شود. برای مثال جنسیت افراد تنها می تولند مرد یا زن باشد. و یا روز هفته که میتولند یکی از مقادیر
شنبه تا جمعه را داشته باشد. کلمه کلیدی 8101110 به شما این امکان را می دهد که لين نوع داده ها را
تعریف کنین
تاناسون سم
{ نوع داده شمارشی
Puesdy = O, Ordaesday = ,0 = بوطلمو()
طلس ™
“مجلس Cotta =O, ,6 - بحت
}
فصل دوم - آشنایی با زبان :46
فصل دوم ایی با زبان 1۳۹
صفحه 30:
& داده های شمارشی (۳<)
استفاده از دادم(هانی شمازتیی Grhechie اج
1
xkv)
jDasOPOerk dd, do {
dd = OasOPDerk.Guaday; surticks (dey)
WO = :رو ۳ )مرو {
nee
OaqsOPDrek.Oraday:
Il de راو
brook;
a
OarOP Orr Peed:
راو و ||
تسب
تست
تسا
}
براى كار بيشتل با ثابتها و داده های شمارشی 4 Enum", "Constant Demo" (co as,
0 مراجعه کنید.
فصل دوم - آشنایی با زبان 6
صفحه 31:
& آرايه ها
ak نمایش لیستی از داده های همنوع استفاده می شوند. با استفاده از آرایه ها شما می توانید یک گروه
آز متغیرها را ایجاد کنید و به هر یک از آنها با 1192016 دسترسى بيدا كنيد. تعریف آن در #62 بصورت زیر
5 تمریف آرایه ای از رشته ها //
jorrie] sDrray
با تعریف آرایه حافظه ای به آن اختصاص دلده نمی شود. پس از تعریف آرایه می توان با استفاده از کلمه
کلیدی 11618 به شکل زیر فضای مورد نظر را به آن اختصاص داد:
آرایه ای از رشته ها با اندازه ۵ که اندیس آن از ۰ تا ۴ تغییر می کنداا
por rrey = vew vircn[S]
می توان دوعمل فوق را در یک زمان نیز انجا داد
joie] oe Brray = ce stem]
لا بعلاوه می توان در هنگام تعریف آرایه می توان عناصرآن را مقدلر دهی اولیه کرد:
jhf] bot = ce ral] )0, 06, 06, 60, ©(
فصل دوم - آشنایی با زبان 6 zi
صفحه 32:
4
آرايه ها
i از آندیسمی توان به عناصر آرایه on پیدا کرد:
virion] 2 Orr > oir
91:
fe)
Ml برای پیمایش عناصر آرایه می توانید از هر یک از حلقه های تکرار که قبلا معرفی شد استفاده کنید. چنانچه
بخواهید تمام عناصر آرایه را پیمایش کنید استفاده از حلقه 016010 برای این منظور ساده تر و خواناتر است.
برای مثال قطعه کد زیر عناصر آرایه را پیمایش کرده و آنها را در یک 1.51۳06 به نام 1151۳061 نمایش
می دهد:
Por (iat = 5 ۱ > bot(Priccds.Lecgh; i++)
{
]ها = و رود
boon. ews Dek(s);
فصل دوم - آشنایی با زبان 6»
pire] bofPrieads 2 بو سس ) 6
۳ ۳ رو "ete" }
0 bokPriewds)
سسا مقطا 0): =
}
ry
صفحه 33:
& آرایه ها
۳ 9 مکان تعریف آرایه ها با ابعاد بزرگتر نیز وجود دارد:
وی 9 با 6 ۴و وه مه وله ||
ce rt [S, OJ; = ی رد
Qedwres 0 two-deeeusived array cod gets isitial vohies 1
:1 © ,© ,4 ) ,[ 9 ,© ,0 ) ) [] سد د مسد [يإم
ood sets inital values روص ای و وجصدامج() //
,42 ,( © ,© ) ) ,(( © ,0) ,( © ,2 ) ) ) [,] سسص - علد [, ,]اد
:1000©
Hl Deckves u cowplex ary PO xO xP xS xO weabers
ooops = cew int [C, ©, ©, 6, ©[: ] , , ب] 0
فصل دوم - آشنايى با زبان 04۱1۳ 2
3
صفحه 34:
& آرایه ها
ی نُوع از آرایه های چند بعدی در #62 آرایه های ناهموار (8070601[) معروفند. یک آرایه ناهموار دو
بعدی را می توانید جدولی در نظر بگیرید که هر سطر آن می تواند تعداد متفاوتی ستون داشته باشد:
UQele enw Ors
اه سس = srrto[][] Powties
Ioitaizes the Pirst array to Po wewbers ood sets values )1
Pexvties[O] = cew stricq[] {"Gooik", "Oow", "Dad", "Dare Phi};
seco any to G wewbers ond sets vohues لا ماه ۱۱
Pexvties[(] = caw stricql] {"Uoces", "Dow", "Dod", "Guaie", "lithe
obby"};
Ioitoizes the third array to wewbers ood sets voles )1
Poctes[C] = vew sirtoa[] { "Dilxvs", "Bert", "Bob" };
آ# برای کار بیشتر با آرایه ها به برنامه "126100 ۲/۵۲۵ مراجعه کنید.
فصل دوم - آشنایی با زبان 6 =
صفحه 35:
مدیربت ساده خطاها
رت >اتفدت.. .مو این امکان را فراهم می کنند که شما بتوانید تمام خطاهای احتمللی در پروژه را
مدیریت کنید. بدون اینکه اجرای کد شما با رخداد خطا متوقف گردد:
مثال) قطعه کد زیر شعاع یک دایره را دریافت کرده و مساحت آن را محاسبه می کند:
حم ار
:(دك "1 .سطج اسه قيب !)سطس 000 Craven.
برخم * 9.06 د ع واططل.
ز( + " 2 مسا موه
اكر كاربر يك مقدار غيرعددى را در كادرمتن وارد كند جون امكان تبديل أن به عدد وجود ندارد برنامه
دجار اشكال شده و با خطاى زير خارج مى شود:
ree eee eee
anus منهج 0006 046 aration crt.
Jule dt te sppcsn soe rede
matinee نوا
ا
فصل دوم - آشنایی با زبان 6431171
۳۵
صفحه 36:
a مدیربت ساده خطاها
22 تجلوگیری از این اشتباه می توانید از . .مط بصورت زير استفاده كنيد:
wt
cinbe r=
سم PD rub (Dextre. Nex);
cinbe = = Ooh. P1 tr ب
Orsene Ors. Skoul"Dren =" +5);
ات متس تسه
Ml در مثال بالا برنامه دستورات بخش ۲ را اجرا می کند و در صورت وقوع اشکال کنترل اجرای برنامه وارد
بخش مدیریت خطا یعنی اه می شود.
خروجی برنامه هنگامیکه کاربر مقدار غیر
عددی وارد کند
فصل دوم - آشنایی با زبان :6«
فصل دوم ایی با زبان ?+
فصل دوم – آشنایی با زبان #NET Visual C.
در ای ن فص ل بمعرف ی زبان Visual C#.NETم ی پردازیم .ابتدا
انواع داده اس تاندارد ای ن زبان و کاربرد آنه ا شرح داده م ی شود.
سپس به دستورات این زبان می پردازیم و در قالب مثالهایی آنها را
بررسی خواهیم نمود.
فصل دوم – آشنایی با زبان C#.NET
1
انواع داده ها
هنگامیکه می خواهید یک متغیر را تعریف کنید باید C#.NETاز اینکه چه مقادیری می خواهید در
آن ذخیره کنید مطلع باشد .اینکار با مشخص کردن نوع داده این متغیر انجام می شود.
داده های عددی:
نوع داده
شرح
sbyte, short, int, longاعداد صحیح بترتیب با طول 4 ،2 ،1و 8بایت
اعدا#د صحیح بدون عالمت (بزرگتر از )0بترتیب با طول ،2 ،1
byte, ushort, uint, ulong
4و 8بایت
single, doubleاعداد اعشاری ممیز شناور بترتیب با طول 4و 8بایت
decimalعدد اعشاری با ممیز ثابت با 16بایت
فصل دوم – آشنایی با زبان #C
2
داده های عددی
نکته :دقت کنید که زبان #Cنسبت به کوچکی و بزرگی حروف حساس می باشد برای نمونه intو
Intبا هم متفاوتند.
//Declare variable
;int i
تعریف متغیر صحیح و مقدار دهی به آن:
//Set number, add
numbers,
;i = 16
i = i + 8; // i = 24
برخی از عملگرهای ریاضی:
عملگر
شرح
*% ,/ ,
عملگر ضرب ،تقسیم ا#عشاری و تقسیم صحیح ،باقیمانده تقسیم
(unary( -,+
مثبت و منفی کننده
(binary( -,+
عملگر جمع و ،عملگر تفریق
فصل دوم – آشنایی با زبان #C
3
داده های عددی
عملگرهای ریاضی بهمراه نسبت دهی:
i += 8
=*=, /=, +=,-
i=i+8
برای بررسی بیشتر به برنامه IntegerMathمراجعه کنید
اعداد اعشاری:
Declare variable//
;double d
//Set number, multiply numbers,
;d = 45.34
;d *= 4.333
//divide numbers
;d /= 7
برای بررسی بیشتر به برنامه FloatingPtMathمراجعه
کنید
فصل دوم – آشنایی با زبان #C
4
رشته ها ()Strings
رشته ها نوع داده پر کاربرد دیگر هستند .یک رشته دنباله ای از کاراکترهاست که برای ذخیرهسازی اطالعات ی مانند نام ،آدرس و ...استفاده م ی شود .کاربرد دیگ ر رشته ه ا دریافت اطالعات
ورودی از کاربر و نمایش خروجی به او می باشد.
کاراکترهای تشکیل دهنده یک رشته یونیکد( )Unicodeاست و اندازه هر کدام دو بایت میباشد .بنابراین آنها عالوه بر حروف انگلیسی و سایر کاراکترهای اسکی برای نمایش حروف سایر
زبانهای طبیعی مانند عربی و فارسی و تعداد زیادی عالیم دیگر استفاده می شوند.
-تعریف رشته و مقدار دهی آن
فصل دوم – آشنایی با زبان #C
'Declare
variable
;string str
'Set the string
value
str = "Hello,
;“!world
5
رشته ها
محدودده رشته ها با استفاده از کاراکترهای " و " مشخص می شود .برای مثال در دستور
)"MessageBox.Show("Multiplication test... " + d, "Floating Points
دو عبارت " " ...Multiplication testو " "Floating Pointsرشته هستند.
اگ ر بخواهیم خود کاراکتر " را در ی ک رشت ه بیاوری م بای د قبل از ای ن کاراکتر از کاراکتر \
استفاده کنیم .برای مثال
// value of s1 equals Ali
"// value of s2 equals "Ali
فصل دوم – آشنایی با زبان #C
;“ string s1 = " Ali
""\string s2 = "\"Ali
6
عملیات برروی رشته ها
یک نوع داده یا کالس در زبان شی گرای #Cعالوه بر داده دارای متدها یا توابعی است که بر روی
این داده ها عمل می کنند .این متدها امکان پردازش داده ها را فراهم می کنند .برای نمونه یک
رشته حاوی دنباله ای از کاراکترهاست و عالوه بر آن دارای توابعی مانند تعیین زیررشته،
جستجوی یک عبارت در رشته و ...است .برای دستیابی به ویژگیها و متدها یک یک نوع داده از
عملگر نقطه استفاده می شود.
عملگر ][:برای دستیابی به کاراکترهای تشکیل دهنده یک رشته استفاده می شود .این عملگر
تنها خواندنی است .دقت کنید که اولین اندیس ،با شماره صفر مشخص می شود
;“string s = "Hello
'char ch = s[1]; //value of ch equals 'e
فصل دوم – آشنایی با زبان #C
7
عملیات برروی رشته ها
عمل ادغام :ادغام دو رشته با استفاده از عملگر +انجام می شود .برای مثال به قطعه کد زیر توجه کنید
//Set the string values
;”string str1 = "Hello
;“!string str2 = ", world
//Concatenate the strings
"!result = str1 + str2; //value of result equals "Hello, world
نکته :یک مقدار عددی را نیز می توان با یک رشته ادغام کرد دراینحالت ابتدا مقدار عددی تبدیل به
رشته می شود و سپس با رشته ی مورد نظر ادغام می گردد .برای نمونه به قطعه کد زیر توجه کنید.
Set the value//
int i = 26
"" The value of i is: " + i; // "The value of i is:26
فصل دوم – آشنایی با زبان #C
8
عملیات برروی رشته ها
تعیین طول رشته :منظور از طول رشته تعداد کاراکترهای تشکیل دهنده آن است .هر رشته دارای
ویژگی به نام Lengthاست که طول آن رشته را بر می گرداند.
//Set the string values
;“string str = "Hello
int i = str.Length; // i = 5
زیر رشته :یکی دیگر از عملیات پرکاربرد برروی رشته هاست که برای تعیین بخشی از آن رشته
که از مکان مشخصی شروع می شود ،استفاده می شود .این عمل با استفاده از متد Substring
انجام م ی شود .ای ن مت د دو پارامت ر دارد .اولی ن پارامت ر نشاندهنده مکان شروع زی ر رشت ه اس ت و
پارامتر دوم طول زیر رشته را مشخص می کند.
فصل دوم – آشنایی با زبان #C
9
عملیات برروی رشته ها
//Declare variable
string s;
//Get the text from the TextBox
s = txtString.Text;
//Display the first three characters
MessageBox.Show(s.Substring(0, 3), "Strings");
//Display the middle three characters
MessageBox.Show(s.Substring(3, 3), "Strings");
//Display the last three characters
MessageBox.Show(s.Substring(s.Length - 3), "Strings");
Cranberry: خروجی برنامه برای رشته
10
#C فصل دوم – آشنایی با زبان
عملیات برروی رشته ها
جستجو در رشته:
برای جستجوی یک کلمه یا متن در یک رشته می توانید از متد IndexOfاستفاده کنید .این متد کلمه با متن
ورودی را در رشته جستجو کرده و اولین موقعیت شروع کلمه را در رشته برمی گرداند .در صورتیکه کلمه مورد
نظر در رشته پیدا نشود مقدار خروجی این متد برابر با 1-است.
string s = "The fox jumped over the
;“wall
MessageBox.Show(s.IndexOf("fo
;))"x
نکته :عملیات متنوع دیگری نیز بر روی رشته ها انجام می شود .برای آگاهی از آنها می توانید از راهنمای
سیستم کمک بگیرید.
فصل دوم – آشنایی با زبان #C
11
نوع داده منطقی bool
داده های منطقی تنها می توا#نند یکی از دو مقدار (Trueصحیح) یا ( Falseنادرست) را داشته باشند و
بیشتر بم#نظور تصمیم گیری استفاده می شوند .برای نمونه نتیجه مقایسه برابری مقدار دو متغیر صحیح aو b
یک داده منطقی است که یا درست ( )Trueاست یا غلط ()False
تبدیل داده ها
برای تبدیل انواع داده به یکدیگر می توانید از کالس Convertاستفاده کنید .فرض کنید sیک رشته و n
یک متغیر decimalباشد.
تبدیل sبه مقدار صحیح Integer//
Convert.ToInt32(s)
تبدیل sبه مقدار اعشاری Double//
Convert.ToDouble(s)
تبدیل عدد nبه مقدار رشته ای String//
Convert.ToString(n)
.
.
.
فصل دوم – آشنایی با زبان #C
12
دستورات شرطی
عبارات شرطی مانن#د "اگ#ر هوا خوب باش#د بعدازظه#ر ب#ه پارک م#ی روی#م" در مکالمات م#ا بدفعات اس#تفاده می
شوند .در برنام#ه نویس#ی نیز م#ی توان ب#ا دس#تورات شرط#ی رون#د اجرای برنام#ه را با توج#ه ب#ه شرایط کنترل کرد .برای
این منظور دستور ifبه شکل زیر بکار می رود:
{ ) ش رط ( if
دستورات1
}
{ else
دستورات2
}
معنای دستور این است که اگر شرط برقرار بود دستورات 1را اجرا کن در غیراینصورت دستورات2
اجرا شوند .برای بیان شرط مورد نظر اغلب از عملگر های مقایسه ای (> )!= ،== ،<= ،=> ،استفاده
می شود .حاصل شرط یک مقدار trueیا falseاست .عبارا#ت شرطی را می توان توسط عملگرهای
منطقی (&& )|| ,باهم ترکیب عطفی یا فصلی کرد.
فصل دوم – آشنایی با زبان #C
13
دستورات شرطی
برای نمونه اگر مقدا#ر a = 10باشد آنگاه
a < 20 true
a > 15 false
(a < 20) && (a > 15) false
(a < 20) || (a > 15) true
b = 11
)if ( a == 20
b = b10
;= b +1
;else b = b – 1
در صورتیکه بخواهیم بیش از یک شرط را چک کنیم می توانیم از else if
استفاده کنیم
فصل دوم – آشنایی با زبان C#.NET
)If (a == 20
;b = b +1
)else if (a > 20
;b = b * 2
;else b = b – 1
14
دستورات شرطی
دس#تورات ifرا بص#ورت تودرت#و نیز
می توان نوشت برای نمونه
{)If (x == 3
;)"MessageBox.Show(“x = 3
)If (y == 6
= MessageBox.Show(“y
;)"6
}
برای مقایسه رشته ها می توانید از متد Compareمربوط به نوع داده stringاس#تفاده کنید .نتیج#ه مقایسه
دو رشته aو bبا استفاده از این متد در زیر آمده است:
if a = b
=0
if a > b
>0
if a < b
<0
)string.Compare(a,b
نکته :اگر بخواهیم دو رشته aو bرا بدون توجه به کوچکی و بزرگی حروف با هم مقایسه کنیم کافیست مقدار
پارامتر سوم متد Compareرا برابر با trueقرار دهیم ) string.Compare(a,b, true
فصل دوم – آشنایی با زبان #C
15
switch دستور
د معموال دستور#ی را انجام دهی#ر کارهای متفاوت#ک متغی#ف ی#ر مختل#ه ازای مقادی#د ب#ه بخواهی#ی ک#هنگام
برای مثال دستور زیر را در نظر بگیرید. استif جایگزین مناسبتری برای دستورswitch
If (customerName == "Bryan“)
(do something)
else if (customerName == "Stephanie“)
(do something)
else if (customerName == " Cathy“)
(do something)
else if (customerName == "Betty“)
(do something)
else (do something)
16
C#.NET فصل دوم – آشنایی با زبان
switch دستور
. می توان بصورت زیر پیاده سازی کردswitch بصورت خواناتر با استفاده از#معادل این دستور را
switch(customerName)
{
case "Bryan“:
(do something); break;
case "Stephanie“:
(do something) break;
case "Cathy“:
(do something); break;
case "Betty“:
(do something); break;
default:
(do something); break;
}
."" را بررسی کنیدSelect Demo برای آشنایی بیشتر با این دستور برنامه
17
C#.NET فصل دوم – آشنایی با زبان
حلقه های تکرار
هنگام#ی اس#تفاده م#ی شون#د ک#ه بخواهی#د کارمعین#ی را بدفعات تکرار کنید .برای نمون#ه فرض کنی#د بخواهید
معدل هر دانشجو را در ترم جاری بدست آورید .برا#ی اینکار باید عملیات مربوط به محاسبه ی معدل را برای هر
دانشجو تکرار کنید .انواع حلقه های تکرار در زبان #Cعبارتند از:
حلقه :forمعموال هنگامی که بخواهید کاری را بدفعات مشخصی (مثال 10بار ) تکرار کنید از
این حلقه استفاده می شود.
حلقه :whileهنگامی که بخواهید عملی را تا زمان برقراری شرط معین انجام دهید .برای نمونه
خواندن داده های یک فایل تا زمانیکه به انتهای فایل برسید.
فصل دوم – آشنایی با زبان #C
18
حلقه For
برای آشنایی با نحوه ی کار حلقه ی ،Forفرض کنید تعداد معینی ایتم (مثال 5تا) را می خوا#هید در
کنترل ListBoxنشان دهید .برای این منظور ابتدا پروژه جدیدی را ایجاد کرده و Form1را مشابه زیر
طراحی کنید:
فصل دوم – آشنایی با زبان #C
19
For حلقه
: قطعه کد زیر را بنویسیدFor Next Loop ر پاسخ به رویداد کلیک دکمه
//Declare counter variable
int i;
//Perform a loop
for (i = 1; i <= 5; i++)
{
//Add the item to the list
listBox1.Items.Add("I'm item " + i + “ in the list");
}
خروجی برنامه
20
#C فصل دوم – آشنایی با زبان
حلقه while
هم#انطورک#ه گفت#ه ش#د هنگامیک#ه تعداد دفعات تکرار حلق#ه معی#ن نیس#ت از حلق#ه whileاس#تفاده می کنیم.
//Declareعدد مخال#ف با
#ا زمانیک#ه ای#ن
برای نمون#ه فرض کنی#د م#ی خواهی#م در ی#ک حلق#ه تکرار ی#ک عدد تص#ادفی ا#یجاد و ت
variables
10است آن را در ListBoxنمایش دهیم:
Random r = new
;)(Random
;int n = 0
// Clear the list
;)(listBox1.Items.Clear
//Process the loop until n
= 10
)while (n != 10
{
;)n = r.Next(25
;)listBox1.Items.Add(n
}
فصل دوم – آشنایی با زبان #C
21
دستورات breakو continue
برای خروج ناگهانی از حلقه قبل از اینکه شرط حلقه پایان یابد از دستور breakاستفاده می شود.
ای#ن دس#تور باع#ث م#ی شود کنترل اجرای برنام#ه بقيۀ دس#تورهاي درون بلوك حلق#ه را ناديده
گرفته و به اوليندستور بيرون حلقه پرش ميكند.
دس#تور continueنيز ش#بيه دس#تور breakاس#ت ام#ا ب#ه جاي اين ک#ه حلق#ه را خاتم#ه ده#د ،اجرا را ب#ه
تكرار بعدي حلق#ه منتق#ل ميكند .بعبارت دیگ#ر اين دس#تور ،ادام#ۀ چ#رخ#ه فعل#ي را لغ#و کرده و اجراي دور
بعدي حلقه را آغاز ميکند.
برای کار بیشتر با انواع حلقه ها در #Cبه برنامه " "Loopsمراجعه کنید
فصل دوم – آشنایی با زبان #C
22
متدها
همانطورکه گفته شد یک نوع داده یا کالس در #Cعالوه بر داده دارای متدها یا توابعی است که بر روی
این داده ها عمل می کنند .این متدها امکان پردازش داده ها را فراهم می کنند.
دلیل استفاده از متدها اینست که امکان استفاده مجدد از کد را فراهم می آورند .برای نمونه فرض کنید متدی
را نوشته اید که معدل یک دانشجو را از روی نمرات آن محاسبه می کند .پس از آن هر وقت نیاز به معدل دانشجو
دارید می توانید آن را با فراخوانی این متد محاسبه کنید و نیازی به نوشتن دوباره کد ندارید.
عالوه بر این استفاده از متد ها اشکال زدایی برنامه ها را آسانتر می کند.
مثال) متد مربوط به محاسبه مساحت دایره:
ورودی :شعاع دایره از نوع double
خروجی :مساحت دایره را از نوع double
)(double radius
آرگومان ورودی
فصل دوم – آشنایی با زبان #C
calculateArea
نام متد
double
مقدار خروجی
23
متدها
متدها به دو دسته تقسیم می شوند:
–1متدهایی که مقدار خروجی دارند .در مثال قبلی ،خروجی متد از نوع doubleاست.
–2متدهایی که هیچ مقدار خروجی را بر نمی گردانند .ا#ین متدها که به آنها روال می گویند .در روالها
بجای تعیین نوع خروجی ،از کلمه کلیدی ( voidپوچ) استفاده می شود.
{
کد متد مربوط به محاسبه
مساحت دایره
فصل دوم – آشنایی با زبان #C
//Declare variables
;double square
;double result
//Square the radius
;square = radius * radius
//Multiply it by pi
;result = square * Math.PI
//Return the result
بازگرداندن مقدار خروجی
;return result
دستور انتهایی متد
}
24
متدها
فراخونی متد
private void button1_Click(object sender, EventArgs e)
{
double r = 100;
double area = calculateArea(r);
string msg = "Area of circle is " + area;
MessageBox.Show(msg);
}
25
فراخونی متد
#C فصل دوم – آشنایی با زبان
ارسال به طريق ارجاع (آدرس)
ن لحظ ه تمام پارامترهايي كه در توابع ديديم به طريق مقدار ارس#ال شدهاند .يعني ابتدا #ی#ک کپ#ی از مقدار
ت#ا اي
متغيري که در فراخواني تابع ذکر شده تهیه ميشود و تابع بر روی این کپی عملیات را انجام می دهد.
برای مثال اگر در برنام#ه اصلی تابع ) calculateArea(double radiusرا ب#ا مقدار rفراخوان#ی کنی#م ابتدا یک
کپ#ی ا#ز مقدار rدر حافظ#ه تهی#ه شده و ای#ن مکان حافظ#ه radiusنامگذاری م#ی شود .تابع calculateArea
بر روی radiusعمل می کند نه r
10
r
کپی
10
فصل دوم – آشنایی با زبان #C
radius
26
ارسال به طريق ارجاع (آدرس)
ارس#ال ب#ه طريق مقدار باع#ث ميشود ک#ه متغيرهاي برنام#ۀ اص#لي از تغييرات ناخواس#ته در تواب#ع مص#ون بمانند .ام#ا
گاه#ي اوقات عمدا ميخواهيم اين اتفاق رخ دهد .يعن#ي ميخواهيم ک#ه تاب#ع بتوان#د محتويات متغير فرس#تاده شده
به آن را دستکاري کند .در اين حالت از ارسال به طريق ارجاعاستفاده ميکنيم.
برا#ي اين ک#ه مشخ#ص کنيم يک پارامت#ر ب#ه طريق ارجاع ارس#ال ميشود ،از کلم#ه کلیدی refدر کنار نوع
پارامت#ر اس#تفاده م#ی شود .اين باع#ث ميشود ک#ه تاب#ع ب#ه جاي اين ک#ه يک کپ#ي محل#ي از آ#ن آرگومان ايجاد
کن#د ،خود آرگومان محل#ي را ب#ه کار بگيرد .ب#ه اين ترتيب تاب#ع ه#م ميتوان#د مقدار آرگومان فرس#تاده شده را#
بخوان#د و ه#م ميتوان#د مقدار آ#ن را تغيير دهد .در اين حال#ت آ#ن پارامت#ر يک پارامت#ر «خواندني-نوشتن#ي»
خواهد بود.
فصل دوم – آشنایی با زبان #C
27
ارسال به طريق ارجاع (آدرس)
مثال)
)void swap(ref int a, ref int b
{
;int temp = a
;a = b
;b = temp
}
;int a = 100
;int b = 200
;)swap(ref a, ref b
کلم#ه کلیدی refتنه#ا برای ارس#ال انواع داده ای پای#ه ،مانن#د اعداد ص#حیح ،اعشاری و رشت#ه ه#ا اس#تفاده می
شود .ای#ن انواع عددی اص#طالحا انواع مقداری ( )value typeنامیده م#ی شوند .انواع داده ای ک#ه توسط
کاربر ی#ا س#یستم ب#ا اس#تفاده از کلم#ه کلیدی classتعری#ف شده ان#د ،بص#ورت پیش فرض از نوع ارجاع
( ) reference typeمی باشند.
فصل دوم – آشنایی با زبان #C
28
ثابتها ( )Contantsداده های شمارشی ()Enum
ممک#ن است شم#ا در ی#ک برنامه مقادیری معینی را به دفعات استفاده کنید.با ا#ستفاده از ثابتها شم#ا می توانید
نام های مناسبی به این مقادیر بدهید و با ا#ستفاده از این نام به آنها مراجعه کنید:
;const double Pi = 3.14159265
{)double computeArea(double r
;return Pi * r * r
}
بس#یاری از اوقات م#ا ب#ه متغیرهای#ی نیاز داری#م ک#ه مقدار آنه#ا تنه#ا م#ی توان#د از ی#ک مجموع#ه مقادیر محدود
انتخاب شود .برای مثال جنس#یت افراد تنه#ا م#ی توان#د مرد ی#ا زن باشد .و ی#ا روز هفت#ه ک#ه میتوان#د یک#ی از مقادیر
شنب#ه ت#ا جمع#ه را داشت#ه باشد .کلم#ه کلیدی enumب#ه شم#ا ای#ن امکان را م#ی ده#د ک#ه ای#ن نوع داده ها را
تعریف کنید.
enum DaysOfWeek
{
نوع داده شمارشی
Monday = 1, Tuesday = 2, Wednesday = 3, Thursday
= 4,
مجموعه
Friday = 5, Saturday = 6, Sunday
=7
مقادیر
}
فصل دوم – آشنایی با زبان #C
29
)Enum( داده های شمارشی
استفاده از داده های شمارشی
void ScheduleDay(DaysOfWeek
day)
{
;DaysOfWeek d1, d2
switch (day)
d1 = DaysOfWeek.Sunday;
{
d2 = DaysOfWeek.Friday;
case
DaysOfWeek.Monday:
// do somthing here
break;
case
DaysOfWeek.Tuesday:
// do somthing here
break;
default:
break;
}
Enum" " وConstant Demo" بیشتر با ثابتها و داده های شمارشی به برنامه های
برای کار
}
." مراجعه کنیدDemo
30
#C فصل دوم – آشنایی با زبان
آرایه ها
برای نمایش لیستی از داده های همنوع استفاده می شوند .با استفاده از آرایه ها شما می توانید یک گروه
از متغیرها را ایجاد کنید و به هر یک از آنها با indexدسترسی پیدا کنید .تعریف آن در #Cبصورت زیر
انجام می شود:
تعریف آرایه ای از رشته ها //
;string[] strArray
با تعریف آرایه حافظه ای به آن اختصاص دا#ده نمی شود .پس از تعریف آرایه می توان با استفاده از کلمه
کلیدی newبه شکل زیر فضای مورد نظر را به آن اختصاص داد:
آرایه ای از رشته ها با اندازه 5که اندیس آن از 0تا 4تغییر می کند//
];strArray = new string[5
می توان دوعمل فوق را در یک زمان نیز انجام داد:
];string[] strArray = new string[5
بعالوه می توان در هنگام تعریف آرایه می توان عناصرآن را مقدا#ر دهی اولیه کرد:
};int[] list = new int[] {1, 12, 15, 20, 2
فصل دوم – آشنایی با زبان #C
31
آرایه ها
با استفاده از اندیس می توان به عناصر آرایه دسترسی پیدا کرد:
string[] strArray = new string
;][5
.
.
.
"strArray[2] = "Stephanie
MessageBox.Show(strArra
)]y[2
برای پیمایش عناصر آرایه می توانید از هر یک از حلقه های تکرار که قبال معرفی شد استفاده کنید .چنانچه
بخواهید تمام عناصر آرایه را پیمایش کنید استفاده از حلقه foreachبرای این منظور ساده تر و خواناتر است.
برای مثال قطعه کد زیر عناصر آرایه را پیمایش کرده و آنها را در یک ListBoxبه نام listBox1نمایش
می دهد:
string[] listFriends = new string[] { "Robbin",
} ";"Bryan", "Stephanie", "Sydney", "Katie
)for (int i = 0; i < listFriends.Length; i++
{
;]string s = listFriends[i
;)listBox1.Items.Add(s
}
فصل دوم – آشنایی با زبان #C
)foreach (string s in listFriends
{
;)listBox1.Items.Add(s
}
32
آرایه ها
: امکان تعریف آرایه ها با ابعاد بزرگتر نیز وجود دارد#C در
// Declares an array of 5 by 3 members
int[,] matrix = new int [5, 3];
// Declares a two-dimensional array and sets initial values
int[,] matrix2 = new int [,] { { 1, 2, 3 }, { 4, 5, 6 } };
// Declares a cubical array and sets initial values
int[, ,] cube = new int [,,] { { { 7, 2 }, { 1, 4 } }, { { 3, 5 }, { 4,
4 } } };
// Declares a complex array of 3 x 3 x 4 x 5 x 6 members
Int [, , , ,] complex = new int [2, 2, 3, 4, 5];
33
C#.NETفصل دوم – آشنایی با زبان
آرایه ها
ک آرایه ناهموار دو# ی.) معروفندJagged( ه های ناهموار# آرای#C د بعدی در#ه های چن#ک نوع از آرای#ی
:بعدی را می توانید جدولی در نظر بگیرید که هر سطر آن می تواند تعداد متفاوتی ستون داشته باشد
// Declares an array of 3 arrays
string[][] families = new string[3][];
// Initializes the first array to 4 members and sets values
families[0] = new string[] {"Smith", "Mom", "Dad", "Uncle Phil"};
// Initializes the second array to 5 members and sets values
families[1] = new string[] {"Jones", "Mom", "Dad", "Suzie", "Little
Bobby"};
// Initializes the third array to 3 members and sets values
families[2] = new string[] { "Williams", "Earl", "Bob" };
." مراجعه کنیدArray Demo" برای کار بیشتر با آرایه ها به برنامه
34
#C فصل دوم – آشنایی با زبان
مدیریت ساده خطاها
دس#تورا#ت try…catchای#ن امکان را فراه#م م#ی کنن#د ک#ه شم#ا بتوانی#د تمام خطاهای اح#تمال#ی در پروژه را
مدیریت کنید ،بدون اینکه اجرای کد شما با رخداد خطا متوقف گردد:
مثال) قطعه کد زیر شعاع یک دایره را دریافت کرده و مساحت آن را محاسبه می کند:
= double r
;)Convert.ToDouble(TextBoxRadius.Text
;double s = 3.14 * r * r
;)MessageBox.Show("Area = " + s
اگ#ر کاربر ی#ک مقدار غیرعددی را در کادرمت#ن وارد کن#د چون امکان تبدی#ل آ#ن ب#ه عدد وجود ندارد برنامه
دچار اشکال شده و با خطای زیر خارج می شود:
فصل دوم – آشنایی با زبان C#.NET
35
مدیریت ساده خطاها
برای جلوگیری از این اشتباه می توانید از try…catchبصورت زیر استفاده کنید:
{ try
= double r
;)Convert.ToDouble(TextBoxRadius.Text
;double s = Math.PI * r * r
;)MessageBox.Show("Area = " + s
}
{catch
;)"!MessageBox.Show("Wrong Number
}
در مثال باال برنام#ه دس#تورات بخ#ش tryرا اجرا م#ی کن#د و در ص#ورت وقوع اشکال کنترل اجرای برنامه وارد
بخش مدیریت خ#طا یعنی catchمی شود.
خروجی برنامه هنگامیکه کاربر مقدار غیر
عددی وارد کند
فصل دوم – آشنایی با زبان #C
36