آزمایشگاه GIS&GIT

مهندسی فناوری اطلاعات مکانی|مهندسی نقشه برداری|GIS|GEOMATICS|GIT
آزمایشگاه  GIS&GIT

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

جهت تماس از طریق ای دی زیر اقدام نمایید.
telegram:@fazel_shahcheragh
تلفن تماس جهت مشاوره:09124320328
برنامه نویسی و اسکریپت نویسی GIS
آموزش و رفع اشکال ARCPY
طراحی وتوسعه اپلیکیشن های موبایل
طراحی و توسعه برنامه های دسکتاپ جی ای اس

سید فاضل شاه چراغ
مدرس دانشگاه
طراح و مجری پروژه های GIS



























آزمایشگاه GIS&GIT

مهندسی فناوری اطلاعات مکانی|مهندسی نقشه برداری|GIS|GEOMATICS|GIT





۶ مطلب با کلمه‌ی کلیدی «آموزش سی شارپ برای ارک جی ای اس» ثبت شده است


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

سلام...

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

متغیر های رشته ای یا string برای ذخیره سازی (موقت) یک متن بکار می روند. متغیرهای عددی ، از جمله int ، float ، byte و... برای ذخیره سازی اعداد مورد استفاده قرار می گیرند. اما نوشتن بعضی برنامه ها نیازمند تعداد زیادی متغیر است. برای مثال فرض کنید بخواهیم برنامه ای بنویسیم که نمرات یک دانشجو را گرفته و معدل او را محاسبه کند. یکی از راه حل ها می تواند این باشد که برای هر درس یک متغیر جداگانه بسازیم. بصورت زیر: (در کد زیر سعی کرده ام که روش های مختلف تعریف و مقدار دهی اولیه متغیرها رو نشان دهم)

float riazi=18.25f;
float fizik=16.5f,shimi,farsi=20.0f;
float miyangin=(riazi+fizik+shimi+farsi)/4;

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

اینجاست که اگر بخواهیم برای هر شخص یک متغیر جداگانه بسازیم، باید تمام وقتمان را صرف تعریف متغیر مناسب برای هر شخص کنیم. اما راه بهتر و بسیار سریع تری هم وجود دارد. ما می توانیم یک لیست از متغیرها رو بسازیم و با استفاده از امکاناتی که زبان برنامه نویسی #C در اختیارمان قرار داده ، به تک تک خانه های لیست دسترسی داشته باشیم. فعلا به این لیست "آرایه" می گوییم.

در هنگام ساختن یک آرایه باید نوع آرایه، نام آرایه و همچنین تعداد خانه های آنرا مشخص کنیم. به مثال زیر که تعریف یک آرایه 100 خانه ای از نوع رشته ای هست دقت کنید:

string[] names=new string[100];

حالا یک آرایه به نام names داریم که دارای 100 خانه می باشد. این آرایه توانایی ذخیره سازی 100 رشته (متن) را در خود دارد. مهمترین کاری که با متغیرها انجام می دهیم، خواندن و نوشتن اطلاعات آنها است. خواندن و نوشتن اطلاعات در آرایه ها تفاوت زیادی با متغیرها ندارد؛ فقط باید همیشه شماره خانه آرایه را در هنگام خواند و نوشتن، مشخص کنیم. کد زیر نوشتن در آرایه را نشان می‌دهد:

names[5]="Ali";
names[0]="Mohammad";
names[99]="Mahdi";
names[100]="saeed"; //خطا - این خانه از آرایه وجود ندارد

میتوانیم در هنگام تعریف آرایه، آنرا مقداردهی هم بکنیم. به کد زیر دقت کنید که چگونه آرایه rates را مقداردهی اولیه می کند:

int rates=new int[5]{3,1,5,2,4};

خانه های 0 تا 5 آرایه rates به ترتیب مقادیر 3 ، 1 ، 5 ، 2 ، 4 به خود خواهند گرفت. حتی می توانیم آرایه را بصورت زیر هم تعریف کنیم. در این صورت تعداد خانه های آرایه بر حسب تعداد مقادیر موجود در آکولاد، تعیین خواهد شد:

byte myArray={10,36,158,220,18,110};

آرایه myArray دارای 6 خانه خواهد بود که مقادیر اولیه آن خانه ها مابین آکولاد ها بیان شده اند.

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

MessageBox.Show(names[5]+" "+names[0]);

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

خوب بریم سراغ حلقه for

حلقه for هم مثل حلقه while دستورهای داخل بلوک خودش رو تکرار میکنه. اما این حلقه یه سری امکانات رو در اختیارمون قرار میده که خیلی بدرد بخور هستن. شما در این حلقه یک متغیر شمارنده تعیین می کنید و بر اساس همین متغیر (یا حتی متغیری دیگر) تصمیم به خروج از حلقه می گیرید. ساختار کلی حلقه for بصورت زیر می باشد:

for(Initial-Expression;Conditional-Expression;Loop-Expression){
    Commands set
}

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

  • Initial-Expression : در این قسمت یک متغیر عددی ساخته و مقدار دهی می کنیم. این قسمت فقط یک بار در اولین دور حلقه اجرا می شود. بنابراین در اولین دور حلقه یک متغیر عددی ساختیم.
  • Conditional-Expression : در این قسمت یک عبارت شرطی می نویسم. در واقع این عبارت، شرط ادامه کار حلقه می باشد. اگر این عبارت برابر false شود، اجرای حلقه متوقف خواهد شد. معمولا در این بخش ، متغیری را که در قسمت قبل ساختیم با یک عدد دیگر مقایسه می کنیم. Condition-Expression اولین دستوری هست که در هر دور حلقه اجرا می شود. منظورم رو در عمل متوجه خواهید شد. نگران نباشید.
  • Loop-Expression : معمولا در این قسمت عبارتی نوشته می شود که مقدار متغیر تعریف شده در بخش Initial-Expression را تغییر دهد. در عمل ، Loop-Expression آخرین دستور اجرا شونده در هر دور حلقه است.

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

  • یک عدد TextBox . خاصیت Name آن را به txtAvg تغییر دهید.
  • یک عدد Label . خاصیت Text آن را به "میانگین" تغییر دهید.
  • یک دکمه.

شکل ظاهری برنامه:

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

float[] marks = new float[10] { 15, 14, 18, 20, 8, 19.5f, 12.25f, 16, 16.75f, 20 };
float sum = 0;
float avg = 0;
for (int i = 0; i < 10; i++)
{
    sum = sum + marks[i];
}
avg = sum / 10;

txtAvg.Text = Convert.ToString(avg);

دو سه نکته در مورد این برنامه:

  • عبارت ++i در قسمت Loop-Expression حلقه for به معنای اضافه کردن عدد 1 به متغیر i است و با عبارت زیر تفاوت چندانی ندارد:
i=i+1;
  • هر متغیر فقط توانایی ذخیره کردن مقادیر همنوع خودش را دارد؛ مگر اینکه آن متغیر با روش هایی تبدیل نوع داده شود. شما فقط می توانید در خاصیت Text شیئ TextBox ، یک رشته ذخیره کنید. چون در واقع خاصیت Text یک متغیر رشته ای است. هر دو دستور زیر با هم برابر هستند. هر دوی آنها متغیر avg را به رشته تبدیل می کنند. این کار برای این است که بتوانیم مقدار متغیر avg را در داخل TextBox به نمایش در آوریم.
txtAvg.Text = Convert.ToString(avg);
txtAvg.Text = avg.ToString();
  • در هر دور حلقه for ، مقدار i ام آرایه marks با مقدار sum جمع می شود، سپس جواب در خود sum قرار می گیرد. همانطور که گفتم آخرین دستور در حلقه for همان Loop-Expression است، بنابراین در هر دور اجرای حلقه ، یکی به مقدار قبلی i اضافه می شود. همچنین قبل از اینکه دستورات داخل بلوک حلقه اجرا شوند، درستی عبارت شرطی بررسی می شود؛ اگر این عبارت برابر با false شود، از حلقه خارج خواهیم شد و دستور های بعد از بلوک حلقه اجرا می شوند.

خدا قوت دوستان :)

برای این جلسه کافیه... در جلسه آینده دریچه های جدیدی از برنامه نویسی رو باز می کینم. باید بفهمیم که اسکوپ چی هست، متغیرهای سراسری چه هستند، چطور متغیرهای رشته ای رو به عددی تبدیل کنیم، در مورد ثابت ها صحبت کنیم و... همچنین با یکی دوتای دیگه از اشیاء آشنایی پیدا کنیم.


 برگرفته شده از butterfly.blog.ir
۰ نظر موافقین ۰ مخالفین ۰ ۰۸ فروردين ۹۴ ، ۲۱:۴۵
ADMIN

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

سلام دوستان عزیز...

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

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

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

برنامه نویسی مقدماتی سی شارپ

در این شکل عملگرها رو با چهارضلعی های آبی مشخص کرده ام و عملوندها را با چهارضلعی های قرمز.

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

عملوند ها می توانند عدد، متغیر و یا از توابع ریاضی و غیر ریاضی باشند.

نکته مهمی که باید توجه داشته باشید اینه که عبارت ها را می توان ساده کرد. بطوری که در نهایت به یک عدد یا رشته و یا... می رسیم. برای مثال در عبارت بالا اگر فرض کنیم که مقدار متغیر a برابر با 5 باشد، این عبارت با عدد ( 6- ) مساوی است. خوب بگذریم :)

در برنامه نویسی سی شارپ عملگر های مختلفی وجود دارد که در زیر مهمترین آنها را مشاهده می‌کنید:

عملگرهای ریاضی یا محاسباتی : 

  • عملگر جمع ( + )
  • تفریق ( - )
  • تقسیم ( / )
  • باقیمانده تقسیم ( % )
  • ضرب ( * )
عملگرهای رابطه ای:
  • عملگر کوچکتر ( > )
  • بزرگتر ( < )
  • کوچکتر مساوی ( => )
  • بزرگتر مساوی ( =< )
  • تساوی ( == )
  • نامساوی یا مخالف ( =! )
عملگرهای شرطی
  • و ( && )  
  • یا ( || )
  • نقیض ( ! )
عملگر انتساب ( = )
البته عملگرهای دیگری هم هستند. خیلی هم زیاد هستند. اما فعلا بکار ما نمیان. عملگرهای ریاضی رو که الحمدلله باهاشون آشنایی کامل دارید. فقط از بین عملگرهای ریاضی، عملگر باقیمانده تقسیم شاید براتون تازگی داشته باشه! اونم چیز خاصی نیست. چندتا مثال میزنم:
  • 25%5 برابر با 0 است. یعنی باقیمانده تقسیم 25 بر 5 مساوی با 0 است. البته تقسیم صحیح، نه اعشاری!
  • 10%3 برابر با 1 است.
  • 17%5 برابر با 2 است.
عبارت هایی که با عملگرهای رابطه یا عملگر های شرطی (یا ترکیب هر دو) ساخته می شوند، در آخر بصورت درست (true) یا غلط (false) ارزیابی می شوند. (ارزیابی می شوند یعنی بعد از ساده شدن ، عبارت به true یا false تبدیل می شود) به مثال های زیر دقت کنید:
  • 23.5 < 12 برابر با false است. (غلط)
  • 20 == (2*10) برابر با true است. (درست)
  • ((13 * 2) > 7) && (12 =< 4) برابر با false است.
عه! نگفتم && ، || و ! چی هستن و چطور کار می کنن! خوب اشکال نداره حالا میگم:
  • && به این صورت کار می کنه که اگر دوطرفش true باشه، نتیجه عبارتش true خواهد شد و در غیر اینصورت نتیجه عبارت false میشه. مثلا اگر به عبارت بالا دقت کنید نتیجه (13 * 2 ) > 7 برابر true هست، اما 12 =< 4 برابر false هست. بنابر این کل عبارت برابر false خواهد بود.
  • || هم به این شکل کار می کنه که اگر هر دو طرفش false باشه، نتیجه عبارتش بصورت false ارزیابی میشه و در غیر اینصورت نتیجه عبارت false هست.
  • عملگر نقیض ( ! ) ، نتیجه عبارت جلوی خودش را برعکس می کند. مثلا نتیجه عبارت (4>1)! برابر با false است.
اما آخرین و تقریبا مهمترین عملگری که در این جلسه به توضیحش می پردازیم، عملگر انتساب هست. این عملگر یه تفاوت های ریز و ظریفی با عملگر "مساوی" در ریاضی داره. اما این تفاوت های ظریف رو خیلی سخته که توضیح بدی. اما خوبیش اینه که خودتون به مرور زمان متوجه تفاوت هاشون خواهید شد.
عملگر انتساب ( = ) کارش اینه که نتیجه ارزیابی عبارت سمت راست خودش رو در متغیر سمت چپ خودش ذخیره می کنه! البته فکر کنم در جلسه قبل تا حدودی با این عملگر آشنایی پیدا کردید. به مثال های زیر توجه کنید:
b = "Salam " + "Donya!" ;

در متغیر b رشته !Salam Donya ذخیره خواهد شد.

m = (2 * 3) + 1 ;

در متغیر m عدد 7 ذخیره خواهد شد.

k = ((2 + 1) == (9 / 3))

در متغیر k چیزی که ذخیره خواهد شد، true است.


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

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

یکی از ساختارهای برنامه نویسی خیلی مهم برای این منظور ساختار شرطی است. بصورت زیر:

if ( Conditional_Expression ){
    Commands set
}

در ساختار شرطی بالا شما بجای Conditional_Expression یک عبارتی که نتیجه آن true یا false است قرار می دهید. این ساختار درصورتی که نتیجه عبارت مربوطه true باشد، مجموعه دستورات داخل بلوک خود را اجرا می کند. دقت کنید، فقط در صورت true بودن عبارت! بجای Commands set می توانید هر تعداد دستور که خواستید بنویسید. حتی می توانید در این قسمت دوباره ساختار شرطی قرار دهید که در آن صورت یک ساختار شرطی تو در تو (nested) خواهیم داشت.

این ساختار مهم شرطی رو می تونیم پیشرفته تر هم بکنیم:

if ( Conditional_Expression ){
    Commands set 1
} else {
    Commands set 2 
}

در این ساختار در صورت true بودن عبارت، مجموعه دستورات 1 اجرا می شود و در غیر اینصورت مجموعه دستورات 2 اجرا می شود. ساختار شرطی بالا رو می تونیم پیشرفته تر هم بکنیم. ساختار پایین رو ملاحضه کنید:

if ( Conditional_Expression 1 ){
    Commands set 1
} else if ( Conditional_Expression 2 ) {
    Commands set 2 
} else if ( Conditional_Expression 3 ) {
    Commands set 3
} else if ( Conditional_Expression n ) {
    Commands set n
} else {
    Commands set n+1
}

در این ساختار اول نتیجه عبارت 1 بررسی می شود؛ درصورت true بودن مجموعه دستورات 1 اجرا می شود. اگر نتیجه false باشد، نتیجه عبارت 2 بررسی شده و در صورت true بودن مجموعه دستورات 2 اجرا می شوند. اگر نتیجه false باشد... . قسمت else آخرین مرحله ای هست که اجرا می شود، اما فقط درصورت false بودن عبارت های قبلی!

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


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

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

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

  1. یک پروژه جدید بسازید.
  2. روی فرم پروژه موارد زیر را قرار دهید: (شکل نهایی برنامه بصورت زیر خواهد شد. شما هم سعی کنید اشیاء رو به همین ترتیب قرار بدید یا اینکه مرتب تر و بهتر...)
    1. دو عدد TextBox . خاصیت Name آنها را به txtName و txtFamily تغییر دهید.
    2. دو عدد Label . خاصیت Text آنها را یکی "نام" و دیگری "نام خانوادگی" قرار دهید.
    3. دو عدد RadioButton . خاصیت Name آنها را به rdoMale و rdoFamily تغییر دهید.
    4. یک عدد Button .
  3. روی دکمه دابل کلیک کنید تا بتوانید برای آن برنامه بنویسید. برنامه ای که در هنگام دابل کلیک کردن روی دکمه در بلوک Button1_Click می نویسید، در هنگام کلیک شدن روی دکمه اجرا میشه. (جهت یاد آوری)
  4. کد زیر رو در بلوک مربوطه بنویسید. (بعد از دابل کلیک کردن روی دکمه؛ در محل مکان نمای صفحه کلید. مکان نمای صفحه کلید در میان کد برنامه در حال چشمک زدن است)
if (rdoMale.Checked == true)
{
    MessageBox.Show("سلام آقای " +
    txtName.Text + " " +
    txtFamily.Text +
    ".\n به درس هفتم خوش آمدید.");
}else{
    MessageBox.Show("سلام خانم " +
    txtName.Text + " " +
    txtFamily.Text +
    ".\n به درس هفتم خوش آمدید.");
}

تعجب نکنید! حتی یک دستور رو هم می تونید بشکنید و در چند خط بنویسید. به برنامه بالا دقت کنید که چطور دستور MessageBox.Show رو در چند خط نوشتم. البته عملگر + در این دستور کار چسباندن رشته ها (متن ها) به هم رو انجام میده! نه اینکه حتما اگر بخواهیم ادامه دستور رو در خط بعد بنویسیم مجبور باشیم علامت + رو بنویسم.

برنامه نویسی مقدماتی سی شارپ

می دونم که خیلی از دستور MessageBox.Show داریم استفاده می کنیم. ولی مجبوریم! اما نگران نباشید. بزودی با دستورهای جدید و جالب دیگه ای هم آشنا خواهید شد.


 برگرفته شده از butterfly.blog.ir
۰ نظر موافقین ۰ مخالفین ۰ ۰۴ فروردين ۹۴ ، ۲۱:۴۱
ADMIN

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

سلام...


تا اینجای کار تقریبا می تونم بگم اصلا برنامه ای ننوشتیم. اما تا حدود کمی با برنامه نویسی کامپیوتر آشنایی پیدا کردیم. فهمیدیم که کامپیوتر دقیقا همون دستور هایی رو اجرا می کنه که ما بهش گفتیم؛ نه کمتر و نه بیشتر. کاش ما آدم ها هم در مقابل خدا مثل کامپیوتر باشیم.

کامپیوتر تک دستور ها رو یکی پس از دیگری اجرا می کنه. اگر برنامه ای که نوشته ایم مثلا 5 خط باشه، اول خط 1 ، بعد خط 2 ، بعد خط 3 و همینطور تا آخر برنامه دستورات اجرا خواهند شد.

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

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

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

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

نتیجه می گیریم که فضاهای خالی توسط کامپایلر نادیده گرفته می شوند. فضاهای خالی رو با دکمه های Space ، Tab (همون دکمه درازه  :)  ) و Enter می توان ایجاد کرد.

در زبان سی شارپ حروف کوچک و بزرگ با هم متفاوت هستند. مثلا MessageBox.Show با messagebox.SHow فرق می کند.

بقیه قوانین رو در جلسات بعد خواهم گفت.

در این درس کمی ساختار برنامه های کامپیوتری رو بررسی کرده و از آنها در یک برنامه ساده استفاده می کنیم. در همین حین نکات جدیدی از برنامه نویسی متوجه خواهیم شد.

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

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

ان شاء الله از این جلسه از برنامه نویسی رو شروع می کنیم و دیگه تیترها مون "خیلی مقدماتی" نیست بلکه "مقدماتی" هست.

یکی از قسمت های اصلی کامپیوتر حافظه ها هستند. تصور کنید کامپیوتر بدون حافظه چگونه خواهد بود! اما شاید بلافاصله بعد از اینکه به حافظه های کامپیوتر اشاره کردم ذهن شما به سمت هارد دیسک ها، سی دی ها و فلش درایو ها رفت، البته اینگونه حافظه ها خیلی مهم هستند. اما منظور من این حافظه ها نبود. بلکه هدف من از حافظه به عنوان بخش اصلی کامپیوتر، RAM هست.

این حافظه حجم بسیار کمتری نسبت به هارد دیسک دارد.

این حافظه سرعتی بسیار زیاد تری نسبت به هارد دیسک دارد.

این حافظه خیلی گران قیمت است.

ما به چند دلیل در برنامه نویسی از حافظه RAM استفاده می کنیم.

سرعت پردازنده بسیار بالاست! از طرفی سرعت هارد دیسک در مقابل پردازنده خیلی کم است. ما از RAM به عنوان واسط بین هارد دیسک و پردازنده استفاده می کنیم. به این صورت که داده ها را بطور موقت در RAM ذخیره کرده و بعد از اینکه فرایند پردازش روی داده ها به پایان رسید ، آنها را در هارد دیسک ذخیره می کنیم (البته اگر نیازی به این کار وجود داشته باشد).

هرگاه که شما برنامه ای را اجراء می کنید، داده های مربوط به آن برنامه در حافظه RAM قرار می گیرد. مثلا" در برنامه ساده خودمان، نام و نام خانوادگی ای را که در TextBox نوشتیم بصورت موقت در RAM ذخیره می شود و دستور MessageBox.Show از آنها استفاده کرده و در خروجی نمایش میدهد.

ما می توانیم داده ها را در RAM ذخیره کرده یا آنها را از RAM بخوانیم. برای اینکار به روشی که در سطور بعد توضیح داده ام ، به کامپایلر دستور می دهیم که محلی در حافظه RAM را رزرو کند و به آن مکان رزرو شده یک نام دلخواه (که خودمان مشخص کرده ایم) اختصاص دهد. ما به این نام برای دسترسی به آن مکان رزرو شده در حافظه نیاز داریم. به این مکان رزرو شده حافظه متغیر می گوییم.

در این درس فقط به بررسی متغیرهایی می پردازیم که می توانند یک متن و یا نوشته را در خود ذخیره کنند. با دستور زیر یک متغیر که توانایی ذخیره متن را دارا می باشد، در حافظه ساخته می شود:

string strName;

strName صرفا یک نام هست و شما می توانید به دلخواه خود این نام را تغییر دهید.

اگر بخواهیم یک متن را در strName ذخیره کنیم بصورت زیر عمل می کنیم:

strName="In the name of Allah";

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

هرجایی از برنامه که نام متغیر نوشته شود، آن نام در هنگام اجرای برنامه، با مقدار موجود در خود جایگزین خواهد. برای مثال می توانید بعد از اینکه متغیر strName را تعریف کردید دستور MessageBox.Show را بصورت زیر باز نویسی کنید:

MessageBox.Show(strName + "\n Butterfly.blog.ir");

برنامه این درس رو اگه پیاده سازی کرده باشید، احتمالا به این شکل شده باشه:

یکی از شاخصه های هوشمندی یک برنامه کامپیوتری این است که در شرایط مختلف تصمیم های مخصوصی اتخاذ کند. این امر در زندگی عادی هم بسیار رایج هست. مثلا شما درصورتی که هوا سرد باشد، لباس گرم می پوشید. اگر گرسنه شوید، غذا می خورید. اگر بخواهید برنامه نویسی یاد بگیرید به باترفلای سر می زنید... :) در جلسه آینده روش پیاده سازی این شاخصه هوشمندی رو با هم یاد می گیریم...

 برگرفته شده از butterfly.blog.ir
۰ نظر موافقین ۰ مخالفین ۰ ۰۲ فروردين ۹۴ ، ۲۱:۴۰
ADMIN

با نام و یاد خدا... سلام.

در جلسات قبل یاد گرفتیم که چطور برای دکمه برنامه بنویسیم، طوری که اگر در هنگام اجرای برنامه روی دکمه کلیک کنیم، کاری رو برامون انجام بده. به غیر از دکمه چند شیئ دیگه رو هم روی فرم قرار دادیم و از شیئ TextBox در برنامه خودمون استفاده کردیم و متوجه شدیم که چطور از خصوصیت Text مربوط به این شیئ استفاده کنیم. در مورد شیئ گرایی هم خیلی کوتاه صحبت کردیم و مفهوم کلاس و وراثت رو بصورت غیر آکادمیک! و خودمونی توضیح دادیم.

