PDA

View Full Version : آموزش: آموزش سی شارپ با روش پروژه محور - از صفر تا پیشرفته



miladspeaker
یک شنبه 24 اردیبهشت 1391, 21:49 عصر
شیوه ی آموزشی پروژه محور به این ترتیب می باشد که ما آموزش هایی درس به درس را برای شما در نظر می گیریم و یک یا چندین پروژه که به آن مطلب مربوط است را به آن ضمیمه می کنیم. اما این پروژه ها به صورت کامل انجام نشده اند و بخش های مربوط به درس مذکور از آن حذف گردیده تا شما قدم به قدم آن پروژه را تکمیل کنید. این روش به طور همزمان آموزش به سبک تئوری و عملی را پیش می گیرد که سرعت یادگیری شما عزیزان را چند برابر می کند. همینطور در هر درس چندین تمرین برنامه نویسی مختلف آورده شده است تا بتوانید خود را محک بزنید. :قلب:

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

miladspeaker
یک شنبه 24 اردیبهشت 1391, 22:13 عصر
درس اول از سری آموزش های پروژه محور – سی شارپ
با سلام به شما سروران گرامی
اهداف آموزشی :
• انواع زبان های برنامه نویسی
• تعریف کلی از زبان برنامه نویسی سی شارپ
• آشنایی کلی با محیط ویژوال استادیو (visual studio)
• تعریف انواع داده ها
• تعریف متغیرها و ثوابت
انتظارات !
از شما دوست عزیز انتظار دارم که بعد از مطالعه ی این درس :
• فرق بین زبان سی شارپ با بقیه زبانها رو تشخیص بدبد.
• فرق بین انواع داده ها رو درک کنید.
• قادر باشید متغیر تعریف کنید.
• و بتوانید اولین برنامه ی خودتون رو بنویسید.

