آموزش c#.net قسمت اول - rozup.irrozup.ir/download/569879/part 1.docx · web viewاین...

42
ش وز م آC#.NET آول ت م س ق آول ت م س ق

Upload: others

Post on 27-May-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش قسمت اول

Page 2: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

# قسمت اولCآموزش مقدمه

آیا تا به حال آرزو این که بتوانید نرم افزار مورد نیاز تان را خودتان درست کنید تا نیازی به استخدام یک برنامه نویس نداشته باشید را داشته اید؟ آیا میدانید برای تولید اکثر نرم افزارهای کاربردی نیازی به دانش مهندسی

نرم افزار نیست؟ آیا میدانید که برای تولید نرم افزار مورد خود فقط به دانش ریاضی ، منطق و کمی تسلط بهزبان انگلیسی نیاز دارید؟

)Windowsاین دوره ها کامالً به روز بوده و کاربر قادر خواهد بود برای تمامی سیستم عامل XP,Vista,7,8,8.1 برنامه نویسی کند. ضمناً این دوره برای آمادگی مدرک بین المللی 10 و حتی )MCSD

برایmobileبرنامه نویسی مایکروسافت منبع خوبی خواهد بود، در آخر دوره مباحث برنامه نویسی Android ، iOS ، Windows Phone 7 8 و ، Windows 10 )Universal App(در نظر گرفته شده و

(Desktop )قابل نمایش بر روی موبایل ، تبلت و Responsiveهمچنین کاربر قادر خواهد بود وبسایت های بین نرمWeb API )متناسب با اکثر برنامه های داده محور( طراحی کند و با استفاده از MVCبا معماری

افزار و وبسایت ارتباط برقرار کند. شاید الزم است برنامه ای درست کنید که از طریق وبسایت ارتباط بین شما و مشتریان شما تامین شود، شاید تصمیم گرفته اید یک شبکه اجتماعی یا یک چتروم درست کنید. شاید هم برای انجام دادن کارهای پیچیده خود به یک نرم افزار نیاز دارید ولی نرم افزار های موجود در بازار نیاز

شما را برطرف نمی کنند، شما تمامی دانش مورد نیاز خود را در این دوره خواهید آموخت.

با سالم من پارسا گچ کار هستم دانشجوی کارشناسی مهندسی تکنولوژی نرم افزار، قصد دارم در چند دوره آموزشی نسبتا طوالنی تجربیات خودم درباره برنامه نوسی را در اختیار عموم قرار بدهم. و این دلیل نفرت

برنامه نویس های دیگر از من و این دوره ها خواهد بود.

سرفصل های این دوره ها عبارتند از # )بعد از این دوره شما قادر خواهید بود نرم افزار های ساده ای برای محاسبات موردCمقدمات (1

نیاز خود درست کنید ( برنامه نویسی شی گرا )بعد از این دوره نرم افزار شما میتواند با استفاده از آبجکت ها و کالس ها(2

مسئله های پیچیده را به مسئله های کوچک و ساده تر تقسیم کرده و راحت تر حل کند ( فرم های مدرنی برایWPF )بعد از این دوره شما میتوانید با استفاده از WPFطراحی رابط کاربری (3

نرم افزار خود طراحی کنید.( ذخیر سازی داده ها ، دیتابیس و ارتباط با دیتابیس )به نرم افزار شما قابلیت ذخیره سازی و پردازش(4

داده های سنگین تر اضافه میشود(5)LINQ و listها و LINQ to SQLپردازش و استفاده از داده های ذخیره شده در نرم افزار شما ساده(

تر میشود(6)Entity Framework)نحوه مدیریت دیتابیس در نرم افزار به ساده ترین شکل خود میرسد( 7)Html 5 web و CSS 3) اصول مبانی طراحی ظاهری یک وبسایت مدرن( 8)JavaScript & jQuery)استفاده از کد های ساده در وبسایت شما( 9)Materializer)استفاده از کد های آماده گوگل برای طراحی ظاهر وبسایت( 10)Aps.net MVC)ذخیره ، مدیریت ، پردازش و حذف داده ها در وبسایت( 11)Web API)ارتباط وبسایت با نرم افزار( 12)Mobile Windows Phone

1Learnprogramming.skyblog.com

Page 3: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

13)Windows 10 Mobile14)Mobile )Android, iOS(مقدماتی 15)Mobile )Android, iOS(پیشرفته

هر دوره # نام دارد به صورت مجانی در اختیار شما قرار خواهدCبرای اثبات واقعی بودن دوره ها ،دوره اول که مبانی

گرفت. دوره های دیگر به فاصله های زمانی یک یا دو هفته )بسته به پیچیدگی دوره( منتشر خواهد شد و افرادی که در دوره اول ثبت نام کرده اند از طریق ایمیل مطلع خواهند شد و عالقه مندان میتوانند بعد از

خرید این دوره ها ، لینک آنها را دریافت کرده و از آنها استفاده کنند.

دوره های بعدی با قیمت های زیر به فروش خواهد رسید:

2 تومان15،000 هر کدام 4 تا 5 تومان25،000 هر کدام 9 تا 10 تومان35،000 هر کدام 11 تا 12 ، 13، 14تومان45،000 هر کدام 15 و

2Learnprogramming.skyblog.com

Page 4: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

فهرست1.................................................................................................................................مقدمه

1........................................................................................سرفصل های این دوره ها عبارتند از2...........................................................................................................................هر دوره

3...............................................................................................................................فهرستC#.........................................................................................................................4مقدمات

4............................................................................................................محیط برنامه نویسیVisual Studio 2015.....................................................................................................4

Visual Studio....................................................................................................4دریافت Visual Studio Code.....................................................................................................6

7............................................................................................................شروع برنامه نویسی7........................................................................................................................پروژه ها7........................................................................................................................اولین کد10.....................................................................................................................کامنت ها

11..............................................................................................................ارتباط با کاربر13......................................................................................................................متغیر ها18.......................................................................................................................آرایه ها

20.....................................................................................................................عملگر هاDebug و Trace22.................................................................................................. کردن22......................................................................................................................شرط ها23.......................................................................................................................حلقه ها

24..........................................................................................................................پروژه27.................................................................................................خروجی گرفتن از نرم افزار

3Learnprogramming.skyblog.com

Page 5: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

#Cمقدمات محیط برنامه نویسی

وVisual Studio 2015 و استفاده از Windows# توصیه من ، کارکردن در محیط Cبرای برنامه نویسی با میVisual Studio code 2015 استفاده از Mac , Linuxدر صورت استفاده از سیستم عامل هایی مانند

باشد.

Visual Studio 2015 شرکت سازنده ویندوزMicrosoftویژوال استدیو محیط برنامه نویسی استاندارد ویندوز معرفی شده توسط

است. این محیط در واقع یک پک کامل از تمام ابزار هایی است که یک برنامه نویس به آن نیاز خواهد داشت. برای نرم افزارCommunity عرضه شده. نسخه Enterprise و Community نسخه 2این نرم افزار در

ابزار ها و امکانت بیشتری دارد وEnterpriseهای شخصی و دانشجویی مناسب میباشد در صورتی که نسخه برای نرم افزار های سازمانی مناسبتر است. برای اطالعات بیشتر به وبسایت این محصول مراجعه کنید:

https://www.visualstudio.com/

:Visual Studio 2015حداقل سیستم مورد نیاز برای استفاده از گیگا هرتزی یا بیشتر1.6پردازنده 1( گیگ رم در صورت استفاده از ماشین مجازی VM Ware, Virtual Box, Hyper-V )… , 1.5

گیگ4گیگ حافظه برروی هارد کامپیوتر 5400هارد دیسک با سرعت RPM کارت گرافیکی با پشتیبانی ازDirectX 9.0 1024 و حداقل x 768 resolution

Visual Studioدریافت میتوانید مستقیماً از وب سایت محصول به صورتVisual Studio Community Editionبرای دریافت

این محصول باید مبلغی را به شرکت سازندهEnterpriseرایگان اقدام به دریافت کنید ولی برای نسخه

4Learnprogramming.skyblog.com

Page 6: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

را به صورت رایگان )غیر قانونی( ازEnterpriseپرداخت کنید و آن را خریداری کنید. البطه میتوانید نسخه تهیه کنید.P30Download.comسایت

/http://p30download.com/fa/entry/59678 لینک دانلود :

VS2015نصب نصب این نرم افزار مشابه نرم افزار های عادی است و به راحتی و بدون مشکل آن را میتوانید روی کامپیوتر

خود نصب کنید.

5Learnprogramming.skyblog.com

Page 7: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

Visual Studio Code است، برای اطالعات بیشتر به وبسایت این محصولLinux و Macاین نسخه مناسب سیستم عامل ی

مراجعه کنید.

6Learnprogramming.skyblog.com

Page 8: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

https://code.visualstudio.com/

شروع برنامه نویسی

پروژه ها تمامی نرم افزار ها به صورت پروژه ایجاد میشوند، برای دسترسی به منوی ایجاد پروژهVisual Studioدر

را انتخاب میکنیم؛ البته میتوانید برای بازNew Project و سپس New کلیک کرده و Fileجدید روی منوی هم کلیک کنید.New Project روی لینک Start Pageکردن این صفحه، از روی صفحه

اولین کد با نامC# Console Application شروع میکنیم، یک پروژه HelloWorldاولین برنامه رو با مثال مشهور

HelloWorldباز میکنیم

7Learnprogramming.skyblog.com

Page 9: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

و قطعه کد زیر را به آن اضافه میکنیم :

Console.WriteLine("Hello, World!");Console.ReadKey();

استفاده کنید. در( )Start یا دکمه F5برای اجرا کردن برنامه و مشاهده نتیجه ی آن از کلید نمایش داده میشوند. برای اطالعات بیشتر دربارهزیر خط قرمزصورت وجود اشکال در تایپ دستورات آنها با

8Learnprogramming.skyblog.com

Page 10: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

خطا میتوانید ماوس را روی دستورات خطا دار نگه دارید تا توضیحاتی درباره خطا ببینید. همچنین میتوانید یک # زبانی حساس به حروف بزرگ وCلیست از خطا ها را در پایین صفحه مشاهده کنید. توجه داشته باشید که

کوچک است و عالمت ; را در انتهای سطر ها رعایت کنید.

خروجی برنامه باید مشابه این عکس باشد:

آنالیز خط به خط برنامه : هاییNamespace شروع می شوند، این قسمت usingدر اول یک سری خط هایی وجود دارند که با عبارت

که برنامه از کد های آنها استفاده می کند را برای برنامه تعریف میکنیم.

ی که برنامه قرارNamespace مشاهده میشود ، در این قسمت namespaceدر قسمت بعدی عبارت ها در دوره بعدی آشنا خواهید شد.Namespaceاست در آن تعریف شود را تعیین کرده ایم. با

نام دارد. در قسمتProgram مشخص شده کالس اصلی برنامه یا کالس classقسمت بعدی که با عبارت (Programبعدی همچنین با کالس ها آشنا میشوید و همچنین درک بیشتری از کالس اصلی برنامه )کالس

خواهید داشت.

برنامه شماست. کد هایی که قرارMain شروع میشود متد static void mainقسمت بعدی که با عبارت است هنگام شروع برنامه اجرا شوند در این قسمت قرار میگیرند در دوره بعدی متد ها آشنا خواهید شد و در

دوره بعدی به صورت کامل تر با متد ها کار خواهید کرد.

9Learnprogramming.skyblog.com

Page 11: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

بیشتر آشنا میشوید.Main خط کد موجود در متد 2در قسمت های بعدی از این دوره با

تمرین : را چاپ کند.Hello, I'm Parsa برنامه ای بنویسید که عبارت

کامنت ها ( در کد خود از عالمت "//" در اول سطر استفاده کنید،Commentشما می توانید برای درج توضیحات )

هنگام اجرا این خطوط نادیده گرفته میشوند. برای مثال:

//Print HelloWorldConsole.WriteLine("Hello, World!");//Press Any Key to ExitConsole.ReadKey();

همچنین میتوانید برای غیر فعال کردن موقت خط های کد آن ها را تبدیل به توضیح کنید، تبدیل کردن خطوطبه توضیحات باعث میشود آن خط ها در هنگام تبدیل به فایل اجرایی نادیده گرفته شوند.

مثال: Console را غیر فعال کنید تا نتیجه استفاده نکردن از آن دستور را در Read خط مربوط به دستور

Application.خود ببینیم

//Print HelloWorldConsole.WriteLine("Hello, World!");//Press Any Key to Exit//Console.ReadKey();

بعد از اجرا کردن این برنامه می بینیم که پنجره سیاه رنگ برنامه فقط یک لحظه نمایش داده شده عبارتHelloWorldروی آن چاپ شده و سپس پنجره بدون این که منتظر ورودی کاربر بشود بسته می شود. این تمام

این کار ها فقط در عرض یک لحظه انجام میشوند و حتی کاربر ممکن است متوجه اجرا شد و خاتمه یافتن برنامه نشود. در مثال های بعدی ممکن است فرض شود که شما این نکته را میدانید و معموالً این خط حذف میشود و

شما باید این خط را اضافه کنید تا نتیجه را ببینید.

از عالمت های "*/" و "/*" استفاده کنید.Commentهمچنین میتوانید برای تبدیل کردن بیش از یک خط به

/*Print HelloWorldConsole.WriteLine("Hello, World!");Press Any Key to ExitConsole.ReadKey();*/

10Learnprogramming.skyblog.com

Page 12: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

تمرین:نام و ایمیل خود را در ابتدای کد برنامه به صورت کامنت بنویسید.

نمونه :

//HelloWorld App by Parsa Gachkar >[email protected]>

ارتباط با کاربر Namespace System از Console میتوانید از کالس Console Applicationبرای ارتباط با کاربر در یک

Namespace( هستند و Methods( و توابع )Propertiesاستفاده میشود. کالس ها مجموعه ای از متغیر ها )ها مجموعه ای از کالس ها هستند در دوره بعدی بیشتر با آنها آشنا خواهید شد.

نوشتن متن روی صفحه استفاده میشود.Console از کالس WriteLine یا Writeبرای نوشتن متن روی صفحه از تابع

Console.WriteLine("This is a Line");Console.Write ("This is Not a Line");Console.Write (", Still not a Line :)");Console.ReadKey();

11Learnprogramming.skyblog.com

Page 13: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

نتیجه

WriteLine در آخر متن تایپ شده توسط Newline یا Enter وجود حرف WriteLine و Writeفرق بین است.

گرفتن ورودی از کاربر استفادهConsole از کالس ReadLine و Read , ReadKeyبرای گرفتن ورودی از کاربر از متد های

میشود، برای ذخیره کردن مقدار ورودی از متغیر ها استفاده میکنیم که در مبحث بعدی به طور کامل توضیحداده شده.

var key = Console.ReadKey();Console.WriteLine(key);var line = Console.ReadLine();Console.WriteLine(line);var read = Console.Read();Console.WriteLine(read);Console.ReadKey();

12Learnprogramming.skyblog.com

Page 14: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

توجه داشته باشید برای استفاده از متن از "" استفاده میشود برای استفاده از مقدار متغیر نام متغیر را بدون مینویسیم.WriteLine"" در داخل ورودی های

ReadKey این کلید میتواند هر کلید از روی( بعد از فشرده شدن یک کلید :Keyboardاطالعات )باشد را در متغیر قرار میدهد، در صورتیConsoleKeyInfo از کالس Objectمربوط به آن کلید را به صورت یک

که متغیری برای قرار دادن مقدار وجود نداشته باشد این متد فقط منتظر فشرده شدن یک کلید می ماند وسپس برنامه را ادامه میدهد. با آبجکت ها در قسمت کالس ها آشنا خواهید شد.

ReadLine بعد از فشرده شدن کلید :Enter.خط تایپ شده توسط کاربر را در متغیر قرار میدهد

Read این متد مانند :ReadLine منتظر تایپ کاربر و فشرده شدن کلید Enterمیشود و بعد از فشرده شدن این کلید کد مربوط به اخرین حرف تایپ شده به صورت یک عدد در متغیر قرار میدهد.

متد های مفید دیگر اشاره کرد.Console از Beep و Clearاز متد های مفید دیگر در زمینه ارتباط با کاربر میتوان به متد های

Clear.برای پاک کردن صفحه از آن استفاده میشود ;)(

Beep.شما میتوانید با استفاده از این متد صدایی تولید کنید تا توجه کاربر به برنامه جلب شود ;)(

متغیر ها کامپیوتر به صورت موقت از آن استفاده کنید.Ramاز متغیر ها میتوانید برای نگه داشتن مقادیر در حافظه

توجه داشته باشید که این مقادیر فقط و فقط به صورت موقت در حافظه میمانند و بعد از به اتمام رسیدنبرنامه پاک میشوند.

13Learnprogramming.skyblog.com

Page 15: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

( و متغیر های ثانویه. متغیر های اولیهPrimitive دسته تقسیم میشوند، متغیر های اولیه )2# به Cمتغیر ها در مدیریت می شوند. نحوهNet Frameworkمستقیماً در حافظه قرار میگیرند ولی متغیر های ثانویه توسط .

تعریف کردن متغیر ها به صورت زیر است

<Data Type< >Variable Name< = [Initial Value];

نوع متغیر تعیین میشود )عددی ، متنی و ...( در قسمت دوم نامی برای دسترسی بهData Typeقسمت مقدار متغیر تعیین می شود، نام انتخاب شده باید قواعد از خاصی تبعیت کند ،برخی از این قواعد صرفاً برای خوانایی کد و برخی اجباری هستند. قسمت [] مربوط به مقدار اولیه متغیر است، این قسمت اختیاری است

متغیر میتواند مقدار اولیه خود را بعد از تعریف شدن بگیرد.

نام متغیر میتواند شامل حروف بزرگ ، کوچک ، اعداد و _ باشد )نمیتواند شامل فاصله باشد( و همچنیننمیتواند با یک عدد شروع شود.

به ارث برده میشوند )در بحث کالس ها با مبحث وراثت بیشترObject ها از نوع Data Type تمامی نکته :آشنا خواهید شد.(

:Primitive های Data Typeانواع

نامDatatyp

eکالس.NET نوع متغیر

مقدار فضای اشغال شده درRam

)بیت(

محدوده

byte Byte عدد صحیح بدونعالمت 8 0 to 255

sbyte SByte عدد صحیح 8 -128 to 127int Int32 عدد صحیح 32 -2,147,483,648 to

2,147,483,647uint UInt32 عدد صحیح بدون

عالمت 32 0 to 4294967295short Int16 عدد صحیح 16 -32,768 to 32,767

ushort UInt16 عدد صحیح بدونعالمت 16 0 to 65535

long Int64 عدد صحیح 64-9223372036854775808

to 9223372036854775807

ulong UInt64 عدد صحیح بدونعالمت 64 0 to

18446744073709551615float Single عدد اعشاری با

دقت کم 32 -3.402823e38 to 3.402823e38

double Double عدد اعشاری بادقت باال

64 -1.79769313486232e308 to

14Learnprogramming.skyblog.com

Page 16: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار1.79769313486232e308

char Char یک حرف 16 Unicode symbols used in text

bool Boolean متغیر بولی)درست یا غلط( 8 True or false

object Object نوع آبجکتstring String مجموعه ای از

حروف )متن(

decimal Decimal

عدد اعشاری با رقمی )رقم29

های صحیح +اعشاری(

128 ±1.0 × 10e−28 to ±7.9 × 10e28

مثال :

شما نمیتوانید خارج از محدوده تعیین شده به متغیر مقدار بدهید.

تبدیل کردن متغیر ها روش برای تبدیل کردن نوع ها به هم وجود دارد،C# 2در

کردن : در این روش شما نوع های خاصی را با در نظر گرفتن شرایط )محدوده( به همCastروش .1 تبدیلbyte کردن به نوع Cast با در نظر گرفتن مقدار، توسط روش intتبدیل کنید. در این مثال نوع

به هم را می بینید.Castشده. در جدول زیر شما لیستی از مقادیر قابل

مبدا مقصدByte short, ushort, int, uint, long, ulong, float, double, or decimalSbyte short, int, long, float, double, or decimal

15Learnprogramming.skyblog.com

Page 17: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

Int long, float, double, or decimalUint long, ulong, float, double, or decimal

Short int, long, float, double, or decimalUshort int, uint, long, ulong, float, double, or decimalLong float, double, or decimalUlong float, double, or decimalFloat doubleChar ushort, int, uint, long, ulong, float, double, or decimal

کردن قابل تبدیل نیست شاید بخواهیمCast از طریق Int به Stringهمانطور که در جدول میبینید .2 تبدیل کنیم؟ در این صورت باید از متد هایInt" را به 1234یک متن که حاوی یک عدد است مثل "

متغیر ها استفاده کنیم.NETموجود در کالس .

استstring به صورت Write , WriteLine , ReadLineنوع ورودی / خروجی متد های نکته :

Data Typeهای دیگر ها اشاره کرد.Class ها و Enum ها می توان به Data Typeاز دسته دوم

Enum:ها این نوع از متغیر ها توسط خود برنامه نویس تعریف میشوند که فقط مقادیر خاصی به خود اختصاص میدهند،

ولی می توان از برنامه باشد.Main باید خارج از قسمت Enumتعریف برای مثال روز های هفته. و استفاده از آن نشان داده شده.Enumآن در برنامه استفاده کرد. در مثال زیر نحوه تعریف کردن یک

16Learnprogramming.skyblog.com

Page 18: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

Structها این نوع متغیر ها مجموعه ای از چند متغیر دیگر هستند و هدف از استفاده کردن از آنها نگه داری داده ها به

است.Main ها بیرون از متد Struct ها تعریف Enumصورت مرتب است. همانند

استفاده کردیمvar از عبارت Data Type همانطور که در مثال قسمت ارتباط با کاربر دیدید به جای نکته :varً# باید به صورت اتوماتیک مناسبترین نوع را برای متغیر انتخاب کند، و متغیر های Cاین عبارت یعنی حتما

باید هنگام تعریف مقدار دهی اولیه شوند. )پس نوع های متغیر های مثال این فصل به ترتیبConsoleKeyInfo ،string و int) .است

یا پوچ به خود بگیرند ولی بقیه نوع ها مشکلی با مقدار پوچnull ها نمیتوانند مقدار Primitive type نکته : اولsdt , std1 ,std2)(; در مثال باال همین موضوع است متغیر های new Studentندارند، دلیل استفاده از

# میگوییم که یک آبجکت جدید از نوعC)(; به new Studentمقدار پوچ دارند، سپس با استفاده از متد Student باید در متغیر قرار بگیرد، اصطالحا به این متد ها ، متد های Constructorیا سازنده میگوییم که

در دوره بعدی بیشتر با این مبحث آشنا خواهید شد.

تمرین برنامه ای بنویسید که یک متن را از کاربر گرفته و بهIntتبدیل کند دانش آموز را از طریق 3برنامه ای بنویسید که اطالعات ReadLineگرفته و در یک متغیر از نوع

Struct)ذخیره کند )اطالعات دانش آموزان شامل نام، نام خانوادگی و سن باشد

آرایه ها آرایه ها مجموعه ای از متغیر های هم نوع و هم نام هستند که با اندیس از هم جدا میشوند. میتوان آرایه ها را

n( یا n×m بعدی )2( n×1 بعدی )1به صورت ماتریس ها در نظر گرفت، این ماتریس میتواند یک ماتریس بعدی باشد. برای دسترسی به اعضای آرایه ها از اندیس ها استفاده میشود.

17Learnprogramming.skyblog.com

Page 19: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

نحوه ی تعریف کردن یک آرایه

<Datatype> [] Name = [Initialization]

همانطور که میبینید نحوه تعریف کردن یک آرایه بسیار شبیه به نحوه تعریف شدن یک متغیر است. )آرایه در واقع یک نوع متغیر است.( بعد ها و طول آرایه در هنگام مقدار دهی اولیه تعریف میشود و اساساً میتوان آرایه

روش مقدار دهی کرد.2را به

در نظر گرفته شده. توجه داشتهMarks( برای قرار گرفتن در 10×1 خانه )10در روش اول یک آرایه با ها نمیتوانند پوچ باشند ؟؟؟ بلهPrimitive Typeباشید که این خانه ها پوچ هستند!!! در فصل قبل گفتیم که

از نوعType استثنا قائل شد. در این شرایط میگوییم Typeولی میتوان برای آن ها با قرار دادن یک ؟ در آخر Nullable یا پوچ شدنی است. متغیر های intتعریف شده در این روش برای نگه داری داده ها هم از این

به خود بگیرند و دفعات بعد نمیتوان آنها را باNullقاعده پیروی میکنند البته فقط اولین بار میتوانند مقدار Null .مقدار دهی کرد

تعریف کرد. در این صورت تمامی عناصر میتوانند حاوی مقدار یاNullableهمچنین میتوان یک آرایه از یک پوچ باشند.

روش دوم در این روش مستقیماً خانه ها مقدار دهی میشوند.

مثال برای دسترسی به خانه های آرایه ها به این صورت عمل میکنیم، توجه داشته باشید شماره گذاری خانه ها از

شماره گذاری شده اند.9 تا 0 خانه داریم که از 10 شروع میشود یعنی 0

همچنین میتوانیم یک آرایه چند بعدی داشته باشیم:

18Learnprogramming.skyblog.com

Page 20: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

یا آرایه ای از آرایه ها:

توجه داشته باشید در صورتی که ارایه ای از آرایه ها تعریف میکند، هر عضو جداگانه مقدار دهی اولیه میشودپس تعداد خانه های هر سطر میتواند با سطر دیگر متفاوت باشد. و نحوه استفاده از آنها به شکل زیر است.

تمرین عدد را از کاربر میگیرد و آنها را در یک آرایه قرار میدهد سپس پنجمین عضو وارد شده10برنامه ای که تعداد

توسط کاربر را نشان می دهد.

19Learnprogramming.skyblog.com

Page 21: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

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

شرح است :

c = a + b;

a قرار میگیرد. توجه داشته باشید خود c با هم جمع میشوند و نتیجه در b و aدر این حالت متغیر های عددی برای استفاده های بعدی از این مقادیر دست نخورده باقی میمانند. این مثال لیستی از عملگر های قابلbو

استفاده در محاسبات عددی را نشان میدهد.

Cعالوه بر عملگر هایی برای اعمال تغییرات در اعداد عملگرهایی برای رشته ها )متن ها( دارد، به مثال زیر # توجه کنید.

عملگر ها فقط مختص متغیر های عددی نیستند.

لیستی از عملگر ها و کاری که انجام میدهند :عددی :

20Learnprogramming.skyblog.com

Page 22: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

مثال عمل نوع آرگومان نوع خروجیa + b جمع int float double long

…int float double long

…a – b تفریق int float double long

…int float double long

…a * b ضرب int float double long

…int float double long

…a / b تقسیم int float double long

…int float double long

…a % b باقیمانده تقسیم int float double long

… Int

a \ b تقسیم صحیح )بدوناعشار(

int float double long … Int

-a منفی کردن عدد int float double long …

int float double long …

a > b کوچکتر int float double long … Boolean

a < b بزرگتر int float double long … Boolean

a <= b کوچکتر مساوی int float double long … Boolean

a >= b بزرگتر مساوی int float double long … Boolean

a == b مساوی int float double long … Boolean

a++ اضافه کردن یک واحدبعد از عمل

int float double long …

int float double long …

a-- کم کردن یک واحدبعد از عمل

int float double long …

int float double long …

++a اضافه کردن یک واحدقبل از عمل

int float double long …

int float double long …

--a کم کردن یک واحدقبل از عمل

int float double long …

int float double long …

رشته قابل استفاده است.2برای رشته ها فقط عملگر + برای الحاق

برای اولویت بندی مراحل محاسبه میتوان از )( استفاده کرد

ترتیب اولویت :

داخل پرانتز.1ضرب و تقسیم.2جمع و تفریق.3عملگر سمت چپ.4

عملگر های بولی

مثال عمل نوع آرگومان نوع خروجیa && b Andعمل

هر دو عملوند باید درست باشند تاBoolean Boolean

21Learnprogramming.skyblog.com

Page 23: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

جواب درست باشد

a || bOrعمل

کافی است یکی از عملوند ها درست باشد تا جواب کل عبارت

درست باشدBoolean Boolean

a ^ bX-Orعمل

از عملوند ها بایدفقط یکی درست باشد تا جواب عبارت

درست باشدBoolean Boolean

میتوانید مقادیر حاصل را در متغیر نگه دارید:

int a = b + c;

همچنین میتوانید از آرایه ها استفاده کنید.

int[] a = new int[10];a[0] = b + c;

تمرین عدد را از کاربر گرفته و آنها را باهم جمع کند2برنامه ای بنویسید که .1 عدد را از کاربر گرفته و آنها را باهم تفریق کند2برنامه ای بنویسید که .2 عدد را از کاربر گرفته و آنها را باهم ضرب کند2برنامه ای بنویسید که .3 عدد را از کاربر گرفته و آنها را باهم تقسیم کند2برنامه ای بنویسید که .4 عدد را از کاربر گرفته و میانگین آنها را حساب کند3برنامه ای بنویسید که .5

Debug و Traceکردن

شرط ها # عمل تقسیم بر صفر یکCاز شرط ها برای کنترل اجرای خطوط برنامه استفاده میشود، برای مثال در

خطاست و معموالً این اتفاق نباید بیفتد. برای کنترل اجرای خطوط از فرم زیر استفاده میشود

If (Boolean نوع از (شرط{

شود اجرا شرط بودن درست صورت در باید که دستوراتی

}

If Else ( میشود بررسی اول شرط بودن غلط صورت در که دوم (شرط{

شود اجرا دوم شرط بودن درست صورت در باید که دستوراتی

}

Else {

22Learnprogramming.skyblog.com

Page 24: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

شود اجرا باید ها شرط تمام بودن غلط صورت در که دستوراتی

}

میتواند چندین بار تکرار شود کهIf Else اختیاری هستند و قسمت If Else و Elseتوجه داشته باشد قسمت هر کدام بعد از برسی شدن و غلط بودن شرط قبلی، برسی و در صورت درست بودن اجرا میشوند. به مثال

زیر توجه کنید:

ورودی از کاربر گرفته میشوند و بعد از تبدیل شد به مقدار عددی و ذخیره شدن، عدد دوم با2در این مثال عدد2صفر مقایسه می شود در صورت برابر بود با صفر پیغامی نمایش داده میشود و در غیر این صورت این

به هم تقسیم شده و نتیجه نمایش داده می شود.

به مثالی دیگر از شرط ها توجه کنید:

عدد وارد شده توسط کاربر استفاده شده.2 شرط برای مقایسه 2در این مثال از

تمرین 2 یک معادله درجه c و a , bبرنامه ای بنویسید که با استفاده از متغیر ها ، شرط ها و عملگر ها ضریب های

را بگیرد و آن را با روش دلتا حل کند.

23Learnprogramming.skyblog.com

Page 25: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

حلقه ها دسته تقسیم2برای انجام دادن دستور ها به صورت متوالی میتوانید از حلقه ها استفاده کنید. حلقه ها به

میشوند حلقه هایی که تعداد دفعات اجرا با شرط تعریف میشود و شرط هایی که تعداد دفعات اجرا از رویتعداد عضو های موجود تعریف میشود

تعداد دفعات اجرا با شرط

اشاره کرد.Do While و Forاز این نوع حلقه ها میتواند به حلقه

: در این حلقه یک شمارنده مقدار دهی اولیه میشود، یک شرط برای ادامه عملیات انجام میشود وforحلقه سپس مقداری که شمارنده باید افزایش یا کاهش یابد )با مقدار منفی( تعیین میشود. و تا زمانی که شرط

درست است اجرای حلقه ادامه دارد. )مقدار شمارنده نمیتواند داخل حلقه ویرایش شود(

for ( شمارنده اولیه دهی شمارنده ; ; مقدار افزایش شرط ){

شوند اجرا باید که دستوراتی}

: در این نوع حلقه شرط در آخر اجرای کد بررسی میشود پس حتی اگر شرط غلط باشدdo whileحلقه حلقه حداقل یک بار اجرا میشود، تغییر مقدار شمارنده یا هر چیز دیگر که شرط به آن بستگی دارد میتواند از

خارج یا داخل حلقه باشد.

do{دستورات

}while(شرط)

حلقه هایی که دفعات اجرا به تعداد عناصر یک آرایه بستگی دارد

از این حلقه هاست در این نوع حلقه ها فقط یک آرایه و یک متغیر که در هر اجرا یک عضو درforeachحلقه آن قرار میگیرد تعریف میشوند. عضو های آرایه نمیتوانند در حین اجرا کم یا زیاد شوند.

foreach ( متغیر نوع متغیر (آرایه in نام{

دستورات}

تمرین عدد را گرفته و میانگین آنها را حساب کند.10برنامه ای بنویسید که با استفاده از حلقه ها

پروژه برای مطمئن شدن از این که همه چیز را یاد گرفتید شروع به نوشتن یک پروژه میکنیم، یک پروژه جدید باز

میکنیم. این نرم افزار قرار است نام، نام خانوادگی، شماره ملی و نمرات و تعداد واحد درس های یک سریدانش آموزش را از کاربر گرفته معدل و میانگین معدل کالس را حساب کند.

24Learnprogramming.skyblog.com

Page 26: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

ها استفاده میکنیم.Structبرای نگه داری اطالعات دانش آموزان و نمرات از .1

struct Nomre { public int Vahed; public float Mark; } struct Student { public string Lname, Fname; public Nomre[] Nomarat; }

منوی اصلی برنامه را طراحی میکنم و امکان وارد کردن دانش آموز جدید و وارد کردن نمرات.2

Console.WriteLine("Studnet Count :");int studentCount = int.Parse(Console.ReadLine());Student[] students = new Student[studentCount];for (int i = 0; i < students.Length; i++){

Console.WriteLine("Student First Name : ");students[i].Fname = Console.ReadLine();Console.WriteLine("Student Last Name : ");students[i].Lname = Console.ReadLine();Console.WriteLine("Mark Count : ");int markCount = int.Parse(Console.ReadLine());Nomre[] marks = new Nomre[markCount];for (int j = 0; j < marks.Length; j++){

Console.WriteLine("Mark : ");marks[j].Mark = float.Parse(Console.ReadLine());Console.WriteLine("Vahed : ");marks[j].Vahed = int.Parse(Console.ReadLine());

}students[i].Nomarat = marks;

}

سپس در آخر گزینه ی نمایش میانگین معدل کالس را به آن اضافه میکنیم.

float allSum = 0;foreach (var item in students){

float sum=0;foreach (var i in item.Nomarat){

sum += i.Mark * i.Vahed;}float sumVahed = 0;foreach (var v in item.Nomarat){

25Learnprogramming.skyblog.com

Page 27: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

sumVahed += v.Vahed;}float avg = sum / sumVahed;Console.WriteLine(item.Fname +" "+item.Lname+"\t\t"+ avg);allSum += avg;

}Console.WriteLine("Mian gine kolle kelas\t\t" + (allSum/students.Count()));Console.ReadKey();

کد کامل برنامه :

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;

namespace ConsoleApplication1{ class Program { struct Nomre { public int Vahed; public float Mark; } struct Student { public string Lname, Fname; public Nomre[] Nomarat; }

static void Main(string[] args) { Console.WriteLine("Studnet Count :"); int studentCount = int.Parse(Console.ReadLine()); Student[] students = new Student[studentCount]; for (int i = 0; i < students.Length; i++) { Console.WriteLine("Student First Name : "); students[i].Fname = Console.ReadLine(); Console.WriteLine("Student Last Name : "); students[i].Lname = Console.ReadLine(); Console.WriteLine("Mark Count : "); int markCount = int.Parse(Console.ReadLine()); Nomre[] marks = new Nomre[markCount]; for (int j = 0; j < marks.Length; j++) { Console.WriteLine("Mark : "); marks[j].Mark = float.Parse(Console.ReadLine()); Console.WriteLine("Vahed : "); marks[j].Vahed = int.Parse(Console.ReadLine()); } students[i].Nomarat = marks; } float allSum = 0;

26Learnprogramming.skyblog.com

Page 28: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

foreach (var item in students) { float sum=0; foreach (var i in item.Nomarat) { sum += i.Mark * i.Vahed; } float sumVahed = 0; foreach (var v in item.Nomarat) { sumVahed += v.Vahed; } float avg = sum / sumVahed; Console.WriteLine(item.Fname +" "+item.Lname+"\t\t"+ avg); allSum += avg; } Console.WriteLine("Mian gine kolle kelas\t\t" + (allSum/students.Count())); Console.ReadKey();

}

}}

خروجی گرفتن از نرم افزار کلیک کنید.Publish روی گزینه ی Buildبرای خروجی گرفتن از نرم افزار کافی است که از منوی

27Learnprogramming.skyblog.com

Page 29: آموزش C#.NET قسمت اول - RozUp.Irrozup.ir/download/569879/Part 1.docx · Web viewاین دوره ها کاملا به روز بوده و کاربر قادر خواهد

قسمت اولC#.NETآموزش <<[email protected] پارسا گچ کار

یک فولدر را برای شما باز میکند، کهVisual Studioصفحه فوق باز میشود مراحل را ادامه دهید در آخر Setupشامل یک سری فایل است. این فولدر شامل فایل های مورد نیاز برای نصب برنامه شماست. برنامه

را برای نصب نرم افزار اجرا کنید.

28Learnprogramming.skyblog.com