در این جلسه قصد دارم در مورد ساختار و اسکلت برنامه صحبت کنم. یعنی می خواهیم بدونیم اون نوشته هایی که در درس های قبل در موردشون توضیح ندادیم چی بودن. البته احتمالا" تا حدودی متوجه شده باشید. خطوط برنامه با عدد مشخص شده اند تا بهتر بتونیم شما رو به خط مورد نظرمون ارجاء بدیم. بسته به تنظیمات پروژه و نسخه ویژوال استودیو نصب شده در سیستم شما، ممکنه کد زیر کمی متفاوت باشه، اما زیاد مهم نیست. البته ما در این درس هم به همه جزئیات نمی‌پردازیم.

اسکلت برنامه سی شارپ سلام دنیا

خطوط 1 تا 7 : تمام این خطوط با کلمه using شروع شدن. رنگ این کلمه با بقیه کلمات متفاوته و آبی هست. کلمات با رنگ آبی ، کلماتی هستند که برای زبان برنامه نویسی سی شارپ (#C) مفهوم خاصی دارند. به این کلمات، کلیدواژه ، کلمه کلیدی یا کلمه رزرو شده می گن. قبل از اینکه ما برنامه مقدماتی خودمون رو شروع کنیم، یک عده برنامه نویس زحمت کشیدند و قسمت های زیادی از برنامه رو ساخته و در اختیار ما قرار داده اند. مثلا" اینکه یک دکمه به چه شکلی باشه، ظاهر جعبه پیام (MessageBox) به چه صورت باشه ، روش تعامل فرم و... رو برنامه نویسی کرده اند. برنامه ای که این عزیزان نوشته اند در یکسری فایل ها ذخیره شده و ما با استفاده از کلمه کلیدی using اون فایل های مهم رو به برنامه خودمون متصل می کنیم و ازشون سو استفاده می کنیم :)

خط 11 : در این قسمت از برنامه یک کلاس به نام Form1 نوشته شده که از کلاس Form که برنامه نویسان عزیزمون اون رو قبلا" برنامه نویسی کردن داره ارث‌بَری می کنه! این بحث رو فعلا" خیلی جدی نگیرید. کمی سطحش از مقدماتی بالاتره.

خط 13 تا 16 : به این قسمت هم "متد سازنده کلاس Form" می گن. فقط بدونید که Method یا "روش" در برنامه نویسی #C ، به مجموعه ای از کدهای مرتبط به هم می گن که کار خاصی رو برای ما انجام می دهند و دارای یک نام می باشند.  ما در این برنامه (تصویر بالا) یک متد دیگه هم داریم که اسمش Button1_Click هست.

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

و بعد از اون یک علامت آکولاد ( } ) قرار گرفته. برنامه ای که قراره متد، اون رو اجرا کنه، بعد از علامت آکولاد قرار گرفته. بعد از آخرین خط برنامه متد، یک علامت آکولاد بسته داریم که نشان دهنده پایان متد هست. از حالا به فاصله مابین آکولاد باز و آکولاد بسته "بلوک" می گوییم. مثلا" بلوک متد Button1_Click یا بلوک namespace FirstProject که از خط 9 شروع شده و تا خط 23 ادامه پیدا کرده.

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

ما در این خط از متد Show مربوط به کلاس MessageBox استفاده کردیم. به اون چیزی که ما داخل پرانتز متد Show می نویسیم آرگومان می گن. اما به جای خالی ای که برنامه نویس عزیزمون برای ما گذاشته که داخلش مثلا" بنویسیم:

"Salam "+textBox1.Text+" "+textBox2.Text

پارامتر می گن.

در این درس کار عملی انجام نمی دهیم. ولی شما بیکار ننشینید. اول خوووب مطالب این درس رو یاد بگیرید. باور کنید به همه این نکات نیاز داریم. اگه نیاز نبود نمی گفتم. در مرحله بعد سعی کنید اشیاء دیگری روی فرم قرار بدید و در پنجره Properties خصوصیات مختلف اون اشیاء رو بررسی کرده و تغییر دهید. سعی کنید از اون خصوصیات در برنامه تون استفاده کنید. مثل برنامه ما که از خصوصیت Text شیئ TextBox استفاده می کنه.

موفق باشید.


 برگرفته شده از butterfly.blog.ir
۰ نظر موافقین ۰ مخالفین ۰ ۰۱ فروردين ۹۴ ، ۱۱:۲۱
ADMIN
سلام.

امیدوارم که اون نرم افزاری که بهتون گفته بودم رو تهیه کرده باشید. جهت یادآوری باید بگم که اون نرم افزار Microsoft Visual Studio 2010 هست. قرار بود که در این درس روش نصب این برنامه رو توضیح بدم.

این برنامه، مجموعه ای از کامپایلرها رو دربر داره. شما با همین نرم افزار می تونید به زبان های مختلفی برنامه نویسی کنید. از جمله این زبان ها می توان به ++C و #F و Visual Basic هستند که ما با اون زبان ها کاری نداریم.

دیسک نرم افزار رو داخل درایو قرار دهید. بعد از چند لحظه بصورت خودکار پنجره زیر به نمایش در خواهد اومد. اگه چنین اتفاقی نیوفتاد می تونید روی درایوی که دیسک رو داخلش گذاشتید راست کلیک کنید و گزینه Open رو انتخاب کنید. در پنجره باز شده فایل autorun.exe یا Setup.exe رو اجرا کنید. پنجره زیر فقط با اجرای Setup دیده می شود. با اجرای فایل autorun ممکنه این پنجره رو نبینید. اما نگران نباشید. مطمعنا" دکمه ای در این پنجره برای اجرای پنجره زیر وجود دارد. (کنجکاو باشید)


pic01

در این پنجره گزینه اول رو انتخاب کنید. تا عملیات نصب برنامه شروع بشه. با اینکار پنجره زیر به نمایش در میاد. دکمه Next رو بزنید.


pic02


بعد از اینکه دکمه Next رو زدید با محیط شکل زیر مواجه خواهید شد. شما باید در این پنجره گزینه I have read and accept the license terms رو انتخاب کرده و دکمه Next رو بزنید. پنجره تعهدنامه هست. توی ایران خوشبختانه یا شوربختانه این تعهد هیچ اثری نداره :)


pic03


در پنجره زیر شما درایوی که می خواهید برنامه اونجا نصب بشه رو انتخاب می کنید. بصورت پیش فرض برنامه توی درایو C کامپیوتر شما نصب میشه. اما می تونید با دکمه Browse این مسیر رو تغییر دهید. در سمت چپ دو گزینه Full و Custom وجود داره. اگه گزینه Full رو انتخاب کنید، نرم افزار بصورت کامل نصب میشه (نیاز به فضای بیشتری از هارد دیسک داره. به خیلی از مواردی که نصب می کنه نیازی پیدا نمی کنید) ، اما اگر گزینه Custom رو انتخاب کنید می تونید مواردی رو که نیاز نداری رو بعدا غیر فعال کنید. دکمه Next رو بزنید.


pic04


پیشنهاد می کنم همه موارد رو غیر فعال کنید بجز گزینه #Visual C از زیر مجموعه اول (Microsoft Visual Studio 2010 Ultimate). حالا دکمه Install رو بزنید.


pic05


یه کم صبور باشید که إِنَّ اللّهَ مَعَ الصَّابِرِینَ (حدود 45 دقیقه :)  ) بعد از این مدت اگر کار نصب بدرستی پیش بره با پنجره زیر مواجه می شوید. خدا قوت... شما موفق شدید. دکمه Finish رو بزنید.


pic06

 برگرفته شده از butterfly.blog.ir
۱ نظر موافقین ۰ مخالفین ۰ ۲۶ اسفند ۹۳ ، ۱۰:۵۵
ADMIN