آکادمی سیم پاور

شمارش معكوس در حلقه #C

شمارش معكوس در حلقه :

اگر در هر مرحله از اجراي حلقه عددي را از شمارنده ي آن كم كنيد، حلقه به صورت معك وس حركت خواهد كـرد . در امتحـان كنيـدبخش بعد، اين مورد را مشاهده خواهيد كرد .

)1 اگر هنوز برنامه قسمت قبل در حال اجرا است آن را ببنديد و سپس كنتـرل Button ديگـري بـه فـرم اضـافه كنيـد .خاصـــــيت Name آن را برابـــــر btnBackwardsForLoop و خاصـــــيت Text آن را برابـــــر. دهيد قرار Backwards For Loop

)2 روي اين كنترل دو بار كليك كنيد و كد زير را در متد مربوط به رويداد كليك آن وارد كنيد:

private void btnBackwardsForLoop_Click(object sender,

EventArgs e)

{

// Perform a loop

for (int intCount = 10; intCount >= 1; intCount–)

{

// Add the item to the list

lstData.Items.Add(intCount);

}

}

)3 برنامه را اجرا كنيد و روي دكمه Backwards For Loop كليك كنيـد . نتيجـه اي را مـشابه شـكل -20 4مشاهده خواهيد كرد .

همانطور كه در قسمت سوم تعريف حلق ه for مشاهده مي كنيد، در هر مرتبه اجراي حلقه، استفاده از عملگر — موجب مي شـوديك واحد از مقدار intCount كم شود. چون مقدار اوليه اين متغيير برابر 10 در نظر گرفته شده است، حلقـه 10 بـار اجـرا مـيشود و از عدد 10 به صورت معكوس به عدد 1 مي رسد و اجراي حلقه تمام مي شود .

 

20 4- شكل

 

حلقه هاي foreach :

در استفاده روزمره از حلقه for در برنامه ها، كمتر از اين حلقه به نحوي كـه شـرح داده شـد اسـتفاده مـي شـود . بـه علـت نحـوهكاركردي كه چارچوب NET. دارد، معمولا در برنامه ها با نوع خاصي از اين حلقه كه foreach ناميده مي شـود بيـشتر كـارخواهيم كرد .در الگوريتم برنامه ها عموما هنگامي از يك حلقه استفاده مي كنيد كه مجموعه اي از اشيا را در اختيار داشته باشـيد و بخواهيـد بـيناعضاي آن جا به جا شويد، كه اين مجموعه هم اغلب به صورت يك آرايه است . براي مثال ممكن است بخواهيد بين تمـام فايلهـايدرون ي ك فولدر بگرديد و فايلي را پيدا كنيد كه اندازه آن بيش از حد مجاز است .

هنگامي كه از چارچوب NET. بخواهيد كه ليستتمام فايلها را به شما برگرداند، يك آرايه از اشيا را دريافت خواهيد كرد كه هر كدام از اعضاي آن نشان دهنده ي يك فايل اسـت . درامتحان كنيد بعد، حلقه داخل برنامه خود را به نحوي تغيير خواهيد داد كه نام تمام فولدرهاي داخل درايو C شما را برگرداند .

)1 كنترل Button جديـدي بـه برنامـه اضـافه كنيـد، خاصـيت Name آن را برابـر btnForEachLoop وخاصيت Text آن را برابر ForEach Loop قرار دهيد .

)2 روي اين كنترل دو بار كليك كنيد و كد زير را در متد مربوط به رويداد Click آن وارد كنيد:

private void btnForEachLoop_Click(object sender,

EventArgs e)

{

// List each folder at the root of your C Drive

foreach (string strFolder

in System.IO.Directory.GetDirectories(“C:\\”))

{

// Add the item to the list

lstData.Items.Add(strFolder);

}

}

 

)3 برنامه را اجرا كنيد و روي دكمـه ي ForEach Loop كليـك كنيـد . در ListBox نـام تمـامي فولـدرهايموجود در درايو C خود را مشاهده خواهيد كرد .

براي بدست آ وردن ليست تمام دايركتوري هاي موجود در يك مـسير خـاص در برنامـه بايـد از تـابع GetFirectoriesمربوط به كلاس Directory در فضاي نامSystem.IO استفاده كنيم. اين تـابع يـك آرايـه رشـته اي از نـام تمـامدايركتوري هاي موجود در مسيري كه براي آن مشخص شده است را برمي گرداند . در اين برنامه از اين تابع براي دريافت نام تمـاميدايركتوري هاي موجود در درايو C استفاده كرده ايم .

