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



ارسال موضوع  موضوع بسته شده است 
 
امتیاز موضوع:
  • 0 رأی - میانگین امیتازات : 0
  • 1
  • 2
  • 3
  • 4
  • 5

مقدمه اي بر سي شارپ : قسمت پنجم

نویسنده پیام
*
ارسال ها: 169
اعتبار: 0
سپاس کرده: 19
سپاس شده: 26 در 13 موضوع

امتياز: 97.05

ارسال: #1
مقدمه اي بر سي شارپ : قسمت پنجم
حلقه ها در سي شارپ :



مقدمه :



اگر نياز باشد تا قطعه اي از كد بيش از يكبار اجرا شود نياز به استفاده از حلقه ها مي باشد. براي مثال فرض كنيد آرايه اي به طول 1000 تعريف كرده ايد. اكنون مي خواهيد آنرا با هزار عدد متوالي پركنيد. بديهي است كه روش زير كارآمد نيست! :



int[] intData = new int[1000];
intData[0]=0;
.
.
.
intData[999]=1000;



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



تعريف حلقه ها و استفاده از آنها :



براي تعريف حلقه ها ابزارهاي متعددي مانند while, do , for , foreach وجود دارند. استفاده و انتخاب آنها بستگي به سليقه ي شما و منطق برنامه دارد. در هر حال يك مساله بديهي است كه همواره بيش از يك راه حل براي يك مساله وجود خواهد داشت.



استفاده از حلقه ي for :



عموما كدنويسي را با كد نويسي مي توان آموخت! بنابراين در مورد انواع حلقه ها مثالهايي ارائه خواهد گرديد.



يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex07 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :



using System;



namespace ex07
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
int[] intData = new int[1000];



for (int i=0 ; i<1000 ; i++ )
intData[i]=i;




for(int i=0 ; i< intData.Length ; i++)
{
int j = intData[i];
Console.WriteLine("intData[" + i + "]=" + j);
}



Console.ReadLine();



}
}
}



توضيحاتي در مورد كد فوق :
1- براي تعريف حلقه ي for همانطور كه مي بينيد بايد تعداد بار اجراي حلقه ( اينجا از 0 تا 999 است ) و همچنين نحوه ي رسيدن از 0 به 1000 را مشخص كرد ( در اينجا i++ است يعني هر بار يك واحد به شمارشگر حلقه اضافه مي شود. )
2- در زبان سي i++ يعني i=i+1 و i-- يعني i=i-1 و كلا i-=n يعني i=i-n و به همين ترتيب. براي مثال i*=n يعني i=i*n و i+=n يعني i=i+n و ...
3- اگر پس از حلقه ي for يك خط كد داشته باشيم نيازي به آكولاد نيست (مانند قسمت اول كد). ولي اگر تعداد خطوط مربوط به بدنه ي for زياد بود بايد حتما از آكولاد استفاده شود (مانند قسمت دوم كد). (اين قاعده اي كلي است در زبانهاي مشتق شده از زبان سي در مورد هر چيزي!)
4- فرض كنيد در قسمت اول كد بالا بجاي 1000 مي نوشتيد 1001 . سريعا با يك خطاي زمان اجرا مواجه مي شديد. زيرا مي خواستيد به عضوي از آرايه دسترسي پيدا كنيد كه تعريف نشده است. راه مدرن چك كردن اين مسائل استفاده از خاصيت Length آرايه است كه در قسمت دوم كد در عمل مشاهده مي نماييد. هميشه از اين روش استفاده كنيد.
5- حلقه ي اول يعني اينكه كار پر كردن آرايه intData را از صفر تا 999 يكي يكي (i++) انجام بده.



استفاده از حلقه ي while :
يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex08 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :



using System;



namespace ex08
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
int n = 1;



while (n < 6)
{
Console.WriteLine("Current value of n is {0}", n);
n++;
}



Console.ReadLine();
}
}
}



توضيحاتي در مورد كد فوق :
1- حلقه ي while در بالا كار انجام حلقه را تا هنگامي انجام مي دهد كه شرط ذكر شده در ابتداي آن صادق و برقرار باشد. يعني در حلقه ي فوق تا وقتي n<6 است اين حلقه ادامه خواهد يافت.
2- حلقه ي while صفر يا بيشتر بار ممكن است اجرا شود.
3- در كد فوق از {0} استفاده گرديده است. متد WriteLine به شما اين اجازه را مي دهد كه n تا آرگومان براي آن تعريف كنيد و مقادير هر كدام را كه خواستيد در كد نمايش دهيد از {x} استفاده كنيد. در اين مورد مقدار آرگومان x ام نمايش داده مي شود.



استفاده از حلقه ي do :



يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex09 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :



using System;



namespace ex09
{



class Class1
{
[STAThread]
static void Main(string[] args)
{
int x;
int y = 0;



do
{
x = y++;
Console.WriteLine(x);



}while(y < 5);



Console.ReadLine();



}
}
}



توضيحاتي در مورد كد فوق :
1- اين حلقه به حلقه ي do…while معروف است و هر دو جزء آن بايد ذكر گردد.
2- اين حلقه تا زماني كه شرط ذكر شده در قمست while صحيح است ادامه مي يابد.
3- اين حلقه در ابتداي كار بدون توجه به قسمت while حداقل يكبار اجرا مي شود. (مثال زير را اجرا نماييد)



int n = 10;
do
{
Console.WriteLine("Current value of n is {0}", n);
n++;
} while (n < 6);



استفاده از حلقه ي foreach :



يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex10 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :



using System;



namespace ex10
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
int odd = 0, even = 0;
int[] arr = new int [] {0,1,2,5,7,8,11};



foreach (int i in arr)
{
if (i%2 == 0)
even++;
else
odd++;
}



Console.WriteLine(
"Found {0} Odd Numbers, and {1} Even Numbers.",
odd, even) ;



Console.ReadLine();



}
}
}



توضيحاتي در مورد كد فوق :
1- از foreach براي حركت در بين اعضاي يك آرايه (مانند مثال بالا) و يا مجموعه ايي از اشياء استفاده مي شود (روشي شكيل ، مدرن و مطمئن! و تقريبا به ارث رسيده از ويژوال بيسيك!!).
2- در زبانهاي مشتق شده از C ، عملگر % ، باقيمانده را محاسبه مي كند.
3- در كد فوق با استفاده از حلقه ي foreach تك تك اعضاي آرايه در مورد زوج و يا فرد بودند مورد بررسي قرار گرفته اند و تعداد اعضاي زوج و فرد در آخر نمايش داده مي شود

امضا كاربر
تاریخ عضویت: چهار شنبه ۱۴ فروردين ۱۳۸۷
من FDL قدیمی رو دوست دارم!موقعی که اقایون شهرام و محمد جواد فقط به پست ها جواب میدادن!همه همدیگرو میشناختیم!الان بزرگ شده!بی دروغ و خیلی راحت،دیگه دوسش ندارم
We Are Cyber TeamAbh
Yahoo ID: Cyberteam021
Felan new MSG ro dashte bashid ta badan yedune dg besazam
جمعه ۲۲ خرد ۱۳۸۸ ۰۵:۳۹ صبح
مشاهده وب سایت کاربر یافتن تمامی ارسال های این کاربر
ارسال موضوع  موضوع بسته شده است 






تالار گفتمان اف دی ال - انجمن تخصصی دانلود رایگان - تالار گفتگوی ایرانیان © 1395.