فونت زيبا سازفونت زيبا سازفونت زيبا سازفونت زيبا سازفونت زيبا سازفونت زيبا سازفونت زيبا ساز

لطفا از تمام مطالب دیدن فرمایید.

فصل چهارم ـ بخش ششم ـ ایجاد جداول قابل جستجو با Hshtable ها

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

استفاده از Hashtable :

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

txt1

جستجو در یک Hashtable بسیار سریع انجام می شود. زیرا صرف نظر از نوع عنصری که در این جدول ذخیره می کنید یک عدد صحیح کوچک به عنوان شناسه عنصر در نظر گرفته می شود . در امتحان کنید بعد نحوه استفاده از Hashtable ها را مشاهده خواهیم کرد.

نکته:عدد صحیحی که برای ذخیره شناسه یک کیلید در Hashtable به کار می رود فقط ۴ بایت از حافظه را اشغال می کند . بنابراین اگر رشته شامل ۱۰۰ کارکتر را که ۲۰۰ بایت حافظه را اشغال می کند به عنوان کلید در نظر بگیرید برای جستجو در جدول فقط اعداد ۴ بایتی با یک دیگر مقایسه می شوند که باعث افزایش سرعت می شود.

امتحان کنید: استفاده از Hashtable ها

  • پروژه ای را که در بخش قبل در فصل ۴  (Structure Demo) ایجاد کرده اید را دوباره باز کنید.ویراشگر کد را برای فرم باز کده و تغییر زیر را در تعریف متغییر objCustomers ایجاد کنید:
  •  به قسمت کد های مربوط به تابع CreateCustomer بروید و کد های آن را به صورت مشخص شده در زیر تغییر دهید:
  •  به بخش کد مربوط به متد btnDelete_Click بروید و تغییرات زیر را در آن ایجاد کنید:


برچسب‌ها:

ادامه مطلب
تاريخ : چهارشنبه 29 مرداد 1393 | 08:14 | نویسنده : کـــــوچـــــولـــــو | ارسال نظر(0)

فصل چهارم _ بخش پنجم _ کار با لیست های پیوندی در C#

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

استفاده از لیست های پیوندی :

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

امتحان کنید : استفاده از لیست های پیوندی

  • پروژه ای را که در بخش قبل در فصل 4  (Structure Demo) ایجاد کرده اید را دوباره باز کنید، به قسمت طراحی فرم ان بروید و یک کنترل ListBox به فرم اضافه کنید مکان کنترل های روی فرم را به نحوی تغیر دهید که فرم شما مشابه شکل زیر شود.خاصیت Name این ListBox را برابر با lstCustomer و خاصیت IntegralHeight ان را برابر با False قرار دهید.
نکته: می توانید با استفاده از Ctrl + A تمام کنترلهای روی فرم را انتخاب کنید سپس آنها را به موقعیت جدیدشان ببرید.

frm

  • ویرایشگر کد فرم را باز کرده و کد مشخص شده در زیر را به ابتدای کلاس Form1، بعد از تعریف کلاس اضافه کنید:
 نکته: اگر هنگام نوشتن این کد ویژوال استودیو نام ArrayList را کامل نکرد، به عبارت دیگر این کلاس را جز کلاسهای  تعریف شده نداشت بایستی فضای نام ان را به برنامه خود اضافه کنید. این کلاس در فضای نام System.Collection قرار دارد. یک فضای نام با استفاده از کلمه کلیدی using  به برنامه اضافه می شود. برای اضافه کردن  فضای نام System.Collection به بالا ترین خط در قسمت کدهای مربوط به Form1 بروید و کد زیر را وارد کنید:
 در فصل های بعدی در رابطه با کلمه کلیدی using بیشتر صحبت خواهیم کرد.
  • حالا متد زیر را برای اسیجاد یک مشترک جدید به برنامه اضافه کنید:
  •  سپس متد btnTest را به صورت زیر تغییر دهید:
 برنامه را اجرا کنید و بر روی دکمه Test کلیک کنید نتیجه ای مشابه شکل زیر مشاهده خواهید کرد.

