آزمایشگاه 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
سلام.

امیدوارم که اون نرم افزاری که بهتون گفته بودم رو تهیه کرده باشید. جهت یادآوری باید بگم که اون نرم افزار 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


سلام.

قصد دارم برنامه نویسی #C رو بصورت کاملا" مقدماتی منتشر کنم. قراره این آموزش ها از 0 باشه. اما قول نمی دم که تا 100 بتونم بهتون برنامه نویسی یاد بدم. اون دیگه تلاش و پشتکار خودتون رو می طلبه. این سلسله آموزش ها با همکاری گروه افسران برنامه نویس انجام خواهد گرفت.

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

قبل از هر چیز!

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

من دوست دارم تمام تعاریف رو با مثال (البته در مثال مناقشه نیست) انجام بدم. فرض کنید شما فرزندی فرمانبردار برای مادرتون هستید و هرچه ایشون به شما بگن بدون کم و کاست و بدون نق زدن انجام می‌دهید (ان‌شاءالله در واقع هم همینطوره!!). همچنین فرض کنید مادرتون بهتون یه لیست از اقلام رو داده اند تا از بازار تهیه کنید. شما موظف هستید که تمام اقلام داخل لیست رو تهیه کنید. اگر بخواهیم این مثال رو به کامپیوتر ربط بدیم، شما همون کامپیوتر هستید. مادر شما در نقش کاربر و لیستی از اقلام رو که از مادر عزیزتون دریافت کرده اید، برنامه کامپیوتری است.

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

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

به برنامه ای که زبان خاصی رو به زبان ماشین تبدیل میکنه، اصطلاحا Compiler (مترجم) می گن. چی میگن؟ کامپایلر!!

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

  • اسمبلی: خیلی قدیمی هست. فقط 0 و 1 یک نیست! خیلی سخته یادگرفتنش! اما به سختی زبان ماشین نیست.
  • فورترن: یه زبان قدیمی هست که برای کار بر روی فرمول های ریاضی ساخته شده بوده.
  • آدا: زبانی برای کارهای دولتی و سیاسی امنیتی بوده ظاهرا
  • سی (C)
  • سی پلاس پلاس (++C)
  • جاوا
  • پاسکال
  • بیسیک
  • سی شارپ (#C)
  • ...
ما قراره با همدیگه زبان برنامه نویسی "سی شارپ" رو یاد بگیریم. پرحرفی بسته. برای امروز کافیه.

توی درس بعدی با همدیگه کامپایلر زبان #C (سی شارپ) رو نصب می کنیم و یه برنامه ساده می نویسیم. تا اون موقع از بازار نرم افزار Microsoft Visual Studio 2010 رو تهیه کنید.
موفق باشید...

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