تارا فایل

جزوه آموزش برنامه نویسی به زبان C


 بسم اللّه الرحمن الرحیم

آموزش برنامه نویسی به زبان
C#

1- مقدمه
#C از دو زبان C++ و Java متولد شده است! حاوی بسیاری از جنبه های C++ می باشد اما ویژگی های شیء گرایی خودش را از جاوا به ارث برده است.
هدف از طراحی #C
مایکروسافت در مصاف با جاوا، بدنبال ارائه یک زبان کامل بود که سایه جاوا را در میادین برنامه نویسی کم رنگ تر نماید.
مزایای زبان های .Net نسبت به نسخه های قبلی:
* ویژگی Multiplatform: این ویژگی به برنامه تولید شده در سایر زبان ها امکان می داد که بتوانند با یکدیگر ارتباط برقرار کنند، مثلا اینکه بتوان درVB از کدنویسی C# و یا بالعکس استفاده کرد.
* مستقل بودن برنامه نویسی تحت وب: مهمترین ویژگی .net مستقل بودن برنامه نویسی تحت وب آن است، که برای این منظور Asp.Net که یک ویژگی جدید است بوجود آمده است و امکان ایجاد پایگاه داده امن مبتنی بر وب را بوجود آورده است. این زبان به برنامه نویسان امکان می دهد تا برنامه های کاربردی ایجاد نمایند و به صورت گسترده بر روی مجموعه ای نظیر سیستم های موبایل توزیع کنند.
* این زبان به برنامه نویسان اجازه می دهد تا برنامه های کاربردی ایجاد کنند،که بصورت گسترده ای برروی مجموعه ای متنوع از وسایل موبایل توزیع گردد.
* برنامه نویسان قادر به همکاری در یک پروژه نرم افزاری با نوشتن کد به زبانهای مختلف .netمی باشند
* .Net framework :
در نسخه های قبل از Visual Studio.net زمانی که کاربر قصد انتقال فایل های خود را به کامپیوتر مقصد داشت، باید کلیه فایل های DLL مربوط را که در این زمینه وجود داشت، را به کامپیوتر مقصد انتقال می داد که این امر مشکلاتی را به همراه داشت. فایل های DLL حجم زیادی را اشغال می کردند که باعث می شد ساده ترین برنامه ها هم حجم زیادی را اشغال کنند. پس از انتقال فایل های DLL به کامپیوتر مقصد ممکن بود بعضی از فایل های DLL مبدا و مقصد با هم همخوانی نداشته باشند. جهت حل این مشکلات Microsoft نسخه جدیدی به نام .Net Framework را بوجود آورد. این برنامه تمام DLL های مربوط را در خود داشت که از دو قسمت تشکیل شده است:
1- کتابخانه کلاس های .Net framework
2- هسته اجرایی زبان مشترک CLR (Common Language Runtime)
کتابخانه کلاس ها: کتابخانه کلاس ها حاوی کد هایی از زبان های مختلف visual studio.net می باشد. تمام کلاس های موجود در visual studio.net در .net framework موجود است، به طوریکه در صورت وجود داشتن .net framework روی کامپیوتر مقصد یک برنامه به راحتی قابل اجراست.
هسته اجرایی زبان مشترک CLR :
به شکل زیر دقت کنید:

MSIL: زبان مشترک تمام زبان های .net است. (Microsoft Intermediate Language)
CLR: MSIL را گرفته و به زبان ماشین تبدیل می کند.
2- سبک های برنامه نویسی:
1 برنامه های سنتی (متنی)
2 برنامه های ساخت یافته
3 برنامه های شی گرا
برنامه های سنتی: برنامه هایی که در آنها برنامه از هیچ نظم و ترتیبی برخوردار نمی باشد. وتمام وظایف و قسمتها برنامه در کنار هم و بدون هیچگونه بخش بندی و تفکیک نوشته می شوند.
برنامه های ساخت یافته: برنامه به یک سری زیر برنامه هایی نظیر Procedure و Function تقسیم می شود. مانند Pascal .
برنامه های شی گرا: در این نوع، یک سری شی یا object از پیش تعریف شده در برنامه وجود دارد که این object ها حاوی Data Structure های مربوط به خود می باشند و کاربر خود را درگیر خصوصیات داخلی شی نمی کند بلکه می تواند تنها با دادن مقدار به ویژگی های شی آنها را تنظیم کند. از مزیت های این روش می توان به کد نویسی کمتر اشاره کرد

3- انواع داده در #C

4- معرفی متغیر ها در برنامه
Variable type variable name ;
Intx,y;
String ds;
Char myletter='a';
5- تعریف ثابت در برنامه
Consttype name=value;
Const byte x=100;

6- انواع عملگر در c#

7- اولویت عملگرها درc#

عملگر سه تایی:اگر شرط درست باشد،true نتیجه می شود، واگر غلط باشد غلط نتیجه می شود.
[condition] ? [true expression] : [false expression]
int x = 10;
int y = 20;

System.Console.WriteLine( x> y ? x : y );
نتیجه می شود : 20می شود یعنی عبارت غلط
OR
if ((10 < 20) || (20 < 10))
System.Console.WriteLine("Expression is true");

bool flag = true; //variable is true
boolsecondFlag;

secondFlag = !flag; // secondFlag set to false

AND
if ((10 < 20) && (20 < 10))
System.Console.WriteLine("Expression is true");
XOR
if ((10 < 20) ^ (20 < 10))
System.Console.WriteLine("Expression is true");
8- عملگر افزایش و کاهش
x = x + 1; // Increase value of variable x by 1

x = x – 1; // Decrease value of variable y by 1
x++; Increment x by 1

x–; Decrement x by 1

int x = 9;
int y;
y = x–;
در این عبارت ابتدا متغیر x به y نسبت داده می شودسپس مقدار xیک واحد کاهش می یابد.
در عبارت y=–xابتدا x یک واحد کاهش می یابد سپس x به y نسبت داده می شود.
9- ملاحظات (comments)

ملاحظات اغلب برای ارائه اطلاعات توصیفی درباره برنامه به کار می روند و در زمان کامپایل توسط کامپایلر نادیده گرفته می شوند .
هدف از درج ملاحظات درون برنامه
* به عنوان مستندات عملکرد برنامه
* یادآوری کد نوشته شده در ارجاعات بعدی
* درک بهتر و سریعتر برنامه توسط دیگران
* نگهداری سوابق ویرایش های برنامه
در #C سه نوع ملاحظات وجود دارد :
9-1- ملاحظات تک خطی: comment //
9-2- ملاحظات چند خطی :
*/
comments
/*
9-3- ملاحظات مستند سازی : XML DOC ///

10- ساختار شرطی
10-1- ساختار شرطی if
if (boolean expression) {
// C# code to be performed when expression evaluates to true here
}
مثال :تابع شرطی if
int x = 10;

if ( x > 9 )
{
System.Console.WriteLine ("x is greater than 9!");
}
10-2- ساختار شرطیif … else ..
if (boolean expression) {
// Code to be executed if expression is true
} else {
// Code to be executed if expression is false
}
مثال:
int x = 10;

if ( x > 9 )
{
System.Console.WriteLine ("x is greater than 9!");
}
else
{
System.Console.WriteLine ("x is less than 9!");
}
10-3- ساختار شرطی else if
مثال:
int x = 9;

if (x == 10)
{
System.Console.WriteLine ("x is 10");
}
else if (x == 9)
{
System.Console.WriteLine ("x is 9");
}
else if (x == 8)
{
System.Console.WriteLine ("x is 8");
}
10-4- ساختار Switch
switch (value)

{
caseconstant:

statements

break/jump

caseconstant:

statements

break/jump

default:

statements

break/jump{

مثال:
static void Main()
{
string carModel;
string carManufacturer;

System.Console.Write ("Please Enter Your Vehicle Model: ");

carModel = System.Console.ReadLine();

switch (carModel)
{
case "Patriot":
case "Liberty":
case "Wrangler":
carManufacturer = "Jeep";
break;
case "Focus":
carManufacturer = "Ford";
break;
case "Corolla":
carManufacturer = "Toyota";
break;
default:
carManufacturer = "unknown";
break;
}

System.Console.Write("Manufacturer is " + carManufacturer);

}
}

11- بکارگیری حلقه ها
11-1- حلقه for
هنگامی که تعداد تکرار ها مشخص و معین باشند، از این ساختار استفاده می شوند.
ساختار آن عبارتست از:
for ( ''initializer''; ''conditional expression''; ''loop expression'' )
{
statements to be executed
}
مثال:
int j = 10;
int sum=0;
for (int i = 0; i < 100; i++)
{
sum += j;
System.Console.WriteLine("sum = " + sum);
}

System.Console.ReadLine();
مثال:دستور For بی نهایت بار تکرار می شود.
for (; ; )
{
System.Console.WriteLine("Hello from C#");
}
11-2- دستور Break
نکته مهم در باره دستور Break این است که در صورتیکه این دستور در حلقههای تودر تو استفاده شود . هرنقطه یک حلقه که از این دستور استفاده شود، فقط از حلقه فعلی خارج می شود.ولی همچنان کار خود را در حلقه دوم ادامه میدهد.به عنوان مثال در این برنامه:
for (int i = 0; i < 100; i++)
{
System.Console.WriteLine ( "i = " + i);

for (int j = 0; j < 10; j++)
{
if (j == 5)
break;

System.Console.WriteLine ( "j = " + j);
}
}
خروجی این برنامه به ازاء i های صفر تا 99مقادیر j را به صورت 0تا 4 چاپ می کند.
11-3- دستور Countinue
زمانی که دستور countinue در جایی از حلقه استفاده می شود، دستورات باقیمانده را نادیده گرفته و دوباره از ابتدای حلقه کار را ادامه می دهد.
for (int i = 1; i < 10; i++)
{
if ((i % 2) != 0)
continue;

System.Console.WriteLine ( "i = " + i);
}
}
خروجی : 2و4و6 و8 می باشد.
12- دستور While
while (''condition'')
{
// C# statements go here
}
مثال:
intmyCount = 0;

while ( myCount< 100 )
{
myCount++;
}
13- حلقه Do..while
جهت تکرار مجموعه ای از دستورات بکار می رود.با این تفاوت که شرط در انتها چک می شود.
یعنی برای بار اول دستور اجرا می شود سپس شرط را چک می کند.
do
{
// C# statements here
} while (''conditional expression'')
مثال:
int i = 10;
do
{
i–;
} while (i > 0)
خروجی از نه تا صفر چاپ می کند.
14- تعریف آرایه
به مجموعه ای از مقادیر که دارای یک نوع می باشند، و با یک متغیرپردازش می شوند. و هر عضو درون آرایه از طریق یک اندیس قابل دستیابی است.
ایجاد آرایه روش های مختلفی دارد:
با مقدار دهی اولیه:
string[] myColors = {"red", "green", "yellow", "orange", "blue"};
سایز آرایه در زمان ایجاد آن مشخص می شود:
string [] myColors;
myColors = new string[5];

آرایهای از نوع intدارای سه عضو
intmyint={5,6,7}
14-1- آرایه های چند بعدی
گونه دیگری از آرایه ها، آرایههای چند بعدی هستند. که برای نگهداری اطلاعات چندین بعد استفاده میکنند. و بیشتر برای نگهداری جداول و ماتریسها بکار می روند
Type[,] arryName=new type[n1,n2]
مثال:
Char[, , ]=new char[3,5,7]
در مثال فوق یک آرایه سه بعدی از نوع کاراکتر تعریف کرده ایم.
نکته : دقت کنید آرایه ای که ده عضو دارد بزرگترین اندیس خانهاش 9 می باشد.
مثالی از کاربرد آرایه ها:
string[] myColors = {"red", "green", "yellow", "orange", "blue"};

System.Array.Sort (myColors);

for (int i=0; i<myColors.Length; i++)
{
System.Console.WriteLine(myColors[i]);
}

string[] myColors;
myColors = newstring[5];

for (int i = 0; i < myColors.Length; i++)
{
myColors[i] =System.Console.ReadLine();
}

مثال 2:
int[] ab = newint[5];

for (int i = 0; i < 5; i++)
{

ab[i] =Convert.ToInt32(System.Console.ReadLine());

}
tobyte
todecimal
Toint64
todouble
tochar
tosingle

مثال : برنامه ای بنویسید که ظرفیت آرایه را از ورودی دریافت نماید:
int rows = Int32.Parse(Console.ReadLine());
int columns = Int32.Parse(Console.ReadLine());

int[,] rectangularArray = newint[rows, columns];

for (int i = 0; i < rows ; i++)
for (int j = 0; j < columns ; j++)

rectangularArray[i,j]=Int32.Parse(Console.ReadLine());
for (int i = 0; i < rows – 1; i++)
for (int j = 0; j < columns – 1; j++)

Console.WriteLine(rectangularArray[i, j]);

Console.ReadLine();

نکته :درآخر،متدmainبه اینمعنیاستکهماقبلازاینکهازمحدودهمتدخارجشویم،نیازیبهتعیینمقداربازگشتیبااستفادهازکلمهکلیدی Return نخواهیم داشت.
نکته: براساسیهقانونتجربیهرگاهباخطایUndefined Symbolsمواجهشدید،حتمااملاءنوشتاریخودرابررسی کنید.
فرق Read و Readline عبارتست از : Read فقط یک کاراکتر می گیرد.
نکته: چندین متغیر با نوع یکسان را می توان در یک خط تعریف کرد.

staticvoid Main(string[] args)
{
stringmystring="hello";
intmyint=0;
bool b1 = true, b2 = false;
Console.WriteLine("your data : {0},{1},{2},{3}", myint, mystring,b1,b2);

Console.ReadLine();

}

( String Concatenation ) اتصالرشتههابهیکدیگر

مثال:بایک مثال نشان می دهیم مقدار ورودی آرایه main چگونه تنظیم می شود .
staticvoid Main(string[] args)
{
for (int i = 0; i <args.Length; i++)
Console.WriteLine("Args :{0}", args[i]);
Console.ReadLine();

}

می بینیم که خروجی چیزی نمایش داده نمی شود.
از منوی projectگزینه آخر Properties پارامتر های خط فرمان را تعیین می کنیم.
staticvoid Main(string[] args)
{
datatypeFunction();
}

staticvoiddatatypeFunction()
{
Console.WriteLine("max of int:{0}",int.MaxValue);
Console.WriteLine("max of int:{0}", int.MinValue);
Console.WriteLine("max of double:{0}", double.MaxValue);
Console.WriteLine("max of double:{0}", double.MinValue);
Console.WriteLine("max of decimal:{0}", decimal.MinValue);

Console.ReadLine();

}

تعریف نوع داده implicity
هرچندکههمیشهبهتراستکهمتغیرهاییکهتعریفمیکنیدبهصورتexplicitlyتعریفنمایید،بااینحال c#امکانتعریفمتغیرهابهصورتضمنیImplicitly)) را با استفاده از کلمات کلیدی varرا فراهم کرده است. میتوانیدازکلمهکلیدیvarبهجاینوعدادهخاصint,bool,stringاستفاده نمایید. در این صورت کامپایلر بر اساس مقدار دهی اولیه نوع متغیر را برای خود تعیین می کند.
staticvoid Main()

حلقهforech
این حلقه برروی تمام آیتم های موجود در آرایه اعمال می گردد.بدون نیاز به دانستن اعضای آرایه این امر میسر می باشد.

15- توابع کار با رشته ها

نام تابع رشته ای
توضیح
toupper
تبدیل رشته به حروف بزرگ
Tolower
تبدیل رشته به حروف کوچک
Replace
عبارت اول را یافته و باعبارت دوم جابجا می کند
Contains("String")
چک می کند که آیا رشته شامل عبارت مشخص شده هست یا خیر
Length
طول رشته را بر میگرداند
Trim
فضاهای خالی را از دو طرف رشته حذف می نماید
Insert(start,"STRING")
در مکان شروع زیر رشته استرینگ را بر می گرداند
String1.Equals("string2")
چک می کند که آیا رشته یک با رشته دوم برابر است یا خیر

مثال : برنامه ای بنویسید که یک رشته را گرفته و آن را معکوس نماید.
Static void Main(string[] args)
{

string s;
s = Console.ReadLine();
string s2="";
char[] charArray = s.ToCharArray();

int len = s.Length – 1;
for (int i =0; i <= len; i–)
{
s2=s2+charArray[i];
}

}
Console.WriteLine(s2);
Console.ReadKey();
}
16- طریقه فراخوانی متد ها در C#
تاکنون تمامی اعمالی که در برنامه هایمان انجام دادیم در متد main انجام می شدند. این روش برای برنامه های ساده و ابتدایی که استفاده کردیم مناسب بود، اما اگر برنامه ها پیچیده تر شوند، و تعداد کارهای مورد نظرما گسترش داده شوند، استفاده از متد ها جایگزین روش قبل می گردد. متد ها فوق العاده مفید هستند، چرا که کارهارا به بخشهای کوچکتر و مجزا تقسیم می کنند.

Static void Main(string[] args)
{
short num1 = 20, num2 = 9;

Console.WriteLine(add(num1, num2));
Console.ReadLine();
}

Static int add(int x,int y){
var z=0;
z = x + y;
return z;
}

خروجی: 29
تفاوت در نوع متد ها:
در سی شارپ دو نوع متد وجود دارد:
1-متد استاتیک(Static)
2-متد نمونه(Instance)
متد هایی که در اعلان خود شامل کلمه کلیدی staticهستند از استاتیک هستند.بدین معناکه برای استفاده از آن نمی توان شی جدیدی تولید می شود. ولی در صورتی که در اعلان تابع از کلمه کلیدی staticاستفاده نشده باشد متد به عنوان متد نمونه در نظر گرفته می شود. بدین معنا که برای استفاده آن می توان نمونه ایجاد کرد.
مثال: برنامه زیر کاربرد استفاره از متدهای نوع دوم را نشان می دهد:

Class program
{
staticvoid Main(string[] args)
{
stringmychoice;
Programom=newProgram();

do
{
mychoice = om.getchoice();

switch (mychoice)
{
case"V":
case"v":
Console.WriteLine("you wish address list");
break;

case"Q":
case"q":
Console.WriteLine("BYE");
break;
}

} while (mychoice != "q"&&mychoice != "Q");

}
stringgetchoice()
{
stringmychoice;

Console.WriteLine("my address ");

Console.WriteLine("V-view file:");
Console.WriteLine("Q-quit file:");
mychoice = Console.ReadLine();
returnmychoice;
}
}
}
در این مثال در متد getchoice از کلمه استاتیک استفاده نشده است. پس برای استفاده از آن شی جدیدی تولید می شود.Programom=newProgram()در سمت چپ این اعلان نمونه ای از کلاس تحت عنوان شی جدیدی بنام omتولید می شود. توجه شود که om خود شی نیست بلکه مرجعی به شی به نام programمی باشد. حال که نمونه ای از شی program را ایجاد کردیم.با استفاده از آن نمونه یعنی om به متد های موجود در این کلاس دسترسی می یا بیم. متدها فیلدها و سایر اعضای کلاس از طریق عملگر نقطه قابل دسترس هستند.om.getchoice()

public static class myClass
{
public static intmyValue{ get; set; }
public static int Square()
{
return (myValue * myValue);
}
}


myClass.myValue = 7;
int s = myClass.Square();
استفاده از دستور زیر باعث بروز خطا در زمان کامپایل می شود:
myClass m = new myClass();
m.myValue = 7;
int s = m.Square();
از کلمه کلید static می توان استفاده های جالبی کرد. مثلا اگر یک مشخصه یا یک تابع در یک کلاس به صورت static تعریف شود، بدون نمونه سازی از کلاس می توان به آن دسترسی داشت. در مثال زیر کلاس A به صورت static تعریف نشده است ولی بدون نمونه سازی از کلاس می توان به تابع Add دسترسی داشت.
public class A
{
public static intmyValue {get; set; }
public static Add(int a, int b)
{
return (a + b);
}
}


int m = A.Add(12, 40);
همچنین می توان از دستورات زیر استفاده کرد:
A myA = new A();
int m = myA.Add (12, 40);

نکته قابل توجه این است که در صورتی که مقدار یک مشخصه static تغییر کند، این مقدار در تمام برنامه تغییر خواهد کرد. از این نکته می توان برای ارسال اطلاعات از یک فرم به فرم دیگر در سی شارپ استفاده کرد.
17- استفاده از کاراکتر های خروجی CharacterEscape
همانندسایرزبانهایبرپایه cهمراه رشته ها در C# نیز می توانCharacterEscapeها را بکار برد با آنها می توان نمایش رشته ها در خروجی را تعیین نمود. هر CharacterEscape با یک کاراکتر شروع که همراه آن یک علامت خاص وجود دارد.

18- رفتارپیشفرضدرارسالپارامتربا روش مقدارBy val:
بهصورتپیشفرضیکپارامتربهصورت by valueبهتابعارسالمیگردد.
staticvoid Main(string[] args)
{
int x = 9, y = 10;
Console.WriteLine("Before call:{0},y:{1}",x,y);

Console.WriteLine("answer is:{0}", add(x, y));

Console.WriteLine("After call:{0},y:{1}", x, y);
Console.ReadLine();
}

staticint add(int x, int y)
{
intans = x + y;
Console.WriteLine(ans);

x = 10000;
y = 20000;

returnans;

}
خروجی:

19- ارسال پارامتر با روش ارجاع Ref:
staticvoid Main(string[] args)
{
int x = 9, y = 10;
Console.WriteLine("Before call:{0},y:{1}",x,y);

Console.WriteLine("answer is:{0}", add(refx,ref y));

Console.WriteLine("After call:{0},y:{1}", x, y);
Console.ReadLine();
}

staticint add(refint x, refint y)
{
intans = x + y;
Console.WriteLine(ans);
x = 10000;
y = 20000;

returnans;

}

خروجی:

20- ارسال پارامتر با روش out:
در این روش می توانیم متد هایی تعریف کنیم که بیش از یک خروجی داشته باشند.
staticvoid Main(string[] args)
{
intans;
add(90, 90, outans);
Console.WriteLine("90+90="+ans);
Console.ReadLine();

}

staticvoid add( int x, inty,outintans)
{
ans = x + y;

}

خروجی:
90+90=180
staticvoid Main(string[] args)

{
int ans1,ans2;
add(90, 90, out ans1, out ans2);
Console.WriteLine("90+90="+ans1);
Console.WriteLine("90*90=" + ans2);
Console.ReadLine();

}

staticvoid add(int x, int y, outint ans1, outint ans2)
{
ans1 = x + y;

ans2 = x * y;
}
90+90=180
90*90=8100

21- تعریف پارامترهای اختیاری
درنسخهداتنت4به بعدبرنامهنویسانمیتوانندمتدهاییبنویسندکهمیتوانندآرگومانهایاختیاریداشتهباشند.این تکنیک به فراخواننده اجازهمیدهدکهمتدراطوریفراخوانیکندکهدرصورتیکهبرخیآرگومانهانیاز به فراخوانی نداشته باشند،دیگرآنهارادرفراخوانیمتدنیاوریم.

staticvoid Main(string[] args)
{

add("oh my god");
add("oh my god","what");
Console.ReadLine();

}

staticvoid add(string message1, string owner = "programer")
{
Console.WriteLine("error:{0}" , message1);
Console.WriteLine("owner of error:" + owner);

}
خروجی:

کلاس math
این کلاس جهت دسترسی به بعضی از توابع ریاضیاتی بکار می روند:
Truncate: این متد جهت حذف قسمت اعشار یک عدد بکار می رود.
Console.writeline(math.truncate(-3.14))
Abs :قدر مطلق عدد را بر می گرداند.
Sin,cos,tan
Log:لگاریتم عدد در مبنای ده
Math.Pow(3,3): یک عدد را به توان عدد دیگر می رساند
Math.Sqrt(9): جذر
round :جهت گرد کردن عدد بکار می رود.
22- بکارگیری آرایه ای از پارامترها
بکارگیری آرایهای از پارامترها با استفاده از دستور Param پذیر می باشد.کلمه کلیدی Paramبهشمااجازهمیدهدکهمتغیرورودیازنوعآرایهبرای متد خود تعریف نمایید. کهاینامکانرابهشمامیدهدکهمقادیریبهصورتلیستیازدادههاکهبا کاما ازهمجداشدندویا دریکآرایهقرارگرفتهاندوداراینوعیکسان میباشندرابهمتدارسالکنید.
staticvoid Main(string[] args)
{

double average;
double[] data = { 3.2, 3, 4.5, 5.2, 2.2 };

average = calcaverage(data);

Console.WriteLine("average:" + average);
Console.ReadKey();
}

staticDoublecalcaverage(paramsdouble[] value)
{
double sum=0;
for (int i=0; i<value.Length;i++)
console.writeline(value[i]);

for (int i=0; i<value.Length;i++)
sum+=value[i];

return (sum/value.Length);
}

خروجی:

مثال:
staticvoid Main(string[] args)
{

double average;
double[] data=newDouble[5];

for (int i = 0; i <5; i++)
data[i] = Convert.ToDouble(Console.ReadLine());
average = calcaverage(data);
Console.WriteLine("average:" + average);
Console.ReadKey();
}

staticDoublecalcaverage(paramsdouble[] value)
{
double sum=0;
Console.WriteLine("you send me Double:" + value[0]);
Console.WriteLine("you send me Double:" + value[1]);
Console.WriteLine("you send me Double:" + value[2]);
Console.WriteLine("you send me Double:" + value[3]);
Console.WriteLine("you send me Double:" + value[4]);

for (int i=0; i<value.Length;i++)
sum+=value[i];

return (sum/value.Length);
}
23- کاربا آرایه های چندبعدی

24- آشنایی با کلاسها در c#

مثال: کلاسی بنویسید که فاکتوریل یک عدد را حساب کند:
classProgram
{
staticvoid Main(string[] args)
{

Console.Write("please input a number:");
outputclassoutcl = newoutputclass(Console.ReadLine());
outcl.printstring();
}
}

classoutputclass
{
intmyint;
publicoutputclass (stringinputstring)
{
int f = 1;
for(int i=1;i<= Convert.ToInt32(inputstring);i++)
f=f*i;

myint = f;

}

publicvoidprintstring()
{

Console.WriteLine("factorial:{0}",myint);
Console.ReadKey();

}

~outputclass()
{
}

}

مثال :برنامه ای بنویسید که دو عدد را از ورودی خوانده بزرگترین مقسوم علیه مشترک و کوچکترین مضرب مشترک را حساب نماید.

staticvoid Main(string[] args)
{

inta,b,s=0;

a = int.Parse(Console.ReadLine());
b = int.Parse(Console.ReadLine());

for (int i = 1; i < a || i < b; i++)

if (a % i == 0 && b % i == 0)
{

s = i;

}
Console.WriteLine("b.maghsomalie.m:{0}" , s);

Console.WriteLine("k.mazrab.m:{0}",(a * b) / s);

Console.ReadLine();
}

مثال : کلاسی بنویسید که برنامه ای بنویسید که دو عدد را از ورودی خوانده بزرگترین مقسوم علیه مشترک و کوچکترین مضرب مشترک را حساب نماید.
classProgram
{
staticvoid Main(string[] args)
{

Console.Write("please input 1 number:");
int x = Convert.ToInt32(Console.ReadLine());
Console.Write("please input 2 number:");
int y = Convert.ToInt32(Console.ReadLine());

outputclassoutcl = newoutputclass(x,y );
outcl.printstring();
}
}

classoutputclass
{
intbmm,kmm;

publicoutputclass(int a, int b)
{
int s = 0;

for (int i = 1; i < a || i < b; i++)

if (a % i == 0 && b % i == 0)
{

s = i;

}

bmm = s;
kmm = (a * b) / s;
}

publicvoidprintstring()
{

Console.WriteLine("b.maghsomalie.m:{0}",bmm);
Console.WriteLine("k.mazrab.m:{0}", kmm);
Console.ReadKey();

}

~outputclass()
{
}

}

8


تعداد صفحات : 34 | فرمت فایل : WORD

بلافاصله بعد از پرداخت لینک دانلود فعال می شود