کارگاه آموزش اکسل نیمه پیشرفته

برنامه ‏نویسی با #C، بخش یک

امتیاز کاربران

در ابتدا باید بدانیم یک زبان برنامه نویسی چیست و چه کار می‌کند.

از یک نگاه می‌توانیم بگوییم یک زبان برنامه نویسی به چیزی گفته می‌شود که توانایی تصمیم گیری داشته باشد.

ادامه مطلب: برنامه ‏نویسی با #C، بخش یک

برنامه ‏نویسی با #C، بخش هشتم

امتیاز کاربران

در قسمت قبل با دستور if  و نحوه کار با آن اندکی آشنا شدیم حال فرض کنید شرایطی پیش آمده که می‌خواهیم به جای یک شرط چند شرط را در دستور  if  بررسی کنیم.


در این موارد می‌توان شرط‌های درون  if  را به وسیله عملگر های  and و   or منطقی   ترکیب کرد . با یک مثال این موضوع را امتحان می‌کنیم.

  • یک پروژه ویندوزی ایجاد کرده و نام آن را برابر  And Or Demo قرار دهید.
  • در قسمت طراحی دو کنترل text box و  یک کنترل   button   اضافه کنید.و خاصیت  name  آن‌ها را به ترتیب برابر  txtName1 و  txtName2 و btnORcheck  قرار دهید.
  • خاصیت  text  آن‌ها را نیز به ترتیب برابر  Sydnie و Stephanie و OR check  قرار دهید.
  •  روی دکمه OR check  دو بار کلیک کرده و کد زیر را در آن وارد کنید.

pic01

  • برنامه را اجرا کنید و نتیجه را مشاهده کنید.
  • سپس در صفحه اصلی متن‌های داخل صفحه را به گونه ای تغییر دهید که هیچ یک از ان‌ها شامل Sydnie  نباشد و در این حالت نتیجه را ملاحظه کنید.

عملگر || در  C#  به عنوان "یا " منطقی استفاده می‌شود و معمولاً برای بررسی دو شرط متفاوت از هم به کار می‌رود.

در این حالت سؤالی که در بخش  if  مطرح می‌شود این است که " آیا مقدار  strName1  برابر  Sydnie  است ؟ یا مقدار  strName2  برابر  Sydnie  است؟" در این حالت مقدار هر یک از متغیرها که برابر  Sydnie  شود پاسخ برابر  True  خواهد شد.

کنترل  button  دیگری به نام  btnAndCheck  به فرم اضافه کنید و کد زیر را در رویداد کلیک آن بنویسید.

pic02 

برنامه را اجرا کنید.

 

همان طور که متوجه شدید سؤالی که در این حالت در شرط  if  پرسیده می‌شود این است:

" آیا  strName1  برابر با  Sydnie  و  StrName2  برابر با Sydnie  است؟".

 نکته: در استفاده از عملگر های AND و  OR در یک دستور  if  هیچ محدودیتی نیست. اما باید توجه داشت که استفاده زیاد از این عملگرها از خوانایی برنامه می‌کاهد و درک ان را مشکل می‌کند. پس تا حد امکان از شرط‌های کمتر در دستور  if  خود استفاده کنید.

همچنین می‌توانید از چند عملگر  And  Or  در دستور خود استفاده کنید و با استفاده از پرانتزها ان‌ها دسته بندی کنید.

مقایسه رشته‌ها

معمولاً هنگامی که در دستور  if  رشته‌ها را با یکدیگر مقایسه می‌کنید به علت حساسیت برنامه به حروف کوچک و بزرگ با مشکل مواجه می‌شوید. با وجود این که هر دو کاراکتر “a” و “A”  برای انسان‌ها یک معنی دارند و یکسان تلقی می‌شوند اما در کامپیوتر دو کاراکتر مجزا از هم هستند.که به عنوان حساسیت به نوع حروف شناخته می‌شود.

مثال زیر راهی را برای اجتناب از این مسئله نشان می‌دهد تا بتوانید رشته‌ها را به طور عادی و بدون در نظر گرفتن نوع حروف مقایسه کنید.

  • کنترل  button دیگری به فرم اضافه کنید , خاصیت  name  ان را برابر btnStringCompare  و خاصیت  text  را برابر  Compare string  قرار دهید .
  • کد زیر را در متد کلیک ان وارد کنید.

pic03

  • برنامه را اجرا کنید.