کمی مقدمه !
چرا این همه زبان؟! چه نیاز به این همه زبان برنامه نویسی هست؟ فرق این زبانها در چیست؟ آیا کاربردهای متفاوتی دارند؟ از کجا شروع کنم؟ آیا سی شارپ زبان قدرتمندی است؟ و هزاران سوال دیگر ...
بله! حتما شما هم جز افرادی هستید که این سوالات برایتان مطرح است. به شما تبریگ میگم اگر سوالاتی از این قبیل در ذهن شما نقش بسته است! چراکه شما اولین قدم را برای ورود به دنیای برنامه نویسی برداشته اید. مخاطب من کسی نیست جز خودِ شما !
اما درعین پشتکار و تلاش برای پیدا کردن جواب این سوالات، سعی کنید که صبور باشید و عجله نکنید (یک نصیحت دوستانه !)
1-1 انواع زبان های برنامه نویسی
به طور کلی می توانیم زبان های برنامه نویسی را به سه دسته تقسیم کنیم :
1. زبان های ماشین
2. زبان های اسمبلی
3. زبان های سطح بالا
1-1-1 زبان های ماشین
همانطور که می دانید کامپیوترها هم زبان دارند! زبان آنها چیزی نیست جز ترکیب اعدادی از صفر و یک. نوشتن دستورات به زبان کامپیوتر بسیار سخت و زمان بر می باشد. (بیشتر از این وارد این موضوع نمیشیم چون از بحث اصلی خارج میشیم!)
1-1-2 زبان اسمبلی
تحولی بزرگ در دنیای برنامه نویسی بود. در این زبان از واژه های خلاصه انگلیسی برای نوشتن کد استفاده می شود.
سپس یک مترجم به نام اسمبلر تمام کدهای نوشته شده را به زبان کامپیوتر تبدیل می کند تا کامپیوتر قدرت درک کدها را داشته باشد. اما زبان اسمبلی باز هم تفاوت زیادی با زبان گفتاری ما دارد و درک آن به نسبت سخت است.
1-1-3 زبان سطح بالا
برای تسریع در فرآیند برنامه نویسی ابن نوع زبان برنامه نویسی اختراع شد. این نوع زبان برنامه نویسی بسیار شبیه به زبان انگلیسی است و عینا" کلمات انگلیسی در آن به کار می رود. برنامه های مترجم که برنامه های سطح بالا را به زبان کامپیوتر تبدیل می کنند کامپایلر نامیده می شوند. زبان هایی مثل ++C, #C , C, java, visual basic,… مثال هایی از زبان سطح بالا هستند.
(فعلا تا همینجا کافیست! به زودی با مفهوم شی گرایی آشنا می شوید و درک عمیقی از تفاوت زبان های برنامه نویسی پیدا می کنید)
کمی در مورد سی شارپ :
زبانی شیءگرا و سطح بالا (high level) از خانوادهٔ زبان‌های چارچوب دات‌نت شرکت مایکروسافت است.
استاندارد ECMA این اهداف طراحی زبان را برای #C بر آورده می‌سازد: • سی شارپ یک زبان برنامه سازی ساده، مدرن، برای اهداف عمومی و شی گرا است. • به دلیل اهمیت داشتن موضوع نیرومندی و دوام و بهره وری برنامه نویس، زبان دارای چک کننده Strong Type، چک کننده مرزهای آرایه، تشخیص حالتهایی که یک متغیر مقدار دهی اولیه نشده‌است، قابلیت انتقال کدها و Garbage Collection خودکار است. • این زبان برای استفاده در اجزای توسعه نرم‌افزار برای دستیابی به مزایای سیستم‌های توزیعی در نظر گرفته شده‌است. • قابلیت انتقال برنامه نویس بسیار مهم است، خصوصاً برای آن دسته از برنامه نویسانی که با زبان‌های C و C++ آشنا هستند. • پشتیبانی از این زبان برای بین‌المللی شدن بسیار مهم است. • زبان سی شارپ برای نوشتن برنامه‌ها برای سیستمهای تعبیه شده و میزبان در نظر گرفته شده‌است، از سیستم‌عامل‌های پیچیده بسیار بزرگ گرفته تا توابع اختصاصی بسیار کوچک. • هر چند برنامه‌های نوشته شده با #C طوری هستند که از لحاظ حافظه و پردازنده مورد نیاز مقرون به صرفه باشند، ولی خود زبان از لحاظ اندازه و کارایی به خوبی زبان‌های C و اسمبلی نیست.
(نیازی نیست تمام مفاهیم گفته شده در متن بالا را جدی بگیرید!! به مرور زمان با ویژگی های سی شارپ آشنا خواهید شد)
1-2 انواع داده
داده ها نقش پررنگی در علم برنامه نویسی دارند. شما برای هرکاری نیاز به داده ها دارید. در سی شارپ دو دسته از داده ها داریم:
• انواع مقداری (value type)
• انواع مرجع (reference type)
تفاوت اصلی این دو دسته در نوع ذخیره سازی آنها در حافظه است (در آینده ای نزدیک همه چیز برایتان روشن می شود!).
 جدول انواع داده های عددی در سی شارپ :


http://irspn.com/wp-content/uploads/2012/05/13.jpg

( از این همه تنوع و عدد ناراحت نباشید! به مرور زمان و با تمرین ملکه ی ذهن شما میشوند )
نکته برای نوع String و char : فعلا تا همینجا بدونید که نوع string یک رشته از حروف می باشد که بین دو " قرار می گیرد. Char نوعی از داده است که شامل یک کاراکتر می باشد و بین دو ‘ قرار میگیرد.
مثال : "milad" یک نوع string است و ‘4’ یا ‘D’ یک نوع char هستند. (در ادامه بیشتر می فهمید!)
خودآزمایی : فرق بین 2 و ‘2’ و “2” در چیست؟! ( یخورده فکر کنید ! )

1-3 متغیرها
متغیرها نامی برای کلمات حافظه اند که داده ها در آنها قرار می گیرند. به زبان ساده تر اگر شما مقداری را در قسمتی از حافظه ذخیره کنید و اسمی به آن تخصیص دهید، شما یک متغیر ساخته اید. در اصل شما می توانید با داشتن اسم یک متغیر به آدرس مقدار آن متغیر در حافظه دسترسی داشته باشید. شما می توانید مقدار آن قسمت حافظه را با داشتن اسم متغیر تغییر دهید. متغیر چگونه تعریف می شود؟ الان میگم !

Modifier نام داده نام متغیر
 Modifier یک دستور اختیاری است که سطح دستیابی به متغیرها را کنترل میکند. میتواند یکی از حالات public یا private باشد (فعلا با modifier کاری نداریم! در بحث شیء گرایی اهمیت این موضوع رو درک می کنید)
 نوع داده : یکی از انواع داده می باشد ( با توجه به جدول بالا)
 نام متغیر هم که دیگه معلومه دیگه! (توضیح بدم؟!!!)
