More Related Content Similar to Jozve c#2 mohamady_zahedy Similar to Jozve c#2 mohamady_zahedy (20) Jozve c#2 mohamady_zahedy2. زاهدی-محمدی
سازی برنامه جزوه2
2
مطالب تکمیل و یادآوری :اول فصل
سازی برنامه در1مانند محیطی در توان می را برنامه .شد گفته برنامه نوشتن روشNotePadسپس و نوشتدرسطرفرمانی پوشه به ورود با
برنامهبرنامه از استفاده با وCSC.exeروش این .نماییم کمپایل را نظر مورد برنامهبسیاروقتگیراستوعیبیابیبرنامههایبزرگنیزدشوار
است.
روشدیگریکهمیتوانبرایتولیدفایلاجراییبرنامهاستفاده،کرداستفادهازیکمحیطبرنامهنویسیمتمرکز(IDE)استکهبراینوشتن
وعیبیابیراحتتربرنامه،هاطراحیشدهافزار نرم از یک سازی برنامه در .استVisual StudioنسخهExpressبود رایگان کهنمودیم استفاده ،.
البتهIDEشوند می استفاده منظور بدین که باشند می نیز دیگری های.مانندSharpDevelopو دارد باز متن و رایگان نویسی برنامه محیط که
به نسبت نیز آن حجمVisual Studio.باشد می کمتر
امکانIntelliSense(SenseIntelligent)درVS:
یکیازامکاناتارزشمنددرهنگامنوشتنباشد می برنامهکهدرهنگامتایپدستورات،برنامهبانوشتنچندحرفازنامدستور(نام،کالس،متد)...
منویالیستیظاهرمیشودکهدرآنناممتدهاودستوراتمرتبطنشاندادهشدهاندسرعت ویژگی این .نوشتن.برد می باال را برنامه دستورات
.دارد زیادی تاثیر دستورات امالی صحیح نوشتن در همچنینکلید زدن باTAB.گیرد می قرار برنامه در نظر مورد دستور فاصله یازدن با البته
کلیدCTRL+Space.شود می ظاهر لیست نیز
های گزینه زیر مسیر از بودن غیرفعال صورت در و باشد می فعال خودکار بصورت ویژگی اینAuto list membersوParameter informationرا
نمود فعال باید:
ToolsOptionsText EditorC# General
کلید برنامه اجرای برایF5(Start Debugging)یاCtrl+F5(Start Without Debugging).کنید انتخاب راچیست؟ کلید دو این تفاوت
: داده نوع تبدیلType Casting
.شود می مشخص اش داده نوع توسط متغیر هر گنجایش و اندازه( ضمنی تبدیلimplicitامکان صورت در شارپ سی در یکدیگر به داده انواع )
گیرد می انجام.نوع متغیر مثالintنوع متغیر به راdoubleیاfloatیاlongیاdecimalام )شود می انجام ضمنی نمود(بصورت واگذار توان میا
نوع متغیر توان نمیintنوع متغیر به راulongیاshortیاchar.نمود واگذار
: توجه
نوع متغیر توان نمی گاه هیچ ضمنی تبدیل درdouble.نمود واگذار دیگر نوع متغیر به را
نوع متغیر ضمنی تبدیل درfloatرانوع متغیر به توان می فقطdouble.نمود واگذار
نوع متغیر توان نمی گاه هیچ ضمنی تبدیل درdecimal.نمود واگذار دیگر نوع متغیر به را
یا صریح تبدیل از توان می مشکل این رفع برایtype Casting.نمود استفاده
ت جهت ویژگی اینصریح بصورت دیگر نوع به نوعی بدیلاگر مثل بعنوان .شود می استفادهxنوع ازbyteیاshortدستور باشدx=x+1;دارد خطا
نوع از فرض پیش بصورت صحیح اعداد شارپ سی در زیراint(4بایت)باشند میدانیم می طرفی از ومبز گنجایش با قدارردر توان نمی را گتر
سایز با متغیرداد قرار کوچکتر.نمود استفاده نوع تبدیل از توان می مشکل این رفع برای.
عبارتمبدأ)نوعدادهمقصد(مقصد متغیر =
اگر پسXنوع ازshort(2باشد می صحیح زیر دستور باشد )بایتx=(short)(x+1);
مثال1:
int i = 2; float f = 4.6f; double d = 0.58e1;
i = (int)f + (int)d; Console.WriteLine(i); //9
i = (int)(f + d); Console.WriteLine(i); //10
f = (float)(i + d); Console.WriteLine(f); //15.8
مثال2:
char x = 'B'; int a = 2;
a = --x + a; Console.WriteLine("{0} ** {1}", a, (char)a); //67 ** C
دستور آیا ،شده ارائه مطالب به توجه با )سوالage=age+1;و++age;هستند؟ هم شبیه دقیقا
3. زاهدی-محمدی
سازی برنامه جزوه2
3
نکته1:روش اینرانوع تبدیل برایبه خاصیای رشتهعکس بر ونمود استفاده توان نمی.
نکته2:عددی به ای رشته نوع تبدیل برایکراکتری یامتد از بایدParseکرد استفاده.
string s = Console.ReadLine();
short x = short.Parse(s);
نکته3:نوع هر تبدیل برایمتد از ای رشته نوع به ای رشته غیر ی دادهToString()شود می استفاده.
string s; double d = 12.5;
s = d.ToString();
نکته4:اگرمتدParseنتواندکند تبدیل نظر مورد نوع به ای رشته از را داده،اجرا زمان خطای،شود می متوقف برنامه و شد خواهد داده.مثال
string s = "12a3";
int i = int.Parse(s);
صورت این درتوان میبهجایاستفادهازمتدParse،ازمتدTryParseاستفاده.شوداینمتداگرتبدیلانجامشود،مقدارتبدیلشدهرابه
ورودیدومخودمیریزدواگرموفقبهتبدیلعددنشودخطاییرانمایشنمیدهدوبرنامهراقطعنمیکندبلکهباتولیدیکمقدارمنطقی
False،مشکلدرتبدیلعددرابهاطالعبرنامهنویسمیرساندوبرنامهنویسبادریافتاینمقدارمتوجهمیشود.
:شود می صادر مناسب پیغام نکند وارد عدد ، داده ورود هنگام کاربر زیر برنامه در اگر ،مثال عنوان به
string s = Console.ReadLine();
int i;
if (int.TryParse(s, out i))
Console.WriteLine("{0} is valid Number",i);
else
Console.WriteLine("{0} is invalid number",s);
نکته5:متد درTryParseکلمه نوشتنoutکند می دریافت را مقداری پارامتر این که است مفهوم این به و است ضروری عددی متغیر از قبل.
نکته6تابع خروجی نگیرد انجام درست تبدیل عمل اگر :falseعددی پارامتر محتوای همچنین و،.باشد می صفرانجام درستی به تبدیل عمل اگر
متد این خروجی ،شودtrue.گیرد می قرار عددی متغیر در شده تبدیل عدد و است
برنامه.دهد نمایش را اعداد مجموع انتها در سپس بگیرد کاربر از عدد تعدادی بنویسید ای برنامه :
)الفکاربر اگرحا کرد وارد منفی عددبرسد پایان به برنامه و دهد نمایش را جمع صل
پیغام باشد نامعتبر کند می وارد کاربر که عددی اگر )بInvalid.شود داده
string s; bool b;
int n, sum = 0;
while (true)
{
s = Console.ReadLine();
b = int.TryParse(s, out n);
if (b == true)
{
if (n < 0)
break;
else
sum += n;
}
else
Console.WriteLine("{0} is invalid number", s);
}
: نمایش الگوی
متد در که شد گفته قبالWriteیاWriteLineمثال داد نمایش خاصی الگوی با را ها داده توان می
Console.WriteLine("{0}+{1} is {2}", 12, 18, 12 + 18); // 12 + 18 is 30
توان میالگووطریقهینمایشعبارتوهمچنینترازچپوراسترانیزدرصورتنیازمعینکنیم.
{الگوینمایش:عدد،تراز}شماره
شود می شروع صفر از که شود داده نمایش خواهیم می که است پارامتری شماره ، شماره از منظور.
4. زاهدی-محمدی
سازی برنامه جزوه2
4
منظورازعددتراز،تعدادفضایخالیاستکهدرصفحهنمای،شجهتنمایشمقدارمتغیریاعبارت،اختصاصدادهمیشوداگر .
غیر در و چین چپ نظر مورد مقدار باشد منفی مقدار این.شود می چین راست اینصورت
دهد می انجام را خاصی کار کدام هر که باشد می کراکتر تعدادی شامل نمایش الگوی.
Console.WriteLine("{0,5}*{1,-5}", 12,13);// 12*13
Console.WriteLine("{0:p} {1:C} {2:E} {2:F}",100,200,300,400);//10,000.00 % $200.00 3.000000E+002 300.00
Console.WriteLine("{0:D} {1:G} {2:N} {2:X}", 14500, 14500, 14500, 14500);// 14500 14500 14,500.00 38A4
در اگر : توجهپنجرهکدنویسیکلیکراستکردهوازمنوییکهظاهرمیشودگزینهInsert Snippetراانتخابگزینه سپس و کنیدVisual C#
کنید انتخاب رامنوییظاهرمیشودکهدستوراتوکلماترزروشدهزبانسیشارپرامی نشاندهددستورات تایپ و جزییات حفظ به نیازی لذا .
!ندارید
: تایی سه عملگر
عملگر?دستور بجای توان می و است معروف تایی سه عملگر بهif.نمود استفاده آن از: است صورت بدین آن کلی شکل
مقداردوم:مقدارّلوا?(عبارتمنطقی)
منطقی عبارت اگرtrue.است دوم مقدار خروجی وگرنه است اول مقدار خروجی باشد
برنامهپیغام بود زوج اگر بگیرد عددی بنویسید ای برنامه :"even"در وغپیغام صورت این یر"odd"دهد نمایش را.
روش1:
int x = int.Parse(Console.ReadLine());
string st;
st = (x % 2 == 0) ? "even" : "odd";
Console.WriteLine(st);
روش2:
int x = int.Parse(Console.ReadLine());
Console.WriteLine( (x % 2 == 0) ? "even" : "odd");
دستورات یادآوریwhile , for:
تمریناز استفاده بدون )ifاز عدد سهو کنید دریافت کاربر.دهید نمایش را آنها کوچکترین و بزرگترین
FormatSpecifier
مقدارپولیخاصیکمحلC
انواعصحیحintegerD
نمادعلمیE
نقطهاعشارثابتF
اعدادعمومیG
نقطهاعشارثابتباجداکنندهکاماN
اعداددارایدرصدP
مبنای عدد16X
int x = int.Parse(Console.ReadLine());
string st;
if (x % 2 == 0)
st = "even";
else
st = "odd";
Console.WriteLine(st);
int x,sum = 0;
for (int i = 1; i < 10;i++ )
{
x = int.Parse(Console.ReadLine());
sum += x;
}
Console.WriteLine(sum / 10);
int digits=0,
n=int.Parse(Console.ReadLine());
while (n > 0){
int r = n % 10;
digits++;
n /= 10;
}
Console.WriteLine(digits);
int k = 10;
while (k > 0)
Console.WriteLine(k--);
5. زاهدی-محمدی
سازی برنامه جزوه2
5
دستورconst:
برایتعریفشناسهیانامثابتازکلمهکلیدیconstاستفادهمیشود.مقاد ها ثابتیبا که هایی ثابت .کنند نمی تغییر برنامه در که هستند ری
دستورconstشو تعریفن.داد تغییر برنامه در توان نمی را دًالمعمونامیکهبرایشناسهیثابتتعریفمیشودباحروفبزرگنوشتهمیشود
تادربرنامهمشخصباشدکهاینیک ،شناسهمقدارثابت.استی نحوهتعریفثابت،هامانندتعریفمتغیرهامیباشدبااینتفاوتکهدرابتدای
تعریفآنهاکلمهconstقرار.دارد
const int SIZE=12;
SIZE++; // error
متغی همانند را ها ثابتنمود تعریف برنامه هرکجای در توان می ر.
سوال:چیست؟ مقابل دستور خطای علت
const int x = 3;
{
int x = 12;
x++;
}
:تو در تو های حلقه
.شوند می نامیده متداخل های حلقه ،گیرد قرار دیگری تکرار دستور داخل در تکرار دستور یک اگر
ع بهی حلقه ،بیرونی حلقه اجرای بار هر ازای به روبرو دستورات در مثال نوان
.شود می اجرا )چهاربار (کامل طور به داخلی
برنامهکه بنویسید ایی برنامه :دهد؟ نمایش را ضرب جدول
تمرین1آورید؟ بدست را زیر برنامه خروجی :
تمرین2را زیر برنامه خروجی :آورید؟ بدست
تمرین3:دهید؟ نمایش را زیر های خروجی تو در تو های حلقه از استفاده با
int a,b;
for (a = 1; a <= 6; a++) // بیرونی حلقه
{
for (b = 1; b <= 4; b++)// داخلی حلقه
Console.Write("*");
Console.WriteLine();
}
int i,j;
for (i = 1; i <= 10; i++)
{
for (j = 1; j <= 10; j++)
Console.Write("{0,4}",i*j);
Console.WriteLine();
}
for (int i = 1; i <= 4; i++)
{
for (int j = 4; j >=1; j--)
Console.Write("{0,2}", (i==j)?1:0);
Console.WriteLine();
}
for (int a = 1; a <= 5; a++)
{
for (int b = 1; b < a; b++ )
Console.Write("{0}+",b);
Console.WriteLine(a);
}
*****
****
***
**
*
6. زاهدی-محمدی
سازی برنامه جزوه2
6
کراکتر:
درزبانهایبرنامه، شارپ سی و سی نویسیکاراکتر،یککاراکترخاصومعنیدار.استهرگاهاین،کاراکتردررشتهایدیده،شودکاراکتر
بعدیآناثروعملکرد،خاصیجدایازظاهری شکلآندارد.بهعبارتدیگرکاراکتر،سببتغییرعملکردکاراکتربعدیمی.شودبههمین
به دلیلاینمجموعهکاراکترهاکهکاراکتراولودومیکاراکتردیگری،استدنبالهفرار(Escape Sequence)گفتهمیشود.
عملکرددنباله
هشدار بوقBeepa
کاراکتر حذفBackspaceb
خالی خط ایجادNew Linen
زیاد افقی فاصلهTabt
کوتیشن تک ایجاد'
کوتیشن دابل ایجاد"
اسلش بک ایجاد
سطر ابتدای به رفتنEnterr
مثالها:
Console.WriteLine(""test""); //"test"
Console.WriteLine("This is a htest"); //error
Console.WriteLine("This is a test"); //This is a est
Console.WriteLine("Projectbuild"); //Projecuild
Console.WriteLine("I am na teacher.bbrtest"); // I am
testache.
Console.WriteLine("test""); // error
string st = "this is "test".nI am atstudent.";
Console.WriteLine(st);
تمرین4آورید؟ بدست را روبرو برنامه های خروجی :int a, b;
for (a = 1; a < 10; a++)
for (b = 0; b < 10; b = b + 2)
Console.WriteLine(a * 100 + b * 10 + a);
7. زاهدی-محمدی
سازی برنامه جزوه2
7
دوم فصلآرایه :
تع از استفاده ،باشد داده ،زیادی تعداد ی ذخیره به نیاز برنامه یک در اگر .کند داری نگه خود در را مقدار یک فقط تواند می متغیر هرم دادیتغیر
.شود می استفاده آرایه از حالت این در .نیست مناسب متفاوت های نام با،آرایهیک با و هستند هم سر پشت که حافظه از هایی خانهقابل نام
.باشند می دسترسیسلول تعدادی آرایه واقع درنام همونوع هم.شوند می شروع صفر از ها اندیس .است اندیس دارای سلول هر که است
: گیرد انجام مرحله دو در باید آرایه تعریف
اول مرحله:;ناممتغیرآرایه[]نوعداده
دوم مرحله:]اندازهآرایه[نوعدادهnewمتعیرآرایه =
.یابد می تخصیص آن برای حافظه ،آرایه طول شدن مشخص با دوم مرحله در و شود می تعیین آرایه نوع اول مرحله در
با را مرحله دو توان میادغام یکدیگرکرد تعریف زیر بصورت و نمود:
int[] x =new int[10];
آرایه عناصر به دسترسی:خانه محتوای خواهیم می کنید فرضیاندیس3عدد را15خا چهارمین (یعنی بدهیمنمی شروع صفر از چون ه
).شود
x[3]=6;
x[5]=x[3]+8;
x[x[3]]=x[5]+2;
دارند؟ مقداری چه ،اند نشده مقداردهی هنوز که آرایه عناصر بقیه شما نظر به )سوال
ی حلقه از توان می آرایه یک عناصر چاپ و دریافت برایfor.کرد استفاده
)برنامهکه بنویسید ایی برنامه10دهید؟ نمایش را آنها اول به آخر از سپس و کند دریافت کاربر از عدد
که بنویسید ایی برنامه )برنامه10کند؟ چاپ را هستند بیشتر آنها میانگین از که اعدادی سپس و کند دریافت کاربر از عدد
float[] x = new float[10]; string st;
float sum = 0f, average;
for (int i = 0; i < x.Length; i++) {
st = Console.ReadLine();
x[i] = float.Parse(st);
sum += x[i];
}
average=sum/x.Length;
Console.WriteLine("Average = {0:n}", average);
for (int i = 0; i < x.Length; i++)
if (x[i] > average)
Console.WriteLine("{0:n}", x[i]);
: مثال نمود هم اولیه مقداردهی تعریف بهنگام را آرایه توان می
int[] x=new int[10] {19,23,45,74,13,26,44,77,20,36};
9876543210
36207744261374452319
:مثال .آورد می بدست را آرایه طول شارپ سی اولیه مقداردهی طریق از و نکرد تعیین آرایه تعریف بهنگام را آرایه طول توان می
int[] y=new int[] {24,17,60,19,25,12,43};
6543210
43122519601724
543210
2928135512934
9876543210
16146
)مثال
int [] x;
x=new int[10];
int[] m = new int[10];
for (int i = 0; i < 10; i++)
m[i] = int.Parse(Console.ReadLine());
8. زاهدی-محمدی
سازی برنامه جزوه2
8
int[] z= {19,23,45,74,13,26};
int []z=new int[5]{45,13,12,55,99,66}; //error
عملگر از روش این در :دیگر روشnew.شود نمی استفاده
int[] c = { 45, 13, 52, 17 };
)نکتهآرایه ایجاد از بعد.کنید کم یا و اضافه آن به عنصری توانید نمی یعنی دهید تغییر را آن اندازه توانید نمی ،
نکته)درزبانشارپ سی،آرایه عناصر به دسترسی هنگام درمحدودهاندیسآرایهکنترلمیشودونبایدازعددصفرکمتروهمچنینازاندازه
آرایهبیشتریامساوی.باشداگربرنامهنویساشتباهکندواندیسباالتریرااستفادهکنددرهنگامترجمهبرنامهباخطاآرایه محدوده سرریزی ی
روبررومیشود.:مثال
int [] k=new int[10]; k[10]=45; // error
نکته)ویژگی ازlengthآورد بدست اجرا زمان در را آرایه طول توان می..lengthآرایه متغیر نام
نکته)باشد متغیر تواند می آرایه تعریف بهنگام آرایه طولآرایه طول حالت این در ..شود می تعیین برنامه اجرای زمان در:مثال
int n=int.Parse(Console.ReadLine());
int[] s=new int[n];
نکته)منفی تواند نمی آرایه های خانه تعدادیا.باشد اعشاری
نکته)خطای شود گرفته نظر در صفر آرایه خانه تعداد اگراستفا بهنگام ولی شود نمی صادر یآرایه از ده.شود می داده اجرا زمان خطای
float[] x = new float[0];
x[0] = 1f; // Runtime Error
)تمرینآورید؟ بدست را زیر های برنامه خروجی
که بنویسید ایی برنامه )برنامهتعدادیاز عددذ آرایه یک در و کند دریافت کاربرکند خیره)شود می تعیین کاربر توسط آرایه (طولس .پس
.دهید نمایش و محاسبه را اعداد میانگین و کوچکترین و بزرگترین
حلقه دستورforeach
دستورforeachحلقه بجای توان می راforدستور .کنیم استفادهforeachهر رویی داده نوع .شود می تکرار شمارش قابل داده از عنصرarray
وstring.هستند شمارش قابل
foreach( داده نوع متغیر نام in آرایه نام )
دستور ;
توان می نیز دستور این ازنمرات نمایش و آرایه پیمایش برای باال مثال در .نمود استفاده ها مجموعه یا آرایه پیمایش برایبیشترمیان ازمی گین
: نمود استفاده نیز زیر دستور از توان
foreach (float item in x)
if (item < average)
Console.WriteLine("{0:n}", item);
متغیرitem)شود نمی استفاده اندیس از (دهد می نشان را آرایه عناصر از یکی حلقه اجرای بار هر در
حلقه از آرایه های سلول دریافت برای توان می آیا )سوالforeachکرد؟ استفاده
int[] F = new int[10];
F[0] = F[1] = 1;
for (int i = 2; i < 10; i++)
F[i] = F[i - 2] + F[i - 1];
for (int i = 0; i < F.Length; i++)
Console.Write("{0} ",F[i]);
int[] T = new int[10];
T[0] = 1;
int x = int.Parse(Console.ReadLine());
for (int i = 1; i < T.Length ; i++)
T[i] = T[i - 1] * x;
for (int i = 0; i < T.Length; i++)
Console.Write("{0} ",T[i]);
int[] T = new int[6];
T[0] = 1;
for (int i = 1; i < T.Length ; i++)
T[i] = T[i - 1] * i;
for (int i = 0; i < T.Length; i++)
Console.Write("{0} ",T[i]);
9. زاهدی-محمدی
سازی برنامه جزوه2
9
.دهد نمایش آن در را فاصله کاراکترهای تعداد سپس بگیرد کاربر از ای رشته بنویسید ای برنامه : مثال
int count=0;
string st = Console.ReadLine();
foreach (char ch in st)
if (ch == ' ')
count++;
Console.WriteLine("Count Space in {0} = {1}", st, count);
برنامهو بزرگ حروف تعداد سپس و کند دریافت کاربر از رشته یک که بنویسید ایی برنامه ).دهید نمایش و محاسبه را آن کوچک حروف تعداد
حبابی سازی مرتب(sortBubble):
سازی مرتب های روش از یکیاست حبابی روش ،ها دادهوجود نیز روش این از تر سریع و بهتر های روش باشد(البته می ابتدایی و ساده خیلی که
روش مانند داردسازی مرتب)سریع
درالگوریتممرتبسازیهموارهدوعملمقایسه(compareو )جابهجایی(swap)انجاممیشود.
دارای ای آرایه اگرnباید روش این در باشد عنصر تاn-1مرحله)(فاز.شود مرتب آرایه تا شود طی
مرحله1نبود درست آنها ترتیب اگر و شود می مقایسه لیست عدد دومین با لیست عدد اولین روش این در )،یعنی (.کنیم می عوض را آنها جای
)باشد بزرگتر دومی از اولی عدد اینکه
ف (لیست انتهای تا را کار این و .کنیم می عوض را آنها جای نبود درست آنها ترتیب اگر و کنیم می مقایسه سومی عدد با را دومی عدد سپسرض
که است این برNخ به بزرگتر عدد .دهیم می ادامه )دارد سلول تاانهNمانند (رود می ام)حباب یک
مرحله2کنیم می عوض را آنها جای نبود درست آنها ترتیب اگر و کنیم می مقایسه دوم خانه با را اول خانه و کنیم می شروع اول خانه از دوباره )
خانه کارتا این و ......... و شوند می مقایسه سوم وعدد دوم عدد سپس وN-1سلول در بعدی بزرگتر عدد دوم مرحله از بعد .کند می پیدا ادامه
.گیرد می قرار آخر به یکی
خانه تا که تفاوت این با است دوم مرحله مانند نیز سوم مرحله )سوم مرحلهN-2.شود می انجام
اگرآرایهداریNباشد سلول تاN-1.داشت خواهیم مرحله
کنید؟ صعودی مرتب حبابی روش به را روبرو آرایه )مثال
مثال این درمجموعا15و مقایسه عمل10است گرفته صورت جابجایی عمل
اگر حبابی سازی مرتب روش در کلی بطور )نکتهآرایهدارایNبه عنصرباشد تا
تعدادN(N-1) / 2می انجام مقایسه تا.شود
91317101812
654321
91317101812
91317101812
91317181012
91318171012
91813171012
18913171012
مرحله1:5.است داده رخ جابجایی چهار و مقایسه عمل
654321
18913171012
18913171210
18913171210
18917131210
18179131210
مرحله2.است داده رخ جابجایی سه و مقایسه عمل چهار :
654321
18179131210
18179131210
18179131210
18171391210
مرحله3است داده رخ جابجایی عمل یک و مقایسه عمل سه :
654321
18171391210
18171391210
18171312910
مرحله4.است داده رخ جابجایی یک و مقایسه عمل دو :
654321
18171312910
18171312109
مرحله5.است داده رخ جابجایی یک و مقایسه یک :
10. زاهدی-محمدی
سازی برنامه جزوه2
10
آرای نظمی بی به بتگیببس و کرد ببهبمحاس توان نمی دقیقا را حبابی روش در ها جابجایی تعداد )نکتهتعداد حداکثر که گفت توان می ولی دارد ه
جابجایی صفرتا هم دهد.(حداقل رخ نیز جابجایی یک شود می انجام که ایی مقایسه هر یعنی است ها مقایسه تعداد اندازه به ها جابجایی عمل)
تع برابر ها جابجایی تعداد کنیم صعودی حبابی روش به را آن بخواهیم و باشد نزولی ایی آرایه اگراست ها مقایسه داد)حالت (بدترین.
یک بخواهیم اگر )سئوالآرایه10شود؟ می انجام مقایسه عمل چند کنیم مرتب حبابی روش به را عنصری
)الف9)ب15)ج50)د45
.است کند حبابی سازی مرتب روش )نکته
که بنویسید ایی برنامه )برنامهnدهد؟ نمایش سپس و مرتب صعودی صورت به و کند دریافت کاربر از عدد تا
باشد؟ داشته باید تغییری چه فوق برنامه نزولی صورت به سازی مرتب برای )سوال
بود خواهد صورت چه به سوم فاز از بعد آرایه کنید مشخص و کنید مرتب حبابی روش به را روبرو آرایه )سوال
:آرایه در جستجو
از منظورو خطی جستجوی .کنیم می تشریح درس این در را جستجو نوع دو .است آرایه در )خاص(کلید عنصر یک کردن پیدا ،آرایه در جستجو
.دودویی
خطی جستجویLiner Search:
جستجو کلید که مقداری با آرایه عضو خطی،هر جستجوی درSearch Keyمو در خطی جستجوی .شود می مقایسه شود می نامیدههای آرایه رد
.ندارد بهینه کارایی مرتب و بزرگ های آرایه برای ولی کند می عمل خوب نشده مرتب یا کوچک
این غیر در رسد می پایان به کار شد پیدا اگر شود می مقایسه آرایه دادة اولین با )شود جستجو است قرار که ایی داده (کلید روش این درصورت
م مقایسه آرایه دادة دومین با.یابد می ادامه آرایه پایان تا کار این و شود ی.شود قطع باید جستجو عمل ،شد پیدا کلید موقع هر که کنید دقت
کلید اگر )مثال12)خطی روش به ( شود؟ پیدا کلید تا شود می انجام مقایسه عمل چند زیر آرایه در باشد
باال مثال در .شود می تمام جستجو کار و کند می پیدا را کلید اولین کنیم جستجو خطی روش به باشد کلید از مورد چند آرایه در اگر )نکتهدو
عدد12اولین اما دارد وجود12.شود می تمام کار و شود می پیدا است ششم خانه در که
آرایه که نیست الزم خطی جستجوی روش این در )نکته.باشند نزولی یا صعودی آرایه در ها داده یعنی باشد شده مرتب ما
.شود می انجام یکبار مقایسه عمل خطی جستجوی حالت بهترین در )نکتهخطی جستجوی حالت بدترین در،های خانه تعداد بهآرایهعمل
.شود می انجام مقایسهاگر بنابراینآرایهNباشد داشته عنصر تاNان مقایسه عملمتوسط حالت شود.در می جامN/2می انجام مقایسه عمل
)گیرند می قرار مقایسه مورد آرایه اعضای نصف میانگین (بطور .شود
دارای ای آرایه اگر )سئوال20شود؟ می انجام مقایسه عمل چند متوسط و بدترین در خطی جستجوی روش در باشد عنصر
int n = int.Parse(Console.ReadLine());
int[] M = new int[n];
for (int i = 0; i < n; i++)
M[i] = int.Parse(Console.ReadLine());
for (int i = n - 1; i > 0; i--)
for (int j = 0; j < i; j++ )
if(M[j]>M[j+1]) // مقایسه
{
int temp = M[j]; // جابجایی
M[j] = M[j + 1];
M[j + 1] = temp;
}
foreach (int item in M)
Console.Write("{0} ",item);
212171912711141310
11. زاهدی-محمدی
سازی برنامه جزوه2
11
)برنامه
شود می زمان اتالف سبب روش این به بزرگ های آرایه در جستجو.شود می زیاد بسیار مقایسه دفعات تعداد زیرا
باینری جستجوی)(دودوییBinary:
روش اینفقط.است اجرا قابل مرتب های آرایه روی بر.کرد مرتب را آن باید ابتدا باشد نامرتب آرایه که صورتی در
را کلیدی خواهیم می و داریم )بزرگ به کوچک (از صعودی مرتب آرایه یک که کنید فرض:کنیم جستجو باینری روش به آن در
کنیم می نصف وسط از را آرایه:دهد رخ است ممکن حالت سه که کنیم می مقایسه آرایه وسط عنصر با را کلید و
(باشد بزرگتر وسط عنصر از کلید )الفKey > A[C]سمت نیمه در کلید حتما است )(صعودی مرتب لیست اینکه به توجه با حالت این در : )
را.کرد نخواهیم جستجو را چپ سمت نیمه و کنیم جستجو را راست سمت نیمه باید ما و است ست
راست سمت نیمهوسطچپ سمت نیمه
چپ سمت نیمه در کلید حتما است مرتب صعودی صورت به آرایه اینکه به توجه با حالت این در :است کوچکتر آرایه وسط عنصر از کلید )ب
سمت نیمه باید و است.کرد نخواهیم جستجو را راست نیمه و کرد جستجو باید را چپ
.شود می متوقف جستجو عمل و است شده پیدا کلید حالت این در .باشد آرایه وسط عنصر مساوی کلید حالت بهترین در )ج
به .دهیم می ادامه راست یا چپ سمت نیمه در را جستجو عمل دهد رخ ب یا الف های حالت از کدام هر اگرنیمه یا چپ سمت نیمه دیگر عبارت
ع دوباره و کنیم می نصف وسط از دوباره را راست سمت.کنیم می تکرار آن روی را باال مل
آرایه اگر روش این در1000مقایسه یک با باشد داشته عنصر500و گذاریم می کنار را آن عنصر500مقایسه با .کنیم می جستجو را دیگر تای
بعدی250دی عنصر.است زیاد بسیار جستجو سرعت دلیل همین به .... و گذاریم می کنار را گر
ایی آرایه اگر )سوال1000حداکثر دودویی جستجوی در باشد داشته عنصرشود؟ می انجام مقایسه چند
سوالآرایه )ایدارای18چ خطی و دودویی روش به کلید یک جستجوی حالت بهترین و حالت بدترین در است عنصرمی انجام مقایسه عمل ند
شود؟
بزنید!؟ حدس دودویی جستجوی در ها مقایسه تعداد حداکثر برای ریاضی رابطه یک توانید می آیا )سوال
int i; bool flag = false;
int n = int.Parse(Console.ReadLine()); // آرایه طول
int[] arr = new int[n];
for (i = 0; i < n; i++) // آرایه دهی مقدار
arr[i] = int.Parse(Console.ReadLine());
int key=int.Parse (Console.ReadLine()); //کلید دریافت
for (i = 0; i < n; i++ ) // خطی جستجوی
if (arr[i]==key)
{
flag = true;
break;
}
if (flag)
Console.WriteLine("{0} Found in {1} ", key, i);
else
Console.WriteLine("{0} not Found!", key);
12. زاهدی-محمدی
سازی برنامه جزوه2
12
:آرایه در دودویی جستجوی )برنامه
ابتدا که بنویسید ایی برنامه )برنامهnعدد سپس و کند ذخیره و دریافت کاربر از را عدد تاxکنید؟ مشخص آنرا تکرار تعداد و دریافت را
ابتدا که بنویسید ایی برنامه ) برنامهnرا اعداد نهایت در .کنید مرتب نزولی صورت به را ها داده سپس و کند دخیره و دریافت کاربر از را عدد تا
.شود داده نمایش یکبار فقط تکراری اعداد بطوریکه کنید چاپ
تست1)دعمل چه زیر ستورمی انجام یدهد؟int[] coin=new int[] {500,1000,2000,5000};
می قرار آن در ترتیب به را شده داده اعداد و کرده ایجاد عنصر پنج با آرایه یک )الف.دهد
می قرار آن در ترتیب به را شده داده اعداد و کرده ایجاد عنصر چهار با آرایه یک )ب.دهد
می قرار آن در اول به آخر از را شده داده اعداد و کرده ایجاد عنصر پنج با آرایه یک )ج.دهد
می قرار آن در اول به آخر از را شده داده اعداد و کرده ایجاد عنصر چهار با آرایه یک )د.دهد
تست2)مرتب الگوریتم هر درو .......................... عمل دو همیشه سازیمی انجام .........................شود
)الفCompare–Swap)بSearch–Compare)جSearch–Swap)دCompare–Search
تست3)است؟ صحیح آرایه با رابطه در زیر جمالت از کدامیک
از آرایه اندیس )الف1می شروع.شوداز بعد )بمی آرایه ایجاد.داد تغییر را آرایه اندازه توان
نمی آرایه ایجاد از بعد )ج.کرد کم یا اضافه آن به عنصری تواندستور از آرایه ایجاد برای )دcreateمی استفاده.شود
تست4)نام به آرایه یک از پانزدهم عنصر به دسترسی برایlistاست؟ صحیح گزینه کدام
)الفlist[15])بlist[]15)جlist[]14)دlist[14]
int i;bool flag = false;
int n = int.Parse(Console.ReadLine()); // آرایه طول
int[] arr = new int[n];
for (i = 0; i < n; i++) // آرایه دهی مقدار
arr[i] = int.Parse(Console.ReadLine());
Array.Sort(arr); // آرایه سازی مرتب
int key=int.Parse (Console.ReadLine()); // کلید دریافت
int first=0, last=n-1, middle=0;
while(first >= last)
{
middle = (first + last) / 2; // آرایه وسط محاسبه
if (arr[middle] == key)
{
flag = true;
break;
}
else
if (arr[middle] > key)
last = middle - 1;
else
first = middle + 1;
}
if (flag)
Console.WriteLine("{0} Found in {1} ", key, middle);
else
Console.WriteLine("{0} not Found!", key);
13. زاهدی-محمدی
سازی برنامه جزوه2
13
: سوم فصلداده،شمارشیکالسومتد
نوعدادهشمارشی1:
دادهشمارشیازدادههایمرکباستکهخودشاملسری یکدادهسبب شمارشی داده نوع از استفاده .استباالبردنخواناییبرنامهمی.شوند
نوعدادهشمارشیمجموعهایازچندنامدلخواهمیباشدکهحالتهاومقادیرمختلفموضوع یکرانشانمی.دهدًالمثبرایروزهایهفتهبه
جایاعداداز هفت تا یکنامهاومعنی کلماتداراستفادهمی.کنیمعالوهبرروزهای،هفتهبراینامماههای،سالمدرکتحصیلیاشخاصنیز
میتوانازنوعدادهشمارشیاستفاده.کرد
برایتعریفیکنوعدادهشمارشیازکلمهکلیدیenumاستفادهمی.شوددسترسی نوعًالمعموpublicاست.محلقرارگیریتعریفنوعداده
،شمارشیًالمعموخارجازکالسودرابتدایبرنامهاست.
دسترسی نوع enum دلخواه نام
{
ها نام از لیستیکلمات و
}
: مثال.هستند ثابت عدد یک با معادل شمارشی داده نوع اعضای از یک هر)ندارد وجود لیست انتهای در ویرگول (نقطه
public enum DayOfWeek
{
sat,Sun, Mon,Tue, Wedn,Thurs,Fri
}
شمارشی داده نوع مثال این درdayofWeekارزش که باشد می مقدار هفت شاملsatبرابر0ارزش وSun... و یک برابرمی البته که باشد می
.داد تغییر را آنها عددی ارزش توان
public enum DayOfWeek
{
Sat=1,Sun, Mon,Tue, Wedn,Thurs,Fri
}
ارزش مثال این درSat.باشد می قبلی از بیشتر واحد یک بعدی اعضای عددی ارزش و یک برابر
این توان مینوعتعر نیز زیر بصورت راینمود ف:
public enum DayOfWeek
{
Wedn=5,Sat=1, Mon=3, Sun=2,Tue=5, Fri=7, Thurs=6
}
شود مقداردهی سپس و شود تعریف نوع این از متغیری باید ابتدا نوع این از استفاده برای.مثال:
DayOfWeek d;
d = DayOfWeek.Thurs;
Console.WriteLine(d);
نکته1)متد داخل نباید نوع اینMainنمود تعریف کالس از خارج یا کالس داخل توان می اما گردد تعریف.
نکته2)را شمارشی متغیر محتوایتوان نمیباشد مقادیر همان از یکی باید حتما و داد قرار رشته یا عدد(بزرگ و کوچک حروف به حساسیت).
نکته3).نمود استفاده تفریق یا جمع عملگر از توان می فقط شمارشی نوع متغیر در
نکته4))!!!!!کرد(؟؟؟ دریافت ورودی از توان نمی را داده نوع این
نکته5)درکتابخانهنت دات،آماده شمارشی های دادهمانندConsoleColor.دارد وجود نیز
: مثال
public enum DayOfWeek {
sat=1,Sun, Mon,Tue, Wedn,Thurs,Fri
}
static void Main(string[] args)
{
DayOfWeek d;
1
Enumerated Type
public enum CAR {
Peykan, Pride, Samand, Benz, BMW
}
14. زاهدی-محمدی
سازی برنامه جزوه2
14
d = 3; //error
d = DayOfWeek.Thurs;
Console.WriteLine(d); // Thurs
d++;
Console.WriteLine(d); // Fri
Console.WriteLine((int)d); // 7
d += 100;
Console.WriteLine(d); // 107
d = DayOfWeek.Mon - 2;
Console.WriteLine(d); // sat
d -= 3;
Console.WriteLine(d); // -2
d = int.Parse(Console.ReadLine()); // Error
d = (DayOfWeek) int.Parse(Console.ReadLine()); //ok type casting
if (d == DayOfWeek.Fri)
Console.WriteLine(" تعطیل ");
if (d == 7) // Error
Console.WriteLine(" تعطیل ");
}
: کالس
،کالستعریف،مشخصاتوضعیتورفتارهاییکشئدر رابرداردونوعشئرامشخصمی.کندنام است (بهتر،کالسمطابقبانامشئباشد
کهحال درتعریفآنهستیمبرنامه .)یک قالب در را شی یک رفتارهای و وضعیت و مشخصات یعنی .کند تعریف را کالس یک تواند می نویس
.)است ندارد(انتزاعی خارجی وجود و است تعریف فقط کالس که باشید داشته توجه .کند می تعریف کالس
امکا و اشیاء رفتارهای و ها ویژگی تعریف امکان آنها در که نویسی برنامه های زباننسبت و ارتباط یکدیگر با اشیاء و است شده فراهم اشیاء ایجاد ن
گرا شی زبانهای ،دارند واکنش هم به2.شوند می نامیدهنویسی برنامه های زبانC#،C++ها زبان این به که هایی برنامه .هستند گرا شی جاوا و
.هستند تعامل و ارتباط در یکدیگر با که شود می تشکیل شی تعدادی از واقع در شوند می نوشته
ء شی(object: )
،شی.شود می )(ساخته متولد که باشد می کالس از ای نمونه.کرد ایجاد شی زیادی تعداد توان می کالس یک ازک.کند می مشخص را شی نوع الس
یکشئشاملتعدادی،ویژگی،وضعیترفتاروعملیاتاستآن کهراازاشیایدیگرمتمایزمیسازد.همچنینبررویهرشئنیزعملیاتیمی
توانانجامداد.
نام و خانوادگی نام و نام .شود گرفته نظر در شی یک تواند می آموز دانش یک کارنامه )مثالوضع و است کارنامه های ویژگی نمرات و دروسیت
.شود می گرفته نظر در کارنامه روی بر عملیات معدل محاسبه یا نمرات کردن چاپ ،نمرات کردن وارد .باشد رد ،قبول تواند می کارنامه
ببرید؟ نام را آن های عملیات و ها ویژگی ،شود گرفته نظر در شی یک کالس سیاه تخته اگر )سوال
برایحلیکمسئلهبهروششئ،گراتشخیصاشیاءوارتباطآنهابایکدیگربسیاراهمیتدارد.
ویژگیهاووضعیتیکشئبهوسیلهتعدادیمتغیرکهفیلدنامیدهمی،شوندمشخصمیشودورفتارهایاشیاءدرقالبمتدهاتعریفمیگردند.
محلومکانتعریففیلدهاومتدهاییکشئدرداخلیککالساست.
کالس مثال بعنوانconsoleهای ویژگی دارایTitle , Capslock , Cursorsize , ….
باشد می
ویژگیTitleنوع ازstringوقابلیتget , setدارد را.
ویژگیCapslockنوع ازboolوقابلیتgetفقطدارد را.
ویژگیCursorsizeنوع ازintوقابلیتget , setدارد را.
2
Object Oriented Language
15. زاهدی-محمدی
سازی برنامه جزوه2
15
: متد(Method)
،متدمجموعهایازدستوراتاستکهبرایانجامیکعملخاصویک حلمسئلهکوچکبهکارمیرودم .تداشته خروجی و ورودی تواند می د
.باشدمحلتعریفهرمتددرداخلیککالساستومتدجزییازیککالساست.برنامههاییکهتاکنوننوشتهایمداراییککالسومتدی
نام بهMainبودهاند.
هر،متدازدوقسمتتشکیلمیشود:1-عنوانمتد.است متد اول خط :2-بدنهمتدمتد داخل دستورات :
توصیفکننده:(Modifier)
خطعنوانیکمتدباکلمهایشروعمیشودکهروشایجادومحدودهدسترسیبهمتدرامشخصمیکند.بهعنوانمثالتوصیفکنندهstatic،
روشایجادمتدرامشخصمیکندونشانمیدهدکهبهمحضاجرای،برنامهچنینمتدیساختهشدهوقابلاستفادهاست.
: از عبارتند کننده توصیف نوع چهارstatic, private, protected, public
متدMain()هموارهبایدازنوعstaticباشداگرتوصیفکنندهstaticرا،ننویسیدمترجمدرترجمهبرنامهخطامیدهد.تماممتدهایآمادهای
کهتاکنوناستفادهکردهایدنظیرReadLineنیزازنوعاستاتیکهستندکهدرکالسConsoleازقبلتعریفشدهاند.استفادهازمتدهایstatic
سادهاست.
توصیفکنندههایدیگرینظیرprivateوprotectedوجوددارندکهبهوسیلهیآنهامیتوانمحدودهدسترسیبهمتدرابهیککالسمحدود
کردویابااستفادهازتوصیفکنندهpublicمحدودهدسترسیبهیکمتدرابسیارگستردهودر،واقعبدونمحدودیتمعینکرد.
متدهایReadLine()وWriteLine()باتوصیفکنندهpublicتعریفشدهاندوبههمیندلیلاستکهمیتوانیددرهربرنامهای(هرکالسی)از
آنهااستفادهکنید.
اگرهیچتوصیفکنندهایبرایتعیینمحدودهدسترسییکمتدذکرنشود،نوعدسترسیprivateبهطورپیشفرضبرایمتددرنظرگرفته
میشود)خصوصی (.
اگر.نیست استفاده قابل آن از خارج و است استفاده قابل است شده تعریف آن در متد که کالسی همان در فقط متد این آنگاه باشد خصوصی متدی
(عمومی متدی اگر اماpublic.است استفاده قابل نیز ها کالس بقیه در باشد )
مقدارخروجییانوعدادهبرگشتیمتد:(Return type)
درخطعنوان،متدپسازتوصیفکننده،هامقدارخروجییانوعدادهبرگشتیمتدمشخصشود می.منظوراز،مقدارخروجیآنچهکهروی
صفحهنمایشچاپمیشودنیستبلکهمقداریاستکهازطریقمتد اجرایقابلدریافتاستومیتوانآنرادریکمتغیرذخیرهکرد.
مانندReadLineخروجی کهstringم بعضی اما داردتمتد مانند ندارند خروجی دهاwriteLineنوع از آن خروجی کهvoidخروجی معموال باشد می
متدMain()نیزvoidنوع از اما باشد میintه.باشد تواند می م
)مثال
)نکتهممکناستیک،متدمقدارخروجیویامقدارورودینداشتهباشد
ناممتد:
static int test(float x, byte y)
{
// دستورات
}
17. زاهدی-محمدی
سازی برنامه جزوه2
17
چهارم فصل:کاربامتدهاوکالسهایآماده
از تعدادی نیز قبال .کرد استفاده آنها از توان می که دارد وجود آماده قبل از متد و کالس زیادی تعداد شارپ سی سازی برنامه زبان دره کالسو ا
ب را آماده های متدکالس مانند .اید گرفته کارConsoleمتد یاWriteLineغیره وکتابخانه در ..Net Frameworkآماده متد و کالس زیادی تعداد
.کنیم می معرفی را آماده کالس سه فصل این در .دارد وجود
کالسMath
نام فضای در کالس اینSystemدارد قرار.برایانجاممحاسباتریاضیعالوهبرچهارعمل،اصلینیازبهعملگرهایدیگرینظیرو توانیاعمل
جذروغیرهمیباشدکالس های متد از توان می کهMath.نمود استفاده
اینتوابعبهصورتمتدهایاستاتیکدرکالسMathتعریفشده.اندبهمحضنوشتننامکالسMathوعالمت،نقطهلیستیازمتدهایکالس
MathبهوسیلهیIntelliSenseنشاندادهمیشود
متدPow()
ورودیهایاین،متددوعددxوyازنوعاعشاریبادقتباالاستمتد خروجی .نیزیکاعشاری عدددقتباشد می باالکهحاصلxبهتوانy
است.
مثال1:25
double number = Math. Pow (5, 2);
Console. WriteLine (number);
مثال2:
Console. WriteLine (Math.Pow (5, 2)(;
مثال3:
Math.Pow (5, 2);
دستور این5توان به2.کند نمی استفاده آن خروجی از اما کند می محاسبه را
)نکتهنام به ثابتی کالس این درPIآن مقدار که دارد وجود3.14159265358979323846به ای دایره مساحت محاسبه برای مثال .باشد می
شعاع5.3:نویسیم می
double a = Math.PI * Math.Pow(5.3, 2);
:رادیان به درجه تبدیل فرمولرادیان)/180=درجه*PI)
سزاویه سینوس )والی30کنید؟ محاسبه شارپ سی با را درجه
)نکتهMath.PI.متد یک نه است ثابت یک
for (int i = 0; i < 10; i++)
Console.WriteLine(Math.Pow(2, i));
18. زاهدی-محمدی
سازی برنامه جزوه2
18
Console.WriteLine(Math.Max(100.8, 100.81)); //100.81
Console.WriteLine(Math.Max(-25, -20)); //-20
Console.WriteLine(Math.Min(10, 10)); //10
Console.WriteLine(Math.Min(-100, -200)); //-200
Console.WriteLine(Math.Pow(3, 3)); //27
Console.WriteLine(Math.Pow(-2, 3));//-8
Console.WriteLine(Math.Round(18.6));//19
Console.WriteLine(Math.Round(18.5)); //18
Console.WriteLine(Math.Round(18.55));//19
Console.WriteLine(Math.Sqrt(225)); //15
Console.WriteLine(Math.Sqrt(200)); //14.142135623731
Console.WriteLine(Math.Truncate(70.83)); //70
Console.WriteLine(Math.Truncate(-8.54)); //-8
Console.WriteLine(Math.Abs(70.83)); //70.83
Console.WriteLine(Math.Abs(-70.83)); //70.83
چیست؟ زیر کدهای قطعه خروجی
A) Console.Write(Math.Round(11.5)); 12
B) Console.Write(Math.Truncate(34.765));
C) Console.Write(Math.Sqrt(64));
D) Console.Write(Math.Log(25,5));
E) Console.Write(Math.Max(Math.Pow(2,3),Math.Pow(2,4)));
int[] arr = { 25, 13, 32, 11, 17, 8, 21, 14, 19, 14 };
int min=arr[0]; // مقدار دهی با عنصر اول آرایه
foreach (int x in arr)
min = Math.Min(min, x);
Console.WriteLine(min);
19. زاهدی-محمدی
سازی برنامه جزوه2
19
کالسtringS:
همانطورکهدربرنامهمیتوانمتغیریبراینگهداریدادههایعددیتعریف،کردداده برایهایرشتهاینیزمیتوانمتغیریازنوعstring
تعریفکرد.ایننوعدادهدرواقعکالس یکاستومتغیریکهازایننوعتعریفمیشوداشارهبهای آرایهازکاراکترهامیکند.
Strintg st="Computer";
Console.write(st[3]); // p
.باشیم داشته دسترسی رشته یک کاراکترهای به توانیم میSt[0] 'C'
نکته:تغییرناپذیرییکرشته:پسازاینکهیکرشتهدرحافظهایجاد،شدآن محتویاتقابلتغییر.نیستبهعبارتدیگریکرشتهپساز،ایجاد
تغییر(ناپذیرImmutable).استاین دلیلاستکههربارکهرشته متغیرایمقداردیگریمیگیردمانندایناستکهدوبارهتعریفشدهاست
نمی پسیک توانیمحرفازآنراتغییردهیم.دستور پسst[1]='d'; //errorدستور اما دارد خطاst="test".ندارد خطا
اینمتدهارویخودرشتهتأثیرنمیگذارندبلکهیکرشتهدیگربرمی.گردانندمحتوای بنابراینمتغیررشتهایراتغییرنمیدهند.
: مثال
string s = "This is a test";
Console.WriteLine(s.ToLower()); //this is a test
Console.WriteLine(s.ToUpper()); //THIS IS A TEST
Console.WriteLine(s.Insert(0, "Note,")); //Note,This is a test
Console.WriteLine(s.Length); //14
Console.WriteLine(s.IndexOf("i")); //2
Console.WriteLine(s.IndexOf("I")); //-1
Console.WriteLine(s.Replace("This","it"));//it is a test
Console.WriteLine(s.Replace("This is", "we have"));//we have a test
Console.WriteLine(s.CompareTo("This is a test")); //0
Console.WriteLine(s.CompareTo("A")); //1
C o m p u t e r
p.CompareTo(s)
p>s 1
p < s -1
p == s 0
به حرف مقایسه برایمی مقایسه رشته دو حرف
اعداد که است صورت این به مقایسه ترتیب و شود
نسبت کوچک حروف و هستند حروف از کوچکتر
.هستند کوچکتر ،بزرگ حروف به
"A" > "a" "ABC">"ali"
20. زاهدی-محمدی
سازی برنامه جزوه2
20
Console.WriteLine(s.CompareTo("U")); //-1
)سوالکنید تعیین را زیر های کد قطعه خروجی ،زیر متغیر اعالن به توجه با؟
string s = "I am a student.";
A) Console.Write(s[5]);
B) Console.Write(s.Replace("a","A")); I Am A student.
C) Console.Write(s.IndexOf(" "));
D) Console.WriteLine(s.CompareTo("i am a student"));
E) Console.Write(s.Insert(7,"computer "));
کالسArray:اد نیز کالس ینامتدهای رایخاصیمتدهای آرایه در جستجو و سازی مرتب برای کالس این .باشد می ها آرایه روی بر کار برای
:است زیر صورت به متدها این از برخی .دارد مناسب
string[] st = new string[6];
st[0] = "reza"; st[1] = "ali";st[2] = "amir";
Null Null Null Null Null Null
0 1 2 3 4 5
Reza ali amir karim hadi amir
0 1 2 3 4 5
21. زاهدی-محمدی
سازی برنامه جزوه2
21
st[3] = "karim"; st[4] = "hadi"; st[5] = "amir";
int x = Array.IndexOf(st, "amir"); Console.WriteLine(x);//2
x = Array.LastIndexOf(st, "amir"); Console.WriteLine(x);//5
x = Array.BinarySearch(st, "karim"); Console.WriteLine(x);//-1
Array.Sort(st);
x = Array.BinarySearch(st, "karim");
Console.WriteLine(x); //4
Array.Reverse(st);
string[] ss = new string[4];
Array.Copy(st, ss,4); ss
Array.Clear(st,1,2);
)تست
1-شمارشی داده اگرvalueچیست؟ زیر کد قطعه خروجی ،باشد شده تعریف زیر صورت به
)الفabcd)ب0123
شود نمی چاپ چیزی )د شود می صادر خطا پیغام )ج
2-متغیر و باشیم داشته را روبرو کد قطعه اگرxنوع ازlevelاست؟ نادرست گزینه کدام .باشد شده تعریف
)الفx=level.a;)بx=(level)0;)جx=0;ج و ب )د
3-دارد؟ خطا دستور کدام زیر کد قطعه در
)الف1)ب2)ج3)د4
4-متغیر مقدارaاست گزینه کدام؟
)الف1)ب-1)ج0خطا )د
ali amir amir hadi karim reza
0 1 2 3 4 5
reza Karim Hadi Amir Amir ali
0 1 2 3 4 5
reza Karim Hadi Amir
0 1 2 3
reza null null Amir Amir ali
0 1 2 3 4 5
public enum value { a, b, c, d };
value test;
for (test = value.d; test <= value.a; test++)
Console.Write(test);
public enum level { a, b, c };
const byte a = 25; //1
a++; //2
byte r = a + 10; //3
const byte A = 350 / 10; //4
string s = "CSHARP";
int a = s.IndexOf("x");
22. زاهدی-محمدی
سازی برنامه جزوه2
22
استودیو ویژوال از استفاده با ویندوزی های برنامه ایجاد
متد از برنامه اجرای کنسولی های برنامه درMainشوند می اجرا خط به خط دستورات و شود می شروعبه کنسولی های برنامه اجرای روند .
:است زیر صورت
های برنامه درویندوزیمتد از برنامه اجرای نیزMainرویداد یا اتفاق تا ماند می منتظر برنامه که تفاوت این با شود می شروعی(Eventرخ )
دهد.
.است داده رخ اتفاق یک که دهد نشان تا شود می داده برنامه به عامل سیستم طرف از که است اطالع یک رویداد
کلید و شود وارد ها داده تا شود می متوقف برنامه اجرا ،رسیم می داده دریافت دستور به وقتی کنسولی های برنامه درEnter.شود زده
یکتفاوتدیگربینبرنامهویندوزیوکنسولیایناست،کهبرنامههایویندوزیپسواکنش ازبهرویدادهاوانجامعملیات،مربوطهًامجدددر
حالتانتظاربرایرویدادبعدیبهسرمیتا برنددرنهایتکاربرازبرنامهخارجگردد.
بهاینترتیبهنگامیکهکاربربررویکلیدیباماوسکلیکمی،کنداینرویدادازسیستم طریقعاملشناساییمیشودوازطرفسیستم
عاملیکپیامبهبرنامهفرستادهمیشودومتدEHمربوطبهآنرویدادکهًالقبنوشتهایمبهطورخودکاراجرامی.شودطبیعیاستکهاگر
برنامهمتدی فاقدبراییکرویداد،باشدهرچقدرکهسیستمعاملپیامبفرستدبرنامهدرمقابلآنواکنشینخواهد نشانداد.
متدها این به ،شوند اجرا رویدادی هر دادن رخ ازای در که نویسد می متد تعداد نویس برنامه ،ویندوزی های برنامه در پسEvent Handler
.شود می گفته
متد که کنسولی های برنامه برخالف و دارد کاربر به بستگی نیز متدها اجرای ترتیبMainه برنامه در شود می اجرا آخر تا اول ازبا ویندوزی ای
.شود می اجرا متد یک ،دهد می انجام کاربر که عملی به توجه
شکلکلییکمتدEHبهصورتزیر: است
void متد پیام(نام فرستنده ، پیام )جزئیات
{
رویداد به واکنش دستورات
}