lst

txt

امتحان کنید: باز نویسی متد ToString ()

  • قسمت ویرایشگر کد برای ساختار Customer را باز کرده و کد زیر در این ساختار، بعد از تعریف متغییر ها قرار دهید.همانطور که در کد مشاهده می کنید، این تابع دارای XML Document Comment است. از فصل 3 به بعد خاطر دارید که برای اضافه کردن این نوع توضیحات به برنامه باید از سه کاراکتر / متوالی قبل از متد استفاده کنید.
  •  برنامه را اجرا کرده و بر روی دکمه Test کلیک کنید. نتیجه ای را مشابه شکل زیر مشاهده خواهید کرد.

tostring

چگونه کار می کند؟

هنگامی که یک متغیر از نوع داده ای Customer به لیست اضافه شود، کنترل ListBox تا بع To String این متغییر را فراخوانی کرده ورشته ای که به وسیله این تابع برگردانده می شود را دریافت می کند. در این کد، متد  ToString را به صورتی باز نویسی کردیم که به جای برگرداندن نام خود ساختار، یک عبارت با معنی را نمایش دهد.
 نکته: به این عمل override کردن متد ها گفته می شود که در فصل های بعد بیشتر با آن آشنا می شویم.
یک لیست پیوندی که به وسیله ArrayList ایجاد می شود، می تواند لیستی از اشیاء و یا ساختار ها، از هر نوع که باشند، را در خو نگهداری کند. به عبارت دیگر می توانید اشیائی از نوع های گوناگون ..........................

 امیدوارم از آموزش خوشتون اومده باشه(نظر در مورد نحوه آموزش یادتون نره)



برچسب‌ها:

ادامه مطلب
تاريخ : چهارشنبه 29 مرداد 1393 | 07:55 | نویسنده : کـــــوچـــــولـــــو | ارسال نظر(0)

فصل چهارم _ بخش چهارم _ساختار ها در C#

txt1

ایجاد ساختار ها:

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

امتحان کنید: ایجاد یک ساختار

  • یک پروژه جدیدی به نام Structure Demo ایجاد کنید.
  • بعد از اینکه پروژه ایجاد شد در پنجره Solution Explorer بر روی ناک پروژه کلیک راست کرده، و از منوی نمایش داده شده گزینه Add را انتخاب کنید.سپس از یر منو باز شده گزینه Class… را انتخاب کنید . پنجره ای به نام Add New Item – Structure Demo نمایش داده خواهد شد. در قسمت نام عبارت Customer را وارد کرده و سپس بر روی دکمه Add کلیکک نید تا ایتم جدیدی به برنامه اضافه شود.
  • بعد از اینکه صفحه ای که جدید ایجاد کرده اید نمایش داده شد، کد های داخل ان را پاک کنید و کد های زیر را به جای ان وارد کنید:


برچسب‌ها:

ادامه مطلب
تاريخ : چهارشنبه 29 مرداد 1393 | 07:42 | نویسنده : کـــــوچـــــولـــــو | ارسال نظر(0)

فصل چهارم _ بخش سوم _ مفهوم ثابت ها

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

استفاده از ثابت ها:

فرض کنید در برنامه ی زیر دو متد متفاوت مانند زیر دارید و در هر کدام می خواهید فایل مشخصی را باز کنید و روی آن عملیاتی انجام دهید:


برچسب‌ها:

ادامه مطلب
تاريخ : سه‌شنبه 21 مرداد 1393 | 10:36 | نویسنده : کـــــوچـــــولـــــو | ارسال نظر(0)

مفهوم شمارنده ها :