مثال 1-1 دو متغیر x , y را از نوع long تعریف کنید. یک متغیر از نوع string و یک متغیر از نوع char . (همین!)
long x,y;
string st;
char ch;
یه برنامه کوچولو ! :
فایل ضمیمه رو دانلود کنید. دنبال فایل unit_1.sln بگردید و آن را باز کنید. متد main رو به صورت زیر تغییر دهید:
(عبارت//www.irspn.cpm رو پاک کنید و متد main رو ویرایش کنید)

static void Main(string[] args)
{
string s = "hello C#";
Console.WriteLine(s);
}
در محیط ویژوال استادیو کلیدهای Ctrl+f5 رو از روی کیبورد فشار دهید. باید یک صفحه مشکی (console) باز شود و عبارت hello #c ابتدای آن دیده شود.

تبریک میگم !
شما اولین برنامه ی خودتون رو نوشتید !
تا درس دوم خدانگهدار !

منبع www.irspn.com

miladspeaker
پنج شنبه 11 خرداد 1391, 23:38 عصر
"درس دوم"

ساختارهای تصمیم
اهداف آموزشی :
بررسی ساختار if ساده و تودرتو
بررسی ساختار switch
انتظارات !
از شما دوستان عزیز انتظار دارم پس از مطالعه این درس بتونید یک مساله رو تحلیل کنید و با توجه به نیاز مساله، یکی از ساختارهای if یا switch رو بکار بگیرید.
کمی مقدمه :
در حالت عادی یک برنامه روال بالا به پایین را طی می کند. یعنی چی؟ یعنی اینکه در حالت عادی دستورات برنامه از اولین کد به آخرین کد به صورت خط به خط اجرا میشه. پس یعنی هر دستوری یک بار اجرا میشه. حالا یه سوال از شما می پرسم! اگر من تمایل داشته باشم که تحت شرایط خاصی، بخشی از کدها اجرا نشه باید چیکار می کنم؟! بالفرض من می خوام برنامه ای بنویسم که اگر اعداد ورودی زوج بودند اونها رو در 5 ضرب کنه و اگر اعداد فرد بودند اونها رو در 10 ضرب کنه. خب! به عنوان مثال عدد 7 رو به عنوان ورودی در نظر می گیریم. پس باید کاری کنیم که کدهای مربوط به اعداد زوج اجرا نشه!
ساختارهای تصمیم :
ساختار تصمیم if :
این ساختار ابتدا شرطی رو تست می کنه و در صورتی که شرط درست باشه، کدها اجرا میشه. دستور if در حالت کلی به دو صورت زیر هستش :
1)
if (شرط)
دستور1 ;
else
دستور2 ;
2)
if (شرط)
{
دستور1 ;

n دستور ;
}
else
{
دستور1 ;

n دستور ;
}
در روش اول، هنگامی که شرط دارای ارزش درستی باشه دستور 1 و در غیر این صورت دستور 2 اجرا میشه.
در روش دوم که در اصل تعمیمی از روش اول هست بجای یک دستور از چندین دستور استفاده شده. (به آکولادها توجه کنید!)
اینجا رو ببین! :
if (Z > Y)
max=Z;
else
max=Y;
در این مثال چنانچه Z بزرگتر از Y باشه، Z در max قرار می گیره وگرنه Y در متغیر max قرار می گیره.
پروژه محور یک :
برنامه ای که عددی رو میگیره و نشان میده که بر 4 بخش پذیز هست یا نه.
فایل UNIT2 رو از اینجا دانلود کنید (http://irspn.com/wp-content/uploads/2012/05/UNIT2.rar) و از حالت ZIP خارج کنید و دنبال فایل UNIT2_1.sln (که از نوع پروژه های .NET هست) بگردید و اجرا کنید. در ستون Solution Explorer (سمت راست تصویر) به روی form1.cs دوبار کلیک کنید. و پس از آن از منوی view (بالای پنجری) گزینه Code رو انتخاب کنید تا صفحه ی حاوی کدها نمایان بشه. (این توضیحات یادتون باشه چون از درسهای آینده فرض می کنم که شما این کارها رو بلدید!)
حال در میان کدها به دنبال //www.irspn.com بگردید و آن را حذف کنید و کدهای زیر را دقیقا به جای عبارت گفته شده بنویسید.
int num= Convert.ToInt32(textBox1.Text);
if (num % 4 == 0)
label2.Text=” YES “;
else
label2.Text=” NO “;
به کوچک و بزرگ بودن حروف توجه کنید. حال کلیدهای Ctrl+F5 رو بزنید و اجرای برنامه رو ببینید !
2-1 ساختار if تودرتو :
اگر برنامه نیاز به شرط های متعدد داشته باشه از if تودرتو یا else-if استفاده می کنیم. ساختار کلی :
if (شرط 1 )
دستور 1 ;
else if ( شرط 2 )
دستور 2 ;

else if ( n شرط )
n دستور;
else
دستور ;
در این ساختار اگر شرط اول درست باشه، دستور 1 اجرا میشه و کنترل اجرای برنامه از کل این ساختار خارج میشه (یعنی else-if های بعدی اجرا نمیشه). و اگر شرط 1 درست نباشه دستورات بعدی بررسی می شوند.
نکته کنکوری !!!!! :
در این ساختار می توان آخرین else را حذف کرد. چنانچه آخرین else حذف شود، در صورتی که هیچ شرطی درست نباشد، کنترل اجرای برنامه به دستور بعد از if انتقال می یابد و هیچکدام از دستورات 1 تا n اجرا نمیشوند.
پروژه محور دو :
برنامه ای که عددی رو می خواند و تععین علامت کند.
در فایلی که دانلود کردید UNIT2_2.sln را از پوشه UNIT2_2 باز کنید. قسمت کدها را نمایان کنید. عبارت //www.irspn.com رو پاک کنید و کدهای زیر را با آن جایگزین کنید و از برنامه اجرا بگیرید:
int num = Convert.Toint32(textBox1.text);
if (num>0)
label2.Text=” + “;
else if (num == 0)
label2.Text=” zero “;
else
label2.Text=” – “;
ساختار تصمیم switch :
به نظر من ساختار switch یه ساختار جالبه که بر اساس نیاز ما بخشی از کد رو اجرا می کنه. پیشنهاد می کنم که در تمام تصمیم گیری هایی که بیشتر از سه انتخاب وجود داره، از switch استفاده کنید.(از if هم میشه اما switch بهتره!)
ساختار :
switch (عبارت)
{
case مقدار1 :
دستورات 1 ;
break ;
case مقدار2 :
دستورات2 ;
break;
….
default
n دستورات ;
break;
}
در مرحله اول عبارت جلوی کلمه switch محاسبه میشه و بر اساس جواب بدسا اومده، یکی از Caseها اجرا میشه ودرصورتی که جواب بدست آمده مطابق با هیچ کدوم از case ها نباشه، عبارت بعد از default اجرا میشه. Default یک کلمه کلیدی و اختیاری هست ( می تونیم ازش استفاده نکنیم.).
پروژه محور سه :
برنامه ای که عددی بین 1 تا 7 رو می خواند و اسم روز هفته رو می نویسد.
فایل unit2_3.sln رو باز کنید. بجای عبارت //www.irspn.com کدهای زیر رو جایگزین کنید و اجرا کنید.
int n;
n = Convert.ToInt16(textBox1.Text);
switch (n)
{
case 1:
label2.Text = “shanbe”;
break;
case 2:
label2.Text = “1 shanbe”;
break;
case 3:
label2.Text = “2 shanbe”;
break;
case 4:
label2.Text = “3 shanbe”;
break;
case 5:
label2.Text = “4 shanbe”;
break;
case 6:
label2.Text = “5 shanbe”;
break;
case 7:
label2.Text = “jome”;
break;
default:
label2.Text = “Please enter a nuuber 1 to 7″;
break;
}
خب !
خسته نباشید !
درس سوم از سری آموزش های سی شارپ به زبان ساده، در تاریخ 15 خرداد 91 روی IRSPN.com قرار میگیرد.
درصورتی که جایی از متن اشتباه بود یا مشکلی برای شما پیش اومد، در قسمت نظرات مطرح کنید.
منبع : www.irspn.com (جامعه برنامه نویسی دانشجویان)

miladspeaker
جمعه 12 خرداد 1391, 12:28 عصر
درس سوم = 15 خرداد