More Related Content
Similar to Amjadi - Ebook 5 - Function - v1
Similar to Amjadi - Ebook 5 - Function - v1 (20)
More from Mohammad Amin Amjadi
More from Mohammad Amin Amjadi (15)
Amjadi - Ebook 5 - Function - v1
- 2. بخشپنجمنویسی برنامهC#1
. شوند می استفاده برنامه بیشتر خوانایی و راحتی برای که شوند می محسوب ای برنامه زیر ، توابع
کنیم چاپ را عکس یک معکوس بخواهیم اینکه برای فرضایکسری بایدمع برنامه جای چندین باشد قرار اگر و بنویسیم کدکوس
و حلقه چندین داخل کنید فرض حاال و نکنیم تکرار را کدها باید نمائیم چاپ را عدد یکswitchیک معکوس بخواهیم ... و
چی به چی فهمیم نمی موقع همان و شد خواهیم سردرگمی و سرگیجه دچار ، کنیم می نگاه کدها به که وقتی ، نمائیم چاپ را عدد
!!!! بوده چی به چی نیست یادتون اصال که کنیم نگاه را کد باشه قرار دیگه وقت چند از بعد حاال شده
شد گفته قبال که طور همانباالی را ها متد ، هMainحتما باید و نویسیم میstaticو کالس به مربوط (متدهای باشندstructدر
) گیرد می قرار بررسی مورد بعدی های بخش
: خروجی بدون متد
نوع از آنها خروجی و ندارند ای خروجی ها متد اینvoidبلکه گردانند برنمی را مقداری متدها این ، است
را مقداریمسئله (البته کنند می چاپ آنرا و کنند می محاسبهrefوout)شود می گفته بعدا که مجزاست
: مثال: عدد یک وارون چاپ متد
ر عدد یک تا دارد نیاز متد ایننماید چاپ آنرا وارون و بگیرد اندارد خروجی هیچ و
using System;
namespace Test_1
{
class Program
{
static void Inv(int n)
{
Console.Write("nInve : ");
while(n > 0)
{
Console.Write(n%10);
n /= 10;
}
Console.Write("n");
}
static void Main()
{
Inv(213545);
Console.Write("n : ");
Inv(Convert.ToInt32(Console.ReadLine()));
Console.ReadKey();
}
}
}
نوشتن برایMainمتد فراخی وInvیک که است کافیint. کنیم پاس متد به آنرا تا باشیم داشته
(خروجی ندارند خروجی که متدهایی درvoidدستور با توان می ، )دارندreturnمانع و شویم خارج متد از
به نیازی متدها این آخر خط در پس ، شویم متد کدهای سایر اجرای ازreturn. نیست
- 3. بخشپنجمنویسی برنامهC#2
: خروجی دارای متدهای
ا زمانی متدها این ازبلکه )شود نمی چاپ اصلی کند(نتیجه چاپ را چیزی متد خواهیم نمی که شود می ستفاده
دهد می تحویل ما به و کند می محاسبه آنرا
: ماتریس عناصر جمع حاصل محاسبه متد : مثال
: برگرداند سپس و محاسبه را عناصرش جمع حاصل و بگیرد آنرا باید و دارد نیاز ماتریس یک به متد این
using System;
namespace Test_1
{
class Program
{
static int Sum(int[] Array)
{
int r = 0;
for (int i = 0; i < Array.Length; i++ )
{
r += Array[i];
}
return r;
}
static void Main()
{
int n = Convert.ToInt32(Console.ReadLine());
int[] a = new int[n];
for (int i = 0; i < a.Length;i++ )
{
Console.Write("a[{0}] : ",i);
a[i] = Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine("Sum : " + Sum(a));
int p = Sum(a);
Console.WriteLine("Sum : {0}",Sum(a));
Console.ReadKey();
}
}
}
نام از وقت هر پسSumاز آرایه یک بسته و باز پرانتز داخل و نمائیم استفادهintآن عناصر ، کنیم پاس را ها
: شود می عبارت آن جایگزین و شود می برگردانده و شوند می جمع هم با آرایه
بنام ای آرایه اگر مثالaطول به و3عناص ور1و4و7( کدمان داخل که باشیم داشتهMain)دیگری جای هر یا
، بنویسیمSum(a)مقدار ،11آرایه عناصر جمع حاصل کهaهر پس ، شود می متد فراخوانی جایگزین است
باشیم نوشته که جاSum(a)مقدار11. شود می آن جایگزین
- 4. بخشپنجمنویسی برنامهC#3
Params:
از کند دریافت ورودی آرگومان نامشخصی تعداد متدی بخواهیم اگرParamsمی استفاده: کنیم
( بولین تعداد هر بتواند که بنویسیم متدی خواهیم می : مثالtrueیاfalseعدد مقدار حاوی رشته و کند دریافت )
مبنای1(برگرداند آنراtrueمنزله به1وfalseمنزله به0بوده(
using System;
namespace Test_1
{
class Program
{
static string F(params bool[] A)
{
string r = "";
for (int i = 0; i < A.Length; i ++ )
{
if (A[i])
r += "1";
else
r += "0";
}
return r;
}
static void Main()
{
Console.WriteLine(F(true, true, false, false, true));
bool[] BoolNumber = new bool[] { true, true, false, false, true };
string result = F(BoolNumber);
Console.WriteLine(result);
Console.ReadKey();
}
}
}
تعریف ناحیهمتغییرها:
آن بالک آخر تا است شده تعریف که خطی همان از ، است شده تعریف که ای ناحیه همان در ، شود می تغییر که وقتی متغیری هر
تعریف ، است شده تعریف آن در که ای ناحیه. است شده شناخته و شده
using System;
namespace Test_1
{
class Program
{
static void F1(int A)
{
Console.WriteLine(A);
}
static void F2(int A)
{
Console.WriteLine(A);
}
static void Main()
{
int A = 20;
Console.WriteLine(A);
- 5. بخشپنجمنویسی برنامهC#4
for (int i = 0; i < A; i++ )
{
Console.WriteLine(i);
}
// اینجا درنیست شده شناخته آی شماره
for (int j = A; j < A; j++)
{
Console.WriteLine(j);
// اینجا درنیست شده شناخته آی شماره
}
// اینجا درنیست شده شناخته آی شماره
// اینجا درنیست شده شناخته جی شماره
Console.ReadKey();
}
}
}
متد که ، کنید توجهF1بنام ورودی آرگومان یکAمتد و ، داردF2داخل و ، طور همین نیزMainبنام متغییری همAتعریف
این که باشید داشته توجه ؛ است شده3همچنین و هستند یکدیگر از مجزا متغییر تانمائید دقت ها حلقه شمارنده تعریف حوزه به
از قبل نه و حلقه خود بدنه شوند(در می تعریف حلقه خود با همراه که ای حلقه های شمارنده کهحلقه خود بدنه داخل فقط )حلقه
شن. اند شده اخته
داخل متغییر و متدها ورودی های آرگومان مورد درMainها این شوید مطمئن اینکه برای ،نام ابتدای به ، هستند مجزا یکدیگر از
داخل متغییر و متد ورودی آرگومانMain: کنیم می اضافه را است شده تعریف آن داخل که متدی اسم ،
using System;
namespace Test_1
{
class Program
{
static void F1(int F1_A)
{
Console.WriteLine(F1_A);
}
static void F2(int F2_A)
{
Console.WriteLine(F2_A);
}
static void Main()
{
int Main_A = 20;
Console.WriteLine(Main_A);
for (int i = 0; i < Main_A; i++ )
{
Console.WriteLine(i);
}
for (int j = Main_A; j < Main_A; j++)
{
Console.WriteLine(j);
}
Console.ReadKey();
}
}
}
- 6. بخشپنجمنویسی برنامهC#5
کنید تست اگر حالMain_Aداخل فقطMain،F1_Aداخل فقطF1وF2_Aداخل فقط نیزF2. است شده شناخته
بین بالک از منظور که باشید داشته توجه{و}. است
هر که باشید داشته توجهcaseبه مربوطswitch: نمائید دقت ، شود نمی محسوب بالک یک
using System;
namespace Test_1
{
class Program
{
static void Main()
{
int a = 2;
switch(a)
{
case 0:
int p = 1;
break;
case 1:
p = 2;
int q = 12;
break;
case 2:
p = 3;
q = 3;
break;
}
Console.ReadKey();
}
}
}
هر برای خودمان که نوشت زیر بصورت را کد توان میcase: باشد حواسمان باید و کنیم ایجاد بالک
class Program
{
static void Main()
{
int a = 2;
switch(a)
{
case 0:
{
int p = 1;
break;
}
case 1:
{
//p = 2; //undefine p
int q = 12;
break;
}
case 2:
{
//p = 3; //undefine p
//q = 3; //undefine q
break;
}
}
Console.ReadKey();
}
}