همان طور که مشاهده می‌کنید به جای استفاده از  عملگر == برای مقایسه رشته‌ها از تابع  compare  در system.string  استفاده می‌کنیم. این تابع سه پارامتر را به عنوان ورودی دریافت می‌کند.پارامتر اول و دوم رشته‌هایی هستند که باید با هم مقایسه شوند پارامتر سوم هم برای تابع مشخص می‌کند که در هنگام مقایسه نوع حرف را نادیده بگیرد یا نه.که در این جا  true  به این معنی است که در هنگام مقایسه بزرگی و کوچکی حروف به وسیله تابع نادیده گرفته شوند .( اگر مقدار این پارامتر  را برابر  false  قرار دهیم عملکرد ان دقیقاً مشابه استفاده از عملگر == خواهد بود.

فرستاده شده توسط: مهسا ابراهیمیان

برنامه‏ نویسی با #C، بخش سه

امتیاز کاربران

در جلسه گذشته با مفهوم متغیر آشنا شدیم در ادامه لازم است بدانیم که هنگام تعریف یک متغیر چه نوع داده ای را می‌خواهیم در آن ذخیره کنیم متغیری که در مثال جلسه پیش دیدیم مقادیر عدد صحیح را در خود نگه می‌داشت.


 هنگام تعریف یک متغیر در visual C#  باید به ان بگوییم که چه نوع اطلاعاتی را می‌خواهیم در آن ذخیره کنیم. که این موارد به عنوان نوع‌های داده ای شناخته می‌شوند.

در این بخش به تاثیر زیادی که نوع داده ای در چگونگی اجرای برنامه توسط کامپیوتر دارد نگاهی می‌اندازیم.

هنگام کار با اعداد باید بدانیم که دو نوع عدد می‌توانیم داشته باشیم: صحیح یا اعشاری که کاربردشان متفاوت است. مثلاً برای محاسباتی که ممکن است نتیجه شامل اعشار هم باشد نباید از متغیر های صحیح استفاده کرد. از اعداد صحیح بیشتر برای شمردن مراتبی که یک اتفاق رخ می‌دهد استفاده می‌شود.

در این قسمت پروژه جدیدی برای عملیات ریاضی خواهیم داشت:

  • با انتخاب منوی file –> new-> project   پروژه جدیدی ایجاد کنید.
  • ابتدا یک کنترل  button  به فرم اضافه کرده و خاصیت  name  ان را به btnIntMath  و خاصیت  text  ان را به  math test  تغییر دهید.
  • روی کنترل دو بار کلیک کنید تا در متد ایجاد شده برای رویداد  click  کد زیر را وارد کنید.

pic01

برنامه را اجرا کنید تا نتیجه را ببینید، کدهایی که نوشتیم خیلی گیج کننده نیست. چیزی که شما به کامپایلر (کامپایلر برنامه یا مجموعه‌ای از برنامه‌های کامپیوتری است که متنی از زبان برنامه نویسی سطح بالا یا زبان مبدأ را به زبانی سطح پایین یا زبان مقصد تبدیل می‌کند به بیان ساده، کامپایلر برنامه‌ای است که یک برنامه نوشته شده در یک زبان خاص  را خوانده و آن را به یک برنامه مقصد تبدیل می‌نماید) در یکی از مهم‌ترین پروسه‌های این تبدیل، کامپایلر وجود خطا را در برنامه مبدأ اعلام می‌نماید. می‏گویید این است که مقدار متغیر را برابر 16 قرار بده و سپس مقدار ان را برابر مقدار کنونی متغیر( عدد 16 به اضافه 8 ) قرار بده.

البته این کدها را به شکل مختصر تری هم می‌توان نوشت:

pic2

 

pic3

 

pic4

 

pic5

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

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

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

فرستاده شده توسط: مهسا ابراهیمیان

برنامه‏ نویسی با #C، بخش ششم

امتیاز کاربران

در این قسمت به معرفی متد ها و کاربرد آنها خواهیم پرداخت.

یک متد یک تکه کد است که وظیفه خاصی را انجام میدهد.


متد ها که پروسیجر هم نامیده میشوند به دو دلیل اهمیت زیادی دارند. اول این که آنها برنامه را به قسمت های کوچک تر تقسیم میکنند و موجب میشوند که برنامه بهتر درک شود. دوم این که آنها قابلیت استفاده مجدد از کد ها را افزایش میدهند .

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

دانستن این که چگونه برنامه را به قسمت های کوچکتر تقسیم کنید موردی است که به تجربه نیاز دارد.اهمیت تقسیم کردن یک برنامه به چند قسمت کوچک و تاثیر ان در سادگی برنامه را زمانی مشاهده خواهید کرد که برنامه های بسیار پیچیده تری نسبت به انهایی که تا کنون نوشته اید بنویسید.

چرا از متد ها استفاده میکنیم؟

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

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

در ویژوال C# 2005  یک متد یا میتواند مقداری را برگرداند و یا هیچ مقداری را بر نگرداند . به متد هایی که مقداری را برمیگردانند یک تابع و به متد هایی که هیچ مقداری را بر نمیگردانند یک زیر برنامه گفته میشود.

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

pic01

این متد هیچ مقداری را بر نمیگرداند بنابر این نوع مقدار بازگشتی  void  تعریف شده است.

کلمه void  به کامپایلر میگوید که این متد هیچ مقداری را بر نمیگرداند. اگر متدی مقداری را برگرداند به جای استفاده از void  باید  نوع مقداری که برگشت داده میشود را بنویسید ( برای مثال  int  یا  double  یا ... ).

در مثال زیر متدی ایجاد میکنیم که مساحت یک دایره را بر اساس شعاع آن محاسبه میکند.

  • یک پروژه ویندوزی ایجاد کرده و نام آن را برابر  Three Buttons  قرار دهید.
  • سه دکمه فرمان بر روی فرم خود قرار دهید.
  • کد زیر را در قسمت کد برنامه وارد  کنید:

pic2

  • سپس روی دکمه اول دو بار کلیک کرده و کد زیر را در آن وارد کنید:

pic03

  • برنامه را اجرا کرده و روی دکمه  button1  کلیک کنید.
  • در ادامه به عنوان تمرین اگر متد را درون کد مربوط به دکمه های دیگر هم فراخوانی کنید مشاهده میشود که نتیجه یکسانی بدست می اید.

فرستاده شده توسط: مهسا ابراهیمیان

برنامه‏ نویسی با #C، بخش دو

امتیاز کاربران

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

اساس فعالیت همه‌ی نرم افزارها الگوریتم آن‌ها است قبل از این که بتوانید برنامه ای بنویسید تا مسئله‏ای حل کند ابتدا باید آن را به چند مسئله کوچک‌تر تقسیم کنید,  الگوریتم برنامه‌ها کاملاً مستقل از زبان برنامه نویسی است که برای نوشتن برنامه از آن استفاده می‌کنید.


 برای کار کردن یک نرم افزار یک سری داده نیاز است که روی آن‌ها پردازش شود نرم افزار این داده‌ها را دریافت می‌کند و به فرمی دیگر تبدیل کرده و ارائه می‌کند.

بنابراین بهتر است در ابتدا با چند اصطلاح آشنا شویم:

متغیرها

متغیر مکانی است که شما در طول کار الگوریتم خود مقداری را در ان ذخیره می‌کنید که بعدها می‌توان بر اساس مقدار ان متغیر تصمیم گیری کنید.

بهتر است برنامه‌ی ساده ای اجرا کنیم تا با این مفهوم بیشتر آشنا شوید:

  • برنامهC#  visual   را اجرا کنید
  • در قسمت template  سمت راست گزینه  windows application  را انتخاب کنید.سپس روی  ok  کلیک کنید.
  •  از جعبه ابزار( جعبه ابزار شامل کنترل‌ها و کامپوننت هایی است که می‌توانید بر روی فرم خود قرار دهید) یک کنترل  button  روی پنجره form 1  قرار دهید.(در مورد پنجره‌ها در  IDE  ویژوال استودیو به تدریج توضیح می‌دهیم).
  • خاصیت  text  مربوط به  button  را به  Add 1 to intNumber تغییر دهید.(با استفاده از پنجره  properties  می‌توانید خاصیت‌های یک کنترل را به راحتی تغییر دهید خاصیت‌ها معمولاً رفتار یا ظاهر یک شی را توصیف می‌کنند. )
  • خاصیت  name  ان را به  btnAdd  تغییر دهید.
  • روی button  در بار کلیک کنید تا تابع مربوط به رویداد click  با نام  btnAdd_click   ایجاد شود.
  • کد های زیر را به ان اضافه کنید.

c02

  • برنامه را اجرا کنید و بر روی دکمه  Add 1 to intNumber   کلیک کنید.

 

برنامه از بالاترین خط شروع می‌شود، یکی یکی خط‌ها را ایجاد می‌کند و به سمت پایین میاید. خط اول یک متغیر جدید به نام  intNumber  ایجاد می‌کند.

 Int در C#  یک کلمه کلیدی است( کلمه کلیدی کلمه ای است که برای ویژوال C#  معنای خاصی دارد). Int  مخفف  integer  به معنای عدد صحیح است و  نوع مقداری که می‌خواهیم  در این متغیر ذخیره کنیم را به  C#  می‌گوید.

این کلمات که برای مشخص کردن نوع داده مورد نظر استفاده می‌شوند به  " نوع داده ای " معروف هستند که رفته رفته بیشتر با آن‌ها آشنا خواهیم شد.

اگر از دید ریاضی به این دستور نگاه کنید ممکن است اشتباه به نظر برسد اما در حقیقت کاری که این دستور انجام می‌دهد این است که مقدار متغیر intNumber  را با عدد 1 جمع می‌کند و حاصل را مجدداً در  intNumber  ذخیره می‌کند.

توجه به چند نکته حائز اهمیت است:

  • هنگامی که کد یک نرم افزار را می‌نویسید باید بدانید که شما یا شخص دیگری ممکن است در آینده بخواهید این کد را تغییر دهید بنابراین باید تا جایی که ممکن است کد را قابل فهم کنید.
  • در هر جا که لازم است از فاصله و توضیح (توضیحات بخشی از برنامه است که توسط کامپایلر نادیده گرفته می‌شود و می‌توانید هر چه می‌خواهید را بعد از علامت //  بنویسید) استفاده کنید.
  • احتمالاً متوجه شده‌اید که کنترلی که ایجاد کرده‌ایم ساختار نام جالبی دارد تمام آن‌ها دارای یک پیشوند هستند که نوع آن‌ها را مشخص می‌کند. این کار باعث می‌شود که هنگام کد نویسی به راحتی نوع کنترلی که با ان کار می‌کنید را تشخیص دهید.

تعدادی از این پیشوندها و کنترل‌ها به قرار زیرند:

c02-02