اصل كار حلقه foreach به اين صورت است كه به وسيله ي آن شما مي توانيد در بين تمـامي اشـياي موجـود در يـك آرايـهخاص (كه تعداد آن را نيز نمي دانيد) حركت كنيد. براي ايجاد اين حلقه به منبعي از اشيا نياز داريد (در اين مثال يك آرايه از رشته ها)و يــك متغييــر كنتــرل كننــده كــه در هــر مرحلــه، شــيئ مــورد بررســي در آن قــرار خواهــد گرفــت . در ايــن مثــال تــابعGetDirectories، آرايــه اي از اشــيا را بــه عنــوان منبــع بــراي حلقــه foreach فــراهم مــي كنــد و متغ ييــرstrFolder به عنوان متغيير كنترل كننده به كار مي رود :

foreach (string strFolder

in System.IO.Directory.GetDirectories(“C:\\”))

{

// Add the item to the list

lstData.Items.Add(strFolder);

}

اين عبارت به اين معني است كه در مرحله اول، strFolder برابر با اولين آيتم در آرايه رشته اي است (در ايـن جـا برابـر بـافولـدر “C:\Documents and Settings”) . شـما ميتوانيـد ايـن فولـدر را بـا اسـتفاده از دسـتور زيـر بـهListBox اضافه كنيد .

// Add the item to the list

lstData.Items.Add(strFolder);

همانند حلقه هاي for ع ادي در هر مرحله، يكي از عناصر اين آرايه در متغيير strFolder قرار ميگيرد و سپس مقـدار آنبه ListBox اضافه مي شود .

نكته: همانطور كه مشاهده مي كنيد به جاي استفاده از رشته “\:C” به عنوان پارامتر براي تابع GetDirectories،از رشته “\\:C” استفاده كرده ايم . در زبا نهاي برنامه نويسي خانواده C از جمله #C، كاراكتر \ به عنوان يك كـاراكتر كنترلـيدر نظر گرفته مي شود. فرض كنيد ميخواهيد رشته A ” Sign را در يك متغيير رشته اي ذخيره كنيد.

اين رشته شامل كاراكتر” است كه براي مشخص كردن انتهاي رشته به كار مي رود . پس نميتوان به حال ت عادي اين رشته را در يك متغيير رشته اي قـرار. داد براي اينكه به كامپايلر بگوييم كاراكتر ” جزئي از رشته است، بايد از كاراكتر \ قبل از آن استفاده كنيم. به همـين ترتيـب بـراياين كه به كامپايلر بگوييم در رشته “\:C” كاراكتر \ جزئي از رشته است، بايد از دو \ به صورت متوالي استفاده كنيم و رشته رابه صورت “\\:C” بنويسيم . اگر اين عبارت را به صورت “\:C” بنويسيم كامپايلر تصور ميكنـد كـه شـما انتهـاي رشـته را مشخص نكرده ايد و خطا ايجاد مي كند، زيرا ” را در انتهاي رشته، به عنوان بخشي از عبارت محسوب مي كند

 

مقاله متلب,مطلب,متلب,مقاله برق,مقاله قدرت,مقاله مطلب,مقاله سیمولینک,دانلود متلب,دانلود مقاله متلب,مقالهmatlab ,آموزش متلب,مطلب,متلب,آموزش برق,آموزش قدرت,آموزش مطلب,آموزش سیمولینک,دانلود متلب,دانلود آموزش متلب,آموزشmatlab ,پروژه متلب,مطلب,متلب,پروژه برق,پروژه قدرت,پروژه مطلب,پروژه سیمولینک,دانلود متلب,دانلود پروژه متلب,پروژهmatlab ,

سعید عربعامری
من سعید عربعامری نویسنده کتاب 28 گام موثر در فتح متلب مدرس کشوری متلب و سیمولینک و کارشناس ارشد مهندسی برق قدرتم . بعد از اینکه دیدم سایتهای متعدد یک مجموعه کامل آموزش متلب و سیمولینک ندارند به فکر راه اندازی این مجموعه شدم
http://sim-power.ir

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *