انجام پایان نامه و پروپوزال و شبیه سازی مقالات
انجام پایان نامه و پروپوزال و شبیه سازی مقالات

انجام پایان نامه و پروپوزال و شبیه سازی مقالات

ساختار حلقه for در متلب

گاهی شما نیاز خواهید داشت که یک مورد برای چندین بار تکرار شود. به عنوان مثال می خواهید عدد از یک تا صد نوشته شود. برای این کار اگر خودتان از یک بنویسید تا ۱۰۰ کار درستی انجام نداده اید زیرا برنامه ی شما قابل انعطاف نیست و اگر روی سوال عوض شود باید دوباره از اول تا آخر بنویسید. ساختار حلقه for به صورت شکل زیر می باشد:

تذکر: در متلب “:” به معنای “تا” است . به عنوان مثال نوشتن ۱:۱۰۰ یعنی از یک تا ۱۰۰ که شامل ۱ و ۲ و ۳ و … و ۱۰۰  می باشد.

مثال: می خواهیم برنامه ای بنویسیم که از یک تا صد را در خروجی نشان دهد.

کد مربوط به این سوال در زیر نوشته شده است:

;clear

;clc

for i=1:100

   : ((disp(num2str(i

end

و نتیجه در شکل زیر نشان داده شده است:


 

 

مثال: می خواهیم عددی از ورودی گرفته و از یک تا آن عدد در خروجی نشان داده شود:

کد مربوط به این مثال نیز به صورت:


;clear

;clc

   ;(‘:n=input(‘yek adad vared konid

for i=1:n

    ;((disp(num2str(i

end

نتیجه به صورت زیر به دست می آید که برای عدد ۹ صورت گرفته است:

گاهی نیاز خواهد شد از حلقه ­های for to for استفاده کنیم. یعنی یک حلقه ی for داخل یک حلقه ی for دیگر باشد. مثال زیر را ببینید.

مثال: برنامه ای بنویسید که یک عدد به عنوان ورودی بگیرد و به مقدار خودش از خودش چاپ کند؟ (راهنمایی: اگر عدد ۳ باشد ۳ تا ۳ بنویسد!)

کد مربوط به این مثال را در زیر ببینید. حلقه ی داخلی مربوط به تعداد نوشتن است و حلقه ی بیرونی مربوط به شمارش اعداد. مثلا وقتی عدد ۳ وارد می شود حلقه ی اول یعنی for اول می رود بیرون و منتظر اتمام کار for درونی می ماند حال در for داخلی به تعداد عدد انتخاب شده می خواهد disp صورت پذیرد.  دقت کنید که شمارنده حلقه ی دومی (j) تا شمارنده حلقه اولی کار می کند. وقتی کار حلقه درونی تمام می شود دوباره حلقه بیرونی عدد را یکی اضافه می کند و… تا اتمام کار فرا برسد.


;clear

;clc

;(‘:n=input(‘yek adad vared konid

for i=1:n

    for j=1:i

    ;((disp(num2str(i

    end

end

نتیجه برای عدد ۵ را در زیر می بینید.

مثال: می خواهیم دنباله فیبوناتچی را در متلب بنویسیم. دنباله فیبوناتچی یک دنباله ای است که عدد حاصل از آن حاصل جمع دو عدد قبلی است. برای نوشتن کد متلب دنباله فیبوناتچی، ابتدا متغیری را با نام a در نظر می گیریم که حاوی یک ماتریس سطری است و می خواهیم اعداد فیبوناتچی را در آن ذخیره کنیم و در آخر آن را نمایش دهیم. برای اینکار ابتدا a(1)=0 و a(2)=1 قرار می دهیم تا بتوانیم دنباله فیبوناتچی را در متلب پیاده سازی کنیم. سپس باید برای نوشتن (a(3 و(a(4 و… از قبلی ها کمک بگیریم یعنی (a(3)=a(2)+a(1 و (a(4)=a(3)+a(2 و … . همانطور که می بینید حلقه ی for در این قسمتکار را راحت میکند. در نتیجه باید همانند زیر کد نویسی کنیم: (فرض ما بر این بوده است که دنباله تا عدد ۱۰ ادامه یابد ، البته می توانستیم بیش تر هم در نظر بگیریم و در آخر از ۱ تا ۱۰ پارامتر a را برای نمایش قرار دهیم)


;clear

;clc

;a(1)=0

;a(2)=1

for i=3:10

   ;(a(i)=a(i-1)+a(i-2

end

;((disp(num2str(a

و نتیجه ی این کد نیز به صورت زیر می باشد.

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

همانطور که می دانید فاکتوریل در ریاضی به صورت

n!=n*(n-1)*(n-2)*…*۱

تعریف می شود. لذا برای پیاده سازی آن در متلب باید همانند فیبوناتچی عمل کنیم و کد مربوط به آن به صورت زیر می باشد.

;clear

;clc

;(‘:n=input(‘yek adad vared konid

;f=1

for i=n:-1:1

 ;  f=f*i

end

;((disp(num2str(f

می بینید ابتدا f=1 قرار داده شده و در حلقه for از n شروع و یکی یکی کم کرده تا به یک برسه! و هر بار میاد f را با i ضرب می کند و در خود f ذخیره می کند و … تا به آخر برسد.

این جا میخواهیم داخل حلقه را  disp کنیم تا ببینید. یعنی به صورت زیر بنویسیم و نتیجه را نشان دهیم.

مثال دستور for :

;clear

;clc

;(‘:n=input(‘yek adad vared konid

;f=1

for i=n:-1:1

  ; f=f*i

   ;((disp(num2str(f

end

;((disp(num2str(f

و نتیجه برای n=10


نظرات 0 + ارسال نظر
ایمیل شما بعد از ثبت نمایش داده نخواهد شد