متغییر هایی که تا کنون ایجاد کرده ایم، هیچ محدودیتی در نوع اطلاعات که می توانستند در خود ذخیره کنند نداشتند. برای مثال اگر متغیری را از نوع int تعریف می کردید، می توانستید هر عدد صحیحی را در ان نگهداری کنید. ان مسئله برای متغیر های string و double هم وجود داشت اما در بعضی از شرایط، ممکن است بخواهید متغیر شما، اعداد محدودی را در خود نگهداری کند.برای مثال فرض کنید می خواهید متغیری از نوع عدد صحیح تعریف کنید و تعداد در های یک اتومبیل را در آن ذخیره کنید.قطعا نمی خواهید اجازه دهید که عدد 16327 در این متغیر ذخیره شود. برای رفع این مشکل می توانید از شمارنده ها استفاده کنید.

استفاده از شمارنده ها:

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

امتحان کنید:استفاده از شمارنده ها

    • یک پروژه جدید به نام Enum Demo ایجاد کنید.
  • درقسمت طراحی فرم روی فرم دوبار کلیک کنید تا قسمت ویرایشگر کد باز بشود.سپس کد مشخص شده در زیر را در بالای پنجره، بعد از نام کلاس ...............

امیدوارم از آموزش خوشتون اومده باشه(نظر در مورد نحوه آموزش یادتون نره)

 



برچسب‌ها:

ادامه مطلب
تاريخ : سه‌شنبه 21 مرداد 1393 | 08:43 | نویسنده : کـــــوچـــــولـــــو | ارسال نظر(0)

فصل چهارم _ بخش اول _ آرایه ها

مفهوم ارایه:

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

تعریف و استفاده از آرایه ها:

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

مثال1:

  • یک پروژه جدید به نام Switch Demo ایجاد کنیدوName مربوط به فرم را برابر Switch قرار دهید.
  • با استفاده از جعبه ابزار یک ListBox  به فرم اضافه کنید و خاصیت Name ان را برابر lstData ، خاصیت Dock را به Fill و خاصیت IntegralHeight را به False تغییر دهید.
  • هنگامی که کنترل ListBox در فرم انتخاب شده است به پنجره Properties  بروید و خاصیت Items  را انتخاب کنید و بر روی دکمه سمت راست آن کلیک کنید پنجره ای به نام String Collection Editor  نمایش داده خواهد شد. مطابق شکل زیر پنج نام مختلف را در ان وارد کنید:

List

  • بر روی کلید ok کلیک کنید تا نام ها به ListBox اضافه شودو سپس بر روی ان دوبار کلیک کنید تا متد مربوط به رویداد SelectedIndexChanged ایجاد شود. کد زیر را در ان وارد کنید:
برنامه را اجرا کنید هر بار که روی نامی در listbox کلیک کنید  کادر پیغامی مشابه شکل زیر مشاهده خواهید کرد.

Switch

چگونه کار می کند؟؟

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

Text 1

Text 2

استفاده از switch با و بدن حساسیت به نوع حروف:

همانند دستور if دستور Switch هم به بزرگی و کوچکی حروف حساس است به مثال زیر توجه کنید:

مثال 2:

استفاده از Switch با حساسیت به نوع حروف

  • قسمت طراحی  فرم  مربوط به مثال 1 را باز کرده و کنترلListBox  را در فرم انتخاب کنید. از پنجره Propertiesمربوط به کنترل ListBox ، گزینه Item را انتخاب کنید و روی دکمه جلوی این خاصیت کلیک کنید تا پنجره String Collection Editor باز شود.
  • اسامی موجود در این پنجره را به گونه ای تغییر دهید که همانند شکل زیر همه با حروف بزرگ نوشته شوند.

List 2

روی دکمه ok  کلیک کنید تا تغییرات این پنجره ذخیره شوند و سپس برنامه را اجرا کنید. مشاهده خواهید کرد که با کلیک بر روی ListBox هر یک از نامهای داخل کادر پیغامی که ظاهر می شود نام رنگ ها را نمایش نمیدهد.

چگونه کار می کند؟؟

