مردم جهان به دو دسته تقسیم می شوند دسته اول کسانی که موافقند مردم جهان به دو دسته تقسیم میشن و دسته دوم کسانی که مخالفند مردم جهان به دو دسته تقسیم میشن

وبلاگ آموزش سی شارپ

سلام خدمت همه شما دوستان عزیز که به من لطف داشتید و وبلاگ رو دنبال کردین...از مباحثی که قصد داشتم مطرح کنم
File,delegate,event
هنوز باقی مونده که احتمالاً تو تابستون می گم...شاید هم نگفتم هیچ وقت!:D
به هر حال ادامه آموزش رو تو درس ساختمان داده می گم! به آدرس زیر:
http://datastructurekelas.blogspot.com
تا اطلاع ثانوی موفق باشید!:D

۱۳۸۸ مرداد ۲۰, سه‌شنبه

ایجاد یک کلاس

خب!

حالا می خوایم یک کلاس از جنس اعداد مختلط درست کنیم!

class Complex
{
public double real , img ;
}

خب اولین چیزی که به ذهنتون می رسه اینه که الاف کردی ما رو؟!این که همون struct هست

خب واقعیتش اینه که این 2تا خیلی شبیه به هم هستن! ولی تفاوت های مهمی دارن

اولین تفاوتشون مربوط به سازنده ها هست! چون هنوز نگفتم سازنده ها رو توضیحی در موردش نمی دم

مورد بعدی اینه که وقتی که یک کلاس میسازیم از اعداد مختلط می توینم مقدار دهی اولیه اش بکنیم! ولی struct رو نمی تونیم!

مثلاً
class Complex
{
public double real = 0;
public double img;
}
در مورد بالا مشکلی به وجود نمیاد!
اما:
struct Complex
{
public double real = 0;
public double img;
}
اینجا ما مشکل داریم : خطای زمان کامپایل

خب! حتماً الان دارین می گین که وای وای چه تفاوت مهمی! ولی در واقع خیلی مهم تر از اونیه که به نظر میاد

یک جمله کلیدی:
ساختارها انواع مقداري هستند و مستقيماً مقدار را در خود نگه مي‌دارند و از اينرو در stack نگه‌داري مي‌شوند. استفاده از ساختارها همانند ساير انواع مقداري است.
( http://learn.hge.ir/?name=learn_csharp.net_12 )

خب! stack نمی دونی چیه؟! stack یه قسمت از حافظه هست! اگر اطلاعات بیشتری می خوای این بار خودت باید بری بگردی! و بفهمی که چی هست! چون استک مربوط به بحث های قبل میشه و بخوام برگردم توضیح بدم نمیشه دیگه! خودت برو پیدا کن! البته اگه واقعاً نیاز داشتی بگو تا بگم! البته بعداً در موردش حتماً توضیح می دم ولی بعداً کی هست نمی دونم!

Blogged with the Flock Browser

۱۳۸۸ مرداد ۱۵, پنجشنبه

پیوست پست قبلی

فایل Complex.cs شامل تعریف ساختمان Complex

برای ساختن این فایل تو قسمت solution Explorer اسم پروژه که احتمالاً ConsoleApplication هست کلیک راست می کنیم و add و بعد class رو می زنیم و یک کلاس اضافه می کنیم و توی کلاسمون هرچی هست پاک می کنیم و اون چیزی رو که تو قسمت قبل نوشتم رو paste می کنیم!

out

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

(c.img> 0) ? '+' : '-';

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

if(c.img> 0)
+
else
-

Blogged with the Flock Browser

تایپ struct

این شاید مقدمه ای باشه برای بحث شی گرا این تایپ رو به صورت زیر تعریف می کنیم

struct structuer-type-name
{
public data-type field;
public data-type field;
...
...
...
public data-type field;
}

مثلاً می خوایم با این تایپ اعداد مختلط رو بیان کنیم!
(اگر نمی دونی عدد مختلط چیه بگو تا یه مثال دیگه بزنم!)
struct Complex
{
public float real;
public float img;
}

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

Complex c1 = new Complex ()

حالا یک عدد مختلط داریم به اسم c1
حالا می تونیم با عدد مختلط کار کنیم! مثلاً یه سری مقدار بهش بدیم و معرفیش کنیم!

c1.real = 2.3 ;
c1.img = 1 ;

حالا برای این که بهتر متوجه بشیم یه برنامه می نویسیم!
فایل Complex.cs شامل تعریف ساختمان Complex
using system;
struct Complex
{
public double real,img;
}
////////////////////////
فایل Program.cs شامل متد Main
using system;
class Program
{
static void Main()
{
Complex c1 , c2 ;
Console.WriteLine ("Complex Number 1 :");
ComplexRead (out c1);
Console.WriteLine ("Complex Number 2 :");
ComplexRead (out c2);
Complex c3;
c3 = ComplexPlus ( c1 , c2);
Console.Write("The result complex number: ");
ComplexWrite(c3);
}
public static void ComplexRead(out Complex c)
{
Console.Write("Real:");
c.real = Convert.ToDouble(Console.ReadLine());
Console.Write("img(image):");
c.img = Convert.ToDouble(Console.ReadLine());
}
public static void ComplexPlus(out Complex c1 , out Complex c2)
{
Complex c3;
c3.real = c1.real + c2.real;
c3.img= c1.img + c2.img;
return c3;
}
public static void ComplexWrite(out Complex c)
{
char sign;
sign = (c.img> 0) ? '+' : '-';
Console.WriteLine("{0} {1} {2}i",c.real,sign,Math.Abs(c.img));
}
}
قسمت هایی که قرمز شده احتیاج به توضیح داشت که توی پیوست و پست بعدی توضیحاتش رو نوشتم!
پیوست


Blogged with the Flock Browser

۱۳۸۸ مرداد ۱۴, چهارشنبه

مفهموم شی گرا

خب می خوایم مفهموم شی گرا رو بررسی کنیم!

با یه مثال شروع می کنم!

ما یه نقشه داریم که توش نقشه یک آشپزخونه هست

حالا ما می خوایم غذا درست کنیم

برای غذا درست کردن قطعاً نمی تونیم از آشپزخونه ای که تو نقشه هست استفاده کنیم! باید یک نمونه از روی نقشه آشپرخونه بسازیم تا بتونیم توی اون آشپرخونه غذا درست کنیم!

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

یعنی این که نقشه آشپزخونه مفهوم و ویژگی های آشپزخونه هست! ولی برای ساختن آشپزخونه باید یک شی از روی آشپزخونه بسازیم


یا مثلاً می گیم که هرچیزی که ارتفاعش بیشتر از یک متر باشه و 4تا پایه هم داشته باشه مثلاً میزه این مفهوم و ویژگی شی میزه! حالا واسه این که یک میز داشته باشیم باید با استفاده از مفاهیم شی میز یک میز بسازیم!

ما در برنامه نویسی شی گرا اول شئی رو که می خوایم ازش استفاده بکنیم رو ویژگی هاش رو می گیم و بعد ازش استفاده می کنیم!

مثلاٌ ما تو یه برنامه احتیاج داریم که اسم طرف رو بگیریم و سن طرف رو!
برای این کار می گیم که یک شی تعریف می کنیم به اسم مشخصات!

می گیم شی مشخصات شامل اسم طرف و سن طرف هست!

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

موفق باشی!

شی گرا
Blogged with the Flock Browser