بايگانی‌ وب‌نوشت

چیزهایی که من از خواندن Specification C# یاد گرفتم

bookبعد از خواندن دوباره کتاب C# in depth از Jon Skeet من تصمیم گرفتم سعی کنم واقعاً Specification زبان C# رو بخونم …

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

بعد از خواندن چند صفحه بسیار متعجب شدم از اینکه تا بحال فکر میکردم چیزهای کمی که بلدم وبه خیال خودم درست بودند ؛ تماماً غلط و اشتباه هستند  و تصمیم گرفتم که لیستی از چیزهای جدید رو که تا حالا از خواندن این کتاب یاد گرفتم بنویسم .

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

تمام انواع Value Type در Stack ذخیره نمی شوند

بیشتر Developerها اعتقاد دارند که reference type ها در heap ذخیره میشوند درحالی که value type ها همیشه در stack – این قضیه همیشه هم درست نیست .

یک کلاس را در نظر بگیرید (که به عنوان یک reference type شناخته می شود) که یک عضو Integer ( که یه عنوان یک value type شناخته میشود) دارد ، کلاس در heap ذخیره میشود و بنابر این اعضای آن شامل value type هم در heap قرار میگیرند و فقط دیتای آنها به صورت by value کپی میشود .

Read the rest of this entry

Advertisements

حل برجهای هانوی با هوش مصنوعی

بازم برجهای هانوی !!!!

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

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

 

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

مهمترین قسمت انتخاب یک الگوریتم جستجوست تا در فضای حالت جستجو کنیم و به راه حل مسئله برسیم . در اینجا من از BFS استفاده کردم . برای پیاده سازی BFS از یک صف استفاده می کنیم تا در فضای حالت جستجو کنیم . تا زمانی که صف خالی نشده یک State از ابتدای صف خارج میکنیم و بررسی میکنیم که آیا Goal هست یا نه اگر Goal بود مسئله حل شده ولی اگر نبود اپراتورها را روی آن اعمال میکنیم و Stateهای جدید بدست آمده رو در Agenda که در اینجا همان صف است وارد می کنیم و این پروسه آنقدر ادامه پیدا میکند تا اینکه یا به Goal State برسیم یا اینکه همه ی حالتها را بررسی کرده باشیم .

Game Programming بخش اول

دانلود سورس کد – 8.77 KB

معرفی

هدف این خود آموز این است که به شما نشان دهد چطور یک بازی ساده بدون کمک API های سطح بالا مثل XNA یا DirectX که نیمی از فرایند ها را اتوماتیک برای شما انجام می دهند ، بسازید . تمام چیزی که ما استفاده می کنیم یک فرم ویندوز و توابع GDI+ است برای ترسیمات پایه ای و تعدادی از Event های فرم .

پیش زمینه

چند نکته در مورد loop بازی وجود دارد ، چون فرم های ویندوز رویدار گرا هستند در حالی که بازی ها عموماً این طور نیستند . من روی تفاوتهایی که بین کدهایی که به طور ‹regular› استفاده میشوند و کدهایی که در Windows Form باید استفاده شود تاکید می کنم .

قدم اول : تنظیم کردن بازی

حلقه ی اصلی

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


 bool runGame = true;
  while(runGame)
  {
   GetInput();
   PerformLogic();
   DrawGraphics();
  } 

اگر متوجه شده باشید بازی با حد اکثر سرعت ممکن اجرا میشود . در این حلقه بازی با تمام سرعتی که می تواند اجرا می شود از 1fps گرفته تا 1000fps . سرعت بازی ممکن است برای دشمنان و یا اشیایی که به بازی اضافه میشوند تفاوت داشته باشد و بازی آنقدر به سرعت اجرا میشود که بازیکن نمیتواند به موقع واکنش نشان دهد .

همه چیز راجع به زمان بندی

ما باید سرعت بازی را کنترول کنیم. برای این کار از یک Read the rest of this entry

پاک سازی بعد از کار با Visual Studio

به عنوان برنامه نویس ما می دانیم اگر زمان اجرای برنامه ای فایلهای کمکی ایجاد کردیم باید مطمئن شویم آنها بعد از تکمیل فرآیند یا برنامه دور انداخته میشوند .  ما این کار را انجام می دهیم ولی چرا Microsoft این کار را نمی کند ؟ Visual Studio تعداد زیادی فایلهای کمکی را در سراسر دیسک سخت شما رها می کند . به همین دلیل است که به مرور زمان کامپیوتر شما فضای دیسک سخت را از دست می دهد . این پست رایج ترین جاهایی که این فایلها رها می شوند و آنهایی که شما می توانید با اطمینان پاک کنید را به شما نشان می دهد .

چیزهایی که .NET رها می کند

Visual Studio یک محیط توسعه ی فوق العاده برای ساختن سریع applicationهاست . به علاوه فایلهایی از هر نوع  در هر جایی از روی دیسک سخت رها می کند . چند جا روی دیسک سختتان وجود دارد که می توانید با چک کردن آنها ببینید که آیا فایل یا فولدرهای رها شده برای پاک کردن وجود دارد یا نه . من سعی کردم تا جایی که میتوانم در مورد نسخه های مختلف .NET و سیستم عاملها اطلاعات جمع کنم . البته ممکن است فایلها و فولدر هایی که من اینجا لیست می کنم با شما فرق داشته باشد .

هر نسخه از Visual Studio فایلهای «temporary» در فولدرهای مختلفی ایجاد می کند . مشکل اینجاست که فایلهای ایجاد شده همیشه «temporary» نیستند . بیشتر مواقع هم همان طور که باید پاک نمی شوند . اجازه بدهید نگاهی به تعدادی از فولدرهایی که شما باید به صورت دوره ای باز بینی کنید و فایل های داخلش را پاک کنید بیندازیم . Read the rest of this entry

25 اشتباه خطرناک برنامه نویسی

ترجمه و بازنویسی : بابک فخریلو

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

مقدمه

25 اشتباه خطرناک برنامه نویسی CWE/SANS در سال 2010،فهرستی از شایع ترین و خطرناک ترین خطا های برنامه نویسی است که می تواند منجر به بروز آسیب پذیرهای جدی در نرم افزار شود.غالبا پیدا کردن و سو استفاده از آنها ساده است.این اشتباه ها خطرناک هستند،چرا که به طور مداوم به مهاجمان اجازه می دهند تا کاملا به نرم افزار مسلط شوند،داده ها را سرق کنند یا این که به کلی مانع اجرای نرم افزار شوند.

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

این فهرست حاصل همکاری میان SANS Institute ، MITRE و بسیاری از خبرگان امنیت نرم افزار در آمریکا و اروپا است.برای اطلاعات بیشتر درباره این دو موسسه به می توانید به سایت های http://www.sans.org/top20/ و http://cwe.mitre.org مراجعه کنید.

لیست 25 تایی سال 2010 نسبت به سال 2009 پیشرفت جزئی داشته است،اما روح و هدف همانند قبل است.ساختار فهرست طوری تغییر یافته تا اصول کلی برنامه نویسی امن را از صعف های به هم پیوسته جدا کند.موارد فهرست امسال با استفاده از ورودی های بیش از 20 سازمان متفاوت،که هرکدام از ضعف ها را بر پایه نفوذ و اهیمت بررسی کرده اند،ارجحیت بندی شده است.نسخه جدید با معرفی focus profiles،به توسعه دهندگان و کاربران این امکان را می دهد تا بخش هایی از این فهرست 25 موردی را انتخاب کنند که به کار خودشان ارتباط دارد.

فهرستی خلاصه از 25 خطای عمده برنامه نویسی

برای کسب اطلاعات بیشتر درباره خطای مورد نظر خود،روی پیوند شناسه آن کلیک کنید.

رتبه امتیاز شناسه عنوان
1 346 CWE-79 خطا در نگهداشت ساختار صفحه وب (‹Cross-site Scripting›)
2 330 CWE-89 ایزوله اشتباه عناصر خاص دستورهای SQL (‹SQL Injection›)
3 273 CWE-120 کپی کردن به Buffer بدون آگاهی از سایز ورودی (‹Classic Buffer Overflow›)
4 261 CWE-352 جعل درخواست حمله Cross-Site
5 219 CWE-285 کنترل اشتباه دسترسی (Authorization)
6 202 CWE-807 اعتماد به ورودی های غیرمعتبر در تصمیم گیری های امنیتی
7 197 CWE-22 محدود سازی اشتباه نام مسیر به پوشه با دسترسی محدود(‹Path Traversal›)
8 194 CWE-434 محدود نکردن Upload فایل با پسوند خطرناک
9 188 CWE-78 ایزوله اشتباه عناصر خاص دستورهای OS (‹OS Command Injection›)
10 188 CWE-311 فراموش کردن درهم سازی داده های حساس
11 176 CWE-798 استفاده از اعتبارنامه هایی که کد نویسی پیچیده ای دارند
12 158 CWE-805 دسترسی به Buffer با طول ناصحیح مقدار
13 157 CWE-98 کنترل دسترسی اشتباه به نام فایل برای دستور Include/Require در PHP
14 156 CWE-129 اعتبارسنجی نادرست اندیس آرایه
15 155 CWE-754 بررسی اشتباه وضعیت های استثنایی یا غیر عادی
16 154 CWE-209 فاش سازی اطلاعات از طریق پیغام خطا
17 154 CWE-190 سرریز عدد صحیح
18 153 CWE-131 محاسبه اشتباه اندازه Buffer
19 147 CWE-306 فراموش کردن اعتبار سنجی هویت برای عملکردی مهم
20 146 CWE-494 دانلود کد بدون بررسی یکپارچگی
21 145 CWE-732 انتساب اشتباه دسترسی به منبع حیاتی
22 145 CWE-770 تخصیص منابع بدون محدود سازی
23 142 CWE-601 Redirect شدن به سایتی غیر معتبر (‹Open Redirect›)
24 141 CWE-327 استفاده از الگوریتم رمزنگاری خطرپذیر یا ناقص
25 138 CWE-362 Race Condition -حالت نامعينى که به هنگام عملکرد همزمان د دستورالعملهاى دو کامپيوتر بوجود مى ايد و امکان شناخت اين مسئله که کدام يک از انها ابتدا تمام خواهند شد وجود ندارد

Cross-site scripting و SQL injection به ترتیب اولین و دومین ضعف های امنیتی مهم سال 2010 بودند.برای برنامه هایی که از بانک های داده استفاده می کنند، SQL injection می تواند خطر بزرگی باشد.سومین ضعف امنیتی classic buffer overflow بود.

منبع:

http://cwe.mitre.org/top25/#CWE-362

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

Notepad++ کار خود را با ویرایش متن که توسط برنامه Notepad ویندوز فراهم شده شروع می کند،ولی ویژگی هایی دارد که می تواند به برنامه نویسان و script نویسان کمک زیادی کند.

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

برای مثال می توانید macro هایی بنویسید تا کارهایی که تکراری هستند را با سرعت بیشتری انجام دهید.همچنین قابلیت هایی «TextFX» زیادی هستند که در تبدیل متون با قاعده به hexadecimal یا حذف خطوط خالی،وارد کردن آدرس فایل ها و پوشه ها کاربرد دارند.

این برنامه تحت لیسناس GNU GPL v2 به اشتراک گذارده شده و کد منبع آن نیز در دسترس همگانی است.

برای دانلود اینجا کلیک کنید

UMLچیست؟

UML چیست ؟

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

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

UML(Unified Modeling Languageمبتنی بر چنین رویکردی است .


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

روند شکل گیری UML
برنامه نویسی شی گراء (
OOP ) ، از اوایل  سال 1960 مطرح  گردید . برنامه نویسی شی گراء با اینکه  بعنوان یک ایده جدید مطرح شده بود ولی بسرعت زبان

های مدل سازی شی گراء برای پوشش ایده فوق ، مطرح و پیاده سازی گردیدند. در فاصله سال های 1970 تا اواخر 1980 چندین زبان مدل سازی شی گراء پیاده سازی گردید . تعداد زبان ها ی مدل سازی شی گراء در سال 1995 به بیش از پنجاه نمونه رسیده بود .
از افراد فعال و پیشرو در این زمینه می توان به
Jim Rumbaugh ( شرکت جنرال الکتریک )، Grady Booch ( شرکت Rational software )  و Ivar Jacobson ( شرکت Objectory )  اشاره نمود. هر یک از افراد فوق ، تلاش گسترده ای  را در جهت مدل سازی زبان برنامه نویسی انجام داده بودند . در سال 1994 ، Rumbaugh شرکت جنرال الکتریک را ترک و به Booch در شرکت Rational Software ملحق گردید. یک سال بعد ، شرکت Rational Software ، شرکت Objectory را خریداری و افراد یاد شده همکاری  خود را با یکدیگر و در یک شرکت مشترک آغاز نمودند. ماحصل همکاری فوق ، ارائه  اولین نسخه UML 0.9 توسط شرکت Rational software در سال 1996 بود .
در سالیان بعد ،
OMG)Object Management Group) ،  تلاش های گسترده ای را بمنظور ارتقاء و  بهسازی UML آغاز نمود. در اواسط سال 2001 ، اعضاء OMG ، کار خود را بمنظور ارتقاء به UML 2.0 آغاز نمودند. در حا ل حاضر ، UML شامل مدل سازی ویژوال ، شبیه سازی و امکانات پیاده سازی است . تعداد زیادی از ابزارهای UML طراحی و در اختیار علاقه مندان قرار گرفتند . Rational Rose 2002 از شرکت Rational Software ، نرم افزار Describe Enterprise از شرکت Embarcadero Technologies و Visio 2002 از شرکت مایکروسافت . نمونه هائی از ابزارهای UML می باشند .


دیاگرام های UML


UML یک ابزار ویژوال بوده و از انواع متفاوتی دیاگرام استفاده می نماید . هر یک از دیاگرام های UML ، امکان مشاهده یک سیستم نرم افزاری را از دیدگاههای متفاوت و با توجه به درجات متفاوت Abstraction در اختیار پیاده کنندگان قرار می دهد. برخی از دیاگرام های UML عبارتند از :

  • Class Diagram

  • State Diagram

  • Sequence Diagram

  • Collaboration Diagram

  • Activity Diagram

  • Component Diagram

  • Deployment Diagram

آنالیز شی گراء  (OOA)


آنالیز شی گراء  و یا
OOA ، یک متدولوژی قدرتمند برای تجزیه و تحلیل  فرآیند پیاده سازی نرم افزار است . در زمان استفاده

از OOA ،  هر چیز در فرآیند پیاده سازی نرم افزار بمنزله کلاس در نظر گرفته خواهد شد ( این طرز تفکر می بایست محور آنالیز سیستم قرار گیرد ) . مثلا» در یک بیمارستان هر یک از عناصر موجود نظیر : دکتر ، پرستار ، بیمار و ملاقات کننده ، بمنزله یک کلاس در نظر گرفته می شوند . هر نسخه جدیدی که از یک کلاس ایجاد می گردد ، بمنزله یک نمونه ( Instance ) از کلاس در نظر گرفته خواهد شد . محوریت فرآیند آنالیز شی گراء ، تاکید بر ایجاد کلاس های مورد نیاز سیستم است .
مهمترین و اصلی ترین رویکرد
OOA ،یافتن پاسخ مناسب برای سوالاتی است که با What شروع و در  فرآیند پیاده سازی نرم افزار حضوری موثر دارند . نمونه سوالات OOA در این زمینه عبارتند از : » چه کلاس هائی در برنامه وجود دارد؟»  . » چه چیزی را برنامه انجام خواهد داد ؟»  » هر یک از کلاس ها در برنامه چه عملیاتی را بمنظور حل مسئله انجام خواهند داد ؟»  » مسئولیت هر کلاس در برنامه چیست ؟» در OOA ، تاکید بر آنالیز اشیاء ، فعالیت ها و مسئولیت های سیستم نرم افزاری است .

طراحی شی گراء ( OOD )


نکته اساسی  در طراحی شی گراء ، تاکید و سرو کار داشتن با سوالاتی است که با
How شروع و در فرآیند پیاده سازی  نرم افزار حضوری فعال و موثر خواهند داشت . » چگونه این کلاس داده را جمع آوری می کند ؟» . » چگونه این کلاس گزارش را چاپ می نماید ؟»  ، نمونه سوالاتی در این زمینه می باشند .در نمونه مثال بیمارستان، وضعیت فوق  به خصلت ها ، صفات و متدهای یک کلاس  مرتبط می گردد .
بنابراین
OOA ، کلاس های مورد نظر و ضروری  بمنظور نیل به اهداف نرم افزار را مشخص می نماید و محور عملیات بر جستجو و تبین جایگاه یک کلاس در برنامه متمرکز است . در OOD ، تاکید بر پیاده سازی  کلاس ها ، صفات و خصایصی است   که بمنزله هسته یک کلاس مطرح می گردند . ترکیب  هر یک از فعالیت های فوق ( آنالیز شی گراء و طراحی شی گراء ) بهمراه پیاده سازی لینک هائی که با کلاس ها سروکار دارند جملگی بعنوان  بخشی از فرآیند OOP ( برنامه نویسی شی گراء ) محسوب می گردند.

Read the rest of this entry

RUP(فرآیند توسعه ی نرم افزار)چیست؟

در فرهنگ مهندسی نرم‌افزار، فرآیند یکپارچهٔ رشنال یا آر.یو.پی. (به انگلیسی: Rational Unified Process و به اختصار: RUP) نام یک فرآیند توسعهٔ نرم‌افزار است که شرکت آی‌بی‌ام آنرا تدوین کرده است. به طور خلاصه آر.یو.پی ارائه دهنده مجموعه‌ای از روشها برای کمک به مدیریت دقیق بر روی مراحل طراحی و پیاده‌سازی نرم‌افزارهای رایانه‌ای است. این فرآیند بستر مناسبی برای تولید و توسعه نرم‌افزار در اختیار تحلیل‌گران و طراحان سیستم‌های رایانه‌ای قرار می‌دهد.


آر.یو.پی چیست؟

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

Read the rest of this entry

آموزش برنامه نويسي به زبان C#.net

 

بـــــــه نـــــام خـــــداي مـــهـــربــــان

با سلام خدمت دوستان خوبم؛بالاخره قرار شد از اين قسمت به بعد، الگوريتمهاي كتاب الگوريتم و فلوچارت رو به صورت كد برنامه در اختيار شما قرار بديم تا به امید خدا اشكالات خودمون رو تا حدودي برطرف كنيم و شايدم يه چيزي ياد بگيريم!!!

 

خواسته 6: صفحه 50 / كتاب الگوريتم و فلوچارت

using System; ———————————————-> ها using

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication ————-> نام فضانام 

{

public partial class Form1 : Form ————————–> كلاس فرم

{

public Form1() ——-> تعريف فرم به صورت عمومي

{

InitializeComponent(); —————-> مقداردهي اوليه به برنامه

}

private void Form1_Load(object sender, EventArgs e) -> دستوراتي كه در هنگام بارگذاري فرم انجام ميشوند

{

label1.Text = «: شعاع كره «; ——->   definition of lable1’s name

label1.AutoSize = true; ———-> تنظيم قابليت تغيير سايز برچسب 1

label2.Text = «:حجم«;

label2.AutoSize = true;

label3.Text = «:مساحت«;

lable3.AutoSize = true;

}

private void button1_Click(object sender, EventArgs e) -> عملياتي كه با فشردن دكمه ي شماره1 انجام مي شود

{

double pi = 3.14; ——————> تعريف متغير

double R = Convert.ToInt16(textBox1.Text); ——-> تعريف متغيري كه مقدار آن در جعبه متن 1 وارد ميشود

double mass = 4 * pi * R * R * R / 3; —-> تعريف متغير حجم كه وظايف بعد از علامت تساوي را انجام مي دهد

textBox3.Text = mass.ToString(); —-> عمليات متغير حجم در جعبه متن 3 نوشته مي شود

textBox3.Text = textBox3.Text.Substring(0, 9); —-> مقدار خروجي نوشته شده در جعبه متن3را به 9رقم محدود ميكند

}

private void button2_Click(object sender, EventArgs e) –> عملياتي كه با فشردن دكمه ي شماره2 انجام ميشود

{

double pi = 3.14;

double R = Convert.ToInt16(textBox1.Text);

double space = 4 * pi * R * R;

textBox2.Text = space.ToString();

}

private void button3_Click(object sender, EventArgs e) ——> عملياتي كه با فشردن دكمه ي شماره3 انجام ميشود

{

Close(); ——————> از اين كد براي بستن فرم استفاده ميشود

}

}

}

 

پي نوشت

طراحي فرم:

3 button

3 textBox

3 lable

ساخت فرم در وي‍ژوال استوديو.نت:

File >New Project…>Visual c# >Windows Forms Applications

اين برنامه عددي به عنوان شعاع را از كاربر دريافت كرده و مساحت و حجم كره اي با شعاع وارد شده را نمايش مي دهد.