دستورSwitch هم مانند دستور If نسبت به نوع حروف حساس است.بنا براین اگر در شرط دستور Switch  از نام های BETTY ویا CATHY استفاده کنید، هیچ حالت مناسبی یافته نخواهد شد این مورد مانند این است که به صورت زیر از دستور If استفاده کنید:

Text 3

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

لینک های دانلود پروژه در ادامه مطلب

امیدوارم از آموزش خوشتون اومده باشه(نظر در مورد نحوه آموزش یادتون نره) برای این مجموعه آموزش زحمت زیادی کشیده



برچسب‌ها:

ادامه مطلب
تاريخ : یکشنبه 19 مرداد 1393 | 09:20 | نویسنده : کـــــوچـــــولـــــو | ارسال نظر(0)

فصل سوم _ کنترل روند اجرای برنامه _ دستور if

دستور if:

راحت ترین راه برای تصمیم گیری در ویژوال استفاده از دستور if است.در مثال زیر با نحوه کاربرد این دستور آشنا خواهیم شد:

مثال1:

یک دستور if ساده

  • یک پروژه جدید به نام Simple If ایجاد کنید.
  • ازجعبه ابزار یک کنترل Button بر روی فرم قرار داده و خصیت Name ان را برابر btnIf و خاصیت Text ان را برابر If قرار دهید.
  • روی این کنترل دوبار کلیک کنیدو کد زیر را در آن وارد کنید.


برچسب‌ها:

ادامه مطلب
تاريخ : یکشنبه 19 مرداد 1393 | 09:03 | نویسنده : کـــــوچـــــولـــــو | ارسال نظر(0)

مقایسه رشته ها در C#

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

معمولا هنگامی که در دستورات if رشته ها را با یکدیگر مقایسه می کنید، به علت حساسیت برنامه به حروف کوچک و بزرگ با مشکل مواجه می شوید. با وجود اینکه هر دو کاراکتر “a”و “A” برای انسان ها یک معنی را دارند  و یکسان تلقی می شوند، اما در کامپیوتر دو کاراکتر مجزا یک دیگر هستند. این مورد به عنوان حساسیت  به نوع حروف شناخته می شود  ببرای مثال اگر کد زیر را در برنامه خود اجرا کنید ، کادر پیغام نمایش داده  نخواهد شد:
 همانطور که ممکن است حدس زده باشید کلمه WINSTON  که با حروف بزرگ است. با مقداری تغییر strName که با حروف کوچک است. تفاوت دارد و شرط اجرا نخواهد شد. اما در بیشتر مواقع  شما نمی خواهید رشته ها را به این صورت مقایسه کنید پس باید راحی را پیدا کنید که ان ها را به حالت عادی و بدون در نظر گرفتن نوع حروف مقایسه کنید. در مثال زیر روشی را برای این کار مشاهده خواهیم کرد:

مثال

مقایسه رشته ها بدون در نظر گرفتن نوع حروف

  • یک پروژه جدید ایجاد کنید
  • در قسمت طراحی فرم از جعبه ابزار یک کنترل  Button و یک کنترل TextBoxرا به فرم اضافه کنید. خاصیت Name کنترل Button را  برابرbtnStringCompare و خاصیت Text ان را را برابر  String Compare سپس خاصیت Name کنترل TextBox را برابر txtName و خاصیت Text ان را برابر Stephanie قرار دهید.

String

  • روی کنترل دوبار کلیک کنید و کد زیر را در متد ایجاد شده اضافه کنید.

لینک دانلو پروژه در ادامه مطلب

 

امیدوارم از آموزش خوشتون اومده باشه(نظر در مورد نحوه آموزش یادتون نره)



برچسب‌ها:

ادامه مطلب
تاريخ : یکشنبه 19 مرداد 1393 | 08:33 | نویسنده : کـــــوچـــــولـــــو | ارسال نظر(0)
لطفا از دیگر مطالب نیز دیدن فرمایید
.: Weblog Themes By SlideTheme :.
💬 نظرات کاربران
💬ثبت نام کاربران
💬ورود کاربران

